@pvh-afl/graphql 1.0.0
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/README.md +135 -0
- package/dist/cart/cart.hooks.d.ts +66 -0
- package/dist/cart/cart.hooks.d.ts.map +1 -0
- package/dist/cart/cart.hooks.js +12 -0
- package/dist/cart/cart.hooks.js.map +1 -0
- package/dist/cart/cart.module.d.ts +25 -0
- package/dist/cart/cart.module.d.ts.map +1 -0
- package/dist/cart/cart.module.js +44 -0
- package/dist/cart/cart.module.js.map +1 -0
- package/dist/cart/cart.resolver.d.ts +23 -0
- package/dist/cart/cart.resolver.d.ts.map +1 -0
- package/dist/cart/cart.resolver.js +153 -0
- package/dist/cart/cart.resolver.js.map +1 -0
- package/dist/cart/cart.service.d.ts +31 -0
- package/dist/cart/cart.service.d.ts.map +1 -0
- package/dist/cart/cart.service.js +305 -0
- package/dist/cart/cart.service.js.map +1 -0
- package/dist/cart/cart.types.d.ts +144 -0
- package/dist/cart/cart.types.d.ts.map +1 -0
- package/dist/cart/cart.types.js +629 -0
- package/dist/cart/cart.types.js.map +1 -0
- package/dist/cart/index.d.ts +6 -0
- package/dist/cart/index.d.ts.map +1 -0
- package/dist/cart/index.js +9 -0
- package/dist/cart/index.js.map +1 -0
- package/dist/cms/cms.module.d.ts +3 -0
- package/dist/cms/cms.module.d.ts.map +1 -0
- package/dist/cms/cms.module.js +18 -0
- package/dist/cms/cms.module.js.map +1 -0
- package/dist/cms/cms.resolver.d.ts +15 -0
- package/dist/cms/cms.resolver.d.ts.map +1 -0
- package/dist/cms/cms.resolver.js +44 -0
- package/dist/cms/cms.resolver.js.map +1 -0
- package/dist/cms/cms.service.d.ts +14 -0
- package/dist/cms/cms.service.d.ts.map +1 -0
- package/dist/cms/cms.service.js +111 -0
- package/dist/cms/cms.service.js.map +1 -0
- package/dist/cms/cms.types.d.ts +20 -0
- package/dist/cms/cms.types.d.ts.map +1 -0
- package/dist/cms/cms.types.js +89 -0
- package/dist/cms/cms.types.js.map +1 -0
- package/dist/cms/index.d.ts +5 -0
- package/dist/cms/index.d.ts.map +1 -0
- package/dist/cms/index.js +8 -0
- package/dist/cms/index.js.map +1 -0
- package/dist/collection/collection.module.d.ts +3 -0
- package/dist/collection/collection.module.d.ts.map +1 -0
- package/dist/collection/collection.module.js +19 -0
- package/dist/collection/collection.module.js.map +1 -0
- package/dist/collection/collection.resolver.d.ts +15 -0
- package/dist/collection/collection.resolver.d.ts.map +1 -0
- package/dist/collection/collection.resolver.js +45 -0
- package/dist/collection/collection.resolver.js.map +1 -0
- package/dist/collection/collection.service.d.ts +19 -0
- package/dist/collection/collection.service.d.ts.map +1 -0
- package/dist/collection/collection.service.js +132 -0
- package/dist/collection/collection.service.js.map +1 -0
- package/dist/collection/collection.types.d.ts +18 -0
- package/dist/collection/collection.types.d.ts.map +1 -0
- package/dist/collection/collection.types.js +75 -0
- package/dist/collection/collection.types.js.map +1 -0
- package/dist/collection/index.d.ts +5 -0
- package/dist/collection/index.d.ts.map +1 -0
- package/dist/collection/index.js +8 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/common/index.d.ts +8 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +16 -0
- package/dist/common/index.js.map +1 -0
- package/dist/graphql.module.d.ts +3 -0
- package/dist/graphql.module.d.ts.map +1 -0
- package/dist/graphql.module.js +46 -0
- package/dist/graphql.module.js.map +1 -0
- package/dist/header/header.module.d.ts +9 -0
- package/dist/header/header.module.d.ts.map +1 -0
- package/dist/header/header.module.js +21 -0
- package/dist/header/header.module.js.map +1 -0
- package/dist/header/header.resolver.d.ts +18 -0
- package/dist/header/header.resolver.d.ts.map +1 -0
- package/dist/header/header.resolver.js +42 -0
- package/dist/header/header.resolver.js.map +1 -0
- package/dist/header/index.d.ts +4 -0
- package/dist/header/index.d.ts.map +1 -0
- package/dist/header/index.js +7 -0
- package/dist/header/index.js.map +1 -0
- package/dist/header/types/header.types.d.ts +36 -0
- package/dist/header/types/header.types.d.ts.map +1 -0
- package/dist/header/types/header.types.js +154 -0
- package/dist/header/types/header.types.js.map +1 -0
- package/dist/header/types/index.d.ts +3 -0
- package/dist/header/types/index.d.ts.map +1 -0
- package/dist/header/types/index.js +6 -0
- package/dist/header/types/index.js.map +1 -0
- package/dist/header/types/response.types.d.ts +13 -0
- package/dist/header/types/response.types.d.ts.map +1 -0
- package/dist/header/types/response.types.js +54 -0
- package/dist/header/types/response.types.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/page-content/index.d.ts +5 -0
- package/dist/page-content/index.d.ts.map +1 -0
- package/dist/page-content/index.js +8 -0
- package/dist/page-content/index.js.map +1 -0
- package/dist/page-content/page-content.module.d.ts +9 -0
- package/dist/page-content/page-content.module.d.ts.map +1 -0
- package/dist/page-content/page-content.module.js +25 -0
- package/dist/page-content/page-content.module.js.map +1 -0
- package/dist/page-content/page-content.resolver.d.ts +18 -0
- package/dist/page-content/page-content.resolver.d.ts.map +1 -0
- package/dist/page-content/page-content.resolver.js +42 -0
- package/dist/page-content/page-content.resolver.js.map +1 -0
- package/dist/page-content/page-content.service.d.ts +59 -0
- package/dist/page-content/page-content.service.d.ts.map +1 -0
- package/dist/page-content/page-content.service.js +253 -0
- package/dist/page-content/page-content.service.js.map +1 -0
- package/dist/page-content/types/common.types.d.ts +49 -0
- package/dist/page-content/types/common.types.d.ts.map +1 -0
- package/dist/page-content/types/common.types.js +217 -0
- package/dist/page-content/types/common.types.js.map +1 -0
- package/dist/page-content/types/index.d.ts +4 -0
- package/dist/page-content/types/index.d.ts.map +1 -0
- package/dist/page-content/types/index.js +7 -0
- package/dist/page-content/types/index.js.map +1 -0
- package/dist/page-content/types/response.types.d.ts +8 -0
- package/dist/page-content/types/response.types.d.ts.map +1 -0
- package/dist/page-content/types/response.types.js +29 -0
- package/dist/page-content/types/response.types.js.map +1 -0
- package/dist/page-content/types/section.types.d.ts +276 -0
- package/dist/page-content/types/section.types.d.ts.map +1 -0
- package/dist/page-content/types/section.types.js +1252 -0
- package/dist/page-content/types/section.types.js.map +1 -0
- package/dist/product/index.d.ts +5 -0
- package/dist/product/index.d.ts.map +1 -0
- package/dist/product/index.js +8 -0
- package/dist/product/index.js.map +1 -0
- package/dist/product/product.module.d.ts +3 -0
- package/dist/product/product.module.d.ts.map +1 -0
- package/dist/product/product.module.js +19 -0
- package/dist/product/product.module.js.map +1 -0
- package/dist/product/product.resolver.d.ts +15 -0
- package/dist/product/product.resolver.d.ts.map +1 -0
- package/dist/product/product.resolver.js +45 -0
- package/dist/product/product.resolver.js.map +1 -0
- package/dist/product/product.service.d.ts +38 -0
- package/dist/product/product.service.d.ts.map +1 -0
- package/dist/product/product.service.js +337 -0
- package/dist/product/product.service.js.map +1 -0
- package/dist/product/product.types.d.ts +63 -0
- package/dist/product/product.types.d.ts.map +1 -0
- package/dist/product/product.types.js +276 -0
- package/dist/product/product.types.js.map +1 -0
- package/dist/product-content/index.d.ts +5 -0
- package/dist/product-content/index.d.ts.map +1 -0
- package/dist/product-content/index.js +8 -0
- package/dist/product-content/index.js.map +1 -0
- package/dist/product-content/product-content.module.d.ts +3 -0
- package/dist/product-content/product-content.module.d.ts.map +1 -0
- package/dist/product-content/product-content.module.js +27 -0
- package/dist/product-content/product-content.module.js.map +1 -0
- package/dist/product-content/product-content.resolver.d.ts +20 -0
- package/dist/product-content/product-content.resolver.d.ts.map +1 -0
- package/dist/product-content/product-content.resolver.js +44 -0
- package/dist/product-content/product-content.resolver.js.map +1 -0
- package/dist/product-content/product-content.service.d.ts +40 -0
- package/dist/product-content/product-content.service.d.ts.map +1 -0
- package/dist/product-content/product-content.service.js +239 -0
- package/dist/product-content/product-content.service.js.map +1 -0
- package/dist/product-content/types/common.types.d.ts +85 -0
- package/dist/product-content/types/common.types.d.ts.map +1 -0
- package/dist/product-content/types/common.types.js +384 -0
- package/dist/product-content/types/common.types.js.map +1 -0
- package/dist/product-content/types/index.d.ts +3 -0
- package/dist/product-content/types/index.d.ts.map +1 -0
- package/dist/product-content/types/index.js +6 -0
- package/dist/product-content/types/index.js.map +1 -0
- package/dist/product-content/types/response.types.d.ts +10 -0
- package/dist/product-content/types/response.types.d.ts.map +1 -0
- package/dist/product-content/types/response.types.js +39 -0
- package/dist/product-content/types/response.types.js.map +1 -0
- package/dist/serviceability/index.d.ts +5 -0
- package/dist/serviceability/index.d.ts.map +1 -0
- package/dist/serviceability/index.js +8 -0
- package/dist/serviceability/index.js.map +1 -0
- package/dist/serviceability/serviceability.module.d.ts +3 -0
- package/dist/serviceability/serviceability.module.d.ts.map +1 -0
- package/dist/serviceability/serviceability.module.js +18 -0
- package/dist/serviceability/serviceability.module.js.map +1 -0
- package/dist/serviceability/serviceability.resolver.d.ts +19 -0
- package/dist/serviceability/serviceability.resolver.d.ts.map +1 -0
- package/dist/serviceability/serviceability.resolver.js +40 -0
- package/dist/serviceability/serviceability.resolver.js.map +1 -0
- package/dist/serviceability/serviceability.service.d.ts +42 -0
- package/dist/serviceability/serviceability.service.d.ts.map +1 -0
- package/dist/serviceability/serviceability.service.js +169 -0
- package/dist/serviceability/serviceability.service.js.map +1 -0
- package/dist/serviceability/serviceability.types.d.ts +42 -0
- package/dist/serviceability/serviceability.types.d.ts.map +1 -0
- package/dist/serviceability/serviceability.types.js +184 -0
- package/dist/serviceability/serviceability.types.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CartService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const core_1 = require("@pvh-afl/core");
|
|
7
|
+
const cart_hooks_1 = require("./cart.hooks");
|
|
8
|
+
let CartService = class CartService {
|
|
9
|
+
integrationFactory;
|
|
10
|
+
hooks;
|
|
11
|
+
constructor(integrationFactory, hooks) {
|
|
12
|
+
this.integrationFactory = integrationFactory;
|
|
13
|
+
this.hooks = hooks;
|
|
14
|
+
}
|
|
15
|
+
getCommerceService(brand) {
|
|
16
|
+
const commerce = this.integrationFactory.get(brand, 'commerce');
|
|
17
|
+
if (!commerce) {
|
|
18
|
+
throw new Error(`Commerce integration not configured for brand: ${brand}`);
|
|
19
|
+
}
|
|
20
|
+
return commerce;
|
|
21
|
+
}
|
|
22
|
+
async createCart(brand) {
|
|
23
|
+
const commerce = this.getCommerceService(brand);
|
|
24
|
+
const response = await commerce.createCart();
|
|
25
|
+
if (!response.success || !response.data) {
|
|
26
|
+
throw new Error(response.error?.message ?? 'Failed to create cart');
|
|
27
|
+
}
|
|
28
|
+
return this.mapCart(response.data);
|
|
29
|
+
}
|
|
30
|
+
async getCart(brand, cartId) {
|
|
31
|
+
const commerce = this.getCommerceService(brand);
|
|
32
|
+
const response = await commerce.getCart(cartId);
|
|
33
|
+
if (!response.success) {
|
|
34
|
+
throw new Error(response.error?.message ?? 'Failed to fetch cart');
|
|
35
|
+
}
|
|
36
|
+
if (!response.data)
|
|
37
|
+
return null;
|
|
38
|
+
// Get extra data from hooks if available
|
|
39
|
+
let extraData;
|
|
40
|
+
if (this.hooks?.getExtraCartData) {
|
|
41
|
+
extraData = await this.hooks.getExtraCartData(brand, cartId);
|
|
42
|
+
}
|
|
43
|
+
return this.mapCart(response.data, extraData);
|
|
44
|
+
}
|
|
45
|
+
async addLines(brand, cartId, lines) {
|
|
46
|
+
const commerce = this.getCommerceService(brand);
|
|
47
|
+
const response = await commerce.addToCart(cartId, lines);
|
|
48
|
+
if (!response.success || !response.data) {
|
|
49
|
+
throw new Error(response.error?.message ?? 'Failed to add to cart');
|
|
50
|
+
}
|
|
51
|
+
return this.mapCart(response.data);
|
|
52
|
+
}
|
|
53
|
+
async updateLines(brand, cartId, lines) {
|
|
54
|
+
const commerce = this.getCommerceService(brand);
|
|
55
|
+
const response = await commerce.updateCartLines(cartId, lines);
|
|
56
|
+
if (!response.success || !response.data) {
|
|
57
|
+
throw new Error(response.error?.message ?? 'Failed to update cart lines');
|
|
58
|
+
}
|
|
59
|
+
return this.mapCart(response.data);
|
|
60
|
+
}
|
|
61
|
+
async removeLines(brand, cartId, lineIds) {
|
|
62
|
+
const commerce = this.getCommerceService(brand);
|
|
63
|
+
const response = await commerce.removeCartLines(cartId, lineIds);
|
|
64
|
+
if (!response.success || !response.data) {
|
|
65
|
+
throw new Error(response.error?.message ?? 'Failed to remove cart lines');
|
|
66
|
+
}
|
|
67
|
+
return this.mapCart(response.data);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Update discount codes on cart.
|
|
71
|
+
*
|
|
72
|
+
* Flow:
|
|
73
|
+
* 1. If forceCapillaryValidation=true: Skip Shopify, validate with Capillary, sync to Shopify, apply
|
|
74
|
+
* 2. If forceCapillaryValidation=false (default):
|
|
75
|
+
* - Apply to Shopify directly
|
|
76
|
+
* - If any code is not applicable, check if hooks can handle it
|
|
77
|
+
* - If yes, validate with Capillary, sync to Shopify, apply again
|
|
78
|
+
*/
|
|
79
|
+
async updateDiscountCodes(brand, cartId, discountCodes, mobile, forceCapillaryValidation) {
|
|
80
|
+
const commerce = this.getCommerceService(brand);
|
|
81
|
+
const options = { mobile, forceCapillaryValidation };
|
|
82
|
+
// If no codes, just clear discounts
|
|
83
|
+
if (discountCodes.length === 0) {
|
|
84
|
+
const response = await commerce.updateCartDiscountCodes(cartId, []);
|
|
85
|
+
if (!response.success || !response.data) {
|
|
86
|
+
throw new Error(response.error?.message ?? 'Failed to update discount codes');
|
|
87
|
+
}
|
|
88
|
+
return this.mapCart(response.data);
|
|
89
|
+
}
|
|
90
|
+
// Flow 1: Force Capillary validation - skip Shopify, go directly to loyalty
|
|
91
|
+
if (forceCapillaryValidation && this.hooks?.processDiscountCodes) {
|
|
92
|
+
core_1.logger.info('Force Capillary validation enabled, skipping initial Shopify apply', {
|
|
93
|
+
brand,
|
|
94
|
+
cartId,
|
|
95
|
+
codes: discountCodes,
|
|
96
|
+
});
|
|
97
|
+
const result = await this.hooks.processDiscountCodes(brand, cartId, discountCodes, options);
|
|
98
|
+
// Apply the processed codes (Shopify codes) to cart
|
|
99
|
+
const response = await commerce.updateCartDiscountCodes(cartId, result.codes);
|
|
100
|
+
if (!response.success || !response.data) {
|
|
101
|
+
throw new Error(response.error?.message ?? 'Failed to update discount codes');
|
|
102
|
+
}
|
|
103
|
+
return this.mapCart(response.data, result.extraData);
|
|
104
|
+
}
|
|
105
|
+
// Flow 2: Default - Try Shopify first, then fallback to Capillary if needed
|
|
106
|
+
core_1.logger.info('Applying discount codes to Shopify', {
|
|
107
|
+
brand,
|
|
108
|
+
cartId,
|
|
109
|
+
codes: discountCodes,
|
|
110
|
+
});
|
|
111
|
+
// Step 1: Apply codes directly to Shopify
|
|
112
|
+
const initialResponse = await commerce.updateCartDiscountCodes(cartId, discountCodes);
|
|
113
|
+
if (!initialResponse.success || !initialResponse.data) {
|
|
114
|
+
throw new Error(initialResponse.error?.message ?? 'Failed to update discount codes');
|
|
115
|
+
}
|
|
116
|
+
// Step 2: Check if any codes are not applicable
|
|
117
|
+
const appliedCodes = initialResponse.data.discountCodes ?? [];
|
|
118
|
+
const failedCodes = appliedCodes
|
|
119
|
+
.filter((dc) => !dc.applicable)
|
|
120
|
+
.map((dc) => dc.code);
|
|
121
|
+
// If all codes applied successfully, return
|
|
122
|
+
if (failedCodes.length === 0) {
|
|
123
|
+
core_1.logger.info('All discount codes applied successfully in Shopify', {
|
|
124
|
+
brand,
|
|
125
|
+
cartId,
|
|
126
|
+
codes: discountCodes,
|
|
127
|
+
});
|
|
128
|
+
return this.mapCart(initialResponse.data);
|
|
129
|
+
}
|
|
130
|
+
// Step 3: Check if hooks can handle the failed codes
|
|
131
|
+
if (!this.hooks?.processDiscountCodes || !this.hooks?.canHandleDiscountCode) {
|
|
132
|
+
// No hooks available, return with failed codes as-is
|
|
133
|
+
core_1.logger.warn('Discount codes not applicable and no hooks to handle them', {
|
|
134
|
+
brand,
|
|
135
|
+
cartId,
|
|
136
|
+
failedCodes,
|
|
137
|
+
});
|
|
138
|
+
return this.mapCart(initialResponse.data);
|
|
139
|
+
}
|
|
140
|
+
// Find codes that hooks can handle
|
|
141
|
+
const handlableCodes = failedCodes.filter((code) => this.hooks.canHandleDiscountCode(code));
|
|
142
|
+
if (handlableCodes.length === 0) {
|
|
143
|
+
// Hooks can't handle any of the failed codes
|
|
144
|
+
core_1.logger.warn('No hooks available to handle failed discount codes', {
|
|
145
|
+
brand,
|
|
146
|
+
cartId,
|
|
147
|
+
failedCodes,
|
|
148
|
+
});
|
|
149
|
+
return this.mapCart(initialResponse.data);
|
|
150
|
+
}
|
|
151
|
+
// Step 4: Process failed codes through hooks (validate with Capillary, sync to Shopify)
|
|
152
|
+
core_1.logger.info('Processing failed codes through Capillary hooks', {
|
|
153
|
+
brand,
|
|
154
|
+
cartId,
|
|
155
|
+
handlableCodes,
|
|
156
|
+
});
|
|
157
|
+
const hookResult = await this.hooks.processDiscountCodes(brand, cartId, handlableCodes, options);
|
|
158
|
+
// Step 5: Build final codes list (successful Shopify codes + processed Capillary codes)
|
|
159
|
+
const successfulCodes = appliedCodes
|
|
160
|
+
.filter((dc) => dc.applicable)
|
|
161
|
+
.map((dc) => dc.code);
|
|
162
|
+
const finalCodes = [...successfulCodes, ...hookResult.codes];
|
|
163
|
+
// Step 6: Apply final codes to Shopify
|
|
164
|
+
core_1.logger.info('Applying final codes to Shopify after Capillary sync', {
|
|
165
|
+
brand,
|
|
166
|
+
cartId,
|
|
167
|
+
finalCodes,
|
|
168
|
+
});
|
|
169
|
+
const finalResponse = await commerce.updateCartDiscountCodes(cartId, finalCodes);
|
|
170
|
+
if (!finalResponse.success || !finalResponse.data) {
|
|
171
|
+
throw new Error(finalResponse.error?.message ?? 'Failed to update discount codes');
|
|
172
|
+
}
|
|
173
|
+
return this.mapCart(finalResponse.data, hookResult.extraData);
|
|
174
|
+
}
|
|
175
|
+
async updateBuyerIdentity(brand, cartId, buyerIdentity) {
|
|
176
|
+
const commerce = this.getCommerceService(brand);
|
|
177
|
+
// Map GraphQL input to commerce input
|
|
178
|
+
const commerceBuyerIdentity = {
|
|
179
|
+
email: buyerIdentity.email,
|
|
180
|
+
phone: buyerIdentity.phone,
|
|
181
|
+
countryCode: buyerIdentity.countryCode,
|
|
182
|
+
customerAccessToken: buyerIdentity.customerAccessToken,
|
|
183
|
+
deliveryAddressPreferences: buyerIdentity.deliveryAddressPreferences?.map((pref) => ({
|
|
184
|
+
deliveryAddress: {
|
|
185
|
+
address1: pref.deliveryAddress.address1,
|
|
186
|
+
address2: pref.deliveryAddress.address2,
|
|
187
|
+
city: pref.deliveryAddress.city,
|
|
188
|
+
company: pref.deliveryAddress.company,
|
|
189
|
+
country: pref.deliveryAddress.country,
|
|
190
|
+
firstName: pref.deliveryAddress.firstName,
|
|
191
|
+
lastName: pref.deliveryAddress.lastName,
|
|
192
|
+
phone: pref.deliveryAddress.phone,
|
|
193
|
+
province: pref.deliveryAddress.province,
|
|
194
|
+
zip: pref.deliveryAddress.zip,
|
|
195
|
+
},
|
|
196
|
+
})),
|
|
197
|
+
};
|
|
198
|
+
const response = await commerce.updateCartBuyerIdentity(cartId, commerceBuyerIdentity);
|
|
199
|
+
if (!response.success || !response.data) {
|
|
200
|
+
throw new Error(response.error?.message ?? 'Failed to update buyer identity');
|
|
201
|
+
}
|
|
202
|
+
return this.mapCart(response.data);
|
|
203
|
+
}
|
|
204
|
+
async updateNote(brand, cartId, note) {
|
|
205
|
+
const commerce = this.getCommerceService(brand);
|
|
206
|
+
const response = await commerce.updateCartNote(cartId, note);
|
|
207
|
+
if (!response.success || !response.data) {
|
|
208
|
+
throw new Error(response.error?.message ?? 'Failed to update cart note');
|
|
209
|
+
}
|
|
210
|
+
return this.mapCart(response.data);
|
|
211
|
+
}
|
|
212
|
+
async updateAttributes(brand, cartId, attributes) {
|
|
213
|
+
const commerce = this.getCommerceService(brand);
|
|
214
|
+
// Map to commerce input format
|
|
215
|
+
const commerceAttributes = attributes.map((attr) => ({
|
|
216
|
+
key: attr.key,
|
|
217
|
+
value: attr.value,
|
|
218
|
+
}));
|
|
219
|
+
const response = await commerce.updateCartAttributes(cartId, commerceAttributes);
|
|
220
|
+
if (!response.success || !response.data) {
|
|
221
|
+
throw new Error(response.error?.message ?? 'Failed to update cart attributes');
|
|
222
|
+
}
|
|
223
|
+
return this.mapCart(response.data);
|
|
224
|
+
}
|
|
225
|
+
async updateGiftCardCodes(brand, cartId, giftCardCodes) {
|
|
226
|
+
const commerce = this.getCommerceService(brand);
|
|
227
|
+
const response = await commerce.updateCartGiftCardCodes(cartId, giftCardCodes);
|
|
228
|
+
if (!response.success || !response.data) {
|
|
229
|
+
throw new Error(response.error?.message ?? 'Failed to update gift card codes');
|
|
230
|
+
}
|
|
231
|
+
return this.mapCart(response.data);
|
|
232
|
+
}
|
|
233
|
+
mapCart(commerce, extraData) {
|
|
234
|
+
const cart = {
|
|
235
|
+
id: commerce.id,
|
|
236
|
+
checkoutUrl: commerce.checkoutUrl,
|
|
237
|
+
totalQuantity: commerce.totalQuantity,
|
|
238
|
+
lines: commerce.lines.edges.map((e) => ({
|
|
239
|
+
id: e.node.id,
|
|
240
|
+
quantity: e.node.quantity,
|
|
241
|
+
merchandise: {
|
|
242
|
+
id: e.node.merchandise.id,
|
|
243
|
+
title: e.node.merchandise.title,
|
|
244
|
+
selectedOptions: e.node.merchandise.selectedOptions,
|
|
245
|
+
product: e.node.merchandise.product,
|
|
246
|
+
image: e.node.merchandise.image,
|
|
247
|
+
price: e.node.merchandise.price,
|
|
248
|
+
},
|
|
249
|
+
cost: e.node.cost,
|
|
250
|
+
discountAllocations: e.node.discountAllocations ?? [],
|
|
251
|
+
})),
|
|
252
|
+
cost: commerce.cost,
|
|
253
|
+
discountCodes: commerce.discountCodes ?? [],
|
|
254
|
+
discountAllocations: commerce.discountAllocations ?? [],
|
|
255
|
+
buyerIdentity: commerce.buyerIdentity
|
|
256
|
+
? {
|
|
257
|
+
email: commerce.buyerIdentity.email,
|
|
258
|
+
phone: commerce.buyerIdentity.phone,
|
|
259
|
+
countryCode: commerce.buyerIdentity.countryCode,
|
|
260
|
+
customer: commerce.buyerIdentity.customer,
|
|
261
|
+
deliveryAddressPreferences: commerce.buyerIdentity.deliveryAddressPreferences?.map((pref) => ({
|
|
262
|
+
// Shopify returns MailingAddress fields directly on pref (union type with inline fragment)
|
|
263
|
+
deliveryAddress: {
|
|
264
|
+
address1: pref.address1,
|
|
265
|
+
address2: pref.address2,
|
|
266
|
+
city: pref.city,
|
|
267
|
+
company: pref.company,
|
|
268
|
+
country: pref.country,
|
|
269
|
+
countryCodeV2: pref.countryCodeV2,
|
|
270
|
+
firstName: pref.firstName,
|
|
271
|
+
lastName: pref.lastName,
|
|
272
|
+
phone: pref.phone,
|
|
273
|
+
province: pref.province,
|
|
274
|
+
provinceCode: pref.provinceCode,
|
|
275
|
+
zip: pref.zip,
|
|
276
|
+
},
|
|
277
|
+
})) ?? [],
|
|
278
|
+
}
|
|
279
|
+
: null,
|
|
280
|
+
note: commerce.note ?? null,
|
|
281
|
+
attributes: commerce.attributes ?? [],
|
|
282
|
+
appliedGiftCards: commerce.appliedGiftCards ?? [],
|
|
283
|
+
deliveryGroups: commerce.deliveryGroups?.edges?.map((e) => ({
|
|
284
|
+
id: e.node.id,
|
|
285
|
+
deliveryAddress: e.node.deliveryAddress,
|
|
286
|
+
deliveryOptions: e.node.deliveryOptions ?? [],
|
|
287
|
+
selectedDeliveryOption: e.node.selectedDeliveryOption ?? null,
|
|
288
|
+
})) ?? [],
|
|
289
|
+
};
|
|
290
|
+
// Spread extra data from hooks (e.g., capillaryCoupon)
|
|
291
|
+
// This allows brands to add custom fields to the cart response
|
|
292
|
+
if (extraData) {
|
|
293
|
+
Object.assign(cart, extraData);
|
|
294
|
+
}
|
|
295
|
+
return cart;
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
exports.CartService = CartService;
|
|
299
|
+
exports.CartService = CartService = tslib_1.__decorate([
|
|
300
|
+
(0, common_1.Injectable)(),
|
|
301
|
+
tslib_1.__param(1, (0, common_1.Optional)()),
|
|
302
|
+
tslib_1.__param(1, (0, common_1.Inject)(cart_hooks_1.CART_HOOKS)),
|
|
303
|
+
tslib_1.__metadata("design:paramtypes", [core_1.IntegrationFactory, Object])
|
|
304
|
+
], CartService);
|
|
305
|
+
//# sourceMappingURL=cart.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cart.service.js","sourceRoot":"","sources":["../../src/cart/cart.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { Image, Money, SelectedOption, ProductOption } from '../product/product.types';
|
|
2
|
+
export declare class CartProduct {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
handle: string;
|
|
6
|
+
options: ProductOption[];
|
|
7
|
+
}
|
|
8
|
+
export declare class CartMerchandise {
|
|
9
|
+
id: string;
|
|
10
|
+
title: string;
|
|
11
|
+
selectedOptions: SelectedOption[];
|
|
12
|
+
product: CartProduct;
|
|
13
|
+
image: Image | null;
|
|
14
|
+
price: Money;
|
|
15
|
+
}
|
|
16
|
+
export declare class CartLineCost {
|
|
17
|
+
totalAmount: Money;
|
|
18
|
+
}
|
|
19
|
+
export declare class CartLine {
|
|
20
|
+
id: string;
|
|
21
|
+
quantity: number;
|
|
22
|
+
merchandise: CartMerchandise;
|
|
23
|
+
cost: CartLineCost;
|
|
24
|
+
discountAllocations: CartDiscountAllocation[];
|
|
25
|
+
}
|
|
26
|
+
export declare class CartCost {
|
|
27
|
+
subtotalAmount: Money;
|
|
28
|
+
totalAmount: Money;
|
|
29
|
+
totalTaxAmount: Money | null;
|
|
30
|
+
}
|
|
31
|
+
export declare class CartDiscountCode {
|
|
32
|
+
code: string;
|
|
33
|
+
applicable: boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare class CartDiscountAllocation {
|
|
36
|
+
discountedAmount: Money;
|
|
37
|
+
title?: string | null;
|
|
38
|
+
code?: string | null;
|
|
39
|
+
}
|
|
40
|
+
export declare class MailingAddress {
|
|
41
|
+
address1: string | null;
|
|
42
|
+
address2: string | null;
|
|
43
|
+
city: string | null;
|
|
44
|
+
company: string | null;
|
|
45
|
+
country: string | null;
|
|
46
|
+
countryCodeV2: string | null;
|
|
47
|
+
firstName: string | null;
|
|
48
|
+
lastName: string | null;
|
|
49
|
+
phone: string | null;
|
|
50
|
+
province: string | null;
|
|
51
|
+
provinceCode: string | null;
|
|
52
|
+
zip: string | null;
|
|
53
|
+
}
|
|
54
|
+
export declare class DeliveryAddressPreference {
|
|
55
|
+
deliveryAddress: MailingAddress;
|
|
56
|
+
}
|
|
57
|
+
export declare class CartCustomer {
|
|
58
|
+
id: string;
|
|
59
|
+
email: string | null;
|
|
60
|
+
firstName: string | null;
|
|
61
|
+
lastName: string | null;
|
|
62
|
+
phone: string | null;
|
|
63
|
+
displayName: string;
|
|
64
|
+
}
|
|
65
|
+
export declare class CartBuyerIdentity {
|
|
66
|
+
email: string | null;
|
|
67
|
+
phone: string | null;
|
|
68
|
+
countryCode: string | null;
|
|
69
|
+
customer: CartCustomer | null;
|
|
70
|
+
deliveryAddressPreferences: DeliveryAddressPreference[];
|
|
71
|
+
}
|
|
72
|
+
export declare class CartAttribute {
|
|
73
|
+
key: string;
|
|
74
|
+
value: string | null;
|
|
75
|
+
}
|
|
76
|
+
export declare class AppliedGiftCard {
|
|
77
|
+
id: string;
|
|
78
|
+
lastCharacters: string;
|
|
79
|
+
amountUsed: Money;
|
|
80
|
+
balance: Money;
|
|
81
|
+
}
|
|
82
|
+
export declare class CartDeliveryOption {
|
|
83
|
+
code: string | null;
|
|
84
|
+
deliveryMethodType: string;
|
|
85
|
+
description: string | null;
|
|
86
|
+
estimatedCost: Money;
|
|
87
|
+
handle: string;
|
|
88
|
+
title: string;
|
|
89
|
+
}
|
|
90
|
+
export declare class CartDeliveryGroup {
|
|
91
|
+
id: string;
|
|
92
|
+
deliveryAddress: MailingAddress | null;
|
|
93
|
+
deliveryOptions: CartDeliveryOption[];
|
|
94
|
+
selectedDeliveryOption: CartDeliveryOption | null;
|
|
95
|
+
}
|
|
96
|
+
export declare class Cart {
|
|
97
|
+
id: string;
|
|
98
|
+
checkoutUrl: string;
|
|
99
|
+
totalQuantity: number;
|
|
100
|
+
lines: CartLine[];
|
|
101
|
+
cost: CartCost;
|
|
102
|
+
discountCodes: CartDiscountCode[];
|
|
103
|
+
discountAllocations: CartDiscountAllocation[];
|
|
104
|
+
buyerIdentity: CartBuyerIdentity | null;
|
|
105
|
+
note: string | null;
|
|
106
|
+
attributes: CartAttribute[];
|
|
107
|
+
appliedGiftCards: AppliedGiftCard[];
|
|
108
|
+
deliveryGroups: CartDeliveryGroup[];
|
|
109
|
+
}
|
|
110
|
+
export declare class CartLineInput {
|
|
111
|
+
merchandiseId: string;
|
|
112
|
+
quantity: number;
|
|
113
|
+
}
|
|
114
|
+
export declare class CartLineUpdateInput {
|
|
115
|
+
id: string;
|
|
116
|
+
quantity: number;
|
|
117
|
+
}
|
|
118
|
+
export declare class MailingAddressInput {
|
|
119
|
+
address1?: string;
|
|
120
|
+
address2?: string;
|
|
121
|
+
city?: string;
|
|
122
|
+
company?: string;
|
|
123
|
+
country?: string;
|
|
124
|
+
firstName?: string;
|
|
125
|
+
lastName?: string;
|
|
126
|
+
phone?: string;
|
|
127
|
+
province?: string;
|
|
128
|
+
zip?: string;
|
|
129
|
+
}
|
|
130
|
+
export declare class DeliveryAddressPreferenceInput {
|
|
131
|
+
deliveryAddress: MailingAddressInput;
|
|
132
|
+
}
|
|
133
|
+
export declare class CartBuyerIdentityInput {
|
|
134
|
+
email?: string;
|
|
135
|
+
phone?: string;
|
|
136
|
+
countryCode?: string;
|
|
137
|
+
customerAccessToken?: string;
|
|
138
|
+
deliveryAddressPreferences?: DeliveryAddressPreferenceInput[];
|
|
139
|
+
}
|
|
140
|
+
export declare class CartAttributeInput {
|
|
141
|
+
key: string;
|
|
142
|
+
value: string;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=cart.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cart.types.d.ts","sourceRoot":"","sources":["../../src/cart/cart.types.ts"],"names":[],"mappings":"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"}
|