@pisell/pisellos 2.2.244 → 2.2.246
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/dist/model/strategy/adapter/promotion/evaluator.js +3 -2
- package/dist/model/strategy/adapter/walletPass/utils.js +7 -4
- package/dist/modules/BookingContext/index.d.ts +48 -0
- package/dist/modules/BookingContext/index.js +566 -0
- package/dist/modules/BookingContext/types.d.ts +102 -0
- package/dist/modules/BookingContext/types.js +51 -0
- package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
- package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +284 -0
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +148 -0
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +218 -0
- package/dist/modules/BookingContext/utils/flexible.d.ts +28 -0
- package/dist/modules/BookingContext/utils/flexible.js +56 -0
- package/dist/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
- package/dist/modules/BookingContext/utils/formatResourceList.js +38 -0
- package/dist/modules/BookingContext/utils/index.d.ts +11 -0
- package/dist/modules/BookingContext/utils/index.js +11 -0
- package/dist/modules/BookingContext/utils/noResource.d.ts +13 -0
- package/dist/modules/BookingContext/utils/noResource.js +77 -0
- package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
- package/dist/modules/BookingContext/utils/orderLineDisplay.js +36 -0
- package/dist/modules/BookingContext/utils/productExtend.d.ts +72 -0
- package/dist/modules/BookingContext/utils/productExtend.js +339 -0
- package/dist/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
- package/dist/modules/BookingContext/utils/resourceErrors.js +74 -0
- package/dist/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
- package/dist/modules/BookingContext/utils/resourceSelection.js +24 -0
- package/dist/modules/BookingContext/utils/resources.d.ts +80 -0
- package/dist/modules/BookingContext/utils/resources.js +486 -0
- package/dist/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
- package/dist/modules/BookingContext/utils/serviceTimes.js +151 -0
- package/dist/modules/BookingContext/utils/timeSlices.d.ts +42 -0
- package/dist/modules/BookingContext/utils/timeSlices.js +100 -0
- package/dist/modules/Cart/utils/cartProduct.js +24 -3
- package/dist/modules/Cart/utils/changePrice.js +11 -11
- package/dist/modules/Customer/index.d.ts +20 -0
- package/dist/modules/Customer/index.js +172 -83
- package/dist/modules/Customer/types.d.ts +2 -0
- package/dist/modules/Discount/index.d.ts +1 -1
- package/dist/modules/Discount/index.js +13 -6
- package/dist/modules/Discount/types.d.ts +1 -0
- package/dist/modules/OpenData/index.d.ts +8 -0
- package/dist/modules/OpenData/index.js +37 -17
- package/dist/modules/Order/index.d.ts +277 -18
- package/dist/modules/Order/index.js +3581 -779
- package/dist/modules/Order/types.d.ts +286 -31
- package/dist/modules/Order/types.js +38 -0
- package/dist/modules/Order/utils/manualProductDiscount.d.ts +106 -0
- package/dist/modules/Order/utils/manualProductDiscount.js +210 -0
- package/dist/modules/Order/utils.d.ts +147 -5
- package/dist/modules/Order/utils.js +750 -104
- package/dist/modules/Payment/index.d.ts +10 -13
- package/dist/modules/Payment/index.js +467 -837
- package/dist/modules/Payment/types.d.ts +2 -0
- package/dist/modules/Payment/utils.js +2 -1
- package/dist/modules/Payment/walletpass.js +41 -25
- package/dist/modules/ProductList/index.d.ts +16 -12
- package/dist/modules/ProductList/index.js +133 -59
- package/dist/modules/ProductList/types.d.ts +14 -0
- package/dist/modules/Quotation/index.d.ts +0 -1
- package/dist/modules/Quotation/index.js +25 -22
- package/dist/modules/Rules/index.d.ts +4 -0
- package/dist/modules/Rules/index.js +97 -70
- package/dist/modules/Rules/types.d.ts +1 -0
- package/dist/modules/SalesSummary/index.d.ts +8 -25
- package/dist/modules/SalesSummary/index.js +86 -35
- package/dist/modules/SalesSummary/types.d.ts +4 -1
- package/dist/modules/SalesSummary/utils.d.ts +2 -25
- package/dist/modules/SalesSummary/utils.js +794 -162
- package/dist/modules/Schedule/index.d.ts +7 -0
- package/dist/modules/Schedule/index.js +24 -2
- package/dist/modules/Summary/index.js +4 -3
- package/dist/modules/SurchargeList/index.d.ts +16 -0
- package/dist/modules/SurchargeList/index.js +162 -0
- package/dist/modules/SurchargeList/types.d.ts +11 -0
- package/dist/modules/SurchargeList/types.js +1 -0
- package/dist/modules/index.d.ts +2 -0
- package/dist/modules/index.js +3 -1
- package/dist/plugins/request.d.ts +1 -0
- package/dist/server/index.d.ts +204 -1
- package/dist/server/index.js +3654 -922
- package/dist/server/modules/index.d.ts +2 -0
- package/dist/server/modules/index.js +2 -0
- package/dist/server/modules/order/index.d.ts +120 -3
- package/dist/server/modules/order/index.js +1762 -448
- package/dist/server/modules/order/types.d.ts +32 -3
- package/dist/server/modules/order/types.js +8 -0
- package/dist/server/modules/order/utils/filterBookings.js +26 -3
- package/dist/server/modules/order/utils/filterOrders.js +23 -8
- package/dist/server/modules/payment/index.d.ts +28 -0
- package/dist/server/modules/payment/index.js +305 -0
- package/dist/server/modules/payment/types.d.ts +9 -0
- package/dist/server/modules/payment/types.js +1 -0
- package/dist/server/modules/products/index.d.ts +34 -7
- package/dist/server/modules/products/index.js +631 -317
- package/dist/server/modules/resource/index.d.ts +2 -0
- package/dist/server/modules/resource/index.js +29 -3
- package/dist/server/modules/schedule/index.d.ts +4 -4
- package/dist/server/modules/schedule/index.js +111 -88
- package/dist/server/test.json +713 -0
- package/dist/server/utils/small-ticket.d.ts +71 -0
- package/dist/server/utils/small-ticket.js +840 -0
- package/dist/solution/BaseSales/index.d.ts +133 -10
- package/dist/solution/BaseSales/index.js +1950 -447
- package/dist/solution/BaseSales/types.d.ts +82 -6
- package/dist/solution/BaseSales/types.js +5 -4
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +1438 -0
- package/dist/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
- package/dist/solution/BaseSales/utils/quotationPrice.js +237 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +1 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +105 -24
- package/dist/solution/BaseSales/utils.d.ts +1 -1
- package/dist/solution/BaseSales/utils.js +62 -21
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.d.ts +271 -11
- package/dist/solution/BookingTicket/index.js +1777 -242
- package/dist/solution/BookingTicket/types.d.ts +118 -1
- package/dist/solution/BookingTicket/types.js +41 -2
- package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
- package/dist/solution/BookingTicket/utils/addProductDecision.js +346 -0
- package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
- package/dist/solution/BookingTicket/utils/addTimeAvailability.js +95 -0
- package/dist/solution/BookingTicket/utils/bookingStatus.d.ts +40 -0
- package/dist/solution/BookingTicket/utils/bookingStatus.js +70 -0
- package/dist/solution/BookingTicket/utils/cartView.d.ts +9 -1
- package/dist/solution/BookingTicket/utils/cartView.js +94 -7
- package/dist/solution/BookingTicket/utils/exampleData.d.ts +123 -0
- package/dist/solution/BookingTicket/utils/exampleData.js +183 -0
- package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
- package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +438 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +400 -0
- package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
- package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +56 -0
- package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/dist/solution/BookingTicket/utils/scan/index.js +20 -8
- package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
- package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +150 -0
- package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
- package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +78 -0
- package/dist/solution/Checkout/index.d.ts +1 -0
- package/dist/solution/Checkout/index.js +10 -9
- package/dist/solution/RegisterAndLogin/config.js +2 -10
- package/dist/solution/ScanOrder/index.d.ts +9 -3
- package/dist/solution/ScanOrder/index.js +241 -134
- package/dist/solution/ScanOrder/types.d.ts +9 -5
- package/dist/solution/ScanOrder/types.js +2 -3
- package/dist/solution/ScanOrder/utils.d.ts +1 -1
- package/dist/solution/ScanOrder/utils.js +84 -22
- package/dist/solution/VenueBooking/index.d.ts +5 -2
- package/dist/solution/VenueBooking/index.js +110 -59
- package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -2
- package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
- package/dist/solution/VenueBooking/utils/slotMerge.js +10 -0
- package/dist/types/index.d.ts +10 -0
- package/lib/model/strategy/adapter/promotion/evaluator.js +2 -1
- package/lib/model/strategy/adapter/promotion/index.js +49 -0
- package/lib/model/strategy/adapter/walletPass/utils.js +3 -2
- package/lib/modules/BookingContext/index.d.ts +48 -0
- package/lib/modules/BookingContext/index.js +368 -0
- package/lib/modules/BookingContext/types.d.ts +102 -0
- package/lib/modules/BookingContext/types.js +34 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +276 -0
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +154 -0
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +201 -0
- package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
- package/lib/modules/BookingContext/utils/flexible.js +80 -0
- package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
- package/lib/modules/BookingContext/utils/formatResourceList.js +50 -0
- package/lib/modules/BookingContext/utils/index.d.ts +11 -0
- package/lib/modules/BookingContext/utils/index.js +43 -0
- package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
- package/lib/modules/BookingContext/utils/noResource.js +90 -0
- package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +56 -0
- package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
- package/lib/modules/BookingContext/utils/productExtend.js +283 -0
- package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
- package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
- package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
- package/lib/modules/BookingContext/utils/resourceSelection.js +46 -0
- package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
- package/lib/modules/BookingContext/utils/resources.js +377 -0
- package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
- package/lib/modules/BookingContext/utils/serviceTimes.js +162 -0
- package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
- package/lib/modules/BookingContext/utils/timeSlices.js +124 -0
- package/lib/modules/Cart/utils/cartProduct.js +20 -3
- package/lib/modules/Cart/utils/changePrice.js +12 -20
- package/lib/modules/Customer/index.d.ts +20 -0
- package/lib/modules/Customer/index.js +64 -11
- package/lib/modules/Customer/types.d.ts +2 -0
- package/lib/modules/Discount/index.d.ts +1 -1
- package/lib/modules/Discount/index.js +9 -1
- package/lib/modules/Discount/types.d.ts +1 -0
- package/lib/modules/OpenData/index.d.ts +8 -0
- package/lib/modules/OpenData/index.js +19 -5
- package/lib/modules/Order/index.d.ts +277 -18
- package/lib/modules/Order/index.js +2317 -337
- package/lib/modules/Order/types.d.ts +286 -31
- package/lib/modules/Order/types.js +1 -0
- package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
- package/lib/modules/Order/utils/manualProductDiscount.js +206 -0
- package/lib/modules/Order/utils.d.ts +147 -5
- package/lib/modules/Order/utils.js +615 -46
- package/lib/modules/Payment/index.d.ts +10 -13
- package/lib/modules/Payment/index.js +18 -150
- package/lib/modules/Payment/types.d.ts +2 -0
- package/lib/modules/Payment/utils.js +2 -1
- package/lib/modules/Payment/walletpass.js +16 -3
- package/lib/modules/ProductList/index.d.ts +16 -12
- package/lib/modules/ProductList/index.js +41 -4
- package/lib/modules/ProductList/types.d.ts +14 -0
- package/lib/modules/Quotation/index.d.ts +0 -1
- package/lib/modules/Quotation/index.js +19 -16
- package/lib/modules/Rules/index.d.ts +4 -0
- package/lib/modules/Rules/index.js +137 -120
- package/lib/modules/Rules/types.d.ts +1 -0
- package/lib/modules/SalesSummary/index.d.ts +8 -25
- package/lib/modules/SalesSummary/index.js +30 -4
- package/lib/modules/SalesSummary/types.d.ts +4 -1
- package/lib/modules/SalesSummary/utils.d.ts +2 -25
- package/lib/modules/SalesSummary/utils.js +645 -91
- package/lib/modules/Schedule/index.d.ts +7 -0
- package/lib/modules/Schedule/index.js +17 -1
- package/lib/modules/Summary/index.js +5 -4
- package/lib/modules/SurchargeList/index.d.ts +16 -0
- package/lib/modules/SurchargeList/index.js +89 -0
- package/lib/modules/SurchargeList/types.d.ts +11 -0
- package/lib/modules/SurchargeList/types.js +17 -0
- package/lib/modules/index.d.ts +2 -0
- package/lib/modules/index.js +5 -1
- package/lib/plugins/request.d.ts +1 -0
- package/lib/server/index.d.ts +204 -1
- package/lib/server/index.js +1891 -59
- package/lib/server/modules/index.d.ts +2 -0
- package/lib/server/modules/index.js +3 -0
- package/lib/server/modules/order/index.d.ts +120 -3
- package/lib/server/modules/order/index.js +887 -94
- package/lib/server/modules/order/types.d.ts +32 -3
- package/lib/server/modules/order/utils/filterBookings.js +24 -5
- package/lib/server/modules/order/utils/filterOrders.js +15 -6
- package/lib/server/modules/payment/index.d.ts +28 -0
- package/lib/server/modules/payment/index.js +192 -0
- package/lib/server/modules/payment/types.d.ts +9 -0
- package/lib/server/modules/payment/types.js +17 -0
- package/lib/server/modules/products/index.d.ts +34 -7
- package/lib/server/modules/products/index.js +189 -54
- package/lib/server/modules/resource/index.d.ts +2 -0
- package/lib/server/modules/resource/index.js +27 -3
- package/lib/server/modules/schedule/index.d.ts +4 -4
- package/lib/server/modules/schedule/index.js +47 -40
- package/lib/server/test.json +713 -0
- package/lib/server/utils/small-ticket.d.ts +71 -0
- package/lib/server/utils/small-ticket.js +800 -0
- package/lib/solution/BaseSales/index.d.ts +133 -10
- package/lib/solution/BaseSales/index.js +1111 -63
- package/lib/solution/BaseSales/types.d.ts +82 -6
- package/lib/solution/BaseSales/types.js +3 -1
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
- package/lib/solution/BaseSales/utils/cartPromotion.js +992 -0
- package/lib/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
- package/lib/solution/BaseSales/utils/quotationPrice.js +277 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +1 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +106 -18
- package/lib/solution/BaseSales/utils.d.ts +1 -1
- package/lib/solution/BaseSales/utils.js +54 -10
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.d.ts +271 -11
- package/lib/solution/BookingTicket/index.js +922 -29
- package/lib/solution/BookingTicket/types.d.ts +118 -1
- package/lib/solution/BookingTicket/types.js +11 -0
- package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
- package/lib/solution/BookingTicket/utils/addProductDecision.js +318 -0
- package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +125 -0
- package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +40 -0
- package/lib/solution/BookingTicket/utils/bookingStatus.js +44 -2
- package/lib/solution/BookingTicket/utils/cartView.d.ts +9 -1
- package/lib/solution/BookingTicket/utils/cartView.js +61 -6
- package/lib/solution/BookingTicket/utils/exampleData.d.ts +123 -0
- package/lib/solution/BookingTicket/utils/exampleData.js +0 -0
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +254 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +169 -0
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +51 -0
- package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/lib/solution/BookingTicket/utils/scan/index.js +17 -3
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +127 -0
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +85 -0
- package/lib/solution/Checkout/index.d.ts +1 -0
- package/lib/solution/Checkout/index.js +1 -2
- package/lib/solution/RegisterAndLogin/config.js +2 -10
- package/lib/solution/ScanOrder/index.d.ts +9 -3
- package/lib/solution/ScanOrder/index.js +153 -70
- package/lib/solution/ScanOrder/types.d.ts +9 -5
- package/lib/solution/ScanOrder/utils.d.ts +1 -1
- package/lib/solution/ScanOrder/utils.js +83 -17
- package/lib/solution/VenueBooking/index.d.ts +5 -2
- package/lib/solution/VenueBooking/index.js +54 -17
- package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -2
- package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
- package/lib/solution/VenueBooking/utils/slotMerge.js +10 -0
- package/lib/types/index.d.ts +10 -0
- package/package.json +1 -1
- package/dist/solution/Checkout/appointmentDemo.json +0 -1
- package/lib/solution/Checkout/appointmentDemo.json +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OrderModule, ProductList, SalesSummaryModule, ScanOrderLoggerModule as BaseSalesLoggerModule, ScheduleModule } from '../../modules';
|
|
1
|
+
import { OrderModule, ProductList, QuotationModule, SalesSummaryModule, ScanOrderLoggerModule as BaseSalesLoggerModule, ScheduleModule } from '../../modules';
|
|
2
2
|
import type { ScanOrderLogInput as BaseSalesLogInput, ScanOrderLoggerProviderConfig as BaseSalesLoggerProviderConfig, ScanOrderLoggerProviderType as BaseSalesLoggerProviderType } from '../../modules/ScanOrderLogger/types';
|
|
3
3
|
import type { QuantityCheckResult, QuantityLimitResult } from '../../model/strategy/adapter/itemRule';
|
|
4
4
|
/**
|
|
@@ -11,6 +11,8 @@ export declare const BaseSalesHookNames: {
|
|
|
11
11
|
readonly onRetryInit: "onRetryInit";
|
|
12
12
|
readonly onRefresh: "onRefresh";
|
|
13
13
|
readonly onCartValidationChanged: "onCartValidationChanged";
|
|
14
|
+
readonly onPaymentSyncStart: "onPaymentSyncStart";
|
|
15
|
+
readonly onPaymentSyncEnd: "onPaymentSyncEnd";
|
|
14
16
|
};
|
|
15
17
|
export type BaseSalesHookName = typeof BaseSalesHookNames[keyof typeof BaseSalesHookNames];
|
|
16
18
|
export declare function createBaseSalesHook(moduleName: string, hookName: BaseSalesHookName): string;
|
|
@@ -39,13 +41,23 @@ export interface BaseSalesOrderProductIdentity {
|
|
|
39
41
|
identity_key?: string;
|
|
40
42
|
unique_identification_number?: string;
|
|
41
43
|
/** 参与合并/匹配;与 remove 通配语义见 isSkuOnlyDeleteIdentity */
|
|
42
|
-
|
|
44
|
+
product_sku?: BaseSalesProductSku;
|
|
43
45
|
product_bundle?: any[];
|
|
44
46
|
}
|
|
47
|
+
export interface BaseSalesProductSku {
|
|
48
|
+
option: any[];
|
|
49
|
+
[key: string]: any;
|
|
50
|
+
}
|
|
51
|
+
export interface BaseSalesLocalizedText {
|
|
52
|
+
[locale: string]: string | null;
|
|
53
|
+
}
|
|
54
|
+
export interface BaseSalesUpdateOrderProductQuantityParams extends BaseSalesOrderProductIdentity {
|
|
55
|
+
num: number;
|
|
56
|
+
}
|
|
45
57
|
export interface BaseSalesOrderProduct extends BaseSalesOrderProductIdentity {
|
|
46
58
|
order_detail_id: number | null;
|
|
47
59
|
num: number;
|
|
48
|
-
|
|
60
|
+
product_sku: BaseSalesProductSku;
|
|
49
61
|
/**
|
|
50
62
|
* 券后 **行 composite 单价** = `metadata.main_product_selling_price`
|
|
51
63
|
* + Σ((bundle.bundle_selling_price ?? bundle.price) × (bundle.num ?? 1))
|
|
@@ -69,6 +81,8 @@ export interface BaseSalesOrderProduct extends BaseSalesOrderProductIdentity {
|
|
|
69
81
|
product_bundle: any[];
|
|
70
82
|
/** 关联 booking.metadata.unique_identification_number */
|
|
71
83
|
booking_uid?: string;
|
|
84
|
+
/** 多语言商品标题快照,随 tempOrder 提交到 checkout。 */
|
|
85
|
+
product_title?: BaseSalesLocalizedText;
|
|
72
86
|
/**
|
|
73
87
|
* 行级扩展 metadata。价格相关的权威字段:
|
|
74
88
|
*
|
|
@@ -91,9 +105,8 @@ export interface BaseSalesOrderProduct extends BaseSalesOrderProductIdentity {
|
|
|
91
105
|
* 出站 payload 版本的商品行。
|
|
92
106
|
*
|
|
93
107
|
* 与 tempOrder 内部 `BaseSalesOrderProduct` 的字段差异:
|
|
94
|
-
* - `
|
|
95
|
-
*
|
|
96
|
-
* (后端 checkout 协议;丢弃 `price` 等运行时辅助字段)。
|
|
108
|
+
* - `product_sku.option[*]`:内部直接维护统一 Sales 协议字段;
|
|
109
|
+
* 提交时仅规范 `add_price`,保留传入/恢复得到的展示字段。
|
|
97
110
|
* - `product_bundle[*].option[*]`:同上重命名规则。
|
|
98
111
|
*
|
|
99
112
|
* 运行时(UI 显示、加购合并、指纹、持久化)与提交边界统一消费字段名
|
|
@@ -118,11 +131,13 @@ export interface BaseSalesSummary {
|
|
|
118
131
|
shipping_tax_fee: string;
|
|
119
132
|
tax_fee: string;
|
|
120
133
|
surcharge_fee: string;
|
|
134
|
+
surcharges?: any[];
|
|
121
135
|
discount_amount: string;
|
|
122
136
|
deposit_amount: string;
|
|
123
137
|
deposit?: {
|
|
124
138
|
total: string;
|
|
125
139
|
deposit_policy_ids: number[];
|
|
140
|
+
deposit_policy_data?: any[];
|
|
126
141
|
hasDeposit: boolean;
|
|
127
142
|
};
|
|
128
143
|
expect_amount: string;
|
|
@@ -203,6 +218,66 @@ export interface BaseSalesSubmitPayload extends Omit<BaseSalesTempOrder, 'platfo
|
|
|
203
218
|
}>;
|
|
204
219
|
products: BaseSalesSubmitProduct[];
|
|
205
220
|
}
|
|
221
|
+
export interface BaseSalesQuotationDurationConfig {
|
|
222
|
+
type: string;
|
|
223
|
+
value: number;
|
|
224
|
+
flexible_config?: {
|
|
225
|
+
is_enable_minimum_duration?: 0 | 1;
|
|
226
|
+
warning_threshold?: number;
|
|
227
|
+
block_threshold?: number;
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
export interface BaseSalesCalculateProductBookingPriceParams {
|
|
231
|
+
product: Record<string, any>;
|
|
232
|
+
booking?: {
|
|
233
|
+
start_date?: string;
|
|
234
|
+
start_time?: string;
|
|
235
|
+
end_date?: string;
|
|
236
|
+
end_time?: string;
|
|
237
|
+
[key: string]: any;
|
|
238
|
+
};
|
|
239
|
+
duration?: BaseSalesQuotationDurationConfig;
|
|
240
|
+
customer_id?: number | string;
|
|
241
|
+
fallback_price?: number | string;
|
|
242
|
+
datetime?: string;
|
|
243
|
+
channel?: string;
|
|
244
|
+
}
|
|
245
|
+
export type BaseSalesProductBookingPriceSegmentSource = 'quotation' | 'fallback';
|
|
246
|
+
export interface BaseSalesProductBookingPriceSegment {
|
|
247
|
+
start_datetime: string;
|
|
248
|
+
end_datetime?: string;
|
|
249
|
+
time_point: string;
|
|
250
|
+
unit_price: string;
|
|
251
|
+
quantity: number;
|
|
252
|
+
total_price: string;
|
|
253
|
+
quotation_shelf_id: number;
|
|
254
|
+
source: BaseSalesProductBookingPriceSegmentSource;
|
|
255
|
+
}
|
|
256
|
+
export interface BaseSalesBundleProductBookingPriceResult {
|
|
257
|
+
bundle_id?: number;
|
|
258
|
+
group_id?: number;
|
|
259
|
+
bundle_group_id?: number;
|
|
260
|
+
bundle_product_id: number | null;
|
|
261
|
+
bundle_variant_id: number;
|
|
262
|
+
unit_price: string;
|
|
263
|
+
total_price: string;
|
|
264
|
+
quantity: number;
|
|
265
|
+
quotation_shelf_id: number;
|
|
266
|
+
source: BaseSalesProductBookingPriceSegmentSource;
|
|
267
|
+
segments: BaseSalesProductBookingPriceSegment[];
|
|
268
|
+
}
|
|
269
|
+
export interface BaseSalesProductBookingPriceResult {
|
|
270
|
+
product_id: number | null;
|
|
271
|
+
product_variant_id: number;
|
|
272
|
+
customer_id?: number | string;
|
|
273
|
+
unit_price: string;
|
|
274
|
+
total_price: string;
|
|
275
|
+
quantity: number;
|
|
276
|
+
duration?: BaseSalesQuotationDurationConfig;
|
|
277
|
+
quotation_shelf_id: number;
|
|
278
|
+
segments: BaseSalesProductBookingPriceSegment[];
|
|
279
|
+
product_bundle?: BaseSalesBundleProductBookingPriceResult[];
|
|
280
|
+
}
|
|
206
281
|
export type BaseSalesAvailabilityMode = 'idle' | 'shop_closed' | 'submit_disabled' | 'resource_busy' | 'additional_order_with_code' | 'additional_order';
|
|
207
282
|
export interface BaseSalesTableFormRecord {
|
|
208
283
|
policy?: string | null;
|
|
@@ -281,6 +356,7 @@ export interface BaseSalesState {
|
|
|
281
356
|
error: string | null;
|
|
282
357
|
products?: ProductList;
|
|
283
358
|
order?: OrderModule;
|
|
359
|
+
quotation?: QuotationModule;
|
|
284
360
|
salesSummary?: SalesSummaryModule;
|
|
285
361
|
baseSalesLogger?: BaseSalesLoggerModule;
|
|
286
362
|
schedule?: ScheduleModule;
|
|
@@ -28,7 +28,9 @@ var BaseSalesHookNames = {
|
|
|
28
28
|
onDestroy: "onDestroy",
|
|
29
29
|
onRetryInit: "onRetryInit",
|
|
30
30
|
onRefresh: "onRefresh",
|
|
31
|
-
onCartValidationChanged: "onCartValidationChanged"
|
|
31
|
+
onCartValidationChanged: "onCartValidationChanged",
|
|
32
|
+
onPaymentSyncStart: "onPaymentSyncStart",
|
|
33
|
+
onPaymentSyncEnd: "onPaymentSyncEnd"
|
|
32
34
|
};
|
|
33
35
|
function createBaseSalesHook(moduleName, hookName) {
|
|
34
36
|
return `${moduleName}:${hookName}`;
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import type { OrderProduct } from '../../../modules/Order/types';
|
|
2
|
+
/**
|
|
3
|
+
* Cart promotion 工具集(OS 内部纯函数)
|
|
4
|
+
*
|
|
5
|
+
* 这是 `private-materials/components/booking/hooks/usePromotion.ts` 中促销/赠品
|
|
6
|
+
* 核心计算(evaluator → 拆分 / 计价 → 赠品差异化 / 未满足提示 / 标签)的 OS 等价实现。
|
|
7
|
+
*
|
|
8
|
+
* 与 legacy 的关键差异:
|
|
9
|
+
* - legacy 操作 booking `_extend.*` 形状;OS 操作 `OrderProduct.metadata.*` 形状。
|
|
10
|
+
* - 行唯一标识不再用 `_id`,统一改用 `metadata.unique_identification_number`。
|
|
11
|
+
* - 赠品标签存到 `metadata._giftInfo`;主商品促销信息存到 `metadata._promotion`;
|
|
12
|
+
* 商品卡列表的促销 tag 存到 `metadata._promotionTags`。
|
|
13
|
+
*
|
|
14
|
+
* 仅暴露纯函数,不持有任何状态;评估器以参数注入。
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* const evaluator = appHelper.utils.promotionEvaluator;
|
|
18
|
+
* const result = processCartPromotion(tempOrder.products, evaluator);
|
|
19
|
+
* // result.products: 处理后的商品(带 _promotion / 拆分)
|
|
20
|
+
* // result.giftActions: 需要 add / reduce / remove 的赠品操作
|
|
21
|
+
* // result.unfulfilledPromotions: 未满足策略列表(购物车底部 alert)
|
|
22
|
+
*/
|
|
23
|
+
/** Cart 评估器协议(只描述本文件用到的方法,避免循环依赖) */
|
|
24
|
+
export interface CartPromotionEvaluator {
|
|
25
|
+
evaluateCartWithPricing(input: {
|
|
26
|
+
products: any[];
|
|
27
|
+
channel?: string;
|
|
28
|
+
}): {
|
|
29
|
+
products: Array<{
|
|
30
|
+
id: number;
|
|
31
|
+
originalId?: number;
|
|
32
|
+
product_id: number;
|
|
33
|
+
product_variant_id: number;
|
|
34
|
+
quantity: number;
|
|
35
|
+
price: number;
|
|
36
|
+
finalPrice: number;
|
|
37
|
+
strategyId?: string;
|
|
38
|
+
strategyMetadata?: any;
|
|
39
|
+
inPromotion: boolean;
|
|
40
|
+
isSplit?: boolean;
|
|
41
|
+
matchedBundleIndex?: number;
|
|
42
|
+
bundle?: any[];
|
|
43
|
+
_originalItem?: any;
|
|
44
|
+
_originalId?: string;
|
|
45
|
+
_originalIndex?: number;
|
|
46
|
+
}>;
|
|
47
|
+
gifts: Array<{
|
|
48
|
+
strategyId: string;
|
|
49
|
+
strategyName: string | Record<string, string>;
|
|
50
|
+
giftCount: number;
|
|
51
|
+
giftOptions: Array<{
|
|
52
|
+
product_id: number;
|
|
53
|
+
product_variant_id: number;
|
|
54
|
+
}>;
|
|
55
|
+
}>;
|
|
56
|
+
totalDiscount: number;
|
|
57
|
+
};
|
|
58
|
+
getProductsApplicableStrategies(input: {
|
|
59
|
+
products: any[];
|
|
60
|
+
channel?: string;
|
|
61
|
+
}, matchVariant?: boolean): Array<{
|
|
62
|
+
product: any;
|
|
63
|
+
applicableStrategies: Array<{
|
|
64
|
+
strategyId: string;
|
|
65
|
+
strategyName: string | Record<string, string>;
|
|
66
|
+
strategyMetadata: any;
|
|
67
|
+
actionType: string;
|
|
68
|
+
actionDetail: any;
|
|
69
|
+
display?: {
|
|
70
|
+
text: string | Record<string, string>;
|
|
71
|
+
type: string;
|
|
72
|
+
};
|
|
73
|
+
requiredQuantity: number;
|
|
74
|
+
eligibleProducts: Array<{
|
|
75
|
+
product_id: number;
|
|
76
|
+
product_variant_id: number;
|
|
77
|
+
}>;
|
|
78
|
+
}>;
|
|
79
|
+
hasApplicableStrategy: boolean;
|
|
80
|
+
}>;
|
|
81
|
+
}
|
|
82
|
+
/** 单个赠品减量项 */
|
|
83
|
+
export interface GiftReduceItem {
|
|
84
|
+
/** 赠品行的 `metadata.unique_identification_number` */
|
|
85
|
+
uid: string;
|
|
86
|
+
currentQuantity: number;
|
|
87
|
+
/** 目标数量(>0;==0 走 toRemove) */
|
|
88
|
+
newQuantity: number;
|
|
89
|
+
}
|
|
90
|
+
/** 赠品新增项 */
|
|
91
|
+
export interface GiftToAddAction {
|
|
92
|
+
strategyId: string;
|
|
93
|
+
strategyName: string | Record<string, string>;
|
|
94
|
+
giftCount: number;
|
|
95
|
+
giftOptions: Array<{
|
|
96
|
+
product_id: number;
|
|
97
|
+
product_variant_id: number;
|
|
98
|
+
}>;
|
|
99
|
+
/** 触发此赠品的主商品 uid 列表 */
|
|
100
|
+
sourceProductIds: string[];
|
|
101
|
+
}
|
|
102
|
+
/** 赠品操作集合(OS 侧根据它落地 tempOrder.products) */
|
|
103
|
+
export interface GiftActions {
|
|
104
|
+
toAdd: GiftToAddAction[];
|
|
105
|
+
toReduce: Array<{
|
|
106
|
+
strategyId: string;
|
|
107
|
+
items: GiftReduceItem[];
|
|
108
|
+
}>;
|
|
109
|
+
/** 需要删除的赠品 uid 列表 */
|
|
110
|
+
toRemove: string[];
|
|
111
|
+
}
|
|
112
|
+
/** 未满足促销提示项(购物车底部 alert 数据源) */
|
|
113
|
+
export interface UnfulfilledPromotion {
|
|
114
|
+
strategyId: string;
|
|
115
|
+
strategyName: string | Record<string, string>;
|
|
116
|
+
actionType: string;
|
|
117
|
+
/** 还差几件 */
|
|
118
|
+
needQuantity: number;
|
|
119
|
+
/** 当前已选几件 */
|
|
120
|
+
currentQuantity: number;
|
|
121
|
+
/** 凑齐促销所需件数 */
|
|
122
|
+
requiredQuantity: number;
|
|
123
|
+
/** 可参与本促销的商品列表 */
|
|
124
|
+
eligibleProducts: Array<{
|
|
125
|
+
product_id: number;
|
|
126
|
+
product_variant_id: number;
|
|
127
|
+
}>;
|
|
128
|
+
strategyMetadata?: any;
|
|
129
|
+
display?: {
|
|
130
|
+
text: string | Record<string, string>;
|
|
131
|
+
type: string;
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/** 商品卡促销标签结构(写入 `metadata._promotionTags`) */
|
|
135
|
+
export interface PromotionTag {
|
|
136
|
+
text: string | Record<string, string>;
|
|
137
|
+
type: string;
|
|
138
|
+
strategyId?: string;
|
|
139
|
+
}
|
|
140
|
+
/** processCartPromotion 输出 */
|
|
141
|
+
export interface ProcessCartPromotionResult {
|
|
142
|
+
/** 处理后的商品列表(含拆分行、_promotion / _giftInfo 元数据) */
|
|
143
|
+
products: OrderProduct[];
|
|
144
|
+
totalDiscount: number;
|
|
145
|
+
gifts: Array<GiftToAddAction>;
|
|
146
|
+
giftActions: GiftActions;
|
|
147
|
+
unfulfilledPromotions: UnfulfilledPromotion[];
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* 获取商品的「主商品基础价」用于评估器入参。
|
|
151
|
+
*
|
|
152
|
+
* 优先级(与 OS v2 schema 一致):
|
|
153
|
+
* 1. `metadata.source_product_price`
|
|
154
|
+
* 2. `metadata.main_product_original_price` 减去 option 合计
|
|
155
|
+
* 3. `original_price`
|
|
156
|
+
*/
|
|
157
|
+
export declare function getOrderProductBasePrice(product: any): number;
|
|
158
|
+
/**
|
|
159
|
+
* 促销均摊专用原价(对齐 legacy `getMainOriginalPrice` 语义)。
|
|
160
|
+
*
|
|
161
|
+
* 必须用券前原价做 X_ITEMS_FOR_Y_PRICE 比例拆分;`source_product_price` 在上一轮 applyPromotion
|
|
162
|
+
* 后可能已被写成促销价(如 5 / 9 / 1),若继续用它会导致同商品两行出现 9+1 而非 5+5。
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* getOrderProductOriginalPriceForPromotion({ metadata: { source_product_price: '9', main_product_original_price: '5.80' } });
|
|
166
|
+
* // => 5.8
|
|
167
|
+
*/
|
|
168
|
+
export declare function getOrderProductOriginalPriceForPromotion(product: any): number;
|
|
169
|
+
/**
|
|
170
|
+
* 合并「同商品 + 同规格指纹 + 同促销策略 + 同促销单价」的参与促销行(num 累加)。
|
|
171
|
+
* 避免 Browse Items 连续加购同款时拆成多行且单价被错误均摊。
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* mergeIdenticalPromotionCartLines(processedProducts);
|
|
175
|
+
*/
|
|
176
|
+
export declare function mergeIdenticalPromotionCartLines(products: any[]): any[];
|
|
177
|
+
/** 获取行 uid(统一以 `metadata.unique_identification_number` 为唯一键) */
|
|
178
|
+
export declare function getOrderProductUid(product: any): string;
|
|
179
|
+
/**
|
|
180
|
+
* 促销评估前合并同 SKU 拆分行(含促销/原价行),避免加购后仅前 2 件享受优惠。
|
|
181
|
+
* 带 `booking_uid` 的预约行不参与合并(每次加车独立 booking + 商品行)。
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* consolidateMainProductsForPromotion([
|
|
185
|
+
* { item: promoLineNum2, originalListIndex: 0 },
|
|
186
|
+
* { item: regularLineNum2, originalListIndex: 1 },
|
|
187
|
+
* ]);
|
|
188
|
+
* // => 单行 num=4,清除 _promotion 后重新评估
|
|
189
|
+
*/
|
|
190
|
+
export declare function buildConsolidateKeyForPromotion(item: any): string;
|
|
191
|
+
/**
|
|
192
|
+
* 从策略配置的 product_match 规则提取可参与商品列表。
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* extractProductMatchIdentifiersFromStrategyConfig(strategyConfig);
|
|
196
|
+
* // => [{ product_id: 60736, product_variant_id: 0 }]
|
|
197
|
+
*/
|
|
198
|
+
export declare function extractProductMatchIdentifiersFromStrategyConfig(strategyConfig: any): Array<{
|
|
199
|
+
product_id: number;
|
|
200
|
+
product_variant_id: number;
|
|
201
|
+
}>;
|
|
202
|
+
/**
|
|
203
|
+
* 解析策略凑单所需件数(evaluator 原始返回可能不含 requiredQuantity)。
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* resolveStrategyRequiredQuantity({ actionType: 'X_ITEMS_FOR_Y_PRICE', actionDetail: { x: 2 } });
|
|
207
|
+
*/
|
|
208
|
+
export declare function resolveStrategyRequiredQuantity(matched: {
|
|
209
|
+
requiredQuantity?: number;
|
|
210
|
+
actionType?: string;
|
|
211
|
+
actionDetail?: any;
|
|
212
|
+
}): number;
|
|
213
|
+
/**
|
|
214
|
+
* 解析 Browse Items 弹窗候选商品(优先 eligibleProducts,否则读 strategyConfig)。
|
|
215
|
+
*
|
|
216
|
+
* @example
|
|
217
|
+
* resolveStrategyEligibleProducts(matchedStrategy);
|
|
218
|
+
*/
|
|
219
|
+
export declare function resolveStrategyEligibleProducts(matched: {
|
|
220
|
+
eligibleProducts?: Array<{
|
|
221
|
+
product_id: number;
|
|
222
|
+
product_variant_id: number;
|
|
223
|
+
}>;
|
|
224
|
+
strategyConfig?: any;
|
|
225
|
+
}): Array<{
|
|
226
|
+
product_id: number;
|
|
227
|
+
product_variant_id: number;
|
|
228
|
+
}>;
|
|
229
|
+
/**
|
|
230
|
+
* 计算未满足促销条件(用于购物车底部「再买 N 件即可享受 XX」alert)。
|
|
231
|
+
*
|
|
232
|
+
* 数据源:商品的 `metadata._promotion.inPromotion === false`(来自 processCartPromotion
|
|
233
|
+
* 第 8 步追加的「有适用策略但当前未参与促销」标记)。
|
|
234
|
+
*/
|
|
235
|
+
export declare function calculateUnfulfilledPromotions(processedProducts: any[], applicableStrategiesResult: Array<{
|
|
236
|
+
applicableStrategies: Array<{
|
|
237
|
+
strategyId: string;
|
|
238
|
+
strategyName: string | Record<string, string>;
|
|
239
|
+
strategyMetadata: any;
|
|
240
|
+
actionType: string;
|
|
241
|
+
requiredQuantity?: number;
|
|
242
|
+
eligibleProducts?: Array<{
|
|
243
|
+
product_id: number;
|
|
244
|
+
product_variant_id: number;
|
|
245
|
+
}>;
|
|
246
|
+
actionDetail?: any;
|
|
247
|
+
strategyConfig?: any;
|
|
248
|
+
display?: {
|
|
249
|
+
text: string | Record<string, string>;
|
|
250
|
+
type: string;
|
|
251
|
+
};
|
|
252
|
+
}>;
|
|
253
|
+
hasApplicableStrategy: boolean;
|
|
254
|
+
}>, mainProducts: any[]): UnfulfilledPromotion[];
|
|
255
|
+
/**
|
|
256
|
+
* 给商品列表追加促销标签(写入 `metadata._promotionTags`),供 ProductCard 渲染。
|
|
257
|
+
*
|
|
258
|
+
* - 没有适用策略的商品会清除 `_promotionTags`(避免脏数据)。
|
|
259
|
+
* - 仅基于 product_id 匹配(matchVariant=false),与商品卡通用场景对齐。
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* const list = appendPromotionTags(catalog, evaluator);
|
|
263
|
+
* // list[i].metadata._promotionTags = [{ text, type, strategyId }]
|
|
264
|
+
*/
|
|
265
|
+
export declare function appendPromotionTags<T extends Record<string, any>>(products: T[], evaluator: CartPromotionEvaluator | null | undefined): T[];
|
|
266
|
+
/**
|
|
267
|
+
* 处理购物车的促销计算与赠品差异化。
|
|
268
|
+
*
|
|
269
|
+
* 流程:
|
|
270
|
+
* 1. 分离 main / gift / edit-product 三类(带 `booking_id` 的编辑态商品不参与促销)
|
|
271
|
+
* 2. 转 PromotionProduct 喂评估器 → 拿到 `evaluateCartWithPricing` 与 `getProductsApplicableStrategies`
|
|
272
|
+
* 3. 把 PricedProduct 映射回 OrderProduct 形态:
|
|
273
|
+
* - 参与促销的,写 `metadata._promotion` + 调整 `selling_price` / `main_product_selling_price`
|
|
274
|
+
* - 拆分的,生成新 uid,复制原行其它字段
|
|
275
|
+
* 4. 计算 `_giftInfo` 挂主商品(每个策略首个主商品)
|
|
276
|
+
* 5. 计算 `giftActions`(toAdd / toReduce / toRemove)
|
|
277
|
+
* 6. 计算 `unfulfilledPromotions`
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* const { products, giftActions, unfulfilledPromotions } = processCartPromotion(
|
|
281
|
+
* tempOrder.products,
|
|
282
|
+
* evaluator,
|
|
283
|
+
* );
|
|
284
|
+
*/
|
|
285
|
+
export declare function processCartPromotion(list: OrderProduct[] | null | undefined, evaluator: CartPromotionEvaluator | null | undefined, options?: {
|
|
286
|
+
channel?: string;
|
|
287
|
+
}): ProcessCartPromotionResult;
|