Weave Code
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

Yandex Market Products Laravel Package

baks-dev/yandex-market-products

Модуль интеграции продукции с Yandex Market для проектов BaksDev: установка через Composer, установка ассетов и конфигурации, миграции Doctrine, запуск тестов PHPUnit (group yandex-market-products). Требует PHP 8.4+.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Monolithic vs. Modular Fit: The package is designed as a modular extension for Yandex Market integrations, aligning well with Laravel’s modular architecture (e.g., Symfony bundles). It assumes a Symfony-based Laravel (v7.4+) stack, leveraging Doctrine ORM, console commands, and migrations—ideal for e-commerce or marketplace applications requiring Yandex Market product synchronization.
  • Domain-Specific Alignment: Targets product catalog management (CRUD, sync, validation) for Yandex Market, reducing custom development for YML feeds, API interactions, or inventory syncs. Fits best in B2B/B2C e-commerce where Yandex Market is a primary sales channel.
  • Coupling Concerns:
    • Tight coupling to Doctrine ORM (migrations, entities) may complicate adoption in projects using Eloquent or alternative ORMs.
    • Console-driven workflows (e.g., baks:assets:install) suggest it’s optimized for CLI-heavy deployments (e.g., CI/CD pipelines, scheduled syncs).

Integration Feasibility

  • Dependency Graph:
    • Hard dependencies: baks-dev/yandex-market (core API/client layer), PHP 8.4+, Laravel 7.4+ (Symfony components).
    • Soft dependencies: Doctrine Migrations, PHPUnit (for tests).
    • Risk: If the project uses Laravel 8+ (with first-party migrations) or non-Doctrine ORMs, integration effort increases (e.g., entity mapping, migration tooling).
  • API/Contract Exposure:
    • Public API: Likely limited to console commands and Doctrine entities (e.g., Product, Category). No clear REST/GraphQL endpoints exposed.
    • Use Case: Best for internal tooling (e.g., backend services) rather than direct frontend integration.
  • Configuration Override:
    • Supports custom asset installation (YML templates, config files), but lacks documentation on environment-specific overrides (e.g., .env variables for API keys).

Technical Risk

  • Maturity & Maintenance:
    • Last release: 2026-04-30 (future-dated; likely a placeholder or typo—verify actual release cadence).
    • No stars/contributors: High risk of abandonware or undocumented breaking changes. Assess via:
      • GitHub issues/PRs (open/closed).
      • Packagist download stats.
      • Author responsiveness (check baks-dev other packages).
  • PHP 8.4+ Requirement:
    • Breaking changes if project uses PHP 8.2/8.3 (e.g., named arguments, new attributes).
    • Deprecation risk: PHP 8.4 is cutting-edge (as of 2024); may force premature upgrades.
  • Database Schema:
    • Migrations: Assumes Doctrine; Eloquent projects require manual schema mapping or hybrid approaches.
    • Schema changes: Future Yandex Market API updates may require backward-incompatible migrations.
  • Testing Coverage:
    • PHPUnit group: yandex-market-products suggests some test coverage, but no CI/CD badges or test reports visible. Risk of untested edge cases (e.g., API rate limits, malformed YML).

Key Questions

  1. Why Yandex Market?
    • Is Yandex Market a critical sales channel (justifying custom integration) or a secondary one (where off-the-shelf solutions like Yandex Market API exist)?
  2. ORM Strategy:
    • Can the project adapt to Doctrine (e.g., hybrid Eloquent/Doctrine) or must it avoid it (increasing migration effort)?
  3. API Stability:
    • How often does Yandex Market’s API change? Is the package versioned to match (e.g., v1.0 for Yandex API v1)?
  4. Performance:
    • Does the package handle large catalogs (e.g., 100K+ products)? Are there batch processing optimizations?
  5. Localization:
    • Supports only Russian (README). Does the project need multi-language YML generation?
  6. Alternatives:
    • Have commercial packages (e.g., Webasyst, Bitrix24) been evaluated for lower risk?
  7. Support Model:
    • Is the author responsive to issues? Are there paid support options?

