Cart & checkout
How variants, reservations, shipping, and coupons fit together.
The cart is a drawer that opens from the top-right basket icon. It stays in sync across tabs and survives a refresh — even if you're signed out.
Variants
If a product has variants (size, color, custom option), each variant is its own line item. Adding "Linen shirt, Medium" and "Linen shirt, Large" gives you two distinct lines with their own quantity, price, and stock.
Stock reservations
When you reach the checkout page, NShop reserves the items you're buying for 45 minutes. The product's public stock count drops by your quantity, and a hidden reservation record is created.
- If you complete payment, the reservation is consumed.
- If you walk away or your Stripe session expires (30 minutes), an automatic background job restores the stock — usually within 5 minutes after expiry. The 15-minute buffer means the webhook always finds an active reservation when payment lands.
- If stock has dropped to zero between adding to cart and reaching checkout, you'll see a clear "not enough stock" message before payment.
Shipping
Each store sets flat rates:
- Domestic (in the store's home country)
- EU
- A "free shipping over X" threshold
The same numbers you see in the summary are the numbers Stripe charges and the numbers stored on your order — there's no discrepancy between the summary, the receipt, and the final invoice.
Coupons
Enter a code in the coupon field. The platform validates it server-side: percentage discount, fixed amount off, or free shipping. Constraints like minimum subtotal, expiry, and usage cap are all checked before the discount is applied. Invalid codes return a clear reason.
Mixed-tenant carts
If you somehow add items from two different stores to one cart (rare — each store has its own subdomain), the platform will refuse to check out with a clear "split your cart by store" message. This is because each Stripe payment lands in exactly one shop's account.
Restaurant checkout
On food tenants, checkout does not reserve stock. Instead:
- Dishes and modifier options respect live sold out flags.
- You choose delivery, pickup, or dine-in (when enabled).
- Delivery fees follow the store's restaurant settings.
See Restaurant ordering.