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

Commerce Laravel Package

ekyna/commerce

Ekyna Commerce is a PHP/Symfony commerce component providing the foundations for catalog, orders, customers, taxes, and related domain logic. Work in progress with planned cleanup (bundles removal, naming, Doctrine mappings/embeddables) and EU VAT resources.

View on GitHub
Deep Wiki
Context7

[READ-ONLY] Commerce component

Frequently asked questions about Commerce
Is ekyna/commerce ready for production in Laravel, or is it better suited for prototyping?
This package is currently in early development, with a TODO list in the README highlighting unfinished features like Doctrine embeddables, tax resolution, and collection methods. It’s best suited for prototyping or small-scale projects where you can tolerate risks like undocumented behavior or missing indexes. For production, evaluate whether its core abstractions (e.g., Order, Product) align with your architecture and if you’re comfortable addressing gaps via custom logic or forks.
How do I install ekyna/commerce in a Laravel project?
Install via Composer with `composer require ekyna/commerce`. The package is PHP-native but may require manual integration with Laravel’s service container, especially since it’s designed with Symfony Bundles (planned for removal). Check the README for Symfony-specific patterns (e.g., ContainerAware) that might need Laravel adaptations, like Facades or service providers. Doctrine ORM users may need the `eloquent-doctrine` bridge if using Eloquent.
Does ekyna/commerce support Laravel’s Eloquent ORM, or is it strictly Doctrine-based?
The package is built for Doctrine ORM, which may require additional setup for Laravel projects using Eloquent. You’ll likely need the `eloquent-doctrine` bridge or custom mappings to align Doctrine entities with Eloquent models. The README mentions plans to improve Doctrine mappings (e.g., indexes, constraints), but this hasn’t been implemented yet. Test compatibility early in your project.
What Laravel versions does ekyna/commerce support, and are there PHP version requirements?
The package doesn’t explicitly state Laravel version support in its documentation, but it’s PHP-native and likely compatible with Laravel 8+ (PHP 8.0+). Since it’s Symfony-influenced, check for conflicts with Laravel’s service container or Facades. The TODO list suggests breaking changes (e.g., renaming `getXXX()` to `isXXX()`), so verify compatibility with your Laravel version before deep integration.
How does ekyna/commerce handle taxes, especially for EU VAT compliance?
Tax resolution is a work-in-progress feature with EU VAT resources linked in the README. The package includes a `tax resolver` concept and references EU VAT rates, but no test cases or production-ready logic are documented. If your project requires robust tax handling, you may need to implement custom logic or supplement with a dedicated library like `spatie/laravel-eu-vat`. Validate edge cases (e.g., reverse charge, exemptions) before relying on it.
Can I use ekyna/commerce alongside Laravel Cashier or Spatie Commerce?
This package focuses on core commerce domain logic (catalogs, orders, customers) rather than payments or subscriptions, which Cashier handles. Spatie Commerce is a more mature alternative for full-featured e-commerce. Ekyna’s strength lies in its modularity and EU VAT tools, but its immaturity means you’d likely need to integrate it with existing services (e.g., Stripe via Cashier) manually. Assess whether its abstractions conflict with or complement your current stack.
What’s the migration path if I’m switching from another Laravel commerce package?
There’s no built-in migration tool for ekyna/commerce. You’ll need to write custom scripts to map existing data (e.g., products, orders) to its models. Start with a proof-of-concept for a single feature (e.g., catalog queries) to test Doctrine integration and performance. Use feature flags to isolate the package’s behavior during rollout. The package’s evolving API (e.g., `getXXX()` → `isXXX()`) may require refactoring downstream code.
Are there performance concerns with ekyna/commerce, especially for high-traffic catalogs?
The package lacks documented performance benchmarks, and the TODO list mentions missing Doctrine indexes (e.g., for ordered items), which could cause bottlenecks. Untested collection operations (e.g., `setXXXs`) might lead to N+1 queries or memory leaks. Test under load early, especially if using Doctrine. For high-traffic apps, consider caching strategies or query optimizations before full adoption.
How do I extend ekyna/commerce for custom attributes or variants?
The package includes plans for attribute set validation and variant slot management, but these aren’t implemented yet. You can extend it now by creating custom traits or decorators for missing methods (e.g., `hasXXXs`, collection setters). The README suggests using Doctrine embeddables for order addresses, which could inspire similar patterns for attributes. Document your extensions carefully, as the package’s API is still evolving.
What support or maintenance can I expect from the ekyna/commerce team?
The package has no visible maintainers, no CI/CD pipeline, and a TODO-driven README, indicating high risk. Issues or feature requests may go unaddressed. If support is critical, consider contributing to its development or forking the repository. For production use, allocate resources to monitor updates, patch bugs, or extend functionality internally. The MIT license allows modifications, but upstream changes (e.g., API renames) could force downstream refactoring.
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.
bugban/symfony
beyonder-capi/workflow-extensions-bundle
beyonder-capi/job-queue-bundle
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin