Vouchers changelog
All notable changes to slova/module-vouchers. Versions follow Semantic Versioning.
1.1.0 — 2026-11-05
Section titled “1.1.0 — 2026-11-05”- Voucher picker in the Hyvä cart. Under Apply Discount Code: a “Vouchers and offers” row (which voucher is chosen, or how many can be used with the cart) that opens a “Choose your voucher” dialog with the customer’s vouchers and the current offers, each with a “can be applied to this cart” verdict and the reason when it cannot. Apply uses the cart’s own coupon form; an offer not saved yet is saved to the account on the same click. The dialog stays open after applying, so the customer can change their mind, Remove the voucher or press Done. Rendered with the page (no layout shift). Setting: Display > Voucher Picker in the Cart (on by default; turn off for carts that have their own).
- Guests see “Have vouchers? Sign in to see them.” in the cart, back to the cart after signing in.
- A cancelled order now gives its voucher back exactly where Magento gives the coupon usage back (after
OrderService::cancel(), as the admin and the expired-orders cron cancel). Before, the voucher was released on any cancellation, also when code cancelled the order model directly and Magento kept the usage: the voucher then showed as usable while Magento rejected its code.
Changed
Section titled “Changed”- The account page’s copy button and the picker are Hyvä CSP compatible (registered Alpine components, no inline expressions).
- “Save voucher” returns to the page the customer came from, and the account menu link is marked current on the vouchers page whatever URL it points to, so the page can live under a store’s own URL.
1.0.0 — 2026-11-05
Section titled “1.0.0 — 2026-11-05”First release as a standalone package.
Campaigns
Section titled “Campaigns”- A campaign is the customer-facing side of a cart price rule with a Specific Coupon: title, bullet points, a “See products” link and a sort order; the discount, minimum, categories, dates and customer groups stay with the rule.
- Unique code per customer: generated on the rule (“Use Auto Generation”), single use, tied to the customer’s account, with its own expiry (days from issue, never past the rule’s end).
- Shared code: the rule’s fixed code, handed out through the account.
- Public campaigns customers save themselves; personal campaigns you assign (e-mails, customer groups, from the customer page), with an optional own expiry and an internal note.
- Warnings when saving a campaign whose rule takes the amount off every item (“Fixed amount discount”) or tests “Subtotal” without tax.
Customer account
Section titled “Customer account”- “My Vouchers” page: the customer’s vouchers (active, scheduled, used with the order, expired) with a copy button, and the current public offers with “Save voucher”.
- Colours from the theme (or an accent setting), texts editable per store view, no Tailwind build.
Cart and orders
Section titled “Cart and orders”- A unique code works only for its owner and only until it expires; anyone else gets the cart’s usual “invalid code” message.
- Marked as used when the order is placed; released when the order is cancelled.
- For custom carts:
Slova\Vouchers\ViewModel\CartVouchers(the cart’s voucher list with a “can be applied” verdict, rendered into the page) andvouchers/cart/vouchers/cart/claim(refresh, and issuing an offer from the cart).
- Marketing > Vouchers: campaigns, issued vouchers (assign, revoke), settings; a Vouchers tab on the customer page.
- English and Romanian included.