tastyigniter/ti-ext-coupons
TastyIgniter Coupons extension for adding fixed amount or percentage discounts, advanced usage restrictions, location-based and time-sensitive promotions to boost restaurant sales.
Architecture fit
history), and JSON:API endpoints (/api/coupons scoped by coupons:read / coupons:write). Architectural fit is excellent inside TastyIgniter and effectively zero outside it.Location class (v4.1.3) and to the tastyigniter/core version constraint (v4.2.0 requires ^v4.4). Treat this as a platform module we consume, not a library we integrate around.validity modes (forever, fixed, period, recurring), day/time windows, min-basket, min-item-quantity, location scope, and order_restriction (delivery vs. collection). That covers standard promo ops; it does not model stacking, bundles, loyalty redemption, or gift cards.Integration feasibility
Technical risk
created_at/updated_at as -0001-11-30 00:00:00 and redemptions: 0 without stating whether zero means unlimited. Both must be resolved before anything downstream (reporting, finance, throttling) depends on them.Key questions
^v4.4? What is our core upgrade cadence versus this extension's?redemptions: 0 (unlimited vs. none) and of null/-0001 timestamps — and are they surfaced anywhere in admin or API responses?Stack fit
coupons:read / coupons:write abilities let a marketing dashboard or partner tool manage promotions without touching the admin UI, which is what makes self-serve campaign ops viable.Migration path
Compatibility
4.2.x against tastyigniter/core ^v4.4. The v1.11.x line is the older branch — do not mix.Location class binding change (v4.1.3) if we have any local overrides on the coupon model.Sequencing
Coupon::isValid() — the recurring bug locus (delivery-only, customer-restricted, min-quantity). This is the highest-ROI test investment.redemptions: 0, null dates) are confirmed and normalized.Maintenance
Support
Scaling
auto_apply enabled, which evaluates coupons without user action and can multiply validation calls per session.history table (unbounded, grows with order volume). Confirm indexes on order/customer/coupon foreign keys and plan retention or archival before the ledger reaches reporting-scale.Failure modes
Ramp-up
is_limited_to_cart_item / menu-category scoping is used rather than sitewide percentage codes.How can I help you explore Laravel packages today?