2026-01-25 15:23:57 +05:30
|
|
|
extends layouts/base.pug
|
|
|
|
|
|
|
|
|
|
block title
|
|
|
|
|
title #{title} | Pugz Store
|
|
|
|
|
|
|
|
|
|
block content
|
|
|
|
|
section.page-header
|
|
|
|
|
.container
|
|
|
|
|
h1 Shopping Cart
|
|
|
|
|
p Review your items before checkout
|
|
|
|
|
|
|
|
|
|
section.section
|
|
|
|
|
.container
|
|
|
|
|
.cart-layout
|
|
|
|
|
.cart-main
|
|
|
|
|
.cart-items
|
2026-01-28 22:31:24 +05:30
|
|
|
//- @TypeOf(cartItems): []{name: []const u8, variant: []const u8, price: f32, quantity: u16, total: f32}
|
2026-01-25 15:23:57 +05:30
|
|
|
each item in cartItems
|
|
|
|
|
.cart-item
|
|
|
|
|
.cart-item-info
|
2026-01-28 22:31:24 +05:30
|
|
|
h3 #{item.name}
|
|
|
|
|
p.text-muted #{item.variant}
|
|
|
|
|
span.cart-item-price $#{item.price}
|
2026-01-25 15:23:57 +05:30
|
|
|
.cart-item-qty
|
|
|
|
|
button.qty-btn -
|
2026-01-28 22:31:24 +05:30
|
|
|
input.qty-input(type="text" value=item.quantity)
|
2026-01-25 15:23:57 +05:30
|
|
|
button.qty-btn +
|
2026-01-28 22:31:24 +05:30
|
|
|
.cart-item-total $#{item.total}
|
2026-01-25 15:23:57 +05:30
|
|
|
button.cart-item-remove x
|
|
|
|
|
|
|
|
|
|
.cart-actions
|
|
|
|
|
a.btn.btn-outline(href="/products") Continue Shopping
|
|
|
|
|
|
|
|
|
|
.cart-summary
|
|
|
|
|
h3 Order Summary
|
|
|
|
|
.summary-row
|
|
|
|
|
span Subtotal
|
2026-01-28 22:31:24 +05:30
|
|
|
//- @TypeOf(subtotal): f32
|
2026-01-25 15:23:57 +05:30
|
|
|
span $#{subtotal}
|
|
|
|
|
.summary-row
|
|
|
|
|
span Shipping
|
|
|
|
|
span.text-success Free
|
|
|
|
|
.summary-row
|
|
|
|
|
span Tax
|
2026-01-28 22:31:24 +05:30
|
|
|
//- @TypeOf(tax): f32
|
2026-01-25 15:23:57 +05:30
|
|
|
span $#{tax}
|
|
|
|
|
.summary-row.summary-total
|
|
|
|
|
span Total
|
2026-01-28 22:31:24 +05:30
|
|
|
//- @TypeOf(total): f32
|
2026-01-25 15:23:57 +05:30
|
|
|
span $#{total}
|
|
|
|
|
a.btn.btn-primary.btn-block(href="/checkout") Proceed to Checkout
|