Sakani

Cart

The cart row and the checkout progress track.

Ceramic Pour-Over Mug

Ceramic Pour-Over Mug

Color: Sand

$38.00

Linen Apron

Linen Apron

Size: M

$54.00

Subtotal: $146.00

Totals are yours

CartItem renders one line and reports quantity changes; it never sums anything. Subtotals, tax, shipping and discounts stay in your own state, which is the only place they can be computed consistently with the server.

Sale pricing

Ceramic Pour-Over Mug

Ceramic Pour-Over Mug

$38.00$28.00

Checkout steps

Like Stepper, a single index drives every step's state, so no combination of flags can contradict itself.

Cart
Shipping
Payment
Confirmation
Bag
Delivery
Payment
Done

CartItem props

PropTypeDefaultDescription
image / imageAltstringThumbnail and alt text.
namestringProduct name.
variantstringThe chosen options as one line, e.g. "Color: Sand".
pricenumberUnit price as a raw number.
compareAtPricenumberWas-price; switches to the sale treatment.
quantitynumberControlled quantity.
onQuantityChange(quantity: number) => voidFires with the new quantity.
minQuantity / maxQuantitynumberBounds for the stepper.
onRemove() => voidRemove handler.
removeLabelstringLabel for that control.
formatPrice(amount: number) => stringOverride the default USD formatting.

CheckoutSteps props

PropTypeDefaultDescription
stepsstring[]Step labels. Has a sensible default set if omitted.
currentStepnumber0-indexed. Earlier steps render completed, later ones upcoming.