- How do I install and configure baks-dev/yandex-market in Laravel?
- Run `composer require baks-dev/yandex-market` to install, then execute `php artisan baks:assets:install` to set up configuration files. Configure your Yandex Market tokens and queue transports in `.env` or `config/services.php`. The package requires PHP 8.4+ and Laravel 9+.
- Does this package support Laravel’s native queue system (Redis, database) instead of Symfony Messenger?
- No, the package uses Symfony Messenger by default, which isn’t natively integrated with Laravel queues. You’ll need to either use synchronous methods for critical operations or build a custom Laravel queue adapter to bridge the gap. Consider forking the package if Messenger integration is a hard requirement.
- What Laravel versions are compatible with this package, given the PHP 8.4+ requirement?
- The package requires PHP 8.4+, which aligns with Laravel 10+. If you’re using Laravel 9.x or older, you’ll need to upgrade or use polyfills, as the package leverages modern PHP features like attributes and typed properties. Test thoroughly after upgrading.
- How do I handle API rate limits or token expiration errors in production?
- The package includes retry strategies for failed API calls (configurable via Messenger’s retry options), but you should extend error handling to log failures to Laravel’s Monolog or Sentry. Implement circuit breakers or fallback mechanisms for critical operations, especially if relying on async queues.
- Can I use this package for real-time order updates, or is it async-only?
- The package is async-first, using Symfony Messenger queues for operations like bulk product syncs. For real-time updates (e.g., webhooks for order status changes), you’ll need to integrate Yandex Market’s native webhooks separately and sync data via Laravel’s queue system or direct HTTP calls.
- Are there alternatives to this package for Yandex Market API integration in Laravel?
- Few Laravel-specific packages exist for Yandex Market, but you could build a custom solution using Guzzle HTTP client or leverage Symfony-based packages like `symfony/messenger` with a Laravel adapter. This package stands out for its queue-based retry logic and Russian compliance features, but evaluate maintenance risks given its low adoption.
- How do I secure and rotate Yandex Market API tokens in Laravel?
- Store tokens in Laravel’s `.env` file or encrypted config (e.g., `config/services.php` with `config:cache`). Use Laravel’s `encryption` service to encrypt sensitive tokens in the database if needed. Implement token rotation by updating the `.env` file and restarting queue workers.
- What testing tools or strategies does this package support for Laravel?
- The package includes PHPUnit test groups (`--group=yandex-market`) for core functionality. Extend these tests to mock API responses and queue behaviors. Use Laravel’s `Mockery` or `Pest` for unit testing, and test queue jobs with Laravel’s `Queue::fake()` in feature tests.
- Will this package work with Laravel Horizon for queue monitoring?
- No, because the package uses Symfony Messenger, not Laravel’s native queue system. To monitor queues, you’d need to either: 1) Switch to Laravel’s queue system (via a custom adapter), 2) Use Symfony’s `messenger:consume` command, or 3) Log queue events to a database table and build a custom dashboard.
- How do I handle Russian compliance requirements like tax codes or Yandex.Kassa payments?
- The package natively supports Yandex.Market-specific tax codes and Yandex.Kassa payment integrations, reducing manual compliance work. Ensure your Laravel app’s database schema aligns with these requirements (e.g., storing tax IDs for sellers). For additional compliance (e.g., data residency), consult Russian legal experts and extend the package’s configuration as needed.