Integration Approach

Stack Fit

  • Laravel Version:
    • Target: Laravel 7.4+ (Symfony 5.x). Compatibility:
      • Laravel 8+: Possible with composer overrides for symfony/console/doctrine versions.
      • Laravel 9/10: Higher risk due to Symfony 6/7 updates (e.g., Container changes).
  • PHP Version:
    • Minimum: PHP 8.4. Recommendation:
      • Upgrade project to PHP 8.4 if feasible (or fork the package for PHP 8.2/8.3).
      • Use PHP 8.4 polyfills as a stopgap.
  • Database:
    • Doctrine ORM: Requires:
      • Doctrine DBAL/ORM installed (doctrine/dbal, doctrine/orm).
      • Database schema migrations adapted to project’s connection (e.g., MySQL/PostgreSQL).
    • Alternatives: Eloquent projects must:
      • Manually map Doctrine entities to Eloquent models.
      • Replace migrations with Laravel’s Schema builder or custom scripts.
  • Dependencies:
    • Critical: baks-dev/yandex-market (core API client). Ensure it’s compatible with the project’s HTTP client (e.g., Guzzle).
    • Optional: phpunit/phpunit (for tests); exclude if not needed.

Migration Path

  1. Assessment Phase:
    • Audit current product catalog structure (entities, APIs, sync workflows).
    • Identify conflicts with existing ORM/database layer.
  2. Dependency Setup:
    composer require \
      baks-dev/yandex-market \
      baks-dev/yandex-market-products \
      doctrine/dbal doctrine/orm  # If not already present
    
  3. Configuration:
    • Copy vendor assets (YML templates, configs) via:
      php bin/console baks:assets:install
      
    • Configure .env for Yandex Market API keys (check baks-dev/yandex-market docs).
  4. Database Migration:
    • Generate diff:
      php bin/console doctrine:migrations:diff
      
    • Option A (Doctrine): Apply migrations directly.
    • Option B (Hybrid): Convert Doctrine migrations to Laravel’s Schema or use a custom migration service.
  5. Entity Mapping:
    • If using Eloquent, create mapping classes to bridge Doctrine entities to Eloquent models.
    • Example:
      class YandexProductMapper
      {
          public static function toEloquent(array $doctrineData): Product
          {
              return Product::create([
                  'name' => $doctrineData['name'],
                  // ...
              ]);
          }
      }
      
  6. Console Command Integration:
    • Extend or wrap existing commands (e.g., baks:products:sync) to fit project workflows.
    • Example: Add a custom Artisan command to trigger syncs via queues.

Compatibility

Component Compatibility Risk Mitigation
Doctrine ORM High (if using Eloquent) Hybrid mapping or fork the package.
PHP 8.4+ High (if project uses PHP <8.4) Upgrade or use polyfills.
Laravel 7.4+ Medium (Laravel 8+ may need tweaks) Test with laravel/framework:^7.4 constraints.
Yandex Market API Medium (API changes may break package) Monitor Yandex API deprecations.
Database (MySQL/PostgreSQL) Low Ensure Doctrine DBAL supports the DB.

Sequencing

  1. Phase 1: Proof of Concept (2–4 weeks)
    • Install package in a staging environment.
    • Test core workflows (product sync, YML generation).
    • Validate performance with a subset of products (e.g., 100 items).
  2. Phase 2: Integration (4–8 weeks)
    • Adapt database schema/migrations.
    • Implement entity mapping (if not using Doctrine).
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.
emuniq/filament-browser-notifications
syriable/filament-translator
hungnm28/livewire-form
wenprise/eloquent
crudly/encrypted
fadion/bouncy
cuci/prototurk-sdk
gos/pubsub-router-bundle
cuci/prototurk-sdk-symfony
clementtalleu/easyadmin-markdown-bundle
codeflextech/permission-manager
karnoweb/livewire-datepicker
sayedenam/sayed-dashboard
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui