@pisell/pisellos 2.3.20 → 2.3.21
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/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +16 -10
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +2 -1
- package/dist/modules/Order/index.js +14 -6
- package/dist/modules/Order/types.d.ts +1 -0
- package/dist/modules/Order/utils.js +10 -2
- package/dist/modules/Product/index.d.ts +1 -1
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.js +392 -253
- package/dist/server/modules/order/types.d.ts +2 -0
- package/dist/server/modules/products/index.d.ts +5 -1
- package/dist/server/modules/products/index.js +383 -315
- package/dist/server/modules/products/types.d.ts +4 -0
- package/dist/solution/BaseSales/index.js +144 -127
- package/dist/solution/BaseSales/types.d.ts +2 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +3 -1
- package/dist/solution/BookingByStep/index.d.ts +2 -2
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +5 -0
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +1 -0
- package/lib/modules/Order/index.js +21 -7
- package/lib/modules/Order/types.d.ts +1 -0
- package/lib/modules/Order/utils.js +10 -1
- package/lib/modules/Product/index.d.ts +1 -1
- package/lib/server/index.d.ts +4 -0
- package/lib/server/index.js +83 -2
- package/lib/server/modules/order/types.d.ts +2 -0
- package/lib/server/modules/products/index.d.ts +5 -1
- package/lib/server/modules/products/index.js +20 -0
- package/lib/server/modules/products/types.d.ts +4 -0
- package/lib/solution/BaseSales/index.js +40 -22
- package/lib/solution/BaseSales/types.d.ts +2 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +2 -0
- package/lib/solution/BookingByStep/index.d.ts +2 -2
- package/package.json +1 -1
|
@@ -121,6 +121,10 @@ function resolveProductTitle(product, booking, sourceProduct) {
|
|
|
121
121
|
var metadata = product.metadata || {};
|
|
122
122
|
return (_ref = (_ref2 = (_ref3 = (_ref4 = (_ref5 = (_title = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title) !== null && _title !== void 0 ? _title : sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.name) !== null && _ref5 !== void 0 ? _ref5 : metadata.product_title) !== null && _ref4 !== void 0 ? _ref4 : metadata.product_name) !== null && _ref3 !== void 0 ? _ref3 : booking === null || booking === void 0 || (_booking$product = booking.product) === null || _booking$product === void 0 ? void 0 : _booking$product.title) !== null && _ref2 !== void 0 ? _ref2 : booking === null || booking === void 0 || (_booking$detail = booking.detail) === null || _booking$detail === void 0 ? void 0 : _booking$detail.product_title) !== null && _ref !== void 0 ? _ref : '';
|
|
123
123
|
}
|
|
124
|
+
function resolveProductCover(product, booking, sourceProduct) {
|
|
125
|
+
var _ref6, _cover;
|
|
126
|
+
return (_ref6 = (_cover = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.cover) !== null && _cover !== void 0 ? _cover : product.product_cover) !== null && _ref6 !== void 0 ? _ref6 : '';
|
|
127
|
+
}
|
|
124
128
|
function resolveMainProductPrice(product, fallback) {
|
|
125
129
|
var _metadata$main_produc;
|
|
126
130
|
var metadata = product.metadata || {};
|
|
@@ -130,9 +134,9 @@ function resolveMainProductPrice(product, fallback) {
|
|
|
130
134
|
}
|
|
131
135
|
function mapOrderBundleToOtherBundle(bundle) {
|
|
132
136
|
return bundle.map(function (item) {
|
|
133
|
-
var
|
|
137
|
+
var _ref7, _item$original_price;
|
|
134
138
|
return _objectSpread(_objectSpread({}, item), {}, {
|
|
135
|
-
original_price: (
|
|
139
|
+
original_price: (_ref7 = (_item$original_price = item.original_price) !== null && _item$original_price !== void 0 ? _item$original_price : item.bundle_selling_price) !== null && _ref7 !== void 0 ? _ref7 : item.price
|
|
136
140
|
});
|
|
137
141
|
});
|
|
138
142
|
}
|
|
@@ -163,10 +167,10 @@ function synthesizeProductResourceFromBooking(booking) {
|
|
|
163
167
|
});
|
|
164
168
|
if (relationIdsByForm.size === 0) return undefined;
|
|
165
169
|
return {
|
|
166
|
-
resources: Array.from(relationIdsByForm.entries()).map(function (
|
|
167
|
-
var
|
|
168
|
-
formId =
|
|
169
|
-
relationIds =
|
|
170
|
+
resources: Array.from(relationIdsByForm.entries()).map(function (_ref8) {
|
|
171
|
+
var _ref9 = _slicedToArray(_ref8, 2),
|
|
172
|
+
formId = _ref9[0],
|
|
173
|
+
relationIds = _ref9[1];
|
|
170
174
|
return {
|
|
171
175
|
id: formId,
|
|
172
176
|
status: 1,
|
|
@@ -186,7 +190,7 @@ function synthesizeProductResourceFromBooking(booking) {
|
|
|
186
190
|
* 调用方须传入与该行关联的 booking(通常 bookings[].product_uid === product.metadata.unique_identification_number)。
|
|
187
191
|
*/
|
|
188
192
|
export function buildCacheItemFromOrderLine(input) {
|
|
189
|
-
var _product$product_id, _product$selling_pric, _product$original_pri, _booking$metadata$hol, _booking$metadata2, _product$product_vari, _product$num,
|
|
193
|
+
var _product$product_id, _product$selling_pric, _product$original_pri, _booking$metadata$hol, _booking$metadata2, _product$product_vari, _product$num, _ref10, _product$note, _booking$detail2, _product$metadata, _product$metadata2, _ref11, _extension_type, _booking$product2, _booking$product3, _price, _product$order_detail, _ref12, _booking$id;
|
|
190
194
|
var product = input.product,
|
|
191
195
|
booking = input.booking,
|
|
192
196
|
sourceProduct = input.sourceProduct;
|
|
@@ -202,6 +206,7 @@ export function buildCacheItemFromOrderLine(input) {
|
|
|
202
206
|
var capacity = resolveCapacityFromBooking(booking);
|
|
203
207
|
var holderId = (_booking$metadata$hol = (_booking$metadata2 = booking.metadata) === null || _booking$metadata2 === void 0 ? void 0 : _booking$metadata2.holder_id) !== null && _booking$metadata$hol !== void 0 ? _booking$metadata$hol : booking.holder_id;
|
|
204
208
|
var productTitle = resolveProductTitle(product, booking, sourceProduct);
|
|
209
|
+
var productCover = resolveProductCover(product, booking, sourceProduct);
|
|
205
210
|
var productOptionString = buildProductOptionStringFromOrderLine(product);
|
|
206
211
|
var other = {
|
|
207
212
|
product_variant_id: (_product$product_vari = product.product_variant_id) !== null && _product$product_vari !== void 0 ? _product$product_vari : 0,
|
|
@@ -219,7 +224,8 @@ export function buildCacheItemFromOrderLine(input) {
|
|
|
219
224
|
sub_type: booking.sub_type,
|
|
220
225
|
quantity: (_product$num = product.num) !== null && _product$num !== void 0 ? _product$num : 1,
|
|
221
226
|
product_name: productTitle,
|
|
222
|
-
|
|
227
|
+
product_cover: productCover,
|
|
228
|
+
note: (_ref10 = (_product$note = product.note) !== null && _product$note !== void 0 ? _product$note : booking === null || booking === void 0 || (_booking$detail2 = booking.detail) === null || _booking$detail2 === void 0 ? void 0 : _booking$detail2.note) !== null && _ref10 !== void 0 ? _ref10 : '',
|
|
223
229
|
price: mainProductPrice,
|
|
224
230
|
total: selling,
|
|
225
231
|
origin_total: original,
|
|
@@ -254,7 +260,7 @@ export function buildCacheItemFromOrderLine(input) {
|
|
|
254
260
|
var base = _objectSpread(_objectSpread(_objectSpread({}, sourceProduct || {}), {}, {
|
|
255
261
|
id: resolvedId,
|
|
256
262
|
product_id: resolvedId,
|
|
257
|
-
extension_type: (
|
|
263
|
+
extension_type: (_ref11 = (_extension_type = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.extension_type) !== null && _extension_type !== void 0 ? _extension_type : booking === null || booking === void 0 || (_booking$product2 = booking.product) === null || _booking$product2 === void 0 ? void 0 : _booking$product2.extension_type) !== null && _ref11 !== void 0 ? _ref11 : sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.extension_type,
|
|
258
264
|
title: productTitle || (sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title) || (booking === null || booking === void 0 || (_booking$product3 = booking.product) === null || _booking$product3 === void 0 ? void 0 : _booking$product3.title),
|
|
259
265
|
price: (_price = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.price) !== null && _price !== void 0 ? _price : selling,
|
|
260
266
|
selling_price: product.selling_price,
|
|
@@ -266,7 +272,7 @@ export function buildCacheItemFromOrderLine(input) {
|
|
|
266
272
|
new: 0,
|
|
267
273
|
autoClose: false,
|
|
268
274
|
order_detail_id: (_product$order_detail = product.order_detail_id) !== null && _product$order_detail !== void 0 ? _product$order_detail : null,
|
|
269
|
-
booking_id: (
|
|
275
|
+
booking_id: (_ref12 = (_booking$id = booking.id) !== null && _booking$id !== void 0 ? _booking$id : booking.booking_id) !== null && _ref12 !== void 0 ? _ref12 : 0
|
|
270
276
|
});
|
|
271
277
|
if ((sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.capacity) !== undefined) {
|
|
272
278
|
base.capacity = sourceProduct.capacity;
|
|
@@ -75,7 +75,7 @@ function mapOrderBundleToOtherBundle(bundle) {
|
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
77
|
export function buildNormalProductCacheItemFromOrderLine(input) {
|
|
78
|
-
var _product$product_id, _product$selling_pric2, _product$original_pri, _product$metadata, _product$metadata2, _product$product_vari, _originExtend$other, _product$num, _product$product_vari2, _product$num2, _title, _product$note, _originExtend$price, _originExtend$total, _originExtend$origin_, _product$metadata3, _ref6, _title2, _price3, _product$order_detail;
|
|
78
|
+
var _product$product_id, _product$selling_pric2, _product$original_pri, _product$metadata, _product$metadata2, _product$product_vari, _originExtend$other, _product$num, _product$product_vari2, _product$num2, _title, _product$note, _originExtend$price, _originExtend$total, _originExtend$origin_, _product$metadata3, _ref6, _title2, _ref7, _cover, _price3, _product$order_detail;
|
|
79
79
|
var product = input.product,
|
|
80
80
|
sourceProduct = input.sourceProduct;
|
|
81
81
|
var resolvedId = (_product$product_id = product.product_id) !== null && _product$product_id !== void 0 ? _product$product_id : sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.id;
|
|
@@ -132,6 +132,7 @@ export function buildNormalProductCacheItemFromOrderLine(input) {
|
|
|
132
132
|
product_id: resolvedId,
|
|
133
133
|
_id: uid,
|
|
134
134
|
title: (_ref6 = (_title2 = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title) !== null && _title2 !== void 0 ? _title2 : product.product_title) !== null && _ref6 !== void 0 ? _ref6 : '',
|
|
135
|
+
cover: (_ref7 = (_cover = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.cover) !== null && _cover !== void 0 ? _cover : product.product_cover) !== null && _ref7 !== void 0 ? _ref7 : '',
|
|
135
136
|
price: (_price3 = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.price) !== null && _price3 !== void 0 ? _price3 : sourcePrice,
|
|
136
137
|
selling_price: product.selling_price,
|
|
137
138
|
original_price: product.original_price
|
|
@@ -711,7 +711,6 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
711
711
|
key: "applyDiscount",
|
|
712
712
|
value: function applyDiscount(options) {
|
|
713
713
|
var _this$store$discount9,
|
|
714
|
-
_tempOrder$holder2,
|
|
715
714
|
_this$store$summary2,
|
|
716
715
|
_this2 = this;
|
|
717
716
|
var tempOrder = this.store.tempOrder;
|
|
@@ -726,11 +725,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
726
725
|
if (shouldSkipDiscountCalculation) return;
|
|
727
726
|
var rulesModule = this.store.rules;
|
|
728
727
|
if (!rulesModule) return;
|
|
729
|
-
var holders = ((_tempOrder$holder2 = tempOrder.holder) === null || _tempOrder$holder2 === void 0 ? void 0 : _tempOrder$holder2.form_record) || [];
|
|
730
728
|
var result = rulesModule.calcDiscount({
|
|
731
729
|
productList: tempOrder.products,
|
|
732
730
|
discountList: discountList,
|
|
733
|
-
holders:
|
|
731
|
+
holders: [],
|
|
734
732
|
isFormSubject: function isFormSubject(product) {
|
|
735
733
|
return resolveIsFormSubject(tempOrder, product);
|
|
736
734
|
},
|
|
@@ -2019,13 +2017,21 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2019
2017
|
key: "restoreOriginalSnapshotIfProductsUnchanged",
|
|
2020
2018
|
value: function restoreOriginalSnapshotIfProductsUnchanged(tempOrder, snapshot) {
|
|
2021
2019
|
var currentFingerprint = this.buildOrderProductsFingerprint(tempOrder.products);
|
|
2020
|
+
var manualDepositOverride = this.getManualDepositOverride(tempOrder);
|
|
2022
2021
|
if (currentFingerprint !== snapshot.productFingerprint) {
|
|
2023
2022
|
var currentStructuralFingerprint = this.buildOrderProductsStructuralFingerprint(tempOrder.products);
|
|
2024
2023
|
var snapshotStructuralFingerprint = this.buildOrderProductsStructuralFingerprint(Array.isArray(snapshot.products) ? snapshot.products : []);
|
|
2025
2024
|
if (currentStructuralFingerprint !== snapshotStructuralFingerprint) return null;
|
|
2026
2025
|
}
|
|
2027
2026
|
var summary = _objectSpread(_objectSpread({}, createEmptySummary()), cloneDeep(snapshot.summary || {}));
|
|
2028
|
-
|
|
2027
|
+
var shouldUseManualDepositOverride = Boolean(manualDepositOverride && manualDepositOverride.productStructuralFingerprint === this.buildOrderProductsStructuralFingerprint(tempOrder.products));
|
|
2028
|
+
if (shouldUseManualDepositOverride) {
|
|
2029
|
+
summary = this.applyDepositAmountToSummary(tempOrder, summary, manualDepositOverride.amount);
|
|
2030
|
+
} else if (manualDepositOverride) {
|
|
2031
|
+
this.clearManualDepositOverride(tempOrder);
|
|
2032
|
+
}
|
|
2033
|
+
var isPayableAmountUnchanged = this.isSnapshotPayableAmountUnchanged(tempOrder, snapshot, summary);
|
|
2034
|
+
if (!isPayableAmountUnchanged) return null;
|
|
2029
2035
|
if (Array.isArray(snapshot.products)) {
|
|
2030
2036
|
tempOrder.products = cloneDeep(snapshot.products);
|
|
2031
2037
|
}
|
|
@@ -2526,7 +2532,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2526
2532
|
}, {
|
|
2527
2533
|
key: "buildTempOrderHolderFromBookings",
|
|
2528
2534
|
value: function buildTempOrderHolderFromBookings(tempOrder) {
|
|
2529
|
-
var _baseHolder$customer_, _baseHolder, _ref46, _baseHolder$form_id, _baseHolder2, _tempOrder$
|
|
2535
|
+
var _baseHolder$customer_, _baseHolder, _ref46, _baseHolder$form_id, _baseHolder2, _tempOrder$holder2, _baseHolder3, _this$otherParams;
|
|
2530
2536
|
var holderRecords = [];
|
|
2531
2537
|
var holderNames = [];
|
|
2532
2538
|
var baseHolder = null;
|
|
@@ -2573,7 +2579,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2573
2579
|
}
|
|
2574
2580
|
var nextHolder = {
|
|
2575
2581
|
customer_id: (_baseHolder$customer_ = (_baseHolder = baseHolder) === null || _baseHolder === void 0 ? void 0 : _baseHolder.customer_id) !== null && _baseHolder$customer_ !== void 0 ? _baseHolder$customer_ : tempOrder.customer_id,
|
|
2576
|
-
form_id: (_ref46 = (_baseHolder$form_id = (_baseHolder2 = baseHolder) === null || _baseHolder2 === void 0 ? void 0 : _baseHolder2.form_id) !== null && _baseHolder$form_id !== void 0 ? _baseHolder$form_id : (_tempOrder$
|
|
2582
|
+
form_id: (_ref46 = (_baseHolder$form_id = (_baseHolder2 = baseHolder) === null || _baseHolder2 === void 0 ? void 0 : _baseHolder2.form_id) !== null && _baseHolder$form_id !== void 0 ? _baseHolder$form_id : (_tempOrder$holder2 = tempOrder.holder) === null || _tempOrder$holder2 === void 0 ? void 0 : _tempOrder$holder2.form_id) !== null && _ref46 !== void 0 ? _ref46 : 0,
|
|
2577
2583
|
form_record: holderRecords
|
|
2578
2584
|
};
|
|
2579
2585
|
if (holderNames.length) {
|
|
@@ -5700,6 +5706,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5700
5706
|
if (!existingIdentity) {
|
|
5701
5707
|
row.metadata.unique_identification_number = createUuidV4();
|
|
5702
5708
|
}
|
|
5709
|
+
// 从云端、本地数据库中获取到的商品数据,先打上 runtime 标记,提供给 UI 做 saved items.
|
|
5710
|
+
row.metadata.is_edit_for_runtime = true;
|
|
5703
5711
|
var normalized = normalizeOrderProduct(row);
|
|
5704
5712
|
normalized.discount_list = normalizeOrderProductDiscountList(normalized.discount_list);
|
|
5705
5713
|
var result = _objectSpread(_objectSpread(_objectSpread({}, row), normalized), {}, {
|
|
@@ -924,6 +924,9 @@ function normalizeSubmitProduct(product) {
|
|
|
924
924
|
if (rawMetadata.is_rule !== undefined) {
|
|
925
925
|
cleanMetadata.is_rule = rawMetadata.is_rule;
|
|
926
926
|
}
|
|
927
|
+
if (rawMetadata.holder_config !== undefined) {
|
|
928
|
+
cleanMetadata.holder_config = rawMetadata.holder_config;
|
|
929
|
+
}
|
|
927
930
|
var productSku = _objectSpread(_objectSpread({}, submitProduct.product_sku && _typeof(submitProduct.product_sku) === 'object' ? submitProduct.product_sku : {}), {}, {
|
|
928
931
|
option: formatSubmitOptionItems((_submitProduct$produc = submitProduct.product_sku) === null || _submitProduct$produc === void 0 ? void 0 : _submitProduct$produc.option)
|
|
929
932
|
});
|
|
@@ -1361,11 +1364,16 @@ export function isHolderConfigRequired(holderConfig) {
|
|
|
1361
1364
|
return Number(holderConfig.required) === 1;
|
|
1362
1365
|
}
|
|
1363
1366
|
export function productRequiresFormSubject(tempOrder, product) {
|
|
1367
|
+
var _tempOrder$products, _orderProduct$metadat;
|
|
1368
|
+
var _orderProduct = tempOrder === null || tempOrder === void 0 || (_tempOrder$products = tempOrder.products) === null || _tempOrder$products === void 0 ? void 0 : _tempOrder$products.find(function (item) {
|
|
1369
|
+
return item.metadata.unique_identification_number === product._id || item.product_id === product.id;
|
|
1370
|
+
});
|
|
1364
1371
|
var runtimeOrigin = getRuntimeProductOrigin(tempOrder, product);
|
|
1365
|
-
return isHolderConfigRequired(
|
|
1372
|
+
return isHolderConfigRequired(_orderProduct === null || _orderProduct === void 0 || (_orderProduct$metadat = _orderProduct.metadata) === null || _orderProduct$metadat === void 0 ? void 0 : _orderProduct$metadat.holder_config) || isHolderConfigRequired(runtimeOrigin === null || runtimeOrigin === void 0 ? void 0 : runtimeOrigin.holder_config) || isHolderConfigRequired(product === null || product === void 0 ? void 0 : product.holder_config);
|
|
1366
1373
|
}
|
|
1367
1374
|
export function resolveIsFormSubject(tempOrder, product) {
|
|
1368
1375
|
var _tempOrder$holder;
|
|
1376
|
+
debugger;
|
|
1369
1377
|
// 旧版预约维度的 holder 类型仍然生效;新版则从当前商品 holder_config 判断。
|
|
1370
1378
|
if ((tempOrder === null || tempOrder === void 0 || (_tempOrder$holder = tempOrder.holder) === null || _tempOrder$holder === void 0 ? void 0 : _tempOrder$holder.type) === 'form') return true;
|
|
1371
1379
|
if (product) return productRequiresFormSubject(tempOrder, product);
|
|
@@ -1405,7 +1413,7 @@ export function isEmptyOrderProductDisplayValue(value) {
|
|
|
1405
1413
|
*/
|
|
1406
1414
|
export function mergeOrderProductDisplayFields(previous, next) {
|
|
1407
1415
|
var merged = _objectSpread({}, next);
|
|
1408
|
-
var displayFields = ['product_title', 'product_name', 'product_cover', 'cover', 'variant_title', 'product_sku', 'payment_price'];
|
|
1416
|
+
var displayFields = ['product_title', 'product_name', 'product_cover', 'cover', 'product_cover', 'variant_title', 'product_sku', 'payment_price'];
|
|
1409
1417
|
displayFields.forEach(function (field) {
|
|
1410
1418
|
if (isEmptyOrderProductDisplayValue(merged[field]) && !isEmptyOrderProductDisplayValue(previous[field])) {
|
|
1411
1419
|
merged[field] = previous[field];
|
|
@@ -49,5 +49,5 @@ export declare class Product extends BaseModule implements Module {
|
|
|
49
49
|
getCategories(): ProductCategory[];
|
|
50
50
|
setOtherParams(key: string, value: any): void;
|
|
51
51
|
getOtherParams(): any;
|
|
52
|
-
getProductType(): "
|
|
52
|
+
getProductType(): "duration" | "session" | "normal";
|
|
53
53
|
}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -445,6 +445,10 @@ declare class Server {
|
|
|
445
445
|
private sumPaidOrderPayments;
|
|
446
446
|
private toAmountNumber;
|
|
447
447
|
private buildSmallTicketProductMap;
|
|
448
|
+
private collectSalesDetailProductIds;
|
|
449
|
+
private buildSalesDetailProductSnapshotMap;
|
|
450
|
+
private withProductCatalogSnapshots;
|
|
451
|
+
private withSalesDetailProductSnapshots;
|
|
448
452
|
private withPendingSyncProductTitles;
|
|
449
453
|
private buildProductTitleSnapshot;
|
|
450
454
|
private getProductTitleSnapshotCurrentLocale;
|