// Cart Fragment for consistent cart data const CartFragment = ` fragment CartFragment on Cart { id checkoutUrl totalQuantity cost { subtotalAmount { amount currencyCode } totalAmount { amount currencyCode } totalTaxAmount { amount currencyCode } } lines(first: 100) { edges { node { id quantity cost { totalAmount { amount currencyCode } } merchandise { ... on ProductVariant { id title selectedOptions { name value } price { amount currencyCode } image { id url altText width height } product { id title handle vendor } } } } } } } `; // Create a new cart export const CREATE_CART_MUTATION = ` ${CartFragment} mutation CreateCart($lines: [CartLineInput!]) { cartCreate(input: { lines: $lines }) { cart { ...CartFragment } userErrors { field message } } } `; // Add lines to cart export const ADD_CART_LINES_MUTATION = ` ${CartFragment} mutation AddCartLines($cartId: ID!, $lines: [CartLineInput!]!) { cartLinesAdd(cartId: $cartId, lines: $lines) { cart { ...CartFragment } userErrors { field message } } } `; // Update cart lines export const UPDATE_CART_LINES_MUTATION = ` ${CartFragment} mutation UpdateCartLines($cartId: ID!, $lines: [CartLineUpdateInput!]!) { cartLinesUpdate(cartId: $cartId, lines: $lines) { cart { ...CartFragment } userErrors { field message } } } `; // Remove lines from cart export const REMOVE_CART_LINES_MUTATION = ` ${CartFragment} mutation RemoveCartLines($cartId: ID!, $lineIds: [ID!]!) { cartLinesRemove(cartId: $cartId, lineIds: $lineIds) { cart { ...CartFragment } userErrors { field message } } } `; // Get cart by ID export const GET_CART_QUERY = ` ${CartFragment} query GetCart($cartId: ID!) { cart(id: $cartId) { ...CartFragment } } `;