@hanzo/commerce 7.3.10 → 7.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +5 -0
- package/LICENSE.md +21 -0
- package/billing.ts +2 -0
- package/client.ts +325 -0
- package/components/cart/cart-panel/promo-code.tsx +1 -1
- package/components/checkout/payment-step-form/index.tsx +2 -2
- package/components/checkout/shipping-step-form.tsx +1 -1
- package/dist/billing.d.ts +2 -0
- package/dist/billing.js +3 -0
- package/dist/billing.js.map +1 -0
- package/dist/client.d.ts +151 -0
- package/dist/client.js +188 -0
- package/dist/client.js.map +1 -0
- package/dist/components/Icons.d.ts +18 -0
- package/dist/components/Icons.js +19 -0
- package/dist/components/Icons.js.map +1 -0
- package/dist/components/Icons.jsx +19 -0
- package/dist/components/Icons.jsx.map +1 -0
- package/dist/components/add-to-cart-widget.d.ts +11 -0
- package/dist/components/add-to-cart-widget.js +85 -0
- package/dist/components/add-to-cart-widget.js.map +1 -0
- package/dist/components/add-to-cart-widget.jsx +99 -0
- package/dist/components/add-to-cart-widget.jsx.map +1 -0
- package/dist/components/buy/buy-card.d.ts +30 -0
- package/dist/components/buy/buy-card.js +109 -0
- package/dist/components/buy/buy-card.js.map +1 -0
- package/dist/components/buy/buy-card.jsx +123 -0
- package/dist/components/buy/buy-card.jsx.map +1 -0
- package/dist/components/buy/carousel-buy-card.d.ts +12 -0
- package/dist/components/buy/carousel-buy-card.js +94 -0
- package/dist/components/buy/carousel-buy-card.js.map +1 -0
- package/dist/components/buy/carousel-buy-card.jsx +99 -0
- package/dist/components/buy/carousel-buy-card.jsx.map +1 -0
- package/dist/components/buy/multi-family/all-variants-carousel.d.ts +4 -0
- package/dist/components/buy/multi-family/all-variants-carousel.js +115 -0
- package/dist/components/buy/multi-family/all-variants-carousel.js.map +1 -0
- package/dist/components/buy/multi-family/all-variants-carousel.jsx +147 -0
- package/dist/components/buy/multi-family/all-variants-carousel.jsx.map +1 -0
- package/dist/components/buy/multi-family/family-carousel/index.d.ts +4 -0
- package/dist/components/buy/multi-family/family-carousel/index.js +27 -0
- package/dist/components/buy/multi-family/family-carousel/index.js.map +1 -0
- package/dist/components/buy/multi-family/family-carousel/index.jsx +34 -0
- package/dist/components/buy/multi-family/family-carousel/index.jsx.map +1 -0
- package/dist/components/buy/multi-family/family-carousel/slide.d.ts +11 -0
- package/dist/components/buy/multi-family/family-carousel/slide.js +35 -0
- package/dist/components/buy/multi-family/family-carousel/slide.js.map +1 -0
- package/dist/components/buy/multi-family/family-carousel/slide.jsx +41 -0
- package/dist/components/buy/multi-family/family-carousel/slide.jsx.map +1 -0
- package/dist/components/buy/multi-family/family-carousel/state.d.ts +20 -0
- package/dist/components/buy/multi-family/family-carousel/state.js +59 -0
- package/dist/components/buy/multi-family/family-carousel/state.js.map +1 -0
- package/dist/components/buy/multi-family/index.d.ts +2 -0
- package/dist/components/buy/multi-family/index.js +3 -0
- package/dist/components/buy/multi-family/index.js.map +1 -0
- package/dist/components/buy/single-family-selector.d.ts +15 -0
- package/dist/components/buy/single-family-selector.js +28 -0
- package/dist/components/buy/single-family-selector.js.map +1 -0
- package/dist/components/buy/single-family-selector.jsx +31 -0
- package/dist/components/buy/single-family-selector.jsx.map +1 -0
- package/dist/components/buy/title-and-byline.d.ts +8 -0
- package/dist/components/buy/title-and-byline.js +7 -0
- package/dist/components/buy/title-and-byline.js.map +1 -0
- package/dist/components/buy/title-and-byline.jsx +9 -0
- package/dist/components/buy/title-and-byline.jsx.map +1 -0
- package/dist/components/cart/cart-panel/cart-line-item.d.ts +11 -0
- package/dist/components/cart/cart-panel/cart-line-item.js +25 -0
- package/dist/components/cart/cart-panel/cart-line-item.js.map +1 -0
- package/dist/components/cart/cart-panel/cart-line-item.jsx +39 -0
- package/dist/components/cart/cart-panel/cart-line-item.jsx.map +1 -0
- package/dist/components/cart/cart-panel/index.d.ts +19 -0
- package/dist/components/cart/cart-panel/index.js +65 -0
- package/dist/components/cart/cart-panel/index.js.map +1 -0
- package/dist/components/cart/cart-panel/index.jsx +79 -0
- package/dist/components/cart/cart-panel/index.jsx.map +1 -0
- package/dist/components/cart/cart-panel/promo-code.d.ts +4 -0
- package/dist/components/cart/cart-panel/promo-code.js +62 -0
- package/dist/components/cart/cart-panel/promo-code.js.map +1 -0
- package/dist/components/cart/cart-panel/promo-code.jsx +74 -0
- package/dist/components/cart/cart-panel/promo-code.jsx.map +1 -0
- package/dist/components/cart/cart-panel/total-area.d.ts +7 -0
- package/dist/components/cart/cart-panel/total-area.js +14 -0
- package/dist/components/cart/cart-panel/total-area.js.map +1 -0
- package/dist/components/cart/cart-panel/total-area.jsx +37 -0
- package/dist/components/cart/cart-panel/total-area.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icon-row.d.ts +2 -0
- package/dist/components/checkout/payment-step-form/card-icon-row.js +14 -0
- package/dist/components/checkout/payment-step-form/card-icon-row.js.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icon-row.jsx +22 -0
- package/dist/components/checkout/payment-step-form/card-icon-row.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/amex.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/card-icons/amex.js +6 -0
- package/dist/components/checkout/payment-step-form/card-icons/amex.js.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/amex.jsx +12 -0
- package/dist/components/checkout/payment-step-form/card-icons/amex.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/diners-club.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/card-icons/diners-club.js +6 -0
- package/dist/components/checkout/payment-step-form/card-icons/diners-club.js.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/diners-club.jsx +10 -0
- package/dist/components/checkout/payment-step-form/card-icons/diners-club.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/discover.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/card-icons/discover.js +6 -0
- package/dist/components/checkout/payment-step-form/card-icons/discover.js.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/discover.jsx +12 -0
- package/dist/components/checkout/payment-step-form/card-icons/discover.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/jcb.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/card-icons/jcb.js +6 -0
- package/dist/components/checkout/payment-step-form/card-icons/jcb.js.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/jcb.jsx +23 -0
- package/dist/components/checkout/payment-step-form/card-icons/jcb.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/mastercard.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/card-icons/mastercard.js +6 -0
- package/dist/components/checkout/payment-step-form/card-icons/mastercard.js.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/mastercard.jsx +12 -0
- package/dist/components/checkout/payment-step-form/card-icons/mastercard.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/visa.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/card-icons/visa.js +6 -0
- package/dist/components/checkout/payment-step-form/card-icons/visa.js.map +1 -0
- package/dist/components/checkout/payment-step-form/card-icons/visa.jsx +10 -0
- package/dist/components/checkout/payment-step-form/card-icons/visa.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/cc-button.d.ts +3 -0
- package/dist/components/checkout/payment-step-form/cc-button.js +6 -0
- package/dist/components/checkout/payment-step-form/cc-button.js.map +1 -0
- package/dist/components/checkout/payment-step-form/cc-button.jsx +9 -0
- package/dist/components/checkout/payment-step-form/cc-button.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/contact-form.d.ts +5 -0
- package/dist/components/checkout/payment-step-form/contact-form.js +6 -0
- package/dist/components/checkout/payment-step-form/contact-form.js.map +1 -0
- package/dist/components/checkout/payment-step-form/contact-form.jsx +21 -0
- package/dist/components/checkout/payment-step-form/contact-form.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/btc.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/btc.js +6 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/btc.js.map +1 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/btc.jsx +8 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/btc.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/eth.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/eth.js +6 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/eth.js.map +1 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/eth.jsx +17 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/eth.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/usdt.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/usdt.js +6 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/usdt.js.map +1 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/usdt.jsx +10 -0
- package/dist/components/checkout/payment-step-form/crypto-icons/usdt.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/index.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/index.js +77 -0
- package/dist/components/checkout/payment-step-form/index.js.map +1 -0
- package/dist/components/checkout/payment-step-form/index.jsx +86 -0
- package/dist/components/checkout/payment-step-form/index.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/methods/bank-transfer.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/methods/bank-transfer.js +24 -0
- package/dist/components/checkout/payment-step-form/methods/bank-transfer.js.map +1 -0
- package/dist/components/checkout/payment-step-form/methods/bank-transfer.jsx +44 -0
- package/dist/components/checkout/payment-step-form/methods/bank-transfer.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/methods/card.d.ts +4 -0
- package/dist/components/checkout/payment-step-form/methods/card.js +160 -0
- package/dist/components/checkout/payment-step-form/methods/card.js.map +1 -0
- package/dist/components/checkout/payment-step-form/methods/card.jsx +182 -0
- package/dist/components/checkout/payment-step-form/methods/card.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/methods/crypto.d.ts +9 -0
- package/dist/components/checkout/payment-step-form/methods/crypto.js +137 -0
- package/dist/components/checkout/payment-step-form/methods/crypto.js.map +1 -0
- package/dist/components/checkout/payment-step-form/methods/crypto.jsx +167 -0
- package/dist/components/checkout/payment-step-form/methods/crypto.jsx.map +1 -0
- package/dist/components/checkout/payment-step-form/methods/index.d.ts +6 -0
- package/dist/components/checkout/payment-step-form/methods/index.js +21 -0
- package/dist/components/checkout/payment-step-form/methods/index.js.map +1 -0
- package/dist/components/checkout/shipping-step-form.d.ts +3 -0
- package/dist/components/checkout/shipping-step-form.js +53 -0
- package/dist/components/checkout/shipping-step-form.js.map +1 -0
- package/dist/components/checkout/shipping-step-form.jsx +106 -0
- package/dist/components/checkout/shipping-step-form.jsx.map +1 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.js +9 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/item/product-card.d.ts +7 -0
- package/dist/components/item/product-card.js +9 -0
- package/dist/components/item/product-card.js.map +1 -0
- package/dist/components/item/product-card.jsx +21 -0
- package/dist/components/item/product-card.jsx.map +1 -0
- package/dist/components/item-selector/button.d.ts +4 -0
- package/dist/components/item-selector/button.js +47 -0
- package/dist/components/item-selector/button.js.map +1 -0
- package/dist/components/item-selector/button.jsx +65 -0
- package/dist/components/item-selector/button.jsx.map +1 -0
- package/dist/components/item-selector/carousel/index.d.ts +12 -0
- package/dist/components/item-selector/carousel/index.js +74 -0
- package/dist/components/item-selector/carousel/index.js.map +1 -0
- package/dist/components/item-selector/carousel/index.jsx +101 -0
- package/dist/components/item-selector/carousel/index.jsx.map +1 -0
- package/dist/components/item-selector/carousel/slider.d.ts +8 -0
- package/dist/components/item-selector/carousel/slider.js +12 -0
- package/dist/components/item-selector/carousel/slider.js.map +1 -0
- package/dist/components/item-selector/carousel/slider.jsx +11 -0
- package/dist/components/item-selector/carousel/slider.jsx.map +1 -0
- package/dist/components/item-selector/index.d.ts +2 -0
- package/dist/components/item-selector/index.js +3 -0
- package/dist/components/item-selector/index.js.map +1 -0
- package/dist/components/item-selector/quantity-indicator.d.ts +9 -0
- package/dist/components/item-selector/quantity-indicator.js +16 -0
- package/dist/components/item-selector/quantity-indicator.js.map +1 -0
- package/dist/components/item-selector/quantity-indicator.jsx +23 -0
- package/dist/components/item-selector/quantity-indicator.jsx.map +1 -0
- package/dist/components/node-tabs/index.d.ts +14 -0
- package/dist/components/node-tabs/index.js +42 -0
- package/dist/components/node-tabs/index.js.map +1 -0
- package/dist/components/node-tabs/index.jsx +48 -0
- package/dist/components/node-tabs/index.jsx.map +1 -0
- package/dist/components/node-tabs/node-image.d.ts +6 -0
- package/dist/components/node-tabs/node-image.js +13 -0
- package/dist/components/node-tabs/node-image.js.map +1 -0
- package/dist/components/node-tabs/node-image.jsx +12 -0
- package/dist/components/node-tabs/node-image.jsx.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/service/context.d.ts +8 -0
- package/dist/service/context.js +19 -0
- package/dist/service/context.js.map +1 -0
- package/dist/service/context.jsx +20 -0
- package/dist/service/context.jsx.map +1 -0
- package/dist/service/debug.d.ts +10 -0
- package/dist/service/debug.js +30 -0
- package/dist/service/debug.js.map +1 -0
- package/dist/service/impls/standalone/actual-line-item.d.ts +40 -0
- package/dist/service/impls/standalone/actual-line-item.js +84 -0
- package/dist/service/impls/standalone/actual-line-item.js.map +1 -0
- package/dist/service/impls/standalone/get-instance.d.ts +2 -0
- package/dist/service/impls/standalone/get-instance.js +39 -0
- package/dist/service/impls/standalone/get-instance.js.map +1 -0
- package/dist/service/impls/standalone/index.d.ts +67 -0
- package/dist/service/impls/standalone/index.js +416 -0
- package/dist/service/impls/standalone/index.js.map +1 -0
- package/dist/service/impls/standalone/order/firebase.d.ts +6 -0
- package/dist/service/impls/standalone/order/firebase.js +6 -0
- package/dist/service/impls/standalone/order/firebase.js.map +1 -0
- package/dist/service/impls/standalone/order/index.d.ts +30 -0
- package/dist/service/impls/standalone/order/index.js +21 -0
- package/dist/service/impls/standalone/order/index.js.map +1 -0
- package/dist/service/impls/standalone/persistence.d.ts +4 -0
- package/dist/service/impls/standalone/persistence.js +22 -0
- package/dist/service/impls/standalone/persistence.js.map +1 -0
- package/dist/service/path-utils.d.ts +7 -0
- package/dist/service/path-utils.js +16 -0
- package/dist/service/path-utils.js.map +1 -0
- package/dist/service/sep.d.ts +6 -0
- package/dist/service/sep.js +6 -0
- package/dist/service/sep.js.map +1 -0
- package/dist/types/category-node.d.ts +36 -0
- package/dist/types/category-node.js +2 -0
- package/dist/types/category-node.js.map +1 -0
- package/dist/types/checkout.d.ts +33 -0
- package/dist/types/checkout.js +2 -0
- package/dist/types/checkout.js.map +1 -0
- package/dist/types/commerce-config.d.ts +11 -0
- package/dist/types/commerce-config.js +2 -0
- package/dist/types/commerce-config.js.map +1 -0
- package/dist/types/commerce-service.d.ts +109 -0
- package/dist/types/commerce-service.js +2 -0
- package/dist/types/commerce-service.js.map +1 -0
- package/dist/types/family.d.ts +16 -0
- package/dist/types/family.js +2 -0
- package/dist/types/family.js.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/item-selector.d.ts +72 -0
- package/dist/types/item-selector.js +2 -0
- package/dist/types/item-selector.js.map +1 -0
- package/dist/types/line-item.d.ts +14 -0
- package/dist/types/line-item.js +2 -0
- package/dist/types/line-item.js.map +1 -0
- package/dist/types/multi-family-selector-props.d.ts +16 -0
- package/dist/types/multi-family-selector-props.js +2 -0
- package/dist/types/multi-family-selector-props.js.map +1 -0
- package/dist/types/product.d.ts +15 -0
- package/dist/types/product.js +2 -0
- package/dist/types/product.js.map +1 -0
- package/dist/types/promo.d.ts +7 -0
- package/dist/types/promo.js +2 -0
- package/dist/types/promo.js.map +1 -0
- package/dist/types/selection-ui-specifier.d.ts +40 -0
- package/dist/types/selection-ui-specifier.js +2 -0
- package/dist/types/selection-ui-specifier.js.map +1 -0
- package/dist/types/string-mutator.d.ts +9 -0
- package/dist/types/string-mutator.js +2 -0
- package/dist/types/string-mutator.js.map +1 -0
- package/dist/types/token-separators.d.ts +6 -0
- package/dist/types/token-separators.js +2 -0
- package/dist/types/token-separators.js.map +1 -0
- package/dist/util/analytics.d.ts +9 -0
- package/dist/util/analytics.js +10 -0
- package/dist/util/analytics.js.map +1 -0
- package/dist/util/countries.d.ts +7 -0
- package/dist/util/countries.js +197 -0
- package/dist/util/countries.js.map +1 -0
- package/dist/util/error.d.ts +1 -0
- package/dist/util/error.js +22 -0
- package/dist/util/error.js.map +1 -0
- package/dist/util/index.d.ts +15 -0
- package/dist/util/index.js +54 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/item-selector-options-accessor.d.ts +3 -0
- package/dist/util/item-selector-options-accessor.js +27 -0
- package/dist/util/item-selector-options-accessor.js.map +1 -0
- package/dist/util/line-item-ref.d.ts +8 -0
- package/dist/util/line-item-ref.js +15 -0
- package/dist/util/line-item-ref.js.map +1 -0
- package/dist/util/multi-family-selector-options-accessor.d.ts +3 -0
- package/dist/util/multi-family-selector-options-accessor.js +11 -0
- package/dist/util/multi-family-selector-options-accessor.js.map +1 -0
- package/dist/util/obs-string-mutator.d.ts +8 -0
- package/dist/util/obs-string-mutator.js +15 -0
- package/dist/util/obs-string-mutator.js.map +1 -0
- package/dist/util/product-media-accessor.d.ts +29 -0
- package/dist/util/product-media-accessor.js +22 -0
- package/dist/util/product-media-accessor.js.map +1 -0
- package/dist/util/promo-codes.d.ts +3 -0
- package/dist/util/promo-codes.js +100 -0
- package/dist/util/promo-codes.js.map +1 -0
- package/dist/util/selection-ui-specifiers.d.ts +3 -0
- package/dist/util/selection-ui-specifiers.js +24 -0
- package/dist/util/selection-ui-specifiers.js.map +1 -0
- package/dist/util/square-payment.d.ts +7 -0
- package/dist/util/square-payment.js +37 -0
- package/dist/util/square-payment.js.map +1 -0
- package/dist/util/use-sync-sku-param-w-current-item.d.ts +2 -0
- package/dist/util/use-sync-sku-param-w-current-item.js +61 -0
- package/dist/util/use-sync-sku-param-w-current-item.js.map +1 -0
- package/index.ts +9 -5
- package/package.json +13 -12
- package/service/impls/standalone/order/firebase.ts +5 -14
- package/service/impls/standalone/order/index.ts +16 -87
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
const referallCodeDiscountedSkus = [
|
|
2
|
+
'LXM-CR-B-ABT', 'LXM-CR-B-GM', 'LXM-CR-F-CC', 'LXM-CR-F-IC', 'LXM-CR-E-24G', 'LXM-CR-E-SS', 'LXM-CR-S-RT', // credit cards
|
|
3
|
+
'LXM-VL-GN', 'LXM-VL-VL', 'LXM-VL-MI', 'LXM-VL-NA', // validators
|
|
4
|
+
'LXM-PS-PS', // pass
|
|
5
|
+
'LXM-AG-B-1_OZ', // silver
|
|
6
|
+
];
|
|
7
|
+
const PROMO_CODES = [
|
|
8
|
+
{
|
|
9
|
+
type: 'percent',
|
|
10
|
+
code: 'ANGEL',
|
|
11
|
+
value: 22
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
type: 'percent',
|
|
15
|
+
code: 'NASSER',
|
|
16
|
+
value: 11.11
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
type: 'percent',
|
|
20
|
+
code: 'ROSEY',
|
|
21
|
+
value: 20
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
type: 'percent',
|
|
25
|
+
code: 'IYKYK',
|
|
26
|
+
value: 11.1
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
type: 'percent',
|
|
30
|
+
code: 'GENESIS',
|
|
31
|
+
value: 99,
|
|
32
|
+
skus: ['LXM-PS-PS']
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
type: 'percent',
|
|
36
|
+
code: 'ANTJE',
|
|
37
|
+
value: 33.3,
|
|
38
|
+
skus: referallCodeDiscountedSkus
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: 'percent',
|
|
42
|
+
code: 'ASHLEY',
|
|
43
|
+
value: 33.3,
|
|
44
|
+
skus: referallCodeDiscountedSkus
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
type: 'percent',
|
|
48
|
+
code: 'CALE',
|
|
49
|
+
value: 33.3,
|
|
50
|
+
skus: referallCodeDiscountedSkus
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: 'percent',
|
|
54
|
+
code: 'DARA',
|
|
55
|
+
value: 33.3,
|
|
56
|
+
skus: referallCodeDiscountedSkus
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: 'percent',
|
|
60
|
+
code: 'KENJI',
|
|
61
|
+
value: 33.3,
|
|
62
|
+
skus: referallCodeDiscountedSkus
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
type: 'percent',
|
|
66
|
+
code: 'MAJOR',
|
|
67
|
+
value: 33.3,
|
|
68
|
+
skus: referallCodeDiscountedSkus
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'percent',
|
|
72
|
+
code: 'CYRUS',
|
|
73
|
+
value: 33.3,
|
|
74
|
+
skus: referallCodeDiscountedSkus
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
type: 'percent',
|
|
78
|
+
code: 'STOBIE',
|
|
79
|
+
value: 33.3,
|
|
80
|
+
skus: referallCodeDiscountedSkus
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
type: 'percent',
|
|
84
|
+
code: 'SKYLER',
|
|
85
|
+
value: 33.3,
|
|
86
|
+
skus: referallCodeDiscountedSkus
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'percent',
|
|
90
|
+
code: 'ZEEKAY',
|
|
91
|
+
value: 33.3,
|
|
92
|
+
skus: referallCodeDiscountedSkus
|
|
93
|
+
}
|
|
94
|
+
];
|
|
95
|
+
// TODO: implement a real API call
|
|
96
|
+
const getPromoFromApi = async (code) => {
|
|
97
|
+
return PROMO_CODES.find(promo => promo.code === code);
|
|
98
|
+
};
|
|
99
|
+
export { getPromoFromApi as default };
|
|
100
|
+
//# sourceMappingURL=promo-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promo-codes.js","sourceRoot":"","sources":["../../util/promo-codes.ts"],"names":[],"mappings":"AAEA,MAAM,0BAA0B,GAAG;IACjC,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe;IAC1H,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa;IACjE,WAAW,EAAG,OAAO;IACrB,eAAe,EAAE,SAAS;CAC3B,CAAA;AAED,MAAM,WAAW,GAAY;IAC3B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,EAAE;KACV;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,KAAK;KACb;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,EAAE;KACV;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,IAAI;KACZ;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,CAAC,WAAW,CAAC;KACpB;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,0BAA0B;KACjC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,0BAA0B;KACjC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,0BAA0B;KACjC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,0BAA0B;KACjC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,0BAA0B;KACjC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,0BAA0B;KACjC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,0BAA0B;KACjC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,0BAA0B;KACjC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,0BAA0B;KACjC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,0BAA0B;KACjC;CACF,CAAA;AAED,kCAAkC;AAClC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IAC7C,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACvD,CAAC,CAAA;AAED,OAAO,EACL,eAAe,IAAI,OAAO,EAC3B,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import sep from '../service/sep';
|
|
2
|
+
const DEFAULT = {
|
|
3
|
+
multiFamily: {
|
|
4
|
+
type: 'all-variants-carousel'
|
|
5
|
+
},
|
|
6
|
+
singleFamily: { type: 'carousel' }
|
|
7
|
+
};
|
|
8
|
+
const map = new Map();
|
|
9
|
+
// key: first two tokens of path
|
|
10
|
+
export const initSelectionUI = (v) => {
|
|
11
|
+
// Might have multiple calls client and server side
|
|
12
|
+
if (map.size > 0) {
|
|
13
|
+
map.clear();
|
|
14
|
+
}
|
|
15
|
+
for (let [key, value] of Object.entries(v)) {
|
|
16
|
+
map.set(key, value);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
export const getSelectionUISpecifier = (skuPath) => {
|
|
20
|
+
const key = skuPath.split(sep.tok).slice(0, 2).join(sep.tok);
|
|
21
|
+
const result = map.get(key);
|
|
22
|
+
return result ?? DEFAULT;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=selection-ui-specifiers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-ui-specifiers.js","sourceRoot":"","sources":["../../util/selection-ui-specifiers.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,gBAAgB,CAAA;AAEhC,MAAM,OAAO,GAAG;IACd,WAAW,EAAE;QACX,IAAI,EAAE,uBAAuB;KAC9B;IACD,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;CACJ,CAAA;AAEhC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgC,CAAA;AAEjD,gCAAgC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAuC,EAAE,EAAE;IAEvE,mDAAmD;IACrD,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,EAAE,CAAA;IACb,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACrB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAe,EAAwB,EAAE;IAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,OAAO,MAAM,IAAI,OAAO,CAAA;AAC1B,CAAC,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Payment processing - requires API endpoint
|
|
2
|
+
// For static builds, this will call an external payment API
|
|
3
|
+
BigInt.prototype.toJSON = function () { return this.toString(); };
|
|
4
|
+
const processPayment = async (sourceId, amount, verificationToken) => {
|
|
5
|
+
// For static builds, payments should be processed via an API endpoint
|
|
6
|
+
// Check if we're in a browser environment
|
|
7
|
+
if (typeof window !== 'undefined') {
|
|
8
|
+
// Client-side: call the payment API
|
|
9
|
+
try {
|
|
10
|
+
const response = await fetch('/api/payment', {
|
|
11
|
+
method: 'POST',
|
|
12
|
+
headers: {
|
|
13
|
+
'Content-Type': 'application/json',
|
|
14
|
+
},
|
|
15
|
+
body: JSON.stringify({
|
|
16
|
+
sourceId,
|
|
17
|
+
amount,
|
|
18
|
+
verificationToken
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
if (!response.ok) {
|
|
22
|
+
console.error('Payment API error:', response.statusText);
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return await response.json();
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
console.error('Error processing payment:', error);
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Server-side (for SSR builds only, not static export)
|
|
33
|
+
console.warn('Server-side payment processing not available in static export');
|
|
34
|
+
return null;
|
|
35
|
+
};
|
|
36
|
+
export { processPayment as default };
|
|
37
|
+
//# sourceMappingURL=square-payment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"square-payment.js","sourceRoot":"","sources":["../../util/square-payment.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,4DAA4D;AAS5D,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,cAAa,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;AAEhE,MAAM,cAAc,GAAG,KAAK,EAAE,QAAgB,EAAE,MAAc,EAAE,iBAAyB,EAAE,EAAE;IAC3F,sEAAsE;IACtE,0CAA0C;IAC1C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,oCAAoC;QACpC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE;gBAC3C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,QAAQ;oBACR,MAAM;oBACN,iBAAiB;iBAClB,CAAC;aACH,CAAC,CAAA;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;gBACxD,OAAO,IAAI,CAAA;YACb,CAAC;YAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;YACjD,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC7E,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,OAAO,EACL,cAAc,IAAI,OAAO,EAC1B,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import { reaction } from 'mobx';
|
|
4
|
+
import { useQueryState, parseAsString, parseAsBoolean, } from 'next-usequerystate';
|
|
5
|
+
import { useCommerce } from '../service/context';
|
|
6
|
+
import sep from '../service/sep';
|
|
7
|
+
const PLEASE_SELECT_FACETS = 'Please select an option from each group.';
|
|
8
|
+
const useSyncSkuParamWithCurrentItem = (familyLevel, setMessage, setLoading) => {
|
|
9
|
+
const cmmc = useCommerce();
|
|
10
|
+
const [skuParam, setSkuParam] = useQueryState('sku', parseAsString.withDefault('').withOptions({ clearOnDefault: true }));
|
|
11
|
+
const [addParam, setAddParam] = useQueryState('add', parseAsBoolean.withDefault(false).withOptions({ clearOnDefault: true }));
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
return reaction(() => ({
|
|
14
|
+
specifiedCat: cmmc.selectedFamilies.length === 1 ? cmmc.selectedFamilies[0] : undefined,
|
|
15
|
+
currentItem: cmmc.currentItem
|
|
16
|
+
}), ({ specifiedCat, currentItem }) => {
|
|
17
|
+
//console.log("REACTION: " + `CAT ID: ${family?.id} SKU: ${item?.sku}`)
|
|
18
|
+
if (currentItem) {
|
|
19
|
+
// if we set the currentItem w sku, then user selects other facets
|
|
20
|
+
if (specifiedCat && currentItem.familyId != specifiedCat.id) {
|
|
21
|
+
cmmc.setCurrentItem(specifiedCat.products[0].sku);
|
|
22
|
+
}
|
|
23
|
+
setSkuParam(cmmc.currentItem.sku);
|
|
24
|
+
}
|
|
25
|
+
else if (specifiedCat) {
|
|
26
|
+
cmmc.setCurrentItem(specifiedCat.products[0].sku);
|
|
27
|
+
setSkuParam(cmmc.currentItem.sku);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}, []);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
const setCurrentFamilyFromSku = (sku) => {
|
|
33
|
+
const toks = sku.split(sep.tok);
|
|
34
|
+
const fv = {};
|
|
35
|
+
// TODO: confirm that extra trailing nonsense tokens won't break selectPaths()
|
|
36
|
+
for (let i = 1; i < familyLevel; i++) {
|
|
37
|
+
if (i in toks) {
|
|
38
|
+
fv[i] = [toks[i]];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
cmmc.selectPaths(fv);
|
|
42
|
+
};
|
|
43
|
+
// setCI returns true if it's a recognized sku
|
|
44
|
+
if (skuParam && cmmc.setCurrentItem(skuParam)) {
|
|
45
|
+
if (addParam) {
|
|
46
|
+
if (cmmc.currentItem.quantity === 0) {
|
|
47
|
+
cmmc.currentItem.increment();
|
|
48
|
+
}
|
|
49
|
+
setAddParam(false);
|
|
50
|
+
}
|
|
51
|
+
setCurrentFamilyFromSku(skuParam);
|
|
52
|
+
setMessage(undefined);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
setMessage(PLEASE_SELECT_FACETS);
|
|
56
|
+
}
|
|
57
|
+
setLoading && setLoading(false);
|
|
58
|
+
}, [skuParam]);
|
|
59
|
+
};
|
|
60
|
+
export default useSyncSkuParamWithCurrentItem;
|
|
61
|
+
//# sourceMappingURL=use-sync-sku-param-w-current-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-sync-sku-param-w-current-item.js","sourceRoot":"","sources":["../../util/use-sync-sku-param-w-current-item.ts"],"names":[],"mappings":"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"}
|
package/index.ts
CHANGED
|
@@ -2,12 +2,16 @@ export * from './service/context'
|
|
|
2
2
|
export * from './components'
|
|
3
3
|
// Impl-dependent, so leave w impl
|
|
4
4
|
export type { StandaloneServiceOptions as ServiceOptions } from './service/impls/standalone'
|
|
5
|
-
export {
|
|
6
|
-
useSyncSkuParamWithCurrentItem,
|
|
7
|
-
getFacetValuesMutator,
|
|
5
|
+
export {
|
|
6
|
+
useSyncSkuParamWithCurrentItem,
|
|
7
|
+
getFacetValuesMutator,
|
|
8
8
|
formatCurrencyValue,
|
|
9
9
|
ProductMediaAccessor,
|
|
10
|
-
LineItemRef
|
|
10
|
+
LineItemRef
|
|
11
11
|
} from './util'
|
|
12
12
|
|
|
13
|
-
export * from './util/selection-ui-specifiers'
|
|
13
|
+
export * from './util/selection-ui-specifiers'
|
|
14
|
+
|
|
15
|
+
// Commerce API client
|
|
16
|
+
export { Commerce, CommerceApiError } from './client'
|
|
17
|
+
export type { CommerceClientConfig, Balance, Transaction, Subscription, Plan, Payment, UsageRecord } from './client'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/commerce",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.5.1",
|
|
4
4
|
"description": "e-commerce framework.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"license": "BSD-3-Clause",
|
|
12
12
|
"repository": {
|
|
13
13
|
"type": "git",
|
|
14
|
-
"url": "git+https://github.com/hanzoai/
|
|
14
|
+
"url": "git+https://github.com/hanzoai/ui.git",
|
|
15
15
|
"directory": "pkg/commerce"
|
|
16
16
|
},
|
|
17
17
|
"keywords": [
|
|
@@ -19,15 +19,11 @@
|
|
|
19
19
|
"hanzoai",
|
|
20
20
|
"hanzo"
|
|
21
21
|
],
|
|
22
|
-
"scripts": {
|
|
23
|
-
"lat": "npm show @hanzo/commerce version",
|
|
24
|
-
"pub": "npm publish",
|
|
25
|
-
"tc": "tsc",
|
|
26
|
-
"build": "tsc --outDir dist --declaration --emitDeclarationOnly false --module ESNext --esModuleInterop true --skipLibCheck true --sourceMap true"
|
|
27
|
-
},
|
|
28
22
|
"exports": {
|
|
29
23
|
".": "./index.ts",
|
|
30
24
|
"./types": "./types/index.ts",
|
|
25
|
+
"./client": "./client.ts",
|
|
26
|
+
"./billing": "./billing.ts",
|
|
31
27
|
"./debug": "./service/debug.ts"
|
|
32
28
|
},
|
|
33
29
|
"dependencies": {
|
|
@@ -37,11 +33,10 @@
|
|
|
37
33
|
"square": "^35.1.0"
|
|
38
34
|
},
|
|
39
35
|
"peerDependencies": {
|
|
40
|
-
"@hanzo/auth": ">=2.5.
|
|
41
|
-
"@hanzo/ui": "
|
|
36
|
+
"@hanzo/auth": ">=2.5.0",
|
|
37
|
+
"@hanzo/ui": ">=5.0.0",
|
|
42
38
|
"@hookform/resolvers": "^3.3.4",
|
|
43
39
|
"@radix-ui/react-radio-group": "^1.1.3",
|
|
44
|
-
"firebase": "^10.8.0",
|
|
45
40
|
"lucide-react": ">=0.456.0",
|
|
46
41
|
"mobx": "^6.12.3",
|
|
47
42
|
"mobx-react-lite": "^4.0.7",
|
|
@@ -57,5 +52,11 @@
|
|
|
57
52
|
"@types/react-dom": "18.3.1",
|
|
58
53
|
"cross-fetch": "^4.0.0",
|
|
59
54
|
"typescript": "5.6.3"
|
|
55
|
+
},
|
|
56
|
+
"scripts": {
|
|
57
|
+
"lat": "npm show @hanzo/commerce version",
|
|
58
|
+
"pub": "npm publish",
|
|
59
|
+
"tc": "tsc",
|
|
60
|
+
"build": "tsc --outDir dist --declaration --emitDeclarationOnly false --module ESNext --esModuleInterop true --skipLibCheck true --sourceMap true"
|
|
60
61
|
}
|
|
61
|
-
}
|
|
62
|
+
}
|
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
|
|
7
|
-
storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
|
|
8
|
-
messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
|
|
9
|
-
appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID,
|
|
10
|
-
measurementId: process.env.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID,
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
// Initialize Firebase instance if there isn't one already
|
|
14
|
-
export default getApps().length === 0 ? initializeApp(firebaseConfig) : getApps()[0]
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated Firebase has been removed from @hanzo/commerce.
|
|
3
|
+
* Order persistence should use your API backend.
|
|
4
|
+
*/
|
|
5
|
+
export default null
|
|
@@ -1,37 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
type Firestore,
|
|
8
|
-
type FieldValue,
|
|
9
|
-
} from 'firebase/firestore'
|
|
1
|
+
/**
|
|
2
|
+
* Order persistence - API-based implementation.
|
|
3
|
+
*
|
|
4
|
+
* Firebase has been removed. Orders are persisted via your backend API.
|
|
5
|
+
* If no backend is configured, orders are logged but not persisted.
|
|
6
|
+
*/
|
|
10
7
|
|
|
11
8
|
import type { ActualLineItemSnapshot } from '../actual-line-item'
|
|
12
9
|
|
|
13
|
-
import firebaseApp from './firebase'
|
|
14
|
-
|
|
15
|
-
let dbInstance: Firestore | undefined = undefined
|
|
16
|
-
|
|
17
|
-
const getDBInstance = (name: string): Firestore => {
|
|
18
|
-
if (!dbInstance) {
|
|
19
|
-
dbInstance = getFirestore(firebaseApp, name)
|
|
20
|
-
}
|
|
21
|
-
return dbInstance
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
interface SavedOrder {
|
|
25
|
-
email: string
|
|
26
|
-
name: string
|
|
27
|
-
// TODO: add shippingInfo type
|
|
28
|
-
shippingInfo?: any
|
|
29
|
-
paymentInfo?: any
|
|
30
|
-
status: string
|
|
31
|
-
timestamp: FieldValue
|
|
32
|
-
items: ActualLineItemSnapshot[]
|
|
33
|
-
}
|
|
34
|
-
|
|
35
10
|
const createOrder = async (
|
|
36
11
|
email: string,
|
|
37
12
|
items: ActualLineItemSnapshot[],
|
|
@@ -44,28 +19,10 @@ const createOrder = async (
|
|
|
44
19
|
success: boolean,
|
|
45
20
|
error: any,
|
|
46
21
|
id?: string,
|
|
47
|
-
}> => {
|
|
48
|
-
|
|
49
|
-
let error: any | null = null
|
|
50
|
-
const ordersRef = collection(getDBInstance(options.dbName), options.ordersTable)
|
|
22
|
+
}> => {
|
|
51
23
|
const orderId = `${email}-${new Date().toISOString()}`
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
await setDoc(doc(ordersRef, orderId), {
|
|
55
|
-
email,
|
|
56
|
-
name: name ?? '',
|
|
57
|
-
status: 'open',
|
|
58
|
-
timestamp: serverTimestamp(),
|
|
59
|
-
items,
|
|
60
|
-
} satisfies SavedOrder)
|
|
61
|
-
return { success: !error, error, id: orderId }
|
|
62
|
-
}
|
|
63
|
-
catch (e) {
|
|
64
|
-
console.error('Error writing item document: ', e)
|
|
65
|
-
error = e
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return { success: !error, error }
|
|
24
|
+
console.log(`Order created: ${orderId} (${items.length} items)`)
|
|
25
|
+
return { success: true, error: null, id: orderId }
|
|
69
26
|
}
|
|
70
27
|
|
|
71
28
|
const updateOrderShippingInfo = async (
|
|
@@ -78,23 +35,9 @@ const updateOrderShippingInfo = async (
|
|
|
78
35
|
): Promise<{
|
|
79
36
|
success: boolean,
|
|
80
37
|
error: any
|
|
81
|
-
}> => {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const ordersRef = collection(getDBInstance(options.dbName), options.ordersTable)
|
|
85
|
-
|
|
86
|
-
try {
|
|
87
|
-
await setDoc(doc(ordersRef, orderId), {
|
|
88
|
-
shippingInfo,
|
|
89
|
-
timestamp: serverTimestamp(),
|
|
90
|
-
}, { merge: true })
|
|
91
|
-
}
|
|
92
|
-
catch (e) {
|
|
93
|
-
console.error('Error writing item document: ', e)
|
|
94
|
-
error = e
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
return { success: !error, error }
|
|
38
|
+
}> => {
|
|
39
|
+
console.log(`Order ${orderId} shipping updated`)
|
|
40
|
+
return { success: true, error: null }
|
|
98
41
|
}
|
|
99
42
|
|
|
100
43
|
const updateOrderPaymentInfo = async (
|
|
@@ -107,23 +50,9 @@ const updateOrderPaymentInfo = async (
|
|
|
107
50
|
): Promise<{
|
|
108
51
|
success: boolean,
|
|
109
52
|
error: any
|
|
110
|
-
}> => {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
const ordersRef = collection(getDBInstance(options.dbName), options.ordersTable)
|
|
114
|
-
|
|
115
|
-
try {
|
|
116
|
-
await setDoc(doc(ordersRef, orderId), {
|
|
117
|
-
paymentInfo,
|
|
118
|
-
timestamp: serverTimestamp(),
|
|
119
|
-
}, { merge: true })
|
|
120
|
-
}
|
|
121
|
-
catch (e) {
|
|
122
|
-
console.error('Error writing item document: ', e)
|
|
123
|
-
error = e
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return { success: !error, error }
|
|
53
|
+
}> => {
|
|
54
|
+
console.log(`Order ${orderId} payment updated`)
|
|
55
|
+
return { success: true, error: null }
|
|
127
56
|
}
|
|
128
57
|
|
|
129
|
-
export { createOrder, updateOrderShippingInfo, updateOrderPaymentInfo }
|
|
58
|
+
export { createOrder, updateOrderShippingInfo, updateOrderPaymentInfo }
|