- Is caponica/amazon-mws-complete compatible with Laravel 10+ and PHP 8.2?
- The package follows PSR-3 logging and Symfony compatibility, so it should work with Laravel 10+ and PHP 8.2, but test thoroughly. However, its outdated API versions (e.g., 2009-01-01) may cause issues if Amazon enforces stricter version requirements. Use a wrapper or fork if modern endpoints are critical.
- How do I securely store Amazon MWS credentials in Laravel?
- Store credentials in `.env` (e.g., `AWS_ACCESS_KEY`, `AWS_SECRET_KEY`) and inject them into the `MwsClientPool` via Laravel’s Service Container. Avoid hardcoding in config files. For production, use AWS IAM roles or MWSAuthToken for long-lived sessions instead of short-lived credentials.
- Can I use this package for bulk report processing in Laravel Queues?
- Yes, the package supports synchronous calls, so you can dispatch report downloads or parsing jobs to Laravel Queues. Wrap API calls in a job class (e.g., `DownloadFbaInventoryReportJob`) and process responses asynchronously. For file-based reports, replace `fopen` with Laravel’s Filesystem or Queued Jobs for better scalability.
- What’s the best way to handle Amazon MWS throttling/rate limits?
- The package lacks built-in retry logic, so implement exponential backoff manually or use Laravel’s `retry` helper. For high-volume operations, cache responses (e.g., competitive pricing) in Redis and set TTLs. Monitor Amazon’s API limits and log throttling errors via Laravel’s Log facade for debugging.
- Does this package support modern Amazon MWS APIs like Off-Amazon Payments?
- No, the package only covers legacy APIs (e.g., 2009–2015 versions) and lacks support for newer services like Off-Amazon Payments or deprecated ones (e.g., MWSCartService). If you need modern APIs, consider forking the package or using the official AWS SDK for PHP instead.
- How do I mock Amazon MWS responses for testing without real credentials?
- Use a local MWS mock server (e.g., [MWS Mock Server](https://github.com/amzn/mws-mock-server)) or create a custom mock in PHPUnit. Override the `MwsClientPool` or individual clients (e.g., `MwsProductClient`) with a mock that returns predefined responses. Avoid integration tests with real credentials in CI/CD pipelines.
- Can I use this package with Laravel’s Service Container for dependency injection?
- Yes, register the `MwsClientPool` in a Laravel Service Provider’s `register()` method and bind it to the container. Then inject it into controllers or services via constructor injection. Example: `public function __construct(private MwsClientPool $clientPool) {}` for cleaner, testable code.
- What are the risks of using outdated API versions (e.g., 2009-01-01) in production?
- Outdated API versions may break if Amazon deprecates endpoints or changes request/response formats. Monitor Amazon’s API documentation for updates. If you rely on legacy versions, test thoroughly in a sandbox environment. For long-term projects, consider migrating to the AWS SDK for PHP or a maintained fork.
- How do I parse Amazon MWS reports (e.g., FBA inventory) into structured data?
- The package includes report parsing utilities (e.g., `MwsReportParser`) that convert raw XML/CSV responses into arrays or objects. For complex reports, extend the parser or use Laravel’s XML/CSV helpers. Handle malformed responses gracefully with try-catch blocks and log errors via Laravel’s Log facade.
- Are there alternatives to caponica/amazon-mws-complete for Laravel?
- For modern Amazon MWS APIs, use the official [AWS SDK for PHP](https://github.com/aws/aws-sdk-php), which supports SigV4, newer endpoints, and Laravel integration. For legacy APIs, consider forking this package or using [spatie/laravel-amazon](https://github.com/spatie/laravel-amazon) (if it fits your needs). Evaluate maintenance status and API coverage before choosing.