@pisell/pisellos 2.2.71 → 2.2.73

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.
Files changed (47) hide show
  1. package/dist/model/strategy/adapter/index.d.ts +2 -0
  2. package/dist/model/strategy/adapter/index.js +2 -1
  3. package/dist/model/strategy/adapter/promotion/adapter.d.ts +66 -0
  4. package/dist/model/strategy/adapter/promotion/adapter.js +271 -0
  5. package/dist/model/strategy/adapter/promotion/evaluator.d.ts +213 -0
  6. package/dist/model/strategy/adapter/promotion/evaluator.js +1210 -0
  7. package/dist/model/strategy/adapter/promotion/examples.d.ts +138 -0
  8. package/dist/model/strategy/adapter/promotion/examples.js +166 -0
  9. package/dist/model/strategy/adapter/promotion/index.d.ts +4 -0
  10. package/dist/model/strategy/adapter/promotion/index.js +0 -0
  11. package/dist/model/strategy/adapter/promotion/type.d.ts +447 -0
  12. package/dist/model/strategy/adapter/promotion/type.js +209 -0
  13. package/dist/model/strategy/adapter/walletPass/evaluator.js +4 -1
  14. package/dist/model/strategy/engine.d.ts +106 -0
  15. package/dist/model/strategy/engine.js +611 -0
  16. package/dist/model/strategy/index.d.ts +2 -93
  17. package/dist/model/strategy/index.js +6 -549
  18. package/dist/modules/BaseModule.d.ts +4 -0
  19. package/dist/modules/BaseModule.js +5 -0
  20. package/dist/modules/Product/index.d.ts +1 -1
  21. package/dist/modules/Rules/index.d.ts +1 -0
  22. package/dist/modules/Rules/index.js +52 -23
  23. package/dist/solution/BookingTicket/index.d.ts +1 -1
  24. package/lib/model/strategy/adapter/index.d.ts +2 -0
  25. package/lib/model/strategy/adapter/index.js +6 -0
  26. package/lib/model/strategy/adapter/promotion/adapter.d.ts +66 -0
  27. package/lib/model/strategy/adapter/promotion/adapter.js +217 -0
  28. package/lib/model/strategy/adapter/promotion/evaluator.d.ts +213 -0
  29. package/lib/model/strategy/adapter/promotion/evaluator.js +846 -0
  30. package/lib/model/strategy/adapter/promotion/examples.d.ts +138 -0
  31. package/lib/model/strategy/adapter/promotion/examples.js +192 -0
  32. package/lib/model/strategy/adapter/promotion/index.d.ts +4 -0
  33. package/lib/model/strategy/adapter/promotion/index.js +0 -0
  34. package/lib/model/strategy/adapter/promotion/type.d.ts +447 -0
  35. package/lib/model/strategy/adapter/promotion/type.js +51 -0
  36. package/lib/model/strategy/adapter/walletPass/evaluator.js +2 -1
  37. package/lib/model/strategy/engine.d.ts +106 -0
  38. package/lib/model/strategy/engine.js +450 -0
  39. package/lib/model/strategy/index.d.ts +2 -93
  40. package/lib/model/strategy/index.js +6 -381
  41. package/lib/modules/BaseModule.d.ts +4 -0
  42. package/lib/modules/BaseModule.js +3 -0
  43. package/lib/modules/Product/index.d.ts +1 -1
  44. package/lib/modules/Rules/index.d.ts +1 -0
  45. package/lib/modules/Rules/index.js +35 -19
  46. package/lib/solution/BookingTicket/index.d.ts +1 -1
  47. package/package.json +1 -1
