mirror of
https://github.com/vercel/commerce.git
synced 2025-05-19 16:07:01 +00:00
wip: Saving work
This commit is contained in:
parent
5f664a03c3
commit
66dd5eae90
@ -120,11 +120,17 @@ const removeEdgesAndNodes = (array: Connection<any>) => {
|
|||||||
return array.edges.map((edge) => edge?.node);
|
return array.edges.map((edge) => edge?.node);
|
||||||
};
|
};
|
||||||
|
|
||||||
const reshapeCart = (cart: ShopifyCart): Cart => {
|
const reshapeCart = (cart: ShopifyCart, country?: string, language?: string): Cart => {
|
||||||
if (!cart.cost?.totalTaxAmount) {
|
if (!cart.cost?.totalTaxAmount) {
|
||||||
cart.cost.totalTaxAmount = {
|
cart.cost.totalTaxAmount =
|
||||||
|
country === 'US' || language === 'EN'
|
||||||
|
? {
|
||||||
amount: '0.0',
|
amount: '0.0',
|
||||||
currencyCode: 'USD'
|
currencyCode: 'USD'
|
||||||
|
}
|
||||||
|
: {
|
||||||
|
amount: '0',
|
||||||
|
currencyCode: 'JPY'
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,24 +222,38 @@ const reshapeProducts = (products: ShopifyProduct[]) => {
|
|||||||
return reshapedProducts;
|
return reshapedProducts;
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function createCart(): Promise<Cart> {
|
export async function createCart({
|
||||||
|
country,
|
||||||
|
language
|
||||||
|
}: {
|
||||||
|
country?: string;
|
||||||
|
language?: string;
|
||||||
|
}): Promise<Cart> {
|
||||||
const res = await shopifyFetch<ShopifyCreateCartOperation>({
|
const res = await shopifyFetch<ShopifyCreateCartOperation>({
|
||||||
query: createCartMutation,
|
query: createCartMutation,
|
||||||
cache: 'no-store'
|
cache: 'no-store',
|
||||||
|
variables: {
|
||||||
|
country,
|
||||||
|
language
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return reshapeCart(res.body.data.cartCreate.cart);
|
return reshapeCart(res.body.data.cartCreate.cart, country, language);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function addToCart(
|
export async function addToCart(
|
||||||
cartId: string,
|
cartId: string,
|
||||||
lines: { merchandiseId: string; quantity: number }[]
|
lines: { merchandiseId: string; quantity: number }[],
|
||||||
|
country?: string,
|
||||||
|
language?: string
|
||||||
): Promise<Cart> {
|
): Promise<Cart> {
|
||||||
const res = await shopifyFetch<ShopifyAddToCartOperation>({
|
const res = await shopifyFetch<ShopifyAddToCartOperation>({
|
||||||
query: addToCartMutation,
|
query: addToCartMutation,
|
||||||
variables: {
|
variables: {
|
||||||
cartId,
|
cartId,
|
||||||
lines
|
lines,
|
||||||
|
country,
|
||||||
|
language
|
||||||
},
|
},
|
||||||
cache: 'no-store'
|
cache: 'no-store'
|
||||||
});
|
});
|
||||||
@ -269,10 +289,18 @@ export async function updateCart(
|
|||||||
return reshapeCart(res.body.data.cartLinesUpdate.cart);
|
return reshapeCart(res.body.data.cartLinesUpdate.cart);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getCart(cartId: string): Promise<Cart | undefined> {
|
export async function getCart({
|
||||||
|
cartId,
|
||||||
|
country,
|
||||||
|
language
|
||||||
|
}: {
|
||||||
|
cartId: string;
|
||||||
|
country?: string;
|
||||||
|
language?: string;
|
||||||
|
}): Promise<Cart | undefined> {
|
||||||
const res = await shopifyFetch<ShopifyCartOperation>({
|
const res = await shopifyFetch<ShopifyCartOperation>({
|
||||||
query: getCartQuery,
|
query: getCartQuery,
|
||||||
variables: { cartId },
|
variables: { cartId, country, language },
|
||||||
cache: 'no-store'
|
cache: 'no-store'
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -281,7 +309,7 @@ export async function getCart(cartId: string): Promise<Cart | undefined> {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
return reshapeCart(res.body.data.cart);
|
return reshapeCart(res.body.data.cart, country, language);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getCollection({
|
export async function getCollection({
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
import cartFragment from '../fragments/cart';
|
import cartFragment from '../fragments/cart';
|
||||||
|
|
||||||
export const addToCartMutation = /* GraphQL */ `
|
export const addToCartMutation = /* GraphQL */ `
|
||||||
mutation addToCart($cartId: ID!, $lines: [CartLineInput!]!) {
|
mutation addToCart(
|
||||||
|
$cartId: ID!
|
||||||
|
$lines: [CartLineInput!]!
|
||||||
|
$country: CountryCode
|
||||||
|
$language: LanguageCode
|
||||||
|
) @inContext($country: String, $language: String) {
|
||||||
cartLinesAdd(cartId: $cartId, lines: $lines) {
|
cartLinesAdd(cartId: $cartId, lines: $lines) {
|
||||||
cart {
|
cart {
|
||||||
...cart
|
...cart
|
||||||
@ -12,7 +17,11 @@ export const addToCartMutation = /* GraphQL */ `
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
export const createCartMutation = /* GraphQL */ `
|
export const createCartMutation = /* GraphQL */ `
|
||||||
mutation createCart($lineItems: [CartLineInput!]) {
|
mutation createCart(
|
||||||
|
$lineItems: [CartLineInput!],
|
||||||
|
$country: CountryCode,
|
||||||
|
$language: LanguageCode
|
||||||
|
) @inContext($country: String, $language: String) {
|
||||||
cartCreate(input: { lines: $lineItems }) {
|
cartCreate(input: { lines: $lineItems }) {
|
||||||
cart {
|
cart {
|
||||||
...cart
|
...cart
|
||||||
@ -23,7 +32,8 @@ export const createCartMutation = /* GraphQL */ `
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
export const editCartItemsMutation = /* GraphQL */ `
|
export const editCartItemsMutation = /* GraphQL */ `
|
||||||
mutation editCartItems($cartId: ID!, $lines: [CartLineUpdateInput!]!) {
|
mutation editCartItems($cartId: ID!, $lines: [CartLineUpdateInput!]!, $country: CountryCode, $language: LanguageCode)
|
||||||
|
@inContext($country: String, $language: String) {
|
||||||
cartLinesUpdate(cartId: $cartId, lines: $lines) {
|
cartLinesUpdate(cartId: $cartId, lines: $lines) {
|
||||||
cart {
|
cart {
|
||||||
...cart
|
...cart
|
||||||
@ -34,7 +44,8 @@ export const editCartItemsMutation = /* GraphQL */ `
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
export const removeFromCartMutation = /* GraphQL */ `
|
export const removeFromCartMutation = /* GraphQL */ `
|
||||||
mutation removeFromCart($cartId: ID!, $lineIds: [ID!]!) {
|
mutation removeFromCart($cartId: ID!, $lineIds: [ID!]!, $country: CountryCode, $language: LanguageCode)
|
||||||
|
@inContext($country: String, $language: String) {
|
||||||
cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {
|
cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {
|
||||||
cart {
|
cart {
|
||||||
...cart
|
...cart
|
||||||
|
Loading…
x
Reference in New Issue
Block a user