Merchant support center and flat editor style
Merchant support center
A support inbox now lives at /manage/support: raise a case, follow it, and get an email when it moves, all without leaving admin or hunting for an address to write to. Support cases are exposed in the store API as well, with their own data layer and notification emails behind them.
Flat editor style across admin forms
Coupon and shipping-method forms have been restyled to the flat editor look, the bundle editor picks up edit-in-place fields, and type selectors are now radio cards you can read at a glance instead of a dropdown you have to open. SEO descriptions prefill from the entity's own description, so one more field arrives already filled in.
Also shipped
- Tax rate can be assigned to a product on create and update through the API
- Per-currency variant prices can be set through the API
Fixes
- [admin]Keep the bundle group grip inline with its name
- [ai]AI assistant suggests fresh templates when you ask again
- [ai]AI assistant no longer reports a successful store creation as failed
- [ai]AI assistant no longer claims a task is done after only looking for the tool
- [ai]AI assistant reports amounts in the store currency consistently
- [api]Improve coupon schema validation
- [api]Keep defaultable support-case fields optional in SDK types
- [api]Revalidate product cache on promotion changes
- [builder]Recover a gone (410) sandbox in /design preflight
- [bundles]Round bundle price once, not per item
- [checkout]Reject carts below Stripe's per-currency minimum
- [discounts]Cap percentage coupons and promotions at 100%
- [discounts]Clamp percentage discounts to item price in money math
- [inventory]Apply stock adjustments atomically
- [media]Block SSRF in remote image ingestion
- [products]Reject a price that rounds to zero cents
- [promotions]Scope collection promotions to members in product grid
- [promotions]Stop product-scoped promotions leaking on product pages
- [refunds]Scope restock update to the authenticated store
- [setup]Merge storeName into settings instead of overwriting
- [setup]Require session on POST, never trust body userId