prevent checkout with unavailable product variants

- Include is_available flag in hydrated cart items
- Show unavailable message on cart items and product page
- Block add-to-cart for unavailable variants
- Redirect back to cart with error if checkout has unavailable items

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-03-13 13:34:22 +00:00
parent 09f55dfe67
commit a6e5db73c0
6 changed files with 49 additions and 10 deletions

View File

@@ -90,7 +90,7 @@ defmodule BerrypodWeb.Shop.Pages.Product do
def handle_event("add_to_cart", _params, socket) do
variant = socket.assigns.selected_variant
if variant do
if variant && variant.is_available do
cart = Cart.add_item(socket.assigns.raw_cart, variant.id, socket.assigns.quantity)
if socket.assigns[:analytics_visitor_hash] do