Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Amazon Mws Laravel Package

sonnenglas/laravel-amazon-mws

Laravel package for integrating Amazon Marketplace Web Service (MWS). It offers a convenient wrapper for querying orders, products, reports, and feeds, with configurable credentials and Laravel service container support.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. A thin Laravel service-provider/facade wrapper over Amazon MWS (XML-over-HTTPS, SigV4-signed query requests). It fits Laravel idiomatically — auto-discovered provider, publishable config, facade accessor, per-marketplace credential profiles — and fits layered architecture cleanly because it contributes no domain logic. It belongs behind an interface as an infrastructure adapter.

The dominant architectural fact is not the code, it's the platform: MWS is a sunset surface. Amazon closed new MWS developer registrations and has been steering sellers to the Selling Partner API (SP-API) for years. Viability of this package is gated entirely on whether the organization holds a grandfathered MWS registration. That is the first question, before any code review.

Integration feasibility. High for a time-boxed spike; low-to-medium as a long-lived production commitment. Prerequisites: existing Seller Central MWS access, Seller ID, MWS Auth Token, AWS key/secret tied to the developer registration, and region/marketplace mapping (NA/EU/FE). All obtainable if the registration exists; not obtainable if it doesn't — at which point this package is a dead end and SP-API is the only path.

Technical risk.

  • Framework constraint (highest immediate risk). Package metadata states Laravel ^7.x. Laravel 7 and PHP 7.4 are EOL. Adopting this means either running an unsupported framework or forking composer constraints and taking on an upgrade program. Verify the actual composer.json rather than the README claim of "compatible with latest Laravel."
  • Maintenance risk. 64 stars, 0 dependents, small vendor fork of a dormant upstream (creacoon/amazon-mws-laravel). Effectively single-maintainer. Assume we own the code and the patches.
  • API deprecation risk. Endpoint availability, throttles, and report/feed schemas can change without notice; Amazon support for MWS issues is minimal.
  • Auth model risk. Long-lived seller auth token plus IAM keys; no OAuth refresh flow. Secret sprawl and rotation burden that SP-API's LWA model largely removes.
  • Correctness risk. Feed and report flows are asynchronous with their own error surfaces (feed processing reports, report request status, throttling). Convenience wrappers tend to hide these.
  • No webhooks. MWS is poll-based except SQS notification subscriptions; idempotency and dedupe are ours to build.
  • Dependency friction. Older wrappers pin Guzzle 6/7 and will conflict with a current stack.

Key questions.

  1. Does composer.json actually allow Laravel 8/9/10/11, and which PHP versions?
  2. Which MWS sections are wrapped (Feeds, Reports, Orders, Products, Inbound Shipments, Finances, FBA), and do calls return parsed objects or raw XML?
  3. Do we hold valid MWS developer credentials and auth tokens for every marketplace we sell in?
  4. What is Amazon's communicated MWS end-of-life for our account/region, and does it fall inside our ROI horizon?
  5. Is there a maintenance owner, or do we vendor and own the fork outright?
  6. Does it handle queueing, retry, and throttling, or do we bolt those on?
  7. Is there test coverage with HTTP mocking so CI can run without hitting Amazon?
  8. Does the fork preserve upstream Apache-2.0 notices and attribution?

Integration Approach

Stack fit. Sensible only on a Laravel monolith or a dedicated marketplace-integration service. Present it as an adapter: define our own MarketplaceGateway interface (order sync, price/inventory feed, report retrieval), implement it with this package, and keep vendor types out of domain code. That reduces an eventual SP-API swap to one class.

Migration path. Vendor the package into the repo or pin a fork commit; wrap it in the adapter; move every call into queued jobs with exponential backoff; persist raw request/response payloads for replay and audit; only then wire domain flows.

Compatibility. Validate against our PHP/Laravel matrix in a throwaway skeleton first: provider boot, config publish, facade resolution, and one read-only call (e.g. ListOrders or a single report request). Resolve Guzzle/PSR version conflicts here, before any domain work. If the constraint fight is ugly, budget a hard fork.

Sequencing.

  1. Feasibility spike (1 week). Confirm MWS credentials exist; install on a current skeleton; get one read-only endpoint returning data.
  2. Go/no-go. Credentials present and volume modest → wrap. Credentials absent or expiry imminent → skip this package and go directly to SP-API.
  3. Adapter and config. Secrets in a vault or parameter store; per-marketplace profiles; structured logging with correlation IDs.
  4. Read path. Orders and reports into our own tables, with a reconciliation job against Amazon.
  5. Write path. Feeds (price, inventory, shipment confirmation) with a submission ledger and a polling worker.
  6. Sunset track started in parallel, not deferred. SP-API parity plan with an explicit date.

Hard rule: this package must never become the system of record and must never be called on a request/response path.

Operational Impact

Maintenance. Treat as owned code. Pin by commit hash, keep a patch branch, and review quarterly against Laravel/PHP upgrades. Because the dependency is EOL-adjacent, our own framework upgrades will be blocked by it repeatedly; that cost lands on the platform team and should be stated up front.

Support. Thin upstream support — small vendor, dormant base, no commercial SLA. We need an internal runbook: credential and IAM key rotation, throttle diagnosis, log locations, and escalation owner.

Scaling. Throughput is bounded by Amazon's per-operation quotas and a shared per-seller/developer throttle, not by us. Plan a token-bucket limiter with work prioritization (orders/inventory over historical reports). Feed and report processing is minutes-to-hours; anything user-facing must be async. Batch feeds rather than per-SKU calls.

Failure modes to design for.

  • Throttling (RequestThrottled/503): durable queue with backoff and jitter, not in-request retries.
  • Partial feed success: feed accepted but processing report shows per-record errors; requires a per-record ledger and replay.
  • Stuck reports (_SUBMITTED_/_IN_PROGRESS_): timeout plus re-request, deduped by report ID.
  • Credential expiry or revocation: integration goes fully dark; alert on auth failures distinctly from data errors.
  • Silent schema drift as Amazon deprecates MWS fields.
  • Duplicate processing on retry: idempotency keys from Amazon identifiers (AmazonOrderId, FeedSubmissionId).

Ramp-up. A mid-level Laravel engineer with no Amazon experience reaches productivity on the wrapper in roughly 1–2 weeks, but needs another 2–4 weeks to internalize MWS semantics (feeds, reports, throttles, marketplace/region quirks). MWS documentation is increasingly stale, so expect tribal knowledge to accumulate. If the organization also needs the SP-API migration, add 4–6 weeks for LWA OAuth, SigV4 signing, and the event/notification model.

Net read. The high opportunity score reflects genuine scarcity — Laravel-native Amazon marketplace plumbing is useful and has little credible competition. But that opportunity sits on a depreciating API with a one-maintainer wrapper and an EOL framework constraint. Fund it only as a short-horizon bridge behind an adapter, with the SP-API migration budgeted at adoption time rather than promised for later.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast