- What Laravel versions does baks-dev/ozon-orders support?
- The package is optimized for Laravel 10+ and requires PHP 8.4 or higher. While the README doesn’t explicitly list Laravel 9 support, the Symfony Console integration suggests compatibility with Laravel 9.x may require minor adjustments due to dependency versions. Always verify with your Laravel version’s Composer constraints.
- How do I set up Ozon FBS/DBS profiles, payments, and deliveries?
- Use the provided Artisan commands: `php artisan baks:users-profile-type:ozon-fbs` for FBS profiles, `php artisan baks:payment:ozon-fbs` for payments, and `php artisan baks:delivery:ozon-fbs` for deliveries. Replace `fbs` with `dbs` for Ozon DBS. These commands create the necessary database records and configurations for Ozon’s API integration.
- Does this package handle Ozon webhook payloads automatically?
- No, the package assumes you’ll implement a `/ozon/webhook` endpoint in your Laravel app to receive real-time updates. You’ll need to handle payload validation, idempotency, and async processing (e.g., queues or jobs) manually. The package doesn’t include built-in webhook validation or retry logic, so plan for these requirements.
- What if my database schema doesn’t match the package’s assumptions?
- The package expects pre-existing tables like `users_profile_types`, `payments`, and `deliveries` but doesn’t provide migrations. You’ll need to manually align your schema or create Laravel migrations to backfill or extend these tables. Audit your database structure before installation to avoid integration issues.
- Can I use this package in a microservices architecture?
- The package’s CLI-centric design and tight coupling to Ozon’s API contracts make it less ideal for microservices. It’s better suited for monolithic Laravel applications. If adopting microservices, consider extracting Ozon-specific logic into a separate service or using API clients like Guzzle directly for more granular control.
- How do I test the Ozon integration before going live?
- Run the included tests with `php artisan test --group=ozon-orders` to verify core functionality. For end-to-end testing, use Ozon’s sandbox API to simulate FBS/DBS orders, payments, and deliveries. Mock webhook payloads in your Laravel tests to ensure your `/ozon/webhook` endpoint handles real-time updates correctly.
- What are the risks of using this package for production?
- Key risks include Ozon API drift (since the package has low maintenance activity), lack of built-in webhook resilience, and no observability tools. Mitigate these by monitoring Ozon’s API changelog, implementing custom retry logic for webhooks, and adding logging for API interactions. Consider forking the package if Ozon’s API changes break compatibility.
- Are there alternatives to baks-dev/ozon-orders for Laravel?
- For Ozon integrations, alternatives include using Ozon’s official API SDK directly with Guzzle or Symfony HTTP Client, or packages like `spatie/laravel-ozon` (if available). For broader marketplace support, consider `webkul/mp-seller` or `bagisto/ozon-connector`. Evaluate alternatives based on your need for CLI tools, webhook handling, and Laravel-specific features.
- How do I handle duplicate webhook payloads from Ozon?
- The package doesn’t include idempotency handling, so you’ll need to implement it manually. Store a `webhook_id` or `event_id` in your database when processing payloads and check for duplicates before acting. Use Laravel’s queue system to process webhooks asynchronously, reducing the risk of race conditions during high-volume events.
- Can I customize the CLI commands or their output?
- Yes, you can override the CLI commands by publishing the package’s configuration files (if supported) or extending the Symfony Console commands. The package uses Russian strings by default, but you can override translations via Laravel’s language files or create custom middleware to localize output. Check the package’s source for command classes to extend them.