{"id":28202658,"url":"https://github.com/weble/laravel-ecommerce","last_synced_at":"2025-06-11T21:08:10.812Z","repository":{"id":40368136,"uuid":"260946767","full_name":"Weble/laravel-ecommerce","owner":"Weble","description":"Opinionated ecommerce tools for laravel","archived":false,"fork":false,"pushed_at":"2025-02-20T09:59:52.000Z","size":246,"stargazers_count":12,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-17T00:15:21.033Z","etag":null,"topics":["cart","ecommerce","laravel","laravel-cart","laravel-ecommerce","laravel-package","laravel-shop","laravel-shopping-cart","shopping-cart"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Weble.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-03T14:44:28.000Z","updated_at":"2025-02-20T10:00:03.000Z","dependencies_parsed_at":"2024-06-03T15:23:32.093Z","dependency_job_id":null,"html_url":"https://github.com/Weble/laravel-ecommerce","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":"spatie/package-skeleton-laravel","purl":"pkg:github/Weble/laravel-ecommerce","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Weble%2Flaravel-ecommerce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Weble%2Flaravel-ecommerce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Weble%2Flaravel-ecommerce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Weble%2Flaravel-ecommerce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Weble","download_url":"https://codeload.github.com/Weble/laravel-ecommerce/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Weble%2Flaravel-ecommerce/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259340731,"owners_count":22843041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cart","ecommerce","laravel","laravel-cart","laravel-ecommerce","laravel-package","laravel-shop","laravel-shopping-cart","shopping-cart"],"created_at":"2025-05-17T00:16:20.188Z","updated_at":"2025-06-11T21:08:10.805Z","avatar_url":"https://github.com/Weble.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WARNING: STILL IN DEVELOPMENT - DO NOT USE YET\n\n# Laravel Ecommerce\n\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/weble/laravel-ecommerce.svg?style=flat-square)](https://packagist.org/packages/weble/laravel-ecommerce)\n[![GitHub Tests Action Status](https://img.shields.io/github/workflow/status/weble/laravel-ecommerce/run-tests?label=tests)](https://github.com/weble/laravel-ecommerce/actions?query=workflow%3Arun-tests+branch%3Amaster)\n[![Total Downloads](https://img.shields.io/packagist/dt/weble/laravel-ecommerce.svg?style=flat-square)](https://packagist.org/packages/weble/laravel-ecommerce)\n\nOpinionated ecommerce tools for laravel\n\n## Introduction\nIn a lot of projects, we encounter the same dilemma: we need to provide a customer with an \"Ecommerce\" website (basically, he needs to sell either a product or a service) which doesn't \"fit\" in the standard definition of ecommerce (ie: what you can easily build on top of the popular ecommerce CMSes, like Prestashop, Magento, Woocommerce, etc), or with the usual SaaS (Shopify, Webflow, SnipCart, etc)\n\nThe natural question that arises for us is then: do we customize these CMSes to suite the particular business case of the client, or build a custom Laravel application while having to deal with all the standard (and always \"expected\") ecommerce features, like cart, orders, notifications, inventory, coupons, taxes, customers, etc?\n\nThis is why Laravel Ecommerce was born: to provide most of these standard ecommerce features to any Laravel Application that needs them, allowing us to leverage them, without having to rebuild them from scratch every time.\n\nIt is **very** opinionated, meaning we put some \"assertions\" in place to allow us to build upon a few \"certainties\".\n\n### Prerequisites\n\n1. Everything you sell is an Eloquent Model.\n1. Everything you sell needs to be added to the cart in order to be purchased.\n1. Everything you sell has a price, and the model itself is able to calculate it.\n\n### Design Choices\n\n- In v1 we support only the Single Store model. For v2 we plan to add support for Multiple Store, with a Store Provider.\n- Each \"thing\" you add to the cart is an Eloquent Model. This is done in order to take advantage of the Polymorphic relationships, while keeping the maximum flexibility.\n- Everything related to \"prices\" is a MoneyPHP object. For this we use the excellent ```cknow/laravel-money``` wrapper for laravel\n- We use ```commerceguys/addressing``` to deal with addresses and zones in general\n- We use ```commerceguys/tax``` to deal with taxes\n- We use ```iben12/laravel-statable``` to deal with order management through a state machine.\n- We use ```barryvdh/laravel-omnipay``` to deal with payment gateways.\n- We provide Laravel Nova Fields / Resources / Tools as an optional way to interact with the package resources.\n- We provide views / assets / etc that can be used to speed up the frontend work\n- We provide default emails to be sent on specific events\n- We trigger a lot of events, to allow for maximum customization\n- Every class used and provided can be swapped from the configuration file. \n\n## Installation\n\nYou can install the package via composer:\n\n```bash\ncomposer require weble/laravel-ecommerce\n```\n\n\n# Notes\n\n- Using more than 1 currency =\u003e publish swap config and configure it (add cache probably)\n- Using payments =\u003e publish omnipay config\n- Want nova? Install weble/laravel-ecommerce-nova\n- TODO: migrations (publish vs load from)\n- BEWARE: of changing the default currency if you don't store the currency itself in the db too\n\n## Usage\n\n``` php\n\n```\n\n## Testing\n\n``` bash\ncomposer test\n```\n\n## Changelog\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.\n\n## Contributing\n\nPlease see [CONTRIBUTING](CONTRIBUTING.md) for details.\n\n## Security\n\nIf you discover any security related issues, please email daniele@weble.it instead of using the issue tracker.\n\n## Credits\n\n- [Skullbock](https://github.com/skullbock)\n- [All Contributors](../../contributors)\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweble%2Flaravel-ecommerce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweble%2Flaravel-ecommerce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweble%2Flaravel-ecommerce/lists"}