diff --git a/static/components/shopping-cart-checkout/shopping-cart-checkout.html b/static/components/shopping-cart-checkout/shopping-cart-checkout.html
index cfebfdc..4b438fb 100644
--- a/static/components/shopping-cart-checkout/shopping-cart-checkout.html
+++ b/static/components/shopping-cart-checkout/shopping-cart-checkout.html
@@ -32,11 +32,10 @@
Subtotal:
-
+ {{formatCurrency(cartTotal, stall.currency)}}
- {{formatCurrency(cartTotal,
- cart.products[0]?.currency)}}
+
@@ -44,11 +43,21 @@
Shipping:
-
+ {{formatCurrency(shippingZone.cost, stall.currency)}}
- 00.00
+
+
+
+
+
+
+
+
+
@@ -56,51 +65,12 @@
Total:
-
+ {{formatCurrency(cartTotalWithShipping, stall.currency)}}
- 00.00
+
-
-
diff --git a/static/components/shopping-cart-checkout/shopping-cart-checkout.js b/static/components/shopping-cart-checkout/shopping-cart-checkout.js
index 8a52b9a..78f14a0 100644
--- a/static/components/shopping-cart-checkout/shopping-cart-checkout.js
+++ b/static/components/shopping-cart-checkout/shopping-cart-checkout.js
@@ -5,10 +5,11 @@ async function shoppingCartCheckout(path) {
name: 'shopping-cart-checkout',
template,
- props: ['cart'],
+ props: ['cart', 'stall'],
data: function () {
return {
paymentMethod: 'ln',
+ shippingZone: null,
paymentOptions: [
{
label: 'Lightning Network',
@@ -30,17 +31,37 @@ async function shoppingCartCheckout(path) {
if (!this.cart.products?.length) return 0
return this.cart.products.reduce((t, p) => p.price + t, 0)
},
+ cartTotalWithShipping() {
+ if (!this.shippingZone) return this.cartTotal
+ return this.cartTotal + this.shippingZone.cost
+ },
+ shippingZoneLabel() {
+ if (!this.shippingZone) {
+ return 'Shipping Zone'
+ }
+ const zoneName = this.shippingZone.name.substring(0, 10)
+ if (this.shippingZone?.name.length < 10) {
+ return zoneName
+ }
+ return zoneName + '...'
+ }
},
methods: {
formatCurrency: function (value, unit) {
return formatCurrency(value, unit)
},
+ selectShippingZone: function (zone) {
+ this.shippingZone = zone
+ },
requestInvoice: function () {
}
},
created() {
- console.log('### shoppingCartCheckout', this.cart)
+ console.log('### shoppingCartCheckout', this.stall)
+ if (this.stall.shipping?.length === 1) {
+ this.shippingZone = this.stall.shipping[0]
+ }
}
})
}
diff --git a/static/js/market.js b/static/js/market.js
index da0a2e8..c474fce 100644
--- a/static/js/market.js
+++ b/static/js/market.js
@@ -53,7 +53,8 @@ const market = async () => {
merchants: [],
shoppingCarts: [],
- shoppingCartCheckout: null,
+ checkoutCart: null,
+ checkoutStall: null,
activePage: 'market',
@@ -611,8 +612,9 @@ const market = async () => {
this.$q.localStorage.set('nostrmarket.shoppingCarts', this.shoppingCarts)
},
- checkoutCart(cart) {
- this.shoppingCartCheckout = cart
+ checkoutStallCart(cart) {
+ this.checkoutCart = cart
+ this.checkoutStall = this.stalls.find(s => s.id === cart.id)
this.setActivePage('shopping-cart-checkout')
}
diff --git a/templates/nostrmarket/market.html b/templates/nostrmarket/market.html
index d188193..347d75d 100644
--- a/templates/nostrmarket/market.html
+++ b/templates/nostrmarket/market.html
@@ -212,9 +212,9 @@
@remove-merchant="removeMerchant">
+ @checkout-cart="checkoutStallCart">
+ :cart="checkoutCart" :stall="checkoutStall">