amarenkov/laravel-mutable-content-shop
A practical Laravel package for mutable-content shops that provides building blocks to manage and dynamically update storefront content. It helps Laravel developers keep product listings, pages, and other shop content editable, organized, and easy to maintain within their applications.
Invoice aggregate extends the order domain coherently: invoice number, date, money amount, paid amount, derived payment state, file attachment, and comment. Order::invoices(), invoicedTotal(), and paidTotal() are natural read-model additions.mutable-content-shop-migrations, bind models.invoice, configure invoices_disk, and extend LOV subclasses. The main integration work is wiring invoice creation into the order lifecycle and handling file storage and currency rules.DomainException—a good guard, but the application must handle it. The publish tag name mutable-content-shop-migrations suggests migrations may change, creating schema-drift risk. Test coverage, supported Laravel/PHP versions, and money-library dependency are unknown.invoicedTotal() and paidTotal() behave with refunds, credit notes, or multi-currency orders? What is the CI/test coverage?^0.2 initially. Publish config and migrations, run migrations in a non-production environment, configure invoices_disk, bind the invoice model, and extend the order/order-item LOV classes. Add invoice creation and payment updates to the existing order workflow.DomainException. 7) Add tests for invoice totals, payment state, and file attachment. 8) Validate in staging, then roll out behind a feature flag.invoicedTotal() and paidTotal() may aggregate across many invoices—watch for N+1 queries and large order histories. Concurrent payment updates need validation to avoid state drift.DomainException and must be handled in API/UI flows. Disk misconfiguration or missing files can break hasFile()/Invoice::disk() assumptions. Payment state can drift if amounts are changed outside package methods. Migration tag mutability risks schema conflicts. LOV config changes can invalidate existing rows. Partial failure between file write and database save needs a cleanup strategy.How can I help you explore Laravel packages today?