@gem-sdk/adapter-shopify 1.0.0 → 1.11.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/dist/cjs/api/operations/add-to-cart.js +26 -23
- package/dist/cjs/api/operations/cart-discount-codes-update.js +22 -20
- package/dist/cjs/api/operations/cart-note-update.js +22 -19
- package/dist/cjs/api/operations/create-cart.js +27 -24
- package/dist/cjs/api/operations/get-cart.js +21 -18
- package/dist/cjs/api/operations/remove-cart-item.js +24 -19
- package/dist/cjs/api/operations/update-cart-line.js +28 -25
- package/dist/cjs/graphql/fragments/cart-line.generated.js +2 -2
- package/dist/cjs/graphql/fragments/cart-user-error.generated.js +1 -1
- package/dist/cjs/graphql/fragments/cart.generated.js +1 -1
- package/dist/cjs/graphql/fragments/country.generated.js +1 -1
- package/dist/cjs/graphql/fragments/currency.generated.js +1 -1
- package/dist/cjs/graphql/fragments/image.generated.js +1 -1
- package/dist/cjs/graphql/fragments/language.generated.js +10 -0
- package/dist/cjs/graphql/fragments/money-v2.generated.js +1 -1
- package/dist/cjs/graphql/fragments/product.generated.js +1 -1
- package/dist/cjs/graphql/queries/shop-meta.generated.js +6 -1
- package/dist/cjs/helpers/common.js +10 -10
- package/dist/cjs/helpers/normalize.js +53 -53
- package/dist/esm/api/operations/add-to-cart.js +26 -23
- package/dist/esm/api/operations/cart-discount-codes-update.js +22 -20
- package/dist/esm/api/operations/cart-note-update.js +22 -19
- package/dist/esm/api/operations/create-cart.js +27 -24
- package/dist/esm/api/operations/get-cart.js +21 -18
- package/dist/esm/api/operations/remove-cart-item.js +24 -19
- package/dist/esm/api/operations/update-cart-line.js +28 -25
- package/dist/esm/graphql/fragments/cart-line.generated.js +2 -2
- package/dist/esm/graphql/fragments/cart-user-error.generated.js +1 -1
- package/dist/esm/graphql/fragments/cart.generated.js +1 -1
- package/dist/esm/graphql/fragments/country.generated.js +1 -1
- package/dist/esm/graphql/fragments/currency.generated.js +1 -1
- package/dist/esm/graphql/fragments/image.generated.js +1 -1
- package/dist/esm/graphql/fragments/language.generated.js +8 -0
- package/dist/esm/graphql/fragments/money-v2.generated.js +1 -1
- package/dist/esm/graphql/fragments/product.generated.js +1 -1
- package/dist/esm/graphql/queries/shop-meta.generated.js +6 -1
- package/dist/esm/helpers/common.js +10 -10
- package/dist/esm/helpers/normalize.js +53 -53
- package/dist/types/index.d.ts +3649 -3648
- package/package.json +1 -1
|
@@ -4,29 +4,32 @@ var cartLinesAdd_generated = require('../../graphql/mutations/cart-lines-add.gen
|
|
|
4
4
|
var common = require('../../helpers/common.js');
|
|
5
5
|
var normalize = require('../../helpers/normalize.js');
|
|
6
6
|
|
|
7
|
-
const addToCartOperation = (config)
|
|
8
|
-
const addToCart = async (input)
|
|
9
|
-
if (!config.storefrontUrl) {
|
|
10
|
-
throw new Error('Shop is not connected');
|
|
11
|
-
}
|
|
12
|
-
const variables = {
|
|
13
|
-
cartId: input.cartId,
|
|
14
|
-
lines: input.lines.map((v)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
20
|
-
const res = await fetch(config.storefrontUrl, {
|
|
21
|
-
...common.composeRequest(config),
|
|
22
|
-
body: JSON.stringify({
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
7
|
+
const addToCartOperation = (config)=>{
|
|
8
|
+
const addToCart = async (input)=>{
|
|
9
|
+
if (!config.storefrontUrl) {
|
|
10
|
+
throw new Error('Shop is not connected');
|
|
11
|
+
}
|
|
12
|
+
const variables = {
|
|
13
|
+
cartId: input.cartId,
|
|
14
|
+
lines: input.lines.map((v)=>({
|
|
15
|
+
merchandiseId: v.variantId,
|
|
16
|
+
quantity: v.quantity,
|
|
17
|
+
attributes: v.attributes
|
|
18
|
+
}))
|
|
19
|
+
};
|
|
20
|
+
const res = await fetch(config.storefrontUrl, {
|
|
21
|
+
...common.composeRequest(config),
|
|
22
|
+
body: JSON.stringify({
|
|
23
|
+
query: cartLinesAdd_generated.CartLinesAddDocument,
|
|
24
|
+
variables
|
|
25
|
+
})
|
|
26
|
+
}).then((res)=>res.json());
|
|
27
|
+
if (res.data?.cartLinesAdd?.userErrors.length || !res.data?.cartLinesAdd?.cart) {
|
|
28
|
+
throw res.data?.cartLinesAdd?.userErrors;
|
|
29
|
+
}
|
|
30
|
+
return normalize.normalizeCart(res.data.cartLinesAdd.cart);
|
|
31
|
+
};
|
|
32
|
+
return addToCart;
|
|
30
33
|
};
|
|
31
34
|
|
|
32
35
|
exports.addToCartOperation = addToCartOperation;
|
|
@@ -4,26 +4,28 @@ var cartDiscountCodesUpdate_generated = require('../../graphql/mutations/cart-di
|
|
|
4
4
|
var common = require('../../helpers/common.js');
|
|
5
5
|
var normalize = require('../../helpers/normalize.js');
|
|
6
6
|
|
|
7
|
-
const cartDiscountCodesUpdateOperation = (config)
|
|
8
|
-
const cartNoteUpdate = async (input)
|
|
9
|
-
if (!config.storefrontUrl) {
|
|
10
|
-
throw new Error('Shop is not connected');
|
|
11
|
-
}
|
|
12
|
-
const variables = {
|
|
13
|
-
cartId: input.cartId,
|
|
14
|
-
discountCodes: input.discountCodes
|
|
15
|
-
};
|
|
16
|
-
const res = await fetch(config.storefrontUrl, {
|
|
17
|
-
...common.composeRequest(config),
|
|
18
|
-
body: JSON.stringify({
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
7
|
+
const cartDiscountCodesUpdateOperation = (config)=>{
|
|
8
|
+
const cartNoteUpdate = async (input)=>{
|
|
9
|
+
if (!config.storefrontUrl) {
|
|
10
|
+
throw new Error('Shop is not connected');
|
|
11
|
+
}
|
|
12
|
+
const variables = {
|
|
13
|
+
cartId: input.cartId,
|
|
14
|
+
discountCodes: input.discountCodes
|
|
15
|
+
};
|
|
16
|
+
const res = await fetch(config.storefrontUrl, {
|
|
17
|
+
...common.composeRequest(config),
|
|
18
|
+
body: JSON.stringify({
|
|
19
|
+
query: cartDiscountCodesUpdate_generated.CartDiscountCodesUpdateDocument,
|
|
20
|
+
variables
|
|
21
|
+
})
|
|
22
|
+
}).then((res)=>res.json());
|
|
23
|
+
if (res.data?.cartDiscountCodesUpdate?.userErrors.length || !res.data?.cartDiscountCodesUpdate?.cart) {
|
|
24
|
+
throw res.data?.cartDiscountCodesUpdate?.userErrors;
|
|
25
|
+
}
|
|
26
|
+
return normalize.normalizeCart(res.data.cartDiscountCodesUpdate.cart);
|
|
27
|
+
};
|
|
28
|
+
return cartNoteUpdate;
|
|
27
29
|
};
|
|
28
30
|
|
|
29
31
|
exports.cartDiscountCodesUpdateOperation = cartDiscountCodesUpdateOperation;
|
|
@@ -4,25 +4,28 @@ var cartNoteUpdate_generated = require('../../graphql/mutations/cart-note-update
|
|
|
4
4
|
var common = require('../../helpers/common.js');
|
|
5
5
|
var normalize = require('../../helpers/normalize.js');
|
|
6
6
|
|
|
7
|
-
const cartNoteUpdateOperation = (config)
|
|
8
|
-
const cartNoteUpdate = async (input)
|
|
9
|
-
if (!config.storefrontUrl) {
|
|
10
|
-
throw new Error('Shop is not connected');
|
|
11
|
-
}
|
|
12
|
-
const variables = {
|
|
13
|
-
cartId: input.cartId,
|
|
14
|
-
note: input.note
|
|
15
|
-
};
|
|
16
|
-
const res = await fetch(config.storefrontUrl, {
|
|
17
|
-
...common.composeRequest(config),
|
|
18
|
-
body: JSON.stringify({
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
7
|
+
const cartNoteUpdateOperation = (config)=>{
|
|
8
|
+
const cartNoteUpdate = async (input)=>{
|
|
9
|
+
if (!config.storefrontUrl) {
|
|
10
|
+
throw new Error('Shop is not connected');
|
|
11
|
+
}
|
|
12
|
+
const variables = {
|
|
13
|
+
cartId: input.cartId,
|
|
14
|
+
note: input.note
|
|
15
|
+
};
|
|
16
|
+
const res = await fetch(config.storefrontUrl, {
|
|
17
|
+
...common.composeRequest(config),
|
|
18
|
+
body: JSON.stringify({
|
|
19
|
+
query: cartNoteUpdate_generated.CartNoteUpdateDocument,
|
|
20
|
+
variables
|
|
21
|
+
})
|
|
22
|
+
}).then((res)=>res.json());
|
|
23
|
+
if (res.data?.cartNoteUpdate?.userErrors.length || !res.data?.cartNoteUpdate?.cart) {
|
|
24
|
+
throw res.data?.cartNoteUpdate?.userErrors;
|
|
25
|
+
}
|
|
26
|
+
return normalize.normalizeCart(res.data.cartNoteUpdate.cart);
|
|
27
|
+
};
|
|
28
|
+
return cartNoteUpdate;
|
|
26
29
|
};
|
|
27
30
|
|
|
28
31
|
exports.cartNoteUpdateOperation = cartNoteUpdateOperation;
|
|
@@ -4,30 +4,33 @@ var cartCreate_generated = require('../../graphql/mutations/cart-create.generate
|
|
|
4
4
|
var common = require('../../helpers/common.js');
|
|
5
5
|
var normalize = require('../../helpers/normalize.js');
|
|
6
6
|
|
|
7
|
-
const createCartOperation = (config)
|
|
8
|
-
const createCart = async (args)
|
|
9
|
-
if (!config.storefrontUrl) {
|
|
10
|
-
throw new Error('Shop is not connected');
|
|
11
|
-
}
|
|
12
|
-
const variables = {
|
|
13
|
-
input: {
|
|
14
|
-
lines: args.items.map((v)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
const res = await fetch(config.storefrontUrl, {
|
|
22
|
-
...common.composeRequest(config),
|
|
23
|
-
body: JSON.stringify({
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
7
|
+
const createCartOperation = (config)=>{
|
|
8
|
+
const createCart = async (args)=>{
|
|
9
|
+
if (!config.storefrontUrl) {
|
|
10
|
+
throw new Error('Shop is not connected');
|
|
11
|
+
}
|
|
12
|
+
const variables = {
|
|
13
|
+
input: {
|
|
14
|
+
lines: args.items.map((v)=>({
|
|
15
|
+
merchandiseId: v.variantId,
|
|
16
|
+
quantity: v.quantity,
|
|
17
|
+
attributes: v.attributes
|
|
18
|
+
}))
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const res = await fetch(config.storefrontUrl, {
|
|
22
|
+
...common.composeRequest(config),
|
|
23
|
+
body: JSON.stringify({
|
|
24
|
+
query: cartCreate_generated.CartCreateDocument,
|
|
25
|
+
variables
|
|
26
|
+
})
|
|
27
|
+
}).then((res)=>res.json());
|
|
28
|
+
if (res.data?.cartCreate?.userErrors.length || !res.data?.cartCreate?.cart) {
|
|
29
|
+
throw res.data?.cartCreate?.userErrors;
|
|
30
|
+
}
|
|
31
|
+
return normalize.normalizeCart(res.data.cartCreate.cart);
|
|
32
|
+
};
|
|
33
|
+
return createCart;
|
|
31
34
|
};
|
|
32
35
|
|
|
33
36
|
exports.createCartOperation = createCartOperation;
|
|
@@ -4,24 +4,27 @@ var cart_generated = require('../../graphql/queries/cart.generated.js');
|
|
|
4
4
|
var common = require('../../helpers/common.js');
|
|
5
5
|
var normalize = require('../../helpers/normalize.js');
|
|
6
6
|
|
|
7
|
-
const getCartOperation = (config)
|
|
8
|
-
const getCart = async (input)
|
|
9
|
-
if (!config.storefrontUrl) {
|
|
10
|
-
throw new Error('Shop is not connected');
|
|
11
|
-
}
|
|
12
|
-
const variables = {
|
|
13
|
-
id: input.cartId
|
|
14
|
-
};
|
|
15
|
-
const res = await fetch(config.storefrontUrl, {
|
|
16
|
-
...common.composeRequest(config),
|
|
17
|
-
body: JSON.stringify({
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
7
|
+
const getCartOperation = (config)=>{
|
|
8
|
+
const getCart = async (input)=>{
|
|
9
|
+
if (!config.storefrontUrl) {
|
|
10
|
+
throw new Error('Shop is not connected');
|
|
11
|
+
}
|
|
12
|
+
const variables = {
|
|
13
|
+
id: input.cartId
|
|
14
|
+
};
|
|
15
|
+
const res = await fetch(config.storefrontUrl, {
|
|
16
|
+
...common.composeRequest(config),
|
|
17
|
+
body: JSON.stringify({
|
|
18
|
+
query: cart_generated.CartDocument,
|
|
19
|
+
variables
|
|
20
|
+
})
|
|
21
|
+
}).then((res)=>res.json());
|
|
22
|
+
if (!res.data?.cart) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
return normalize.normalizeCart(res.data.cart);
|
|
26
|
+
};
|
|
27
|
+
return getCart;
|
|
25
28
|
};
|
|
26
29
|
|
|
27
30
|
exports.getCartOperation = getCartOperation;
|
|
@@ -4,25 +4,30 @@ var cartLinesRemove_generated = require('../../graphql/mutations/cart-lines-remo
|
|
|
4
4
|
var common = require('../../helpers/common.js');
|
|
5
5
|
var normalize = require('../../helpers/normalize.js');
|
|
6
6
|
|
|
7
|
-
const removeCartItemOperation = (config)
|
|
8
|
-
const removeCartItem = async (input)
|
|
9
|
-
if (!config.storefrontUrl) {
|
|
10
|
-
throw new Error('Shop is not connected');
|
|
11
|
-
}
|
|
12
|
-
const variables = {
|
|
13
|
-
cartId: input.cartId,
|
|
14
|
-
lineIds: [
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
7
|
+
const removeCartItemOperation = (config)=>{
|
|
8
|
+
const removeCartItem = async (input)=>{
|
|
9
|
+
if (!config.storefrontUrl) {
|
|
10
|
+
throw new Error('Shop is not connected');
|
|
11
|
+
}
|
|
12
|
+
const variables = {
|
|
13
|
+
cartId: input.cartId,
|
|
14
|
+
lineIds: [
|
|
15
|
+
input.lineId
|
|
16
|
+
]
|
|
17
|
+
};
|
|
18
|
+
const res = await fetch(config.storefrontUrl, {
|
|
19
|
+
...common.composeRequest(config),
|
|
20
|
+
body: JSON.stringify({
|
|
21
|
+
query: cartLinesRemove_generated.CartLinesRemoveDocument,
|
|
22
|
+
variables
|
|
23
|
+
})
|
|
24
|
+
}).then((res)=>res.json());
|
|
25
|
+
if (res.data?.cartLinesRemove?.userErrors.length || !res.data?.cartLinesRemove?.cart) {
|
|
26
|
+
throw res.data?.cartLinesRemove?.userErrors;
|
|
27
|
+
}
|
|
28
|
+
return normalize.normalizeCart(res.data.cartLinesRemove.cart);
|
|
29
|
+
};
|
|
30
|
+
return removeCartItem;
|
|
26
31
|
};
|
|
27
32
|
|
|
28
33
|
exports.removeCartItemOperation = removeCartItemOperation;
|
|
@@ -4,31 +4,34 @@ var cartLinesUpdate_generated = require('../../graphql/mutations/cart-lines-upda
|
|
|
4
4
|
var common = require('../../helpers/common.js');
|
|
5
5
|
var normalize = require('../../helpers/normalize.js');
|
|
6
6
|
|
|
7
|
-
const updateCartLineOperation = (config)
|
|
8
|
-
const updateCartLine = async (input)
|
|
9
|
-
if (!config.storefrontUrl) {
|
|
10
|
-
throw new Error('Shop is not connected');
|
|
11
|
-
}
|
|
12
|
-
const variables = {
|
|
13
|
-
cartId: input.cartId,
|
|
14
|
-
lines: [
|
|
15
|
-
{
|
|
16
|
-
id: input.line.id,
|
|
17
|
-
merchandiseId: input.line.variantId,
|
|
18
|
-
quantity: input.line.quantity
|
|
19
|
-
}
|
|
20
|
-
]
|
|
21
|
-
};
|
|
22
|
-
const res = await fetch(config.storefrontUrl, {
|
|
23
|
-
...common.composeRequest(config),
|
|
24
|
-
body: JSON.stringify({
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
7
|
+
const updateCartLineOperation = (config)=>{
|
|
8
|
+
const updateCartLine = async (input)=>{
|
|
9
|
+
if (!config.storefrontUrl) {
|
|
10
|
+
throw new Error('Shop is not connected');
|
|
11
|
+
}
|
|
12
|
+
const variables = {
|
|
13
|
+
cartId: input.cartId,
|
|
14
|
+
lines: [
|
|
15
|
+
{
|
|
16
|
+
id: input.line.id,
|
|
17
|
+
merchandiseId: input.line.variantId,
|
|
18
|
+
quantity: input.line.quantity
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
};
|
|
22
|
+
const res = await fetch(config.storefrontUrl, {
|
|
23
|
+
...common.composeRequest(config),
|
|
24
|
+
body: JSON.stringify({
|
|
25
|
+
query: cartLinesUpdate_generated.CartLinesUpdateDocument,
|
|
26
|
+
variables
|
|
27
|
+
})
|
|
28
|
+
}).then((res)=>res.json());
|
|
29
|
+
if (res.data?.cartLinesUpdate?.userErrors.length || !res.data?.cartLinesUpdate?.cart) {
|
|
30
|
+
throw res.data?.cartLinesUpdate?.userErrors;
|
|
31
|
+
}
|
|
32
|
+
return normalize.normalizeCart(res.data?.cartLinesUpdate.cart);
|
|
33
|
+
};
|
|
34
|
+
return updateCartLine;
|
|
32
35
|
};
|
|
33
36
|
|
|
34
37
|
exports.updateCartLineOperation = updateCartLineOperation;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const CartProductVariantSelect = `
|
|
3
|
+
/* eslint-disable */ const CartProductVariantSelect = `
|
|
4
4
|
fragment CartProductVariantSelect on ProductVariant {
|
|
5
5
|
id
|
|
6
6
|
title
|
|
@@ -33,7 +33,7 @@ const CartProductVariantSelect = `
|
|
|
33
33
|
weight
|
|
34
34
|
weightUnit
|
|
35
35
|
}
|
|
36
|
-
`;
|
|
36
|
+
`;
|
|
37
37
|
const CartLineSelect = `
|
|
38
38
|
fragment CartLineSelect on CartLine {
|
|
39
39
|
id
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var country_generated = require('../fragments/country.generated.js');
|
|
4
4
|
var currency_generated = require('../fragments/currency.generated.js');
|
|
5
|
+
var language_generated = require('../fragments/language.generated.js');
|
|
5
6
|
|
|
6
7
|
const ShopMetaDocument = `
|
|
7
8
|
query shopMeta {
|
|
@@ -9,6 +10,9 @@ const ShopMetaDocument = `
|
|
|
9
10
|
country {
|
|
10
11
|
...CountrySelect
|
|
11
12
|
}
|
|
13
|
+
language {
|
|
14
|
+
...LanguageSelect
|
|
15
|
+
}
|
|
12
16
|
}
|
|
13
17
|
shop {
|
|
14
18
|
name
|
|
@@ -16,6 +20,7 @@ const ShopMetaDocument = `
|
|
|
16
20
|
}
|
|
17
21
|
}
|
|
18
22
|
${country_generated.CountrySelect}
|
|
19
|
-
${currency_generated.CurrencySelect}
|
|
23
|
+
${currency_generated.CurrencySelect}
|
|
24
|
+
${language_generated.LanguageSelect}`;
|
|
20
25
|
|
|
21
26
|
exports.ShopMetaDocument = ShopMetaDocument;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const composeRequest = (config)
|
|
4
|
-
return {
|
|
5
|
-
method: 'POST',
|
|
6
|
-
headers: {
|
|
7
|
-
'Content-Type': 'application/json',
|
|
8
|
-
...
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
};
|
|
3
|
+
const composeRequest = (config)=>{
|
|
4
|
+
return {
|
|
5
|
+
method: 'POST',
|
|
6
|
+
headers: {
|
|
7
|
+
'Content-Type': 'application/json',
|
|
8
|
+
...config.storefrontToken ? {
|
|
9
|
+
'X-Shopify-Storefront-Access-Token': config.storefrontToken
|
|
10
|
+
} : {}
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
exports.composeRequest = composeRequest;
|
|
@@ -1,58 +1,58 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const normalizeCartProductVariant = (variant)
|
|
4
|
-
const { compareAtPriceV2, priceV2, weight, weightUnit, id, sku, image
|
|
5
|
-
return {
|
|
6
|
-
id,
|
|
7
|
-
requiresShipping: variant.requiresShipping,
|
|
8
|
-
availableForSale: variant.availableForSale,
|
|
9
|
-
sku: sku ?? id,
|
|
10
|
-
name: variant.title,
|
|
11
|
-
listPrice: compareAtPriceV2?.amount ? +compareAtPriceV2?.amount : 0,
|
|
12
|
-
price: +priceV2.amount,
|
|
13
|
-
weight: {
|
|
14
|
-
value: weight ?? 0,
|
|
15
|
-
unit: weightUnit
|
|
16
|
-
},
|
|
17
|
-
image
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
const normalizeLineItem = (lineItem)
|
|
21
|
-
const { quantity, id, merchandise
|
|
22
|
-
const variant = normalizeCartProductVariant(merchandise);
|
|
23
|
-
return {
|
|
24
|
-
id,
|
|
25
|
-
quantity,
|
|
26
|
-
variant,
|
|
27
|
-
attributes: lineItem.attributes,
|
|
28
|
-
variantId: variant.id,
|
|
29
|
-
name: variant.name,
|
|
30
|
-
productTitle: merchandise.product.title,
|
|
31
|
-
productId: variant.id,
|
|
32
|
-
path: merchandise.product.handle,
|
|
33
|
-
discounts: []
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
const normalizeCart = (cart)
|
|
37
|
-
const { cost
|
|
38
|
-
return {
|
|
39
|
-
createdAt: cart.createdAt,
|
|
40
|
-
id: cart.id,
|
|
41
|
-
lineItems: cart.lines.nodes.map(normalizeLineItem),
|
|
42
|
-
subtotalPrice: +cost.subtotalAmount.amount,
|
|
43
|
-
totalPrice: +cost.totalAmount.amount,
|
|
44
|
-
currency: {
|
|
45
|
-
code: cost.totalAmount.currencyCode
|
|
46
|
-
},
|
|
47
|
-
taxesIncluded: true,
|
|
48
|
-
lineItemsSubtotalPrice: +cost.subtotalAmount.amount,
|
|
49
|
-
checkoutUrl: cart.checkoutUrl,
|
|
50
|
-
note: cart.note,
|
|
51
|
-
discounts: cart.discountCodes.map((v)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
};
|
|
3
|
+
const normalizeCartProductVariant = (variant)=>{
|
|
4
|
+
const { compareAtPriceV2 , priceV2 , weight , weightUnit , id , sku , image } = variant;
|
|
5
|
+
return {
|
|
6
|
+
id,
|
|
7
|
+
requiresShipping: variant.requiresShipping,
|
|
8
|
+
availableForSale: variant.availableForSale,
|
|
9
|
+
sku: sku ?? id,
|
|
10
|
+
name: variant.title,
|
|
11
|
+
listPrice: compareAtPriceV2?.amount ? +compareAtPriceV2?.amount : 0,
|
|
12
|
+
price: +priceV2.amount,
|
|
13
|
+
weight: {
|
|
14
|
+
value: weight ?? 0,
|
|
15
|
+
unit: weightUnit
|
|
16
|
+
},
|
|
17
|
+
image
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
const normalizeLineItem = (lineItem)=>{
|
|
21
|
+
const { quantity , id , merchandise } = lineItem;
|
|
22
|
+
const variant = normalizeCartProductVariant(merchandise);
|
|
23
|
+
return {
|
|
24
|
+
id,
|
|
25
|
+
quantity,
|
|
26
|
+
variant,
|
|
27
|
+
attributes: lineItem.attributes,
|
|
28
|
+
variantId: variant.id,
|
|
29
|
+
name: variant.name,
|
|
30
|
+
productTitle: merchandise.product.title,
|
|
31
|
+
productId: variant.id,
|
|
32
|
+
path: merchandise.product.handle,
|
|
33
|
+
discounts: []
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
const normalizeCart = (cart)=>{
|
|
37
|
+
const { cost } = cart;
|
|
38
|
+
return {
|
|
39
|
+
createdAt: cart.createdAt,
|
|
40
|
+
id: cart.id,
|
|
41
|
+
lineItems: cart.lines.nodes.map(normalizeLineItem),
|
|
42
|
+
subtotalPrice: +cost.subtotalAmount.amount,
|
|
43
|
+
totalPrice: +cost.totalAmount.amount,
|
|
44
|
+
currency: {
|
|
45
|
+
code: cost.totalAmount.currencyCode
|
|
46
|
+
},
|
|
47
|
+
taxesIncluded: true,
|
|
48
|
+
lineItemsSubtotalPrice: +cost.subtotalAmount.amount,
|
|
49
|
+
checkoutUrl: cart.checkoutUrl,
|
|
50
|
+
note: cart.note,
|
|
51
|
+
discounts: cart.discountCodes.map((v)=>({
|
|
52
|
+
code: v.code,
|
|
53
|
+
applicable: v.applicable
|
|
54
|
+
}))
|
|
55
|
+
};
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
exports.normalizeCart = normalizeCart;
|