create-sellflow
Version:
Pre-built cross-platform Shopify app template
261 lines (241 loc) • 5.42 kB
text/typescript
export const CartLineAdd = () => `#graphql
mutation CartLineAdd(
$cartId: ID!
$lines: [CartLineInput!]!
$numCartLines: Int = 250
$country: CountryCode = ZZ
$language: LanguageCode
) @inContext(country: $country, language: $language) {
cartLinesAdd(cartId: $cartId, lines: $lines) {
cart {
...CartFragment
}
}
}
${defaultCartFragment}
`;
export const CartCreate = (): string => `#graphql
mutation CartCreate(
$input: CartInput!
$numCartLines: Int = 250
$country: CountryCode = ZZ
$language: LanguageCode
) @inContext(country: $country, language: $language) {
cartCreate(input: $input) {
cart {
...CartFragment
}
}
}
${defaultCartFragment}
`;
export const CartLineRemove = (): string => `#graphql
mutation CartLineRemove(
$cartId: ID!
$lines: [ID!]!
$numCartLines: Int = 250
$country: CountryCode = ZZ
$language: LanguageCode
) @inContext(country: $country, language: $language) {
cartLinesRemove(cartId: $cartId, lineIds: $lines) {
cart {
...CartFragment
}
}
}
${defaultCartFragment}
`;
export const CartLineUpdate = (): string => `#graphql
mutation CartLineUpdate(
$cartId: ID!
$lines: [CartLineUpdateInput!]!
$numCartLines: Int = 250
$country: CountryCode = ZZ
$language: LanguageCode
) @inContext(country: $country, language: $language) {
cartLinesUpdate(cartId: $cartId, lines: $lines) {
cart {
...CartFragment
}
}
}
${defaultCartFragment}
`;
export const CartNoteUpdate = (): string => `#graphql
mutation CartNoteUpdate(
$cartId: ID!
$note: String!
$numCartLines: Int = 250
$country: CountryCode = ZZ
$language: LanguageCode
) @inContext(country: $country, language: $language) {
cartNoteUpdate(cartId: $cartId, note: $note) {
cart {
...CartFragment
}
}
}
${defaultCartFragment}
`;
export const CartBuyerIdentityUpdate = () => `graphql
mutation CartBuyerIdentityUpdate(
$cartId: ID!
$buyerIdentity: CartBuyerIdentityInput!
$numCartLines: Int = 250
$country: CountryCode = ZZ
$language: LanguageCode
) @inContext(country: $country, language: $language) {
cartBuyerIdentityUpdate(cartId: $cartId, buyerIdentity: $buyerIdentity) {
cart {
...CartFragment
}
}
}
${defaultCartFragment}
`;
export const CartAttributesUpdate = () => `#graphql
mutation CartAttributesUpdate(
$attributes: [AttributeInput!]!
$cartId: ID!
$numCartLines: Int = 250
$country: CountryCode = ZZ
$language: LanguageCode
) @inContext(country: $country, language: $language) {
cartAttributesUpdate(attributes: $attributes, cartId: $cartId) {
cart {
...CartFragment
}
}
}
${defaultCartFragment}
`;
export const CartDiscountCodesUpdate = (): string => `
mutation CartDiscountCodesUpdate(
$cartId: ID!
$discountCodes: [String!]
$numCartLines: Int = 250
$country: CountryCode = ZZ
$language: LanguageCode
) @inContext(country: $country, language: $language) {
cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {
cart {
...CartFragment
}
}
}
${defaultCartFragment}
`;
export const CartQuery = (): string => `
query CartQuery(
$id: ID!
$numCartLines: Int = 250
$country: CountryCode = ZZ
$language: LanguageCode
) @inContext(country: $country, language: $language) {
cart(id: $id) {
...CartFragment
}
}
${defaultCartFragment}
`;
export const defaultCartFragment = `
fragment CartFragment on Cart {
id
checkoutUrl
totalQuantity
buyerIdentity {
countryCode
customer {
id
email
firstName
lastName
displayName
}
email
phone
}
lines(first: $numCartLines) {
edges {
node {
id
quantity
attributes {
key
value
}
cost {
totalAmount {
amount
currencyCode
}
compareAtAmountPerQuantity {
amount
currencyCode
}
}
merchandise {
... on ProductVariant {
id
availableForSale
compareAtPrice {
...MoneyFragment
}
price {
...MoneyFragment
}
requiresShipping
title
image {
...ImageFragment
}
product {
handle
title
id
}
selectedOptions {
name
value
}
}
}
}
}
}
cost {
subtotalAmount {
...MoneyFragment
}
totalAmount {
...MoneyFragment
}
totalDutyAmount {
...MoneyFragment
}
totalTaxAmount {
...MoneyFragment
}
}
note
attributes {
key
value
}
discountCodes {
code
applicable
}
}
fragment MoneyFragment on MoneyV2 {
currencyCode
amount
}
fragment ImageFragment on Image {
id
url
altText
width
height
}
`;