liberusoftware/ecommerce-commerce-core

Stores, channels and the commercial context every other Ecommerce module resolves against.

Maintainers

Package info

github.com/liberusoftware/module-ecommerce-commerce-core

Type:liberu-module

pkg:composer/liberusoftware/ecommerce-commerce-core

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.4.0 2026-08-09 16:51 UTC

This package is auto-updated.

Last update: 2026-08-09 16:53:02 UTC


README

This package is the authoritative, provider-neutral implementation of Commerce Core. It owns domain behavior and data; optional API, Filament, Livewire, React, Vue, and Nuxt packages translate its public contracts for their surfaces.

Software · Hosting · Services · Liberu Group

PHP Laravel Latest release Tests

Features

  • Fully compatible with Laravel 13, PHP 8.5, and Pest 5.
  • Built following the domain-driven design guidelines of the Liberu architecture.
  • Reusable, presenting a clean public contract and boundaries.
  • Adheres to the strict database, security, and authorization standards of Liberu.

Requirements

  • PHP 8.5
  • Composer 2
  • A supported database (e.g. MySQL, PostgreSQL, SQLite)

Quick start

To install this package via Composer, run:

composer require liberusoftware/ecommerce-commerce-core

Installing boots nothing. The module ships no extra.laravel.providers, so ModuleManagerServiceProvider is the only thing that registers it, and only when the deployment names it:

MODULES_ENABLED=ecommerce-commerce-core

What the host owns

Two things are deliberately left to the application, because a module that did them would only install into one application.

The team model. Store::team() resolves config('commerce-core.team_model') at call time, defaulting to App\Models\Team. An application whose team model lives elsewhere publishes the config and says so:

php artisan vendor:publish --tag=commerce-core-config

The trusted-host list. channel_domains is the natural source for it, and a host that caches it should clear the cache when the table changes. Register that once on the model rather than at the call sites that add domains — a cache invalidated by whoever remembers goes stale, and stale here means a merchant adds a domain and their storefront answers 400 until something else clears it:

ChannelDomain::saved(fn () => Cache::forget(TrustHosts::CACHE_KEY));
ChannelDomain::deleted(fn () => Cache::forget(TrustHosts::CACHE_KEY));

Documentation

Related Liberu Projects

Project Repository Purpose
Boilerplate liberusoftware/boilerplate-laravel Shared Laravel application foundation and reference composition
CMS liberu-cms/cms-laravel Structured content, publishing, media, multisite, and headless delivery
CRM liberu-crm/crm-laravel Customer data, sales, marketing, service, and customer success
Billing liberu-billing/billing-laravel Products, subscriptions, invoicing, payments, and provisioning
Accounting liberu-accounting/accounting-laravel Ledgers, banking, tax, expenses, close, and financial reporting
Ecommerce liberu-ecommerce/ecommerce-laravel Catalog, checkout, orders, fulfillment, returns, B2B, and omnichannel commerce
Control Panel liberu-control-panel/control-panel-laravel Hosting, infrastructure, DNS, mail, databases, backups, and security operations
Automation liberu-automation/automation-laravel Governed workflows, provider-neutral AI, approvals, and connectors

Security

Please do not report security vulnerabilities through public GitHub issues. Follow our Security Policy for private reporting and supported versions.

License

This project is open-source software. You may use, modify, and distribute it under the terms described in LICENSE.md.

The linked license text is authoritative; this summary is not legal advice.

Feedback and contributing

Feedback and contributions are welcome. You can help by reporting reproducible bugs, proposing focused enhancements, improving documentation or translations, and submitting tested code changes.

Before contributing, please read CONTRIBUTING.md and our Code of Conduct. Search existing issues first, then use the appropriate issue template. Pull requests should explain the problem and approach, remain focused, include or update tests, pass the required workflows, and document user-visible or breaking changes.

Contributors

Thank you to everyone who helps improve Liberu.

Contributors to liberusoftware/module-ecommerce-commerce-core

View the full contributors graph.