@@ -0,0 +1,138 @@
1
+ /**
2
+ * X件Y元策略配置示例
3
+ *
4
+ * 业务规则:
5
+ * - 每X件商品固定价格Y元(可累计)
6
+ * - 支持跨商品组合(A+B可以凑成一组)
7
+ * - 买5件 = 2组优惠 + 1件原价
8
+ *
9
+ * 商品匹配规则:
10
+ * - product_variant_id = 0 表示匹配任意变体
11
+ * - product_variant_id != 0 表示精确匹配该变体
12
+ */
13
+ export declare const X_ITEMS_FOR_Y_PRICE_STRATEGY: {
14
+ metadata: {
15
+ id: string;
16
+ name: {
17
+ en: string;
18
+ 'zh-CN': string;
19
+ 'zh-HK': string;
20
+ };
21
+ type: string;
22
+ custom: {
23
+ display: {
24
+ product_card: {
25
+ text: {
26
+ en: string;
27
+ 'zh-CN': string;
28
+ 'zh-HK': string;
29
+ };
30
+ type: string;
31
+ };
32
+ };
33
+ };
34
+ };
35
+ conditions: {
36
+ operator: string;
37
+ rules: ({
38
+ type: string;
39
+ field: string;
40
+ value: string;
41
+ operator: string;
42
+ } | {
43
+ type: string;
44
+ field: string;
45
+ value: {
46
+ product_id: number;
47
+ product_variant_id: number;
48
+ }[];
49
+ operator: string;
50
+ })[];
51
+ actionIds: string[];
52
+ };
53
+ actions: {
54
+ id: string;
55
+ type: string;
56
+ value: {
57
+ x: number;
58
+ price: number;
59
+ };
60
+ valueType: string;
61
+ target: string;
62
+ priority: number;
63
+ config: {
64
+ allowCrossProduct: boolean;
65
+ cumulative: boolean;
66
+ };
67
+ }[];
68
+ };
69
+ /**
70
+ * 买X送Y策略配置示例
71
+ *
72
+ * 业务规则:
73
+ * - 买X件送Y件(可累计:买2送2、买3送3...)
74
+ * - 赠品由用户从列表中选择
75
+ *
76
+ * 商品匹配规则:
77
+ * - product_variant_id = 0 表示匹配任意变体
78
+ * - product_variant_id != 0 表示精确匹配该变体
79
+ */
80
+ export declare const BUY_X_GET_Y_FREE_STRATEGY: {
81
+ metadata: {
82
+ id: string;
83
+ name: {
84
+ en: string;
85
+ 'zh-CN': string;
86
+ 'zh-HK': string;
87
+ };
88
+ type: string;
89
+ custom: {
90
+ display: {
91
+ product_card: {
92
+ text: {
93
+ en: string;
94
+ 'zh-CN': string;
95
+ 'zh-HK': string;
96
+ };
97
+ type: string;
98
+ };
99
+ };
100
+ };
101
+ };
102
+ conditions: {
103
+ operator: string;
104
+ rules: ({
105
+ type: string;
106
+ field: string;
107
+ value: string;
108
+ operator: string;
109
+ } | {
110
+ type: string;
111
+ field: string;
112
+ value: {
113
+ product_id: number;
114
+ product_variant_id: number;
115
+ }[];
116
+ operator: string;
117
+ })[];
118
+ actionIds: string[];
119
+ };
120
+ actions: {
121
+ id: string;
122
+ type: string;
123
+ value: {
124
+ buyQuantity: number;
125
+ freeQuantity: number;
126
+ };
127
+ valueType: string;
128
+ target: string;
129
+ priority: number;
130
+ config: {
131
+ cumulative: boolean;
132
+ giftProducts: {
133
+ product_id: number;
134
+ product_variant_id: number;
135
+ }[];
136
+ };
137
+ }[];
138
+ };
@@ -0,0 +1,166 @@
1
+ /**
2
+ * X件Y元策略配置示例
3
+ *
4
+ * 业务规则:
5
+ * - 每X件商品固定价格Y元(可累计)
6
+ * - 支持跨商品组合(A+B可以凑成一组)
7
+ * - 买5件 = 2组优惠 + 1件原价
8
+ *
9
+ * 商品匹配规则:
10
+ * - product_variant_id = 0 表示匹配任意变体
11
+ * - product_variant_id != 0 表示精确匹配该变体
12
+ */
13
+ export var X_ITEMS_FOR_Y_PRICE_STRATEGY = {
14
+ metadata: {
15
+ id: 'STRATEGY_001',
16
+ name: {
17
+ en: '2 items for $10',
18
+ 'zh-CN': '2杯10元',
19
+ 'zh-HK': '2杯10元'
20
+ },
21
+ type: 'promotion',
22
+ custom: {
23
+ display: {
24
+ product_card: {
25
+ text: {
26
+ en: '2 for $10',
27
+ 'zh-CN': '2杯10元',
28
+ 'zh-HK': '2杯10元'
29
+ },
30
+ type: 'tag'
31
+ }
32
+ }
33
+ }
34
+ },
35
+ conditions: {
36
+ operator: 'and',
37
+ rules: [{
38
+ type: 'operator',
39
+ field: 'currentDateTime',
40
+ value: '2023-01-01 00:00:00',
41
+ operator: '>='
42
+ }, {
43
+ type: 'operator',
44
+ field: 'currentDateTime',
45
+ value: '2027-01-01 00:00:00',
46
+ operator: '<='
47
+ }, {
48
+ type: 'operator',
49
+ field: 'productIdAndVariantId',
50
+ value: [{
51
+ product_id: 60736,
52
+ product_variant_id: 0 // 0 = 匹配任意变体
53
+ }, {
54
+ product_id: 60737,
55
+ product_variant_id: 0 // 0 = 匹配任意变体
56
+ }],
57
+ operator: 'product_match'
58
+ }],
59
+ actionIds: ['1']
60
+ },
61
+ actions: [{
62
+ id: '1',
63
+ type: 'X_ITEMS_FOR_Y_PRICE',
64
+ value: {
65
+ x: 2,
66
+ // 每X件
67
+ price: 10 // 固定价格Y元
68
+ },
69
+ valueType: 'object',
70
+ target: 'product',
71
+ priority: 1,
72
+ config: {
73
+ allowCrossProduct: true,
74
+ // 允许跨商品组合(A+B可以凑成一组)
75
+ cumulative: true // 可累计(买5件 = 2组优惠 + 1件原价)
76
+ }
77
+ }]
78
+ };
79
+
80
+ /**
81
+ * 买X送Y策略配置示例
82
+ *
83
+ * 业务规则:
84
+ * - 买X件送Y件(可累计:买2送2、买3送3...)
85
+ * - 赠品由用户从列表中选择
86
+ *
87
+ * 商品匹配规则:
88
+ * - product_variant_id = 0 表示匹配任意变体
89
+ * - product_variant_id != 0 表示精确匹配该变体
90
+ */
91
+ export var BUY_X_GET_Y_FREE_STRATEGY = {
92
+ metadata: {
93
+ id: 'STRATEGY_002',
94
+ name: {
95
+ en: 'Buy 1 Get 1 Free',
96
+ 'zh-CN': '买1送1',
97
+ 'zh-HK': '買1送1'
98
+ },
99
+ type: 'promotion',
100
+ custom: {
101
+ display: {
102
+ product_card: {
103
+ text: {
104
+ en: 'Buy 1 Get 1',
105
+ 'zh-CN': '买1送1',
106
+ 'zh-HK': '買1送1'
107
+ },
108
+ type: 'tag'
109
+ }
110
+ }
111
+ }
112
+ },
113
+ conditions: {
114
+ operator: 'and',
115
+ rules: [{
116
+ type: 'operator',
117
+ field: 'currentDateTime',
118
+ value: '2023-01-01 00:00:00',
119
+ operator: '>='
120
+ }, {
121
+ type: 'operator',
122
+ field: 'currentDateTime',
123
+ value: '2027-01-01 00:00:00',
124
+ operator: '<='
125
+ }, {
126
+ type: 'operator',
127
+ field: 'productIdAndVariantId',
128
+ value: [{
129
+ product_id: 60736,
130
+ product_variant_id: 0 // 0 = 匹配任意变体
131
+ }, {
132
+ product_id: 60737,
133
+ product_variant_id: 0 // 0 = 匹配任意变体
134
+ }],
135
+ operator: 'product_match'
136
+ }],
137
+ actionIds: ['1']
138
+ },
139
+ actions: [{
140
+ id: '1',
141
+ type: 'BUY_X_GET_Y_FREE',
142
+ value: {
143
+ buyQuantity: 1,
144
+ // 买X件
145
+ freeQuantity: 1 // 送Y件
146
+ },
147
+ valueType: 'object',
148
+ target: 'product',
149
+ priority: 1,
150
+ config: {
151
+ // 可累计(买2送2、买3送3...)
152
+ cumulative: true,
153
+ // 可选的赠品列表
154
+ giftProducts: [{
155
+ product_id: 60757,
156
+ product_variant_id: 0
157
+ }, {
158
+ product_id: 38782,
159
+ product_variant_id: 0
160
+ }, {
161
+ product_id: 60749,
162
+ product_variant_id: 27267
163
+ }]
164
+ }
165
+ }]
166
+ };
@@ -0,0 +1,4 @@
1
+ export { PromotionEvaluator } from './evaluator';
2
+ export { PromotionAdapter } from './adapter';
3
+ export { default } from './adapter';
4
+ export { X_ITEMS_FOR_Y_PRICE_STRATEGY, BUY_X_GET_Y_FREE_STRATEGY, } from './examples';
File without changes