@aglyn/plugins-commerce 1.0.0-beta.230 → 1.0.0-beta.232
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/package.json +13 -13
- package/src/index.d.ts +0 -1
- package/src/index.js +0 -1
- package/src/index.js.map +1 -1
- package/src/lib/barcode/barcode-decode.d.ts +71 -0
- package/src/lib/barcode/barcode-decode.js +498 -0
- package/src/lib/barcode/barcode-decode.js.map +1 -0
- package/src/lib/barcode/barcode-encode.d.ts +44 -0
- package/src/lib/barcode/barcode-encode.js +138 -0
- package/src/lib/barcode/barcode-encode.js.map +1 -0
- package/src/lib/barcode/barcode-scanner.component.d.ts +23 -0
- package/src/lib/barcode/barcode-scanner.component.js +260 -0
- package/src/lib/barcode/barcode-scanner.component.js.map +1 -0
- package/src/lib/barcode/scan-button.component.d.ts +10 -0
- package/src/lib/barcode/scan-button.component.js +62 -0
- package/src/lib/barcode/scan-button.component.js.map +1 -0
- package/src/lib/barcode/scanner-wedge.d.ts +35 -0
- package/src/lib/barcode/scanner-wedge.js +108 -0
- package/src/lib/barcode/scanner-wedge.js.map +1 -0
- package/src/lib/components/account.js +10 -1
- package/src/lib/components/account.js.map +1 -1
- package/src/lib/components/cart-extras.d.ts +45 -0
- package/src/lib/components/cart-extras.js +127 -0
- package/src/lib/components/cart-extras.js.map +1 -0
- package/src/lib/components/cart.js +82 -15
- package/src/lib/components/cart.js.map +1 -1
- package/src/lib/components/checkout-return-notice.d.ts +26 -0
- package/src/lib/components/checkout-return-notice.js +48 -0
- package/src/lib/components/checkout-return-notice.js.map +1 -0
- package/src/lib/components/commerce-console-page.js +124 -0
- package/src/lib/components/commerce-console-page.js.map +1 -1
- package/src/lib/components/commerce-console-sections.d.ts +1 -1
- package/src/lib/components/commerce-console-sections.js +4 -0
- package/src/lib/components/commerce-console-sections.js.map +1 -1
- package/src/lib/components/console/bulk-fulfill.d.ts +44 -0
- package/src/lib/components/console/bulk-fulfill.js +84 -0
- package/src/lib/components/console/bulk-fulfill.js.map +1 -0
- package/src/lib/components/console/catalog-organization-card.component.js +1 -0
- package/src/lib/components/console/catalog-organization-card.component.js.map +1 -1
- package/src/lib/components/console/customer-notifications-card.component.d.ts +19 -0
- package/src/lib/components/console/customer-notifications-card.component.js +149 -0
- package/src/lib/components/console/customer-notifications-card.component.js.map +1 -0
- package/src/lib/components/console/host-orders-card.component.js +88 -6
- package/src/lib/components/console/host-orders-card.component.js.map +1 -1
- package/src/lib/components/console/locations-card.component.js +164 -57
- package/src/lib/components/console/locations-card.component.js.map +1 -1
- package/src/lib/components/console/order-detail-dialog.component.js +209 -61
- package/src/lib/components/console/order-detail-dialog.component.js.map +1 -1
- package/src/lib/components/console/order-fulfillment-panel.component.d.ts +48 -0
- package/src/lib/components/console/order-fulfillment-panel.component.js +542 -0
- package/src/lib/components/console/order-fulfillment-panel.component.js.map +1 -0
- package/src/lib/components/console/order-invoice.component.d.ts +33 -0
- package/src/lib/components/console/order-invoice.component.js +81 -0
- package/src/lib/components/console/order-invoice.component.js.map +1 -0
- package/src/lib/components/console/order-receipt-resend.component.d.ts +21 -0
- package/src/lib/components/console/order-receipt-resend.component.js +203 -0
- package/src/lib/components/console/order-receipt-resend.component.js.map +1 -0
- package/src/lib/components/console/order-returns.component.d.ts +36 -0
- package/src/lib/components/console/order-returns.component.js +142 -0
- package/src/lib/components/console/order-returns.component.js.map +1 -0
- package/src/lib/components/console/order-shipping-actions.component.d.ts +54 -0
- package/src/lib/components/console/order-shipping-actions.component.js +149 -0
- package/src/lib/components/console/order-shipping-actions.component.js.map +1 -0
- package/src/lib/components/console/order-webhooks-card.component.d.ts +50 -0
- package/src/lib/components/console/order-webhooks-card.component.js +623 -0
- package/src/lib/components/console/order-webhooks-card.component.js.map +1 -0
- package/src/lib/components/console/order-zones.d.ts +155 -0
- package/src/lib/components/console/order-zones.js +40 -0
- package/src/lib/components/console/order-zones.js.map +1 -0
- package/src/lib/components/console/payment-methods-card.component.d.ts +67 -0
- package/src/lib/components/console/payment-methods-card.component.js +395 -0
- package/src/lib/components/console/payment-methods-card.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-api.d.ts +124 -0
- package/src/lib/components/console/pos/pos-api.js +101 -0
- package/src/lib/components/console/pos/pos-api.js.map +1 -0
- package/src/lib/components/console/pos/pos-cart-panel.component.d.ts +36 -0
- package/src/lib/components/console/pos/pos-cart-panel.component.js +160 -0
- package/src/lib/components/console/pos/pos-cart-panel.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-item-dialog.component.d.ts +39 -0
- package/src/lib/components/console/pos/pos-item-dialog.component.js +352 -0
- package/src/lib/components/console/pos/pos-item-dialog.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-product-grid.component.d.ts +47 -0
- package/src/lib/components/console/pos/pos-product-grid.component.js +272 -0
- package/src/lib/components/console/pos/pos-product-grid.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-receipt-panel.component.d.ts +27 -0
- package/src/lib/components/console/pos/pos-receipt-panel.component.js +282 -0
- package/src/lib/components/console/pos/pos-receipt-panel.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-tender-dialogs.component.d.ts +53 -0
- package/src/lib/components/console/pos/pos-tender-dialogs.component.js +445 -0
- package/src/lib/components/console/pos/pos-tender-dialogs.component.js.map +1 -0
- package/src/lib/components/console/pos/pos-tender-panel.component.d.ts +31 -0
- package/src/lib/components/console/pos/pos-tender-panel.component.js +640 -0
- package/src/lib/components/console/pos/pos-tender-panel.component.js.map +1 -0
- package/src/lib/components/console/pos/use-pos-display.d.ts +43 -0
- package/src/lib/components/console/pos/use-pos-display.js +161 -0
- package/src/lib/components/console/pos/use-pos-display.js.map +1 -0
- package/src/lib/components/console/pos-devices-card.component.d.ts +14 -0
- package/src/lib/components/console/pos-devices-card.component.js +546 -0
- package/src/lib/components/console/pos-devices-card.component.js.map +1 -0
- package/src/lib/components/console/pos-display/brand-screen.d.ts +33 -0
- package/src/lib/components/console/pos-display/brand-screen.js +85 -0
- package/src/lib/components/console/pos-display/brand-screen.js.map +1 -0
- package/src/lib/components/console/pos-display/cart-screen.d.ts +29 -0
- package/src/lib/components/console/pos-display/cart-screen.js +166 -0
- package/src/lib/components/console/pos-display/cart-screen.js.map +1 -0
- package/src/lib/components/console/pos-display/pairing-screen.d.ts +24 -0
- package/src/lib/components/console/pos-display/pairing-screen.js +127 -0
- package/src/lib/components/console/pos-display/pairing-screen.js.map +1 -0
- package/src/lib/components/console/pos-display/pos-display-api.d.ts +90 -0
- package/src/lib/components/console/pos-display/pos-display-api.js +140 -0
- package/src/lib/components/console/pos-display/pos-display-api.js.map +1 -0
- package/src/lib/components/console/pos-display/receipt-screen.d.ts +35 -0
- package/src/lib/components/console/pos-display/receipt-screen.js +200 -0
- package/src/lib/components/console/pos-display/receipt-screen.js.map +1 -0
- package/src/lib/components/console/pos-display/tip-screen.d.ts +36 -0
- package/src/lib/components/console/pos-display/tip-screen.js +211 -0
- package/src/lib/components/console/pos-display/tip-screen.js.map +1 -0
- package/src/lib/components/console/pos-display-page.component.d.ts +16 -0
- package/src/lib/components/console/pos-display-page.component.js +407 -0
- package/src/lib/components/console/pos-display-page.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-customer-lookup.component.d.ts +40 -0
- package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js +289 -0
- package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-last-receipt.component.d.ts +34 -0
- package/src/lib/components/console/pos-ops/pos-last-receipt.component.js +61 -0
- package/src/lib/components/console/pos-ops/pos-last-receipt.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-operations-bar.component.d.ts +38 -0
- package/src/lib/components/console/pos-ops/pos-operations-bar.component.js +129 -0
- package/src/lib/components/console/pos-ops/pos-operations-bar.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-ops-api.d.ts +37 -0
- package/src/lib/components/console/pos-ops/pos-ops-api.js +60 -0
- package/src/lib/components/console/pos-ops/pos-ops-api.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-pin-pad.component.d.ts +48 -0
- package/src/lib/components/console/pos-ops/pos-pin-pad.component.js +220 -0
- package/src/lib/components/console/pos-ops/pos-pin-pad.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-receipt-actions.component.d.ts +63 -0
- package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js +186 -0
- package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-receipt.d.ts +39 -0
- package/src/lib/components/console/pos-ops/pos-receipt.js +182 -0
- package/src/lib/components/console/pos-ops/pos-receipt.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-return-dialog.component.d.ts +40 -0
- package/src/lib/components/console/pos-ops/pos-return-dialog.component.js +465 -0
- package/src/lib/components/console/pos-ops/pos-return-dialog.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-shift-history-card.component.d.ts +29 -0
- package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js +253 -0
- package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-shift-panel.component.d.ts +34 -0
- package/src/lib/components/console/pos-ops/pos-shift-panel.component.js +494 -0
- package/src/lib/components/console/pos-ops/pos-shift-panel.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-shift-report.component.d.ts +37 -0
- package/src/lib/components/console/pos-ops/pos-shift-report.component.js +102 -0
- package/src/lib/components/console/pos-ops/pos-shift-report.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.d.ts +30 -0
- package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js +277 -0
- package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js.map +1 -0
- package/src/lib/components/console/pos-ops/register-ops.d.ts +28 -0
- package/src/lib/components/console/pos-ops/register-ops.js +28 -0
- package/src/lib/components/console/pos-ops/register-ops.js.map +1 -0
- package/src/lib/components/console/pos-ops/use-pos-cashier.d.ts +46 -0
- package/src/lib/components/console/pos-ops/use-pos-cashier.js +128 -0
- package/src/lib/components/console/pos-ops/use-pos-cashier.js.map +1 -0
- package/src/lib/components/console/pos-ops/use-pos-sale-receipt.d.ts +36 -0
- package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js +64 -0
- package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js.map +1 -0
- package/src/lib/components/console/pos-page.component.d.ts +13 -5
- package/src/lib/components/console/pos-page.component.js +756 -654
- package/src/lib/components/console/pos-page.component.js.map +1 -1
- package/src/lib/components/console/pos-zones.d.ts +23 -0
- package/src/lib/components/console/pos-zones.js +31 -0
- package/src/lib/components/console/pos-zones.js.map +1 -0
- package/src/lib/components/console/product-editor-dialog.component.js +61 -71
- package/src/lib/components/console/product-editor-dialog.component.js.map +1 -1
- package/src/lib/components/console/product-labels-dialog.component.d.ts +13 -0
- package/src/lib/components/console/product-labels-dialog.component.js +197 -0
- package/src/lib/components/console/product-labels-dialog.component.js.map +1 -0
- package/src/lib/components/console/product-register-fields.component.d.ts +19 -0
- package/src/lib/components/console/product-register-fields.component.js +241 -0
- package/src/lib/components/console/product-register-fields.component.js.map +1 -0
- package/src/lib/components/console/product-zones.d.ts +44 -0
- package/src/lib/components/console/product-zones.js.map +1 -1
- package/src/lib/components/console/products-hub-card.component.js +23 -20
- package/src/lib/components/console/products-hub-card.component.js.map +1 -1
- package/src/lib/components/console/register-hardware-card.component.d.ts +33 -0
- package/src/lib/components/console/register-hardware-card.component.js +826 -0
- package/src/lib/components/console/register-hardware-card.component.js.map +1 -0
- package/src/lib/components/console/registers-card.component.js +24 -5
- package/src/lib/components/console/registers-card.component.js.map +1 -1
- package/src/lib/components/console/return-actions.d.ts +38 -0
- package/src/lib/components/console/return-actions.js +76 -0
- package/src/lib/components/console/return-actions.js.map +1 -0
- package/src/lib/components/console/return-detail-dialog.component.d.ts +34 -0
- package/src/lib/components/console/return-detail-dialog.component.js +718 -0
- package/src/lib/components/console/return-detail-dialog.component.js.map +1 -0
- package/src/lib/components/console/return-settings-card.component.d.ts +34 -0
- package/src/lib/components/console/return-settings-card.component.js +195 -0
- package/src/lib/components/console/return-settings-card.component.js.map +1 -0
- package/src/lib/components/console/return-zones.d.ts +87 -0
- package/src/lib/components/console/return-zones.js +31 -0
- package/src/lib/components/console/return-zones.js.map +1 -0
- package/src/lib/components/console/returns-card.component.d.ts +45 -0
- package/src/lib/components/console/returns-card.component.js +159 -0
- package/src/lib/components/console/returns-card.component.js.map +1 -0
- package/src/lib/components/console/shipping-settings-card.component.js +161 -5
- package/src/lib/components/console/shipping-settings-card.component.js.map +1 -1
- package/src/lib/components/console/shippingeasy-card.component.d.ts +59 -0
- package/src/lib/components/console/shippingeasy-card.component.js +378 -0
- package/src/lib/components/console/shippingeasy-card.component.js.map +1 -0
- package/src/lib/components/console/shipstation-card.component.d.ts +35 -0
- package/src/lib/components/console/shipstation-card.component.js +345 -0
- package/src/lib/components/console/shipstation-card.component.js.map +1 -0
- package/src/lib/components/console/start-return-dialog.component.d.ts +40 -0
- package/src/lib/components/console/start-return-dialog.component.js +243 -0
- package/src/lib/components/console/start-return-dialog.component.js.map +1 -0
- package/src/lib/components/console/stock-movements-card.component.js +2 -1
- package/src/lib/components/console/stock-movements-card.component.js.map +1 -1
- package/src/lib/components/console/store-settings-card.component.js +2 -66
- package/src/lib/components/console/store-settings-card.component.js.map +1 -1
- package/src/lib/components/console/store-zones.d.ts +42 -0
- package/src/lib/components/console/store-zones.js +39 -0
- package/src/lib/components/console/store-zones.js.map +1 -0
- package/src/lib/components/console/storefront-tax-summary-card.component.js +1 -0
- package/src/lib/components/console/storefront-tax-summary-card.component.js.map +1 -1
- package/src/lib/components/order-status.d.ts +36 -0
- package/src/lib/components/order-status.js +502 -0
- package/src/lib/components/order-status.js.map +1 -0
- package/src/lib/components/product-detail.js +41 -2
- package/src/lib/components/product-detail.js.map +1 -1
- package/src/lib/components/return-request.d.ts +32 -0
- package/src/lib/components/return-request.js +576 -0
- package/src/lib/components/return-request.js.map +1 -0
- package/src/lib/components/storefront-payment-appearance.d.ts +32 -0
- package/src/lib/components/storefront-payment-appearance.js +114 -0
- package/src/lib/components/storefront-payment-appearance.js.map +1 -0
- package/src/lib/components/storefront-payment-element.d.ts +57 -1
- package/src/lib/components/storefront-payment-element.js +332 -33
- package/src/lib/components/storefront-payment-element.js.map +1 -1
- package/src/lib/constants/order-status.d.ts +22 -0
- package/src/lib/constants/order-status.js +22 -0
- package/src/lib/constants/order-status.js.map +1 -0
- package/src/lib/constants/return-request.d.ts +27 -0
- package/src/lib/constants/return-request.js +32 -0
- package/src/lib/constants/return-request.js.map +1 -0
- package/src/lib/constants/stock-movement-query.js +2 -1
- package/src/lib/constants/stock-movement-query.js.map +1 -1
- package/src/lib/declarations.console-server.js +9 -0
- package/src/lib/declarations.console-server.js.map +1 -1
- package/src/lib/declarations.server.d.ts +2 -1
- package/src/lib/declarations.server.js +68 -1
- package/src/lib/declarations.server.js.map +1 -1
- package/src/lib/model/buyer-notifications.d.ts +59 -0
- package/src/lib/model/buyer-notifications.js +97 -0
- package/src/lib/model/buyer-notifications.js.map +1 -0
- package/src/lib/model/commerce-orders.d.ts +171 -2
- package/src/lib/model/commerce-orders.js +26 -16
- package/src/lib/model/commerce-orders.js.map +1 -1
- package/src/lib/model/commerce-payment-methods.d.ts +146 -0
- package/src/lib/model/commerce-payment-methods.js +247 -0
- package/src/lib/model/commerce-payment-methods.js.map +1 -0
- package/src/lib/model/commerce-pos-ops.d.ts +437 -0
- package/src/lib/model/commerce-pos-ops.js +721 -0
- package/src/lib/model/commerce-pos-ops.js.map +1 -0
- package/src/lib/model/commerce-pos.d.ts +263 -0
- package/src/lib/model/commerce-pos.js +375 -0
- package/src/lib/model/commerce-pos.js.map +1 -0
- package/src/lib/model/commerce-printers.d.ts +211 -0
- package/src/lib/model/commerce-printers.js +181 -0
- package/src/lib/model/commerce-printers.js.map +1 -0
- package/src/lib/model/commerce-receipt.d.ts +97 -0
- package/src/lib/model/commerce-receipt.js +180 -0
- package/src/lib/model/commerce-receipt.js.map +1 -0
- package/src/lib/model/commerce-returns.d.ts +207 -0
- package/src/lib/model/commerce-returns.js +300 -0
- package/src/lib/model/commerce-returns.js.map +1 -0
- package/src/lib/model/commerce-shipping.d.ts +44 -1
- package/src/lib/model/commerce-shipping.js +53 -9
- package/src/lib/model/commerce-shipping.js.map +1 -1
- package/src/lib/model/commerce-tax-engine.d.ts +90 -0
- package/src/lib/model/commerce-tax-engine.js +129 -0
- package/src/lib/model/commerce-tax-engine.js.map +1 -0
- package/src/lib/model/commerce.d.ts +91 -2
- package/src/lib/model/commerce.js +89 -1
- package/src/lib/model/commerce.js.map +1 -1
- package/src/lib/model/index.d.ts +16 -0
- package/src/lib/model/index.js +16 -0
- package/src/lib/model/index.js.map +1 -1
- package/src/lib/model/order-events.d.ts +154 -0
- package/src/lib/model/order-events.js +153 -0
- package/src/lib/model/order-events.js.map +1 -0
- package/src/lib/model/order-fulfillment.d.ts +117 -0
- package/src/lib/model/order-fulfillment.js +217 -0
- package/src/lib/model/order-fulfillment.js.map +1 -0
- package/src/lib/model/order-history.d.ts +58 -0
- package/src/lib/model/order-history.js +22 -0
- package/src/lib/model/order-history.js.map +1 -0
- package/src/lib/model/order-list-fields.d.ts +9 -1
- package/src/lib/model/order-list-fields.js +7 -1
- package/src/lib/model/order-list-fields.js.map +1 -1
- package/src/lib/model/order-shipping-export.d.ts +91 -0
- package/src/lib/model/order-shipping-export.js +192 -0
- package/src/lib/model/order-shipping-export.js.map +1 -0
- package/src/lib/model/order-status-view.d.ts +103 -0
- package/src/lib/model/order-status-view.js +156 -0
- package/src/lib/model/order-status-view.js.map +1 -0
- package/src/lib/model/order-webhooks.d.ts +142 -0
- package/src/lib/model/order-webhooks.js +91 -0
- package/src/lib/model/order-webhooks.js.map +1 -0
- package/src/lib/model/product-channel.d.ts +56 -0
- package/src/lib/model/product-channel.js +86 -0
- package/src/lib/model/product-channel.js.map +1 -0
- package/src/lib/model/product-modifiers.d.ts +80 -0
- package/src/lib/model/product-modifiers.js +140 -0
- package/src/lib/model/product-modifiers.js.map +1 -0
- package/src/lib/model/product-write.d.ts +186 -0
- package/src/lib/model/product-write.js +116 -0
- package/src/lib/model/product-write.js.map +1 -0
- package/src/lib/model/shippingeasy.d.ts +94 -0
- package/src/lib/model/shippingeasy.js +267 -0
- package/src/lib/model/shippingeasy.js.map +1 -0
- package/src/lib/model/shipstation.d.ts +125 -0
- package/src/lib/model/shipstation.js +399 -0
- package/src/lib/model/shipstation.js.map +1 -0
- package/src/lib/model/smart-collection-reads.d.ts +32 -0
- package/src/lib/model/smart-collection-reads.js +63 -0
- package/src/lib/model/smart-collection-reads.js.map +1 -0
- package/src/lib/model/tracking-url.d.ts +74 -0
- package/src/lib/model/tracking-url.js +159 -0
- package/src/lib/model/tracking-url.js.map +1 -0
- package/src/lib/plugin-config.d.ts +13 -0
- package/src/lib/plugin-config.js +77 -5
- package/src/lib/plugin-config.js.map +1 -1
- package/src/lib/plugin.js +26 -0
- package/src/lib/plugin.js.map +1 -1
- package/src/lib/pos-ops-config.d.ts +39 -0
- package/src/lib/pos-ops-config.js +88 -0
- package/src/lib/pos-ops-config.js.map +1 -0
- package/src/lib/printing/print-document.d.ts +106 -0
- package/src/lib/printing/print-document.js +464 -0
- package/src/lib/printing/print-document.js.map +1 -0
- package/src/lib/printing/product-labels.d.ts +58 -0
- package/src/lib/printing/product-labels.js +116 -0
- package/src/lib/printing/product-labels.js.map +1 -0
- package/src/lib/printing/render-epson.d.ts +57 -0
- package/src/lib/printing/render-epson.js +135 -0
- package/src/lib/printing/render-epson.js.map +1 -0
- package/src/lib/printing/render-star.d.ts +45 -0
- package/src/lib/printing/render-star.js +100 -0
- package/src/lib/printing/render-star.js.map +1 -0
- package/src/lib/printing/render-text.d.ts +25 -0
- package/src/lib/printing/render-text.js +53 -0
- package/src/lib/printing/render-text.js.map +1 -0
- package/src/lib/server/api-v1/openapi.js +27 -4
- package/src/lib/server/api-v1/openapi.js.map +1 -1
- package/src/lib/server/api-v1/order-view.d.ts +67 -0
- package/src/lib/server/api-v1/order-view.js +120 -0
- package/src/lib/server/api-v1/order-view.js.map +1 -0
- package/src/lib/server/api-v1/orders-and-products.js +58 -65
- package/src/lib/server/api-v1/orders-and-products.js.map +1 -1
- package/src/lib/server/billing-webhook.js +135 -28
- package/src/lib/server/billing-webhook.js.map +1 -1
- package/src/lib/server/cancel-order.js +29 -0
- package/src/lib/server/cancel-order.js.map +1 -1
- package/src/lib/server/carrier-rates-availability.d.ts +26 -0
- package/src/lib/server/carrier-rates-availability.js +76 -0
- package/src/lib/server/carrier-rates-availability.js.map +1 -0
- package/src/lib/server/carrier-shipping.d.ts +84 -0
- package/src/lib/server/carrier-shipping.js +135 -0
- package/src/lib/server/carrier-shipping.js.map +1 -0
- package/src/lib/server/cart-checkout.d.ts +2 -0
- package/src/lib/server/cart-checkout.js +226 -22
- package/src/lib/server/cart-checkout.js.map +1 -1
- package/src/lib/server/channel-order-updates.d.ts +50 -0
- package/src/lib/server/channel-order-updates.js +290 -0
- package/src/lib/server/channel-order-updates.js.map +1 -0
- package/src/lib/server/channel-orders.d.ts +85 -0
- package/src/lib/server/channel-orders.js +543 -0
- package/src/lib/server/channel-orders.js.map +1 -0
- package/src/lib/server/checkout-extras.d.ts +64 -0
- package/src/lib/server/checkout-extras.js +157 -0
- package/src/lib/server/checkout-extras.js.map +1 -0
- package/src/lib/server/{feed.d.ts → checkout-status.d.ts} +2 -7
- package/src/lib/server/checkout-status.js +111 -0
- package/src/lib/server/checkout-status.js.map +1 -0
- package/src/lib/server/checkout.js +86 -9
- package/src/lib/server/checkout.js.map +1 -1
- package/src/lib/server/draft-order.js +34 -5
- package/src/lib/server/draft-order.js.map +1 -1
- package/src/lib/server/fulfill-order.d.ts +127 -10
- package/src/lib/server/fulfill-order.js +451 -49
- package/src/lib/server/fulfill-order.js.map +1 -1
- package/src/lib/server/legacy-feed.d.ts +28 -0
- package/src/lib/server/legacy-feed.js +52 -0
- package/src/lib/server/legacy-feed.js.map +1 -0
- package/src/lib/server/native-checkout.d.ts +34 -15
- package/src/lib/server/native-checkout.js +32 -17
- package/src/lib/server/native-checkout.js.map +1 -1
- package/src/lib/server/order-event-host-emit.d.ts +23 -0
- package/src/lib/server/order-event-host-emit.js +30 -0
- package/src/lib/server/order-event-host-emit.js.map +1 -0
- package/src/lib/server/order-event-triggers.d.ts +37 -0
- package/src/lib/server/order-event-triggers.js +119 -0
- package/src/lib/server/order-event-triggers.js.map +1 -0
- package/src/lib/server/order-events.d.ts +62 -0
- package/src/lib/server/order-events.js +109 -0
- package/src/lib/server/order-events.js.map +1 -0
- package/src/lib/server/order-history.d.ts +23 -0
- package/src/lib/server/order-history.js +65 -0
- package/src/lib/server/order-history.js.map +1 -0
- package/src/lib/server/order-notifications.d.ts +185 -0
- package/src/lib/server/order-notifications.js +567 -0
- package/src/lib/server/order-notifications.js.map +1 -0
- package/src/lib/server/order-receipt-send.d.ts +39 -0
- package/src/lib/server/order-receipt-send.js +151 -0
- package/src/lib/server/order-receipt-send.js.map +1 -0
- package/src/lib/server/order-status-token.d.ts +31 -0
- package/src/lib/server/order-status-token.js +75 -0
- package/src/lib/server/order-status-token.js.map +1 -0
- package/src/lib/server/order-status.d.ts +58 -0
- package/src/lib/server/order-status.js +141 -0
- package/src/lib/server/order-status.js.map +1 -0
- package/src/lib/server/order-webhooks.d.ts +108 -0
- package/src/lib/server/order-webhooks.js +622 -0
- package/src/lib/server/order-webhooks.js.map +1 -0
- package/src/lib/server/orders-shipping-prepare.d.ts +26 -0
- package/src/lib/server/orders-shipping-prepare.js +121 -0
- package/src/lib/server/orders-shipping-prepare.js.map +1 -0
- package/src/lib/server/payment-method-domains.d.ts +209 -0
- package/src/lib/server/payment-method-domains.js +444 -0
- package/src/lib/server/payment-method-domains.js.map +1 -0
- package/src/lib/server/payment-methods.d.ts +77 -0
- package/src/lib/server/payment-methods.js +284 -0
- package/src/lib/server/payment-methods.js.map +1 -0
- package/src/lib/server/pos-auth.d.ts +50 -0
- package/src/lib/server/pos-auth.js +121 -0
- package/src/lib/server/pos-auth.js.map +1 -0
- package/src/lib/server/pos-customer.d.ts +49 -0
- package/src/lib/server/pos-customer.js +257 -0
- package/src/lib/server/pos-customer.js.map +1 -0
- package/src/lib/server/pos-display.d.ts +57 -0
- package/src/lib/server/pos-display.js +419 -0
- package/src/lib/server/pos-display.js.map +1 -0
- package/src/lib/server/pos-fee-month.d.ts +34 -0
- package/src/lib/server/pos-fee-month.js +36 -0
- package/src/lib/server/pos-fee-month.js.map +1 -0
- package/src/lib/server/pos-ops-gate.d.ts +161 -0
- package/src/lib/server/pos-ops-gate.js +295 -0
- package/src/lib/server/pos-ops-gate.js.map +1 -0
- package/src/lib/server/pos-ops-routes.d.ts +22 -0
- package/src/lib/server/pos-ops-routes.js +36 -0
- package/src/lib/server/pos-ops-routes.js.map +1 -0
- package/src/lib/server/pos-order.d.ts +1 -18
- package/src/lib/server/pos-order.js +222 -42
- package/src/lib/server/pos-order.js.map +1 -1
- package/src/lib/server/pos-payment.d.ts +39 -0
- package/src/lib/server/pos-payment.js +922 -0
- package/src/lib/server/pos-payment.js.map +1 -0
- package/src/lib/server/pos-print.d.ts +82 -0
- package/src/lib/server/pos-print.js +193 -0
- package/src/lib/server/pos-print.js.map +1 -0
- package/src/lib/server/pos-readers.d.ts +27 -0
- package/src/lib/server/pos-readers.js +276 -0
- package/src/lib/server/pos-readers.js.map +1 -0
- package/src/lib/server/pos-refund-authority.d.ts +60 -0
- package/src/lib/server/pos-refund-authority.js +72 -0
- package/src/lib/server/pos-refund-authority.js.map +1 -0
- package/src/lib/server/pos-return.d.ts +58 -0
- package/src/lib/server/pos-return.js +891 -0
- package/src/lib/server/pos-return.js.map +1 -0
- package/src/lib/server/pos-sale-stamp.d.ts +66 -0
- package/src/lib/server/pos-sale-stamp.js +84 -0
- package/src/lib/server/pos-sale-stamp.js.map +1 -0
- package/src/lib/server/pos-sale.d.ts +170 -0
- package/src/lib/server/pos-sale.js +461 -0
- package/src/lib/server/pos-sale.js.map +1 -0
- package/src/lib/server/pos-shift.d.ts +45 -0
- package/src/lib/server/pos-shift.js +484 -0
- package/src/lib/server/pos-shift.js.map +1 -0
- package/src/lib/server/pos-staff-pin.d.ts +26 -0
- package/src/lib/server/pos-staff-pin.js +339 -0
- package/src/lib/server/pos-staff-pin.js.map +1 -0
- package/src/lib/server/pos-stripe.d.ts +91 -0
- package/src/lib/server/pos-stripe.js +129 -0
- package/src/lib/server/pos-stripe.js.map +1 -0
- package/src/lib/server/pos-terminal-connection-token.d.ts +48 -0
- package/src/lib/server/pos-terminal-connection-token.js +166 -0
- package/src/lib/server/pos-terminal-connection-token.js.map +1 -0
- package/src/lib/server/pos-terminal.d.ts +218 -0
- package/src/lib/server/pos-terminal.js +1014 -0
- package/src/lib/server/pos-terminal.js.map +1 -0
- package/src/lib/server/print-queue.d.ts +124 -0
- package/src/lib/server/print-queue.js +301 -0
- package/src/lib/server/print-queue.js.map +1 -0
- package/src/lib/server/printer-poll.d.ts +75 -0
- package/src/lib/server/printer-poll.js +325 -0
- package/src/lib/server/printer-poll.js.map +1 -0
- package/src/lib/server/printer-secret.d.ts +39 -0
- package/src/lib/server/printer-secret.js +56 -0
- package/src/lib/server/printer-secret.js.map +1 -0
- package/src/lib/server/printers.d.ts +114 -0
- package/src/lib/server/printers.js +546 -0
- package/src/lib/server/printers.js.map +1 -0
- package/src/lib/server/product-catalog.d.ts +42 -0
- package/src/lib/server/product-catalog.js +309 -0
- package/src/lib/server/product-catalog.js.map +1 -0
- package/src/lib/server/product-drafts.d.ts +5 -1
- package/src/lib/server/product-drafts.js +3 -3
- package/src/lib/server/product-drafts.js.map +1 -1
- package/src/lib/server/product-writer.d.ts +19 -0
- package/src/lib/server/product-writer.js +261 -0
- package/src/lib/server/product-writer.js.map +1 -0
- package/src/lib/server/products-write.d.ts +61 -0
- package/src/lib/server/products-write.js +375 -0
- package/src/lib/server/products-write.js.map +1 -0
- package/src/lib/server/refund.js +110 -45
- package/src/lib/server/refund.js.map +1 -1
- package/src/lib/server/reserve.js +2 -0
- package/src/lib/server/reserve.js.map +1 -1
- package/src/lib/server/return-status-action.d.ts +37 -0
- package/src/lib/server/return-status-action.js +57 -0
- package/src/lib/server/return-status-action.js.map +1 -0
- package/src/lib/server/returns.d.ts +119 -0
- package/src/lib/server/returns.js +938 -0
- package/src/lib/server/returns.js.map +1 -0
- package/src/lib/server/shipment-records.d.ts +36 -0
- package/src/lib/server/shipment-records.js +289 -0
- package/src/lib/server/shipment-records.js.map +1 -0
- package/src/lib/server/shipping-connector-gates.d.ts +40 -0
- package/src/lib/server/shipping-connector-gates.js +97 -0
- package/src/lib/server/shipping-connector-gates.js.map +1 -0
- package/src/lib/server/shipping-connectors.d.ts +29 -0
- package/src/lib/server/shipping-connectors.js +236 -0
- package/src/lib/server/shipping-connectors.js.map +1 -0
- package/src/lib/server/shippingeasy.d.ts +238 -0
- package/src/lib/server/shippingeasy.js +787 -0
- package/src/lib/server/shippingeasy.js.map +1 -0
- package/src/lib/server/shipstation.d.ts +129 -0
- package/src/lib/server/shipstation.js +483 -0
- package/src/lib/server/shipstation.js.map +1 -0
- package/src/lib/server/site-page-resolver.d.ts +5 -0
- package/src/lib/server/site-page-resolver.js +156 -1
- package/src/lib/server/site-page-resolver.js.map +1 -1
- package/src/lib/server/stock-levels.d.ts +21 -0
- package/src/lib/server/stock-levels.js +263 -0
- package/src/lib/server/stock-levels.js.map +1 -0
- package/src/lib/server/stripe-refund.d.ts +47 -0
- package/src/lib/server/stripe-refund.js +87 -0
- package/src/lib/server/stripe-refund.js.map +1 -0
- package/src/lib/server/supplier-update.js +46 -5
- package/src/lib/server/supplier-update.js.map +1 -1
- package/src/lib/server/tax-engine-quote.d.ts +47 -0
- package/src/lib/server/tax-engine-quote.js +105 -0
- package/src/lib/server/tax-engine-quote.js.map +1 -0
- package/src/lib/server.js +143 -2
- package/src/lib/server.js.map +1 -1
- package/src/lib/site.js +12 -0
- package/src/lib/site.js.map +1 -1
- package/src/lib/subprocessors.d.ts +26 -0
- package/src/lib/subprocessors.js +50 -0
- package/src/lib/subprocessors.js.map +1 -0
- package/src/lib/tenant-emails.js +461 -3
- package/src/lib/tenant-emails.js.map +1 -1
- package/src/lib/testing/fake-firestore.d.ts +45 -0
- package/src/lib/testing/fake-firestore.js +189 -0
- package/src/lib/testing/fake-firestore.js.map +1 -0
- package/src/lib/testing/memory-firestore.d.ts +136 -0
- package/src/lib/testing/memory-firestore.js +282 -0
- package/src/lib/testing/memory-firestore.js.map +1 -0
- package/src/lib/testing/pos-ops-harness.d.ts +50 -0
- package/src/lib/testing/pos-ops-harness.js +184 -0
- package/src/lib/testing/pos-ops-harness.js.map +1 -0
- package/src/lib/testing/pos-ops-memory-firestore.d.ts +55 -0
- package/src/lib/testing/pos-ops-memory-firestore.js +376 -0
- package/src/lib/testing/pos-ops-memory-firestore.js.map +1 -0
- package/src/lib/transfer/products.server.d.ts +5 -0
- package/src/lib/transfer/products.server.js +2 -2
- package/src/lib/transfer/products.server.js.map +1 -1
- package/src/lib/transfer/records-transfer.d.ts +11 -1
- package/src/lib/transfer/records-transfer.js +127 -5
- package/src/lib/transfer/records-transfer.js.map +1 -1
- package/src/lib/transfer/records.server.d.ts +9 -2
- package/src/lib/transfer/records.server.js +58 -7
- package/src/lib/transfer/records.server.js.map +1 -1
- package/src/lib/transfer/register-transfer-resources.js +40 -1
- package/src/lib/transfer/register-transfer-resources.js.map +1 -1
- package/src/lib/transfer/register-transfer-ui.js +4 -1
- package/src/lib/transfer/register-transfer-ui.js.map +1 -1
- package/src/lib/transfer/shipping-presets.d.ts +23 -0
- package/src/lib/transfer/shipping-presets.js +156 -0
- package/src/lib/transfer/shipping-presets.js.map +1 -0
- package/src/lib/transfer/tracking-transfer.d.ts +101 -0
- package/src/lib/transfer/tracking-transfer.js +546 -0
- package/src/lib/transfer/tracking-transfer.js.map +1 -0
- package/src/lib/transfer/tracking.server.d.ts +37 -0
- package/src/lib/transfer/tracking.server.js +393 -0
- package/src/lib/transfer/tracking.server.js.map +1 -0
- package/src/lib/transfer/transfer-keys.d.ts +2 -1
- package/src/lib/transfer/transfer-keys.js +6 -2
- package/src/lib/transfer/transfer-keys.js.map +1 -1
- package/src/lib/utils/code128.d.ts +37 -0
- package/src/lib/utils/code128.js +199 -0
- package/src/lib/utils/code128.js.map +1 -0
- package/src/lib/utils/order-invoice.d.ts +55 -0
- package/src/lib/utils/order-invoice.js +127 -0
- package/src/lib/utils/order-invoice.js.map +1 -0
- package/src/lib/utils/use-checkout-return-notice.d.ts +34 -0
- package/src/lib/utils/use-checkout-return-notice.js +78 -0
- package/src/lib/utils/use-checkout-return-notice.js.map +1 -0
- package/src/lib/server/feed.js +0 -69
- package/src/lib/server/feed.js.map +0 -1
|
@@ -22,11 +22,19 @@ import { claimAttempt, deriveStripeObjectKey } from "@aglyn/aglyn/server";
|
|
|
22
22
|
import { consumeRateLimit, firebaseAdmin, getOrgForHost, isYoungWorkspace } from "@aglyn/tenant-data-admin";
|
|
23
23
|
import { merchantAccountIsReady } from "@aglyn/tenant-data-admin/server/payment-provider";
|
|
24
24
|
import { checkoutSessionCardAuthenticationParams } from "@aglyn/tenant-data-admin/server/stripe-card-authentication";
|
|
25
|
+
import { CARRIER_POSTAL_CODE_MESSAGE, planCheckoutShippingWithCarriers } from "./carrier-shipping.js";
|
|
25
26
|
import { readCartId } from "./cart-cookie.js";
|
|
26
27
|
import { resolveManualTaxRateId } from "./manual-tax-rate.js";
|
|
28
|
+
import { allocateCentsByWeight, engineLineTaxPercentages, taxEngineSessionMetadata } from "../model/commerce-tax-engine.js";
|
|
29
|
+
import { quoteSaleTaxWithEngine } from "./tax-engine-quote.js";
|
|
27
30
|
import { holdPromotionSlot, promotionHoldKey } from "./promotion-hold.js";
|
|
28
31
|
import { holdStock, stockHoldKey } from "./stock-hold.js";
|
|
29
32
|
import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSessionPayload, resolveNativeCheckoutMode } from "./native-checkout.js";
|
|
33
|
+
import { ensureCheckoutDomain } from "./payment-method-domains.js";
|
|
34
|
+
import { raiseCheckoutStarted } from "./order-events.js";
|
|
35
|
+
import { checkoutExtrasCents, encodeCheckoutExtrasMetadata, readChosenCheckoutExtras } from "@aglyn/aglyn/plugin-manager/plugin-checkout-extras";
|
|
36
|
+
import { quoteCartExtras } from "./checkout-extras.js";
|
|
37
|
+
/** An option the buyer ticked is no longer offered (AGL-3635). */ export const CHECKOUT_EXTRA_UNAVAILABLE_MESSAGE = 'An option you picked is no longer available. Review your cart and try again.';
|
|
30
38
|
/**
|
|
31
39
|
* Cart checkout (AGL-293): the whole cart in one Stripe Checkout
|
|
32
40
|
* session on the merchant's account. Every line re-prices from its
|
|
@@ -89,8 +97,8 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
89
97
|
if (held) await held.release();
|
|
90
98
|
};
|
|
91
99
|
try {
|
|
92
|
-
var _cartSnapshot_data, _ref1, _storeSettings_get, _req_headers_referer, _req_headers_host, _ref2;
|
|
93
|
-
var _ownerOrg_org, _ownerOrg_org1, _ownerOrg_org2;
|
|
100
|
+
var _cartSnapshot_data, _ref1, _storeSettings_get, _storeSettings_get1, _req_headers_referer, _req_headers_host, _ref2, _ref3;
|
|
101
|
+
var _ownerOrg_org, _ownerOrg_org1, _ownerOrg_org2, _engineTax_quote;
|
|
94
102
|
const firestore = firebaseAdmin.app().firestore();
|
|
95
103
|
const hostRef = firestore.collection('hosts').doc(hostId);
|
|
96
104
|
const cartSnapshot = await hostRef.collection('carts').doc(cartId).get();
|
|
@@ -164,6 +172,8 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
164
172
|
* reservation and the price must be taken against the same variant, and a
|
|
165
173
|
* second resolution is a second chance to pick a different one.
|
|
166
174
|
*/ const reserveLines = [];
|
|
175
|
+
/** The basket as `checkout.started` reports it (AGL-3639). */ const startedItems = [];
|
|
176
|
+
/** The basket as an extras offer prices it (AGL-3635). */ const extrasLines = [];
|
|
167
177
|
// Cart checkout never builds subscription sessions — every line bills
|
|
168
178
|
// one-time in `payment` mode (recurring products subscribe through the
|
|
169
179
|
// PDP's direct checkout, AGL-303) — so the buyer-chosen billing field
|
|
@@ -172,7 +182,7 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
172
182
|
mode: 'payment'
|
|
173
183
|
}, checkoutSessionCardAuthenticationParams('payment')));
|
|
174
184
|
cart.lines.forEach((line, index)=>{
|
|
175
|
-
var
|
|
185
|
+
var _product_type, _variant_id, _variant_sku, _variant_weightGrams, _product_type1, _product_type2, _variant_options, _variant_options1;
|
|
176
186
|
const product = productsById.get(line.productId);
|
|
177
187
|
if (!product || product.deletedAt || product.status !== 'active') {
|
|
178
188
|
var _ref;
|
|
@@ -219,6 +229,24 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
219
229
|
}
|
|
220
230
|
const unitCents = Math.round(Number(variant.priceUsd) * 100);
|
|
221
231
|
itemsCents += unitCents * line.quantity;
|
|
232
|
+
extrasLines.push(_extends({
|
|
233
|
+
productId: line.productId,
|
|
234
|
+
name: product.name
|
|
235
|
+
}, variant.sku ? {
|
|
236
|
+
sku: String(variant.sku)
|
|
237
|
+
} : {}, {
|
|
238
|
+
quantity: line.quantity,
|
|
239
|
+
unitCents,
|
|
240
|
+
physical: ((_product_type = product.type) != null ? _product_type : 'physical') === 'physical'
|
|
241
|
+
}));
|
|
242
|
+
startedItems.push({
|
|
243
|
+
productId: line.productId,
|
|
244
|
+
variantId: (_variant_id = variant.id) != null ? _variant_id : null,
|
|
245
|
+
name: product.name,
|
|
246
|
+
sku: (_variant_sku = variant.sku) != null ? _variant_sku : null,
|
|
247
|
+
quantity: line.quantity,
|
|
248
|
+
unitCents
|
|
249
|
+
});
|
|
222
250
|
if (product.giftCard) giftCardCents += unitCents * line.quantity;
|
|
223
251
|
// What THIS line is worth, so a product-scoped discount can be priced
|
|
224
252
|
// against the lines it actually covers rather than the whole basket
|
|
@@ -232,7 +260,7 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
232
260
|
// reads it — `liftLegacyProduct` only defaults the field on docs it
|
|
233
261
|
// synthesizes variants for, so a part-migrated doc can reach here
|
|
234
262
|
// without one and the two reads must not disagree about what it is.
|
|
235
|
-
if (((
|
|
263
|
+
if (((_product_type1 = product.type) != null ? _product_type1 : 'physical') === 'physical') hasPhysicalLine = true;
|
|
236
264
|
// `?? 'physical'`, which the comment four lines up already promised and
|
|
237
265
|
// the code did not deliver (AGL-2251). `resolveTransactionFeePct` keys
|
|
238
266
|
// on `productType === 'physical'` and sends everything else — `undefined`
|
|
@@ -241,7 +269,7 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
241
269
|
// 'physical'`) priced the identical product at the physical rate. The
|
|
242
270
|
// same basket cost the merchant a different fee depending on which
|
|
243
271
|
// button the shopper pressed.
|
|
244
|
-
const feePct = Aglyn.resolveTransactionFeePct(ownerOrg.org, (
|
|
272
|
+
const feePct = Aglyn.resolveTransactionFeePct(ownerOrg.org, (_product_type2 = product.type) != null ? _product_type2 : 'physical');
|
|
245
273
|
// WHETHER a rate applies is not the same fact as what it rounds to
|
|
246
274
|
// (AGL-2232), and only the sum was being kept. `checkout.ts`,
|
|
247
275
|
// `draft-order.ts` and `reserve.ts` all floor at `Math.max(1, …)` when
|
|
@@ -260,7 +288,7 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
260
288
|
// visitor per day, lower while the workspace is young. Above the claim,
|
|
261
289
|
// like the line refusals, so a refusal keeps the key.
|
|
262
290
|
if (giftCardCents > 0) {
|
|
263
|
-
var
|
|
291
|
+
var _ref4;
|
|
264
292
|
var _req_socket;
|
|
265
293
|
const young = isYoungWorkspace(ownerOrg.org);
|
|
266
294
|
const overCeiling = CommerceModel.giftCardPurchaseRefusal({
|
|
@@ -272,7 +300,7 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
272
300
|
visible: overCeiling
|
|
273
301
|
});
|
|
274
302
|
}
|
|
275
|
-
const buys = await consumeRateLimit(`giftcard:buy:${hostId}:${String((
|
|
303
|
+
const buys = await consumeRateLimit(`giftcard:buy:${hostId}:${String((_ref4 = (_req_socket = req.socket) == null ? void 0 : _req_socket.remoteAddress) != null ? _ref4 : '') || 'no-address'}`, {
|
|
276
304
|
limit: young ? CommerceModel.GIFT_CARD_PURCHASE_LIMITS.perVisitorDailyYoung : CommerceModel.GIFT_CARD_PURCHASE_LIMITS.perVisitorDaily,
|
|
277
305
|
windowMs: 24 * 60 * 60 * 1000
|
|
278
306
|
});
|
|
@@ -297,13 +325,34 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
297
325
|
// session byte-identical to today's: no shipping charged, exactly as
|
|
298
326
|
// before. Only a merchant who set rates up starts collecting them.
|
|
299
327
|
const storeSettings = await hostRef.collection('settings').doc('store').get();
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
328
|
+
// A live carrier rate (AGL-3612) is quoted here too, before the session,
|
|
329
|
+
// for the destination the shopper declared; a store with none plans from
|
|
330
|
+
// its table exactly as before. See `carrier-shipping.ts`.
|
|
331
|
+
const shippingPlan = hasPhysicalLine ? await planCheckoutShippingWithCarriers({
|
|
332
|
+
hostId,
|
|
333
|
+
settings: storeSettings.get('shipping'),
|
|
334
|
+
cart: {
|
|
335
|
+
subtotalCents: itemsCents,
|
|
336
|
+
totalGrams
|
|
337
|
+
},
|
|
338
|
+
destination: {
|
|
339
|
+
country: body.shippingCountry,
|
|
340
|
+
postalCode: body.shippingPostalCode
|
|
341
|
+
}
|
|
342
|
+
}) : {
|
|
304
343
|
countries: CommerceModel.CHECKOUT_SHIPPING_COUNTRIES,
|
|
305
344
|
options: []
|
|
306
345
|
};
|
|
346
|
+
if (shippingPlan.needsPostalCode) {
|
|
347
|
+
return res.status(400).json({
|
|
348
|
+
error: CARRIER_POSTAL_CODE_MESSAGE,
|
|
349
|
+
needsShippingCountry: true,
|
|
350
|
+
needsShippingPostalCode: true,
|
|
351
|
+
shippingCountries: [
|
|
352
|
+
...CommerceModel.CHECKOUT_SHIPPING_COUNTRIES
|
|
353
|
+
]
|
|
354
|
+
});
|
|
355
|
+
}
|
|
307
356
|
// The shopper is asked, then the answer is ENFORCED (AGL-1721): a declared
|
|
308
357
|
// destination narrows `allowed_countries` to itself, so the rate resolved
|
|
309
358
|
// for it is the only one on the session and no other address can be
|
|
@@ -338,6 +387,43 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
338
387
|
error: CommerceModel.CART_UNPRICEABLE_SHIPPING_MESSAGE
|
|
339
388
|
});
|
|
340
389
|
}
|
|
390
|
+
// OPTIONAL LINES THE BUYER TICKED (AGL-3635) — package protection — asked
|
|
391
|
+
// of core's checkout-extras seam AGAIN here, never taken from the request:
|
|
392
|
+
// the body names which offers, the provider names the price. Above the
|
|
393
|
+
// claim, so a refusal keeps the key. An offer the buyer ticked that is no
|
|
394
|
+
// longer made refuses rather than selling without it: they asked for
|
|
395
|
+
// cover, and a parcel that silently has none is the worse surprise.
|
|
396
|
+
const chosenExtras = readChosenCheckoutExtras(body.extras);
|
|
397
|
+
const chargedExtras = chosenExtras.length ? (await quoteCartExtras({
|
|
398
|
+
hostId,
|
|
399
|
+
lines: extrasLines,
|
|
400
|
+
destination: {
|
|
401
|
+
country: body.shippingCountry,
|
|
402
|
+
postalCode: body.shippingPostalCode
|
|
403
|
+
}
|
|
404
|
+
})).filter((extra)=>chosenExtras.includes(extra.id)) : [];
|
|
405
|
+
if (chargedExtras.length !== chosenExtras.length) {
|
|
406
|
+
return res.status(409).json({
|
|
407
|
+
error: CHECKOUT_EXTRA_UNAVAILABLE_MESSAGE,
|
|
408
|
+
extrasChanged: true
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
const extrasCents = checkoutExtrasCents(chargedExtras);
|
|
412
|
+
// Each as its own line after the goods, untaxed (`txcd_00000000`, Stripe's
|
|
413
|
+
// nontaxable code) and outside every per-line tax, engine and fee loop
|
|
414
|
+
// below, which read `cart.lines` only: an extra is not goods, so the
|
|
415
|
+
// platform's take is not charged on it.
|
|
416
|
+
chargedExtras.forEach((extra, offset)=>{
|
|
417
|
+
const index = cart.lines.length + offset;
|
|
418
|
+
params.set(`line_items[${index}][quantity]`, '1');
|
|
419
|
+
params.set(`line_items[${index}][price_data][currency]`, 'usd');
|
|
420
|
+
params.set(`line_items[${index}][price_data][unit_amount]`, String(extra.amountCents));
|
|
421
|
+
params.set(`line_items[${index}][price_data][product_data][name]`, extra.label.slice(0, 120));
|
|
422
|
+
params.set(`line_items[${index}][price_data][product_data][tax_code]`, 'txcd_00000000');
|
|
423
|
+
});
|
|
424
|
+
for (const [key, value] of Object.entries(encodeCheckoutExtrasMetadata(chargedExtras))){
|
|
425
|
+
params.set(`metadata[${key}]`, value);
|
|
426
|
+
}
|
|
341
427
|
chargedItemsCents = itemsCents;
|
|
342
428
|
// Discounts engine (AGL-305): entered codes and automatic
|
|
343
429
|
// promotions from hosts/{id}/discounts; the AGL-96 coupons remain a
|
|
@@ -527,11 +613,11 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
527
613
|
})) : shippingPlan.options;
|
|
528
614
|
// Coupons (AGL-96 semantics): percent off the items total.
|
|
529
615
|
if (couponCode && !resolvedDiscount) {
|
|
530
|
-
var
|
|
616
|
+
var _ref5;
|
|
531
617
|
const couponRef = hostRef.collection('coupons').doc(couponCode);
|
|
532
618
|
const couponSnapshot = await couponRef.get();
|
|
533
619
|
const coupon = couponSnapshot.data();
|
|
534
|
-
const percentOff = Number((
|
|
620
|
+
const percentOff = Number((_ref5 = coupon == null ? void 0 : coupon.percentOff) != null ? _ref5 : 0);
|
|
535
621
|
const expired = (coupon == null ? void 0 : coupon.expiresAtMs) != null && Number(coupon.expiresAtMs) < Date.now();
|
|
536
622
|
if (!coupon || coupon.enabled === false || expired || !(percentOff > 0 && percentOff <= 100)) {
|
|
537
623
|
// Deterministic and retryable — the shopper fixes the code and
|
|
@@ -721,16 +807,61 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
721
807
|
// `application_fee_amount` is fixed at creation), and the manual origin tax
|
|
722
808
|
// rate the lines carry. A store on Stripe Tax is the one residual — its tax
|
|
723
809
|
// is computed inside Stripe after the session is made.
|
|
810
|
+
// The merchant's own tax service, where they connected one (AGL-3631).
|
|
811
|
+
// Asked once, here, because the card-cost estimate just below and the
|
|
812
|
+
// tax lines further down both need its answer. Each line goes over at
|
|
813
|
+
// what Stripe will tax it at — its amount less its share of the session
|
|
814
|
+
// coupon, shared the way Stripe shares it — so the rate derived from
|
|
815
|
+
// the answer reproduces it. Taxed at the store's address, like the store's
|
|
816
|
+
// own rate: the shopper's address arrives inside Stripe Checkout, after
|
|
817
|
+
// this session exists. When the service does not answer, the store's
|
|
818
|
+
// rate stands and the order says so.
|
|
819
|
+
const cartEngineLines = cart.lines.map((line, index)=>{
|
|
820
|
+
var _params_get;
|
|
821
|
+
const unitCents = Number((_params_get = params.get(`line_items[${index}][price_data][unit_amount]`)) != null ? _params_get : NaN);
|
|
822
|
+
return {
|
|
823
|
+
index,
|
|
824
|
+
line,
|
|
825
|
+
amountCents: Number.isFinite(unitCents) ? unitCents * line.quantity : 0
|
|
826
|
+
};
|
|
827
|
+
}).filter((entry)=>entry.amountCents > 0);
|
|
828
|
+
const cartEngineDiscounts = allocateCentsByWeight(Math.max(0, itemsCents - chargedItemsCents), cartEngineLines.map((entry)=>entry.amountCents));
|
|
829
|
+
const cartEngineNet = cartEngineLines.map((entry, position)=>entry.amountCents - cartEngineDiscounts[position]);
|
|
830
|
+
const engineTax = chargedItemsCents > 0 ? await quoteSaleTaxWithEngine({
|
|
831
|
+
hostId,
|
|
832
|
+
settings: (_storeSettings_get = storeSettings.get('tax')) != null ? _storeSettings_get : {},
|
|
833
|
+
channel: 'online',
|
|
834
|
+
lines: cartEngineLines.map((entry, position)=>{
|
|
835
|
+
var _productsById_get;
|
|
836
|
+
return _extends({
|
|
837
|
+
id: String(entry.index),
|
|
838
|
+
productId: entry.line.productId
|
|
839
|
+
}, entry.line.variantId ? {
|
|
840
|
+
variantId: entry.line.variantId
|
|
841
|
+
} : {}, {
|
|
842
|
+
quantity: entry.line.quantity,
|
|
843
|
+
amountCents: cartEngineNet[position]
|
|
844
|
+
}, ((_productsById_get = productsById.get(entry.line.productId)) == null ? void 0 : _productsById_get.taxExempt) ? {
|
|
845
|
+
exempt: true
|
|
846
|
+
} : {});
|
|
847
|
+
}),
|
|
848
|
+
customerEmail: email || null
|
|
849
|
+
}) : {
|
|
850
|
+
quote: null,
|
|
851
|
+
stamp: null
|
|
852
|
+
};
|
|
724
853
|
if (chargedItemsCents > 0) {
|
|
725
|
-
var
|
|
854
|
+
var _storeSettings_get2, _cartTaxSettings_origin;
|
|
726
855
|
const shippingCeilingCents = shippingOptions.reduce((most, option)=>{
|
|
727
856
|
var _option_amountCents;
|
|
728
857
|
return Math.max(most, Math.max(0, Number((_option_amountCents = option.amountCents) != null ? _option_amountCents : 0)));
|
|
729
858
|
}, 0);
|
|
730
|
-
const cartTaxSettings = (
|
|
859
|
+
const cartTaxSettings = (_storeSettings_get2 = storeSettings.get('tax')) != null ? _storeSettings_get2 : {};
|
|
731
860
|
const manualRate = cartTaxSettings.mode === 'manual' && !cartTaxSettings.pricesIncludeTax ? CommerceModel.resolveTaxRate(cartTaxSettings, (_cartTaxSettings_origin = cartTaxSettings.origin) != null ? _cartTaxSettings_origin : {}) : null;
|
|
732
861
|
const manualTaxPct = manualRate && manualRate.pct > 0 ? manualRate.pct : 0;
|
|
733
|
-
const chargeCents = chargedItemsCents +
|
|
862
|
+
const chargeCents = chargedItemsCents + // Stripe's cost on the extras is a real cost of this charge, passed
|
|
863
|
+
// through at cost like the rest; no take is added on them (AGL-3635).
|
|
864
|
+
extrasCents + (engineTax.quote ? engineTax.quote.taxCents : Math.round(chargedItemsCents * manualTaxPct / 100)) + shippingCeilingCents;
|
|
734
865
|
feeCents = Math.min(chargeCents, feeCents + Aglyn.saleProcessingCostCents(chargeCents));
|
|
735
866
|
}
|
|
736
867
|
// THE CONNECT SPLIT IS EMITTED BELOW, NOT HERE (AGL-1956). It used to be
|
|
@@ -768,7 +899,7 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
768
899
|
// `automatic_tax.enabled` stays false on a manual sale, so
|
|
769
900
|
// `storefront-tax.ts` still classifies it `manual` and it is never summed
|
|
770
901
|
// into the Aglyn-liable figure (AGL-1904).
|
|
771
|
-
const taxSettings = (
|
|
902
|
+
const taxSettings = (_storeSettings_get1 = storeSettings.get('tax')) != null ? _storeSettings_get1 : {};
|
|
772
903
|
// AGL-1999: an unset tax mode is NOT a decision, and it must not sell.
|
|
773
904
|
// `mode` was `undefined` for every store whose owner never opened the
|
|
774
905
|
// Taxes card — the default state of every new storefront — and each
|
|
@@ -808,6 +939,44 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
808
939
|
}
|
|
809
940
|
if (taxDecision.kind === 'stripe-automatic') {
|
|
810
941
|
params.set('automatic_tax[enabled]', 'true');
|
|
942
|
+
} else if (engineTax.quote) {
|
|
943
|
+
// The tax service's cents per line as one rate per line (AGL-3631),
|
|
944
|
+
// applied after the coupon exactly like the store's own rate below. One
|
|
945
|
+
// Tax Rate per distinct percentage, cached under the host like the
|
|
946
|
+
// store's, so a store's usual rates are minted once.
|
|
947
|
+
const engineAnswer = new Map(engineTax.quote.lines.map((line)=>[
|
|
948
|
+
line.id,
|
|
949
|
+
line.taxCents
|
|
950
|
+
]));
|
|
951
|
+
const percentages = engineLineTaxPercentages(cartEngineLines.map((entry, position)=>{
|
|
952
|
+
var _engineAnswer_get;
|
|
953
|
+
return {
|
|
954
|
+
amountCents: cartEngineNet[position],
|
|
955
|
+
taxCents: (_engineAnswer_get = engineAnswer.get(String(entry.index))) != null ? _engineAnswer_get : 0
|
|
956
|
+
};
|
|
957
|
+
}), 0);
|
|
958
|
+
for(let position = 0; position < cartEngineLines.length; position++){
|
|
959
|
+
const pct = percentages[position];
|
|
960
|
+
if (pct === null) continue;
|
|
961
|
+
const taxRateId = await resolveManualTaxRateId({
|
|
962
|
+
hostRef,
|
|
963
|
+
taxPct: pct,
|
|
964
|
+
taxLabel: 'Sales tax',
|
|
965
|
+
headers: stripeKeyHeader(`tax-rate-engine-${Math.round(pct * 10000)}`)
|
|
966
|
+
});
|
|
967
|
+
if (!taxRateId) {
|
|
968
|
+
// The same visible refusal as the store's own rate: never an
|
|
969
|
+
// untaxed session.
|
|
970
|
+
await releaseGiftCardHold();
|
|
971
|
+
await releasePromotionHolds();
|
|
972
|
+
await releaseStock();
|
|
973
|
+
await claim.release();
|
|
974
|
+
return res.status(502).json({
|
|
975
|
+
error: 'Checkout failed'
|
|
976
|
+
});
|
|
977
|
+
}
|
|
978
|
+
params.set(`line_items[${cartEngineLines[position].index}][tax_rates][0]`, taxRateId);
|
|
979
|
+
}
|
|
811
980
|
} else if (taxSettings.mode === 'manual' && !taxSettings.pricesIncludeTax) {
|
|
812
981
|
var _taxSettings_origin;
|
|
813
982
|
// Origin-based, exactly as buy-now resolves it: the cart collects the
|
|
@@ -858,12 +1027,13 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
858
1027
|
// The site's own page, never a header's say-so (AGL-3363): a caller
|
|
859
1028
|
// writes `Referer` and `Host`, and this URL is where Stripe sends the
|
|
860
1029
|
// payer — and what the receipt's download links are built from.
|
|
1030
|
+
const returnSite = await readSiteReturnHost(hostRef);
|
|
861
1031
|
const backUrl = siteReturnUrl({
|
|
862
1032
|
candidates: [
|
|
863
1033
|
String((_req_headers_referer = req.headers.referer) != null ? _req_headers_referer : ''),
|
|
864
1034
|
`https://${req.headers.host}`
|
|
865
1035
|
],
|
|
866
|
-
site:
|
|
1036
|
+
site: returnSite,
|
|
867
1037
|
requestHost: String((_req_headers_host = req.headers.host) != null ? _req_headers_host : '')
|
|
868
1038
|
});
|
|
869
1039
|
const separator = backUrl.includes('?') ? '&' : '?';
|
|
@@ -891,10 +1061,19 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
891
1061
|
accountId: String(accountId),
|
|
892
1062
|
feeCents,
|
|
893
1063
|
taxOwner: cartTaxOwner,
|
|
894
|
-
|
|
1064
|
+
// The extras are the merchant's to keep and remit (AGL-3635).
|
|
1065
|
+
merchantGoodsCents: chargedItemsCents + extrasCents,
|
|
895
1066
|
shippingFloorCents: cartShippingFloorCents
|
|
896
1067
|
})).forEach(([key, value])=>params.set(key, value));
|
|
897
1068
|
params.set('metadata[type]', 'commerce-cart');
|
|
1069
|
+
for (const [key, value] of Object.entries(taxEngineSessionMetadata(engineTax.stamp))){
|
|
1070
|
+
params.set(key, value);
|
|
1071
|
+
}
|
|
1072
|
+
// The postal code live carrier rates were quoted for (AGL-3612), so the
|
|
1073
|
+
// order can show it beside the address the shopper then entered.
|
|
1074
|
+
if (shippingPlan.quotedPostalCode) {
|
|
1075
|
+
params.set('metadata[shippingQuotePostalCode]', shippingPlan.quotedPostalCode);
|
|
1076
|
+
}
|
|
898
1077
|
params.set('metadata[hostId]', hostId);
|
|
899
1078
|
params.set('metadata[cartId]', cartId);
|
|
900
1079
|
params.set('metadata[feeCents]', String(Math.max(0, feeCents)));
|
|
@@ -905,7 +1084,7 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
905
1084
|
if (cartTaxOwner === 'platform') {
|
|
906
1085
|
params.set('metadata[transferCents]', String(CommerceModel.platformLiableTransferCents({
|
|
907
1086
|
feeCents,
|
|
908
|
-
merchantGoodsCents: chargedItemsCents,
|
|
1087
|
+
merchantGoodsCents: chargedItemsCents + extrasCents,
|
|
909
1088
|
shippingFloorCents: cartShippingFloorCents
|
|
910
1089
|
})));
|
|
911
1090
|
params.set('metadata[transferShippingCents]', String(cartShippingFloorCents));
|
|
@@ -923,6 +1102,10 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
923
1102
|
// the SESSION is what bounds it; see `CHECKOUT_SESSION_TTL_MS` for why the
|
|
924
1103
|
// figure is 31 minutes and not Stripe's advertised 30-minute floor.
|
|
925
1104
|
params.set('expires_at', String(Math.floor((Date.now() + CommerceModel.CHECKOUT_SESSION_TTL_MS) / 1000)));
|
|
1105
|
+
// The payment methods the merchant switched off (AGL-3629): exclusions
|
|
1106
|
+
// only, on the hosted page and the in-page one alike.
|
|
1107
|
+
const paymentMethodControls = CommerceModel.resolveStorefrontPaymentMethodControls(CommerceModel.normalizeStorefrontPaymentMethodSettings(storeSettings.get('paymentMethods')));
|
|
1108
|
+
CommerceModel.appendStorefrontPaymentMethodParams(params, paymentMethodControls);
|
|
926
1109
|
// The Payment Element (AGL-1944), LAST and touching nothing above it. Every
|
|
927
1110
|
// figure the shopper is charged — line prices, the discount coupon, the tax
|
|
928
1111
|
// construction, the shipping rates, the fee — was decided before this line
|
|
@@ -933,12 +1116,19 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
933
1116
|
if (nativeMode.native) {
|
|
934
1117
|
applyNativeCheckoutParams(params, `${backUrl}${separator}order=success&session_id={CHECKOUT_SESSION_ID}`);
|
|
935
1118
|
}
|
|
1119
|
+
// Apple Pay shows on a registered domain only (AGL-3629): registered
|
|
1120
|
+
// beside the session create, inside a budget, never failing the sale.
|
|
1121
|
+
const domainRegistration = nativeMode.native ? ensureCheckoutDomain({
|
|
1122
|
+
pageUrl: backUrl,
|
|
1123
|
+
site: returnSite,
|
|
1124
|
+
hostId
|
|
1125
|
+
}).catch(()=>null) : Promise.resolve(null);
|
|
936
1126
|
const response = await fetch('https://api.stripe.com/v1/checkout/sessions', {
|
|
937
1127
|
method: 'POST',
|
|
938
1128
|
headers: _extends({
|
|
939
1129
|
Authorization: `Bearer ${process.env.STRIPE_SECRET_KEY}`,
|
|
940
1130
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|
941
|
-
}, stripeKeyHeader('session'), nativeCheckoutStripeHeaders(nativeMode)),
|
|
1131
|
+
}, stripeKeyHeader(`${engineTax.stamp ? `session-tax-${(_ref3 = (_engineTax_quote = engineTax.quote) == null ? void 0 : _engineTax_quote.taxCents) != null ? _ref3 : 'own'}-${engineTax.stamp.status}` : 'session'}${extrasCents > 0 ? `-x${extrasCents}` : ''}`), nativeCheckoutStripeHeaders(nativeMode)),
|
|
942
1132
|
body: params.toString()
|
|
943
1133
|
});
|
|
944
1134
|
const session = await response.json();
|
|
@@ -946,7 +1136,8 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
946
1136
|
// so it moves with the mode (AGL-1944) — otherwise every successful native
|
|
947
1137
|
// session reads as a Stripe failure: a 502 at the shopper, a released claim,
|
|
948
1138
|
// and a real Checkout Session left open on the merchant's account.
|
|
949
|
-
|
|
1139
|
+
await domainRegistration;
|
|
1140
|
+
const payload = response.ok ? readCheckoutSessionPayload(session, nativeMode, paymentMethodControls.wallets) : null;
|
|
950
1141
|
if (!payload) {
|
|
951
1142
|
console.error('Stripe cart checkout error', session.error);
|
|
952
1143
|
// The checkout did not happen — hand the key back so one flaky moment
|
|
@@ -992,6 +1183,19 @@ import { applyNativeCheckoutParams, nativeCheckoutStripeHeaders, readCheckoutSes
|
|
|
992
1183
|
}),
|
|
993
1184
|
createdAtMs: Date.now()
|
|
994
1185
|
})).catch(()=>undefined);
|
|
1186
|
+
// The fact a merchant's own email platform starts an abandoned-cart flow
|
|
1187
|
+
// from (AGL-3639); nothing subscribes unless a site connected one.
|
|
1188
|
+
if (email) {
|
|
1189
|
+
await raiseCheckoutStarted(String(hostId), {
|
|
1190
|
+
id: String(session.id),
|
|
1191
|
+
email,
|
|
1192
|
+
marketingOptIn,
|
|
1193
|
+
currency: 'usd',
|
|
1194
|
+
itemsCents,
|
|
1195
|
+
resumeUrl: backUrl != null ? backUrl : null,
|
|
1196
|
+
items: startedItems
|
|
1197
|
+
});
|
|
1198
|
+
}
|
|
995
1199
|
await claim.record(200, payload);
|
|
996
1200
|
return res.status(200).json(payload);
|
|
997
1201
|
} catch (error) {
|