diff --git a/.env.template b/.env.template index 32649d29e..d5f59f0e8 100644 --- a/.env.template +++ b/.env.template @@ -27,3 +27,10 @@ NEXT_PUBLIC_VENDURE_LOCAL_URL= ORDERCLOUD_CLIENT_ID= ORDERCLOUD_CLIENT_SECRET= STRIPE_SECRET= + +KIBO_API_URL= +KIBO_CLIENT_ID= +KIBO_SHARED_SECRET= +KIBO_CART_COOKIE= +KIBO_CUSTOMER_COOKIE= +KIBO_API_HOST= diff --git a/README.md b/README.md index 1c862e172..bf53d57e2 100644 --- a/README.md +++ b/README.md @@ -155,4 +155,4 @@ After Email confirmation, Checkout should be manually enabled through BigCommerc

BigCommerce team has been notified and they plan to add more details about this subject. - + \ No newline at end of file diff --git a/framework/commerce/config.js b/framework/commerce/config.js index 7e61921ae..67311b912 100644 --- a/framework/commerce/config.js +++ b/framework/commerce/config.js @@ -15,7 +15,8 @@ const PROVIDERS = [ 'swell', 'vendure', 'ordercloud', - 'spree', + 'kibocommerce', + 'spree' ] function getProviderName() { diff --git a/framework/kibocommerce/.env.template b/framework/kibocommerce/.env.template new file mode 100644 index 000000000..75cfe67ff --- /dev/null +++ b/framework/kibocommerce/.env.template @@ -0,0 +1,7 @@ +COMMERCE_PROVIDER=kibocommerce +KIBO_API_URL= +KIBO_CART_COOKIE= +KIBO_CUSTOMER_COOKIE= +KIBO_CLIENT_ID= +KIBO_SHARED_SECRET= +KIBO_AUTH_URL= diff --git a/framework/kibocommerce/README.md b/framework/kibocommerce/README.md new file mode 100644 index 000000000..dc7589635 --- /dev/null +++ b/framework/kibocommerce/README.md @@ -0,0 +1,37 @@ +# Kibo Commerce Provider + +If you already have a Kibo Commerce account and want to use your current store, then copy the `.env.template` file in this directory to `.env.local` in the main directory (which will be ignored by Git): + +```bash +cp framework/kibocommerce/.env.template .env.local +``` + +Then, set the environment variables in `.env.local` to match the ones from your store. + +``` +COMMERCE_PROVIDER='kibocommerce' +KIBO_API_URL= 'https://t1234-s1234.sandbox.mozu.com/graphql' +KIBO_CART_COOKIE='kibo_cart' +KIBO_CUSTOMER_COOKIE='kibo_customer' +KIBO_CLIENT_ID='KIBO.APP.1.0.0.Release' +KIBO_SHARED_SECRET='12345secret' +KIBO_AUTH_URL='https://home.mozu.com' +``` + +- `KIBO_API_URL` - link to your Kibo Commerce GraphQL API instance. +- `KIBO_CART_COOKIE` - configurable cookie name for cart. +- `KIBO_CUSTOMER_COOKIE` - configurable cookie name for shopper identifier/authentication cookie +- `KIBO_CLIENT_ID` - Unique Application (Client) ID of your Application +- `KIBO_SHARED_SECRET` - Secret API key used to authenticate application/client id. + + +Your Kibo Client ID and Shared Secret can be found from your [Kibo eCommerce Dev Center](https://mozu.com/login) + +Visit [Kibo documentation](https://apidocs.kibong-perf.com/?spec=graphql#auth) for more details on API authentication + +Based on the config, this integration will handle Authenticating your application against the Kibo API using the Kibo Client ID and Kibo Shared Secret. +## Contribute + +Our commitment to Open Source can be found [here](https://vercel.com/oss). + +If you find an issue with the provider or want a new feature, feel free to open a PR or [create a new issue](https://github.com/vercel/commerce/issues). diff --git a/framework/kibocommerce/api/endpoints/cart/add-item.ts b/framework/kibocommerce/api/endpoints/cart/add-item.ts new file mode 100644 index 000000000..6cda2a944 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/cart/add-item.ts @@ -0,0 +1,102 @@ +import { Product } from './../../../schema.d' +import { normalizeCart } from '../../../lib/normalize' +import type { CartEndpoint } from '.' +import addToCurrentCartMutation from '../../../api/mutations/addToCart-mutation' + +import { getProductQuery } from '../../../api/queries/get-product-query' +import { getCartQuery } from '../../../api/queries/get-cart-query' +import CookieHandler from '../../../api/utils/cookie-handler' + +const buildAddToCartVariables = ({ + productId, + variantId, + quantity = 1, + productResponse, +}: { + productId: string + variantId: string + quantity: number + productResponse: any +}) => { + const { product } = productResponse.data + + const selectedOptions = product.variations?.find( + (v: any) => v.productCode === variantId + ).options + + let options: any[] = [] + selectedOptions?.forEach((each: any) => { + product?.options + .filter((option: any) => { + return option.attributeFQN == each.attributeFQN + }) + .forEach((po: any) => { + options.push({ + attributeFQN: po.attributeFQN, + name: po.attributeDetail.name, + value: po.values?.find((v: any) => v.value == each.value).value, + }) + }) + }) + + return { + productToAdd: { + product: { + productCode: productId, + variationProductCode: variantId ? variantId : null, + options, + }, + quantity, + fulfillmentMethod: 'Ship', + }, + } +} + +const addItem: CartEndpoint['handlers']['addItem'] = async ({ + req, + res, + body: { cartId, item }, + config, +}) => { + if (!item) { + return res.status(400).json({ + data: null, + errors: [{ message: 'Missing item' }], + }) + } + if (!item.quantity) item.quantity = 1 + + const productResponse = await config.fetch(getProductQuery, { + variables: { productCode: item?.productId }, + }) + + const cookieHandler = new CookieHandler(config, req, res) + let accessToken = null + + if (!cookieHandler.getAccessToken()) { + let anonymousShopperTokenResponse = await cookieHandler.getAnonymousToken() + accessToken = anonymousShopperTokenResponse.accessToken; + } else { + accessToken = cookieHandler.getAccessToken() + } + + const addToCartResponse = await config.fetch( + addToCurrentCartMutation, + { + variables: buildAddToCartVariables({ ...item, productResponse }), + }, + { headers: { 'x-vol-user-claims': accessToken } } + ) + let currentCart = null + if (addToCartResponse.data.addItemToCurrentCart) { + let result = await config.fetch( + getCartQuery, + {}, + { headers: { 'x-vol-user-claims': accessToken } } + ) + currentCart = result?.data?.currentCart + } + res.status(200).json({ data: normalizeCart(currentCart) }) +} + +export default addItem diff --git a/framework/kibocommerce/api/endpoints/cart/get-cart.ts b/framework/kibocommerce/api/endpoints/cart/get-cart.ts new file mode 100644 index 000000000..b7e672092 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/cart/get-cart.ts @@ -0,0 +1,41 @@ +import CookieHandler from '../../../api/utils/cookie-handler' +import { normalizeCart } from '../../../lib/normalize' +import { Cart } from '../../../schema' +import type { CartEndpoint } from '.' +import { getCartQuery } from '../../queries/get-cart-query' + +const getCart: CartEndpoint['handlers']['getCart'] = async ({ + req, + res, + body: { cartId }, + config, +}) => { + let currentCart: Cart = {} + try { + const cookieHandler = new CookieHandler(config, req, res) + let accessToken = null + + if (!cookieHandler.getAccessToken()) { + let anonymousShopperTokenResponse = await cookieHandler.getAnonymousToken() + const response = anonymousShopperTokenResponse.response + accessToken = anonymousShopperTokenResponse.accessToken + cookieHandler.setAnonymousShopperCookie(response) + } else { + accessToken = cookieHandler.getAccessToken() + } + + let result = await config.fetch( + getCartQuery, + {}, + { headers: { 'x-vol-user-claims': accessToken } } + ) + currentCart = result?.data?.currentCart + } catch (error) { + throw error + } + res.status(200).json({ + data: currentCart ? normalizeCart(currentCart) : null, + }) +} + +export default getCart diff --git a/framework/kibocommerce/api/endpoints/cart/index.ts b/framework/kibocommerce/api/endpoints/cart/index.ts new file mode 100644 index 000000000..53de2424e --- /dev/null +++ b/framework/kibocommerce/api/endpoints/cart/index.ts @@ -0,0 +1,25 @@ +import { GetAPISchema, createEndpoint } from '@commerce/api' +import cartEndpoint from '@commerce/api/endpoints/cart' +import type { KiboCommerceAPI } from '../..' +import getCart from './get-cart'; +import addItem from './add-item'; +import updateItem from './update-item' +import removeItem from './remove-item' + +export type CartAPI = GetAPISchema + +export type CartEndpoint = CartAPI['endpoint'] + +export const handlers: CartEndpoint['handlers'] = { + getCart, + addItem, + updateItem, + removeItem, +} + +const cartApi = createEndpoint({ + handler: cartEndpoint, + handlers, +}) + +export default cartApi diff --git a/framework/kibocommerce/api/endpoints/cart/remove-item.ts b/framework/kibocommerce/api/endpoints/cart/remove-item.ts new file mode 100644 index 000000000..62f6afdc6 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/cart/remove-item.ts @@ -0,0 +1,45 @@ +import { normalizeCart } from '../../../lib/normalize' +import type { CartEndpoint } from '.' +import removeItemFromCartMutation from '../../../api/mutations/removeItemFromCart-mutation' +import { getCartQuery } from '../../../api/queries/get-cart-query' + +const removeItem: CartEndpoint['handlers']['removeItem'] = async ({ + req, + res, + body: { cartId, itemId }, + config, +}) => { + if (!itemId) { + return res.status(400).json({ + data: null, + errors: [{ message: 'Invalid request' }], + }) + } + const encodedToken = req.cookies[config.customerCookie] + const token = encodedToken + ? Buffer.from(encodedToken, 'base64').toString('ascii') + : null + + const accessToken = token ? JSON.parse(token).accessToken : null + + const removeItemResponse = await config.fetch( + removeItemFromCartMutation, + { + variables: { id: itemId }, + }, + { headers: { 'x-vol-user-claims': accessToken } } + ) + + let currentCart = null + if (removeItemResponse.data.deleteCurrentCartItem) { + let result = await config.fetch( + getCartQuery, + {}, + { headers: { 'x-vol-user-claims': accessToken } } + ) + currentCart = result?.data?.currentCart + } + res.status(200).json({ data: normalizeCart(currentCart) }) +} + +export default removeItem diff --git a/framework/kibocommerce/api/endpoints/cart/update-item.ts b/framework/kibocommerce/api/endpoints/cart/update-item.ts new file mode 100644 index 000000000..b42ff3430 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/cart/update-item.ts @@ -0,0 +1,45 @@ +import { normalizeCart } from '../../../lib/normalize' +import type { CartEndpoint } from '.' +import { getCartQuery } from '../../../api/queries/get-cart-query' +import updateCartItemQuantityMutation from '../../../api/mutations/updateCartItemQuantity-mutation' + +const updateItem: CartEndpoint['handlers']['updateItem'] = async ({ + req, + res, + body: { cartId, itemId, item }, + config, +}) => { + if (!itemId || !item) { + return res.status(400).json({ + data: null, + errors: [{ message: 'Invalid request' }], + }) + } + const encodedToken = req.cookies[config.customerCookie] + const token = encodedToken + ? Buffer.from(encodedToken, 'base64').toString('ascii') + : null + + const accessToken = token ? JSON.parse(token).accessToken : null + + const updateItemResponse = await config.fetch( + updateCartItemQuantityMutation, + { + variables: { itemId: itemId, quantity: item.quantity }, + }, + { headers: { 'x-vol-user-claims': accessToken } } + ) + + let currentCart = null + if (updateItemResponse.data) { + let result = await config.fetch( + getCartQuery, + {}, + { headers: { 'x-vol-user-claims': accessToken } } + ) + currentCart = result?.data?.currentCart + } + res.status(200).json({ data: normalizeCart(currentCart) }) +} + +export default updateItem diff --git a/framework/kibocommerce/api/endpoints/catalog/products/index.ts b/framework/kibocommerce/api/endpoints/catalog/products/index.ts new file mode 100644 index 000000000..12c72b27e --- /dev/null +++ b/framework/kibocommerce/api/endpoints/catalog/products/index.ts @@ -0,0 +1,17 @@ +import { GetAPISchema, createEndpoint } from '@commerce/api' +import productsEndpoint from '@commerce/api/endpoints/catalog/products' +import type { KiboCommerceAPI } from '../../..' +import getProducts from '../products/products' + +export type ProductsAPI = GetAPISchema + +export type ProductsEndpoint = ProductsAPI['endpoint'] + +export const handlers: ProductsEndpoint['handlers'] = { getProducts } + +const productsApi = createEndpoint({ + handler: productsEndpoint, + handlers, +}) + +export default productsApi diff --git a/framework/kibocommerce/api/endpoints/catalog/products/products.ts b/framework/kibocommerce/api/endpoints/catalog/products/products.ts new file mode 100644 index 000000000..a4f5e6dac --- /dev/null +++ b/framework/kibocommerce/api/endpoints/catalog/products/products.ts @@ -0,0 +1,31 @@ +import { Product } from '@commerce/types/product' +import { ProductsEndpoint } from '.' +import productSearchQuery from '../../../queries/product-search-query' +import { buildProductSearchVars } from '../../../../lib/product-search-vars' +import {normalizeProduct} from '../../../../lib/normalize' + +const getProducts: ProductsEndpoint['handlers']['getProducts'] = async ({ + res, + body: { search, categoryId, brandId, sort }, + config, +}) => { + const pageSize = 100; + const filters = {}; + const startIndex = 0; + const variables = buildProductSearchVars({ + categoryCode: categoryId, + pageSize, + search, + sort, + filters, + startIndex, + }) + const {data} = await config.fetch(productSearchQuery, { variables }); + const found = data?.products?.items?.length > 0 ? true : false; + let productsResponse= data?.products?.items.map((item: any) =>normalizeProduct(item,config)); + const products: Product[] = found ? productsResponse : []; + + res.status(200).json({ data: { products, found } }); +} + +export default getProducts diff --git a/framework/kibocommerce/api/endpoints/checkout/index.ts b/framework/kibocommerce/api/endpoints/checkout/index.ts new file mode 100644 index 000000000..491bf0ac9 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/checkout/index.ts @@ -0,0 +1 @@ +export default function noopApi(...args: any[]): void {} diff --git a/framework/kibocommerce/api/endpoints/customer/address.ts b/framework/kibocommerce/api/endpoints/customer/address.ts new file mode 100644 index 000000000..491bf0ac9 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/customer/address.ts @@ -0,0 +1 @@ +export default function noopApi(...args: any[]): void {} diff --git a/framework/kibocommerce/api/endpoints/customer/card.ts b/framework/kibocommerce/api/endpoints/customer/card.ts new file mode 100644 index 000000000..491bf0ac9 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/customer/card.ts @@ -0,0 +1 @@ +export default function noopApi(...args: any[]): void {} diff --git a/framework/kibocommerce/api/endpoints/customer/customer.ts b/framework/kibocommerce/api/endpoints/customer/customer.ts new file mode 100644 index 000000000..6ed9d6e70 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/customer/customer.ts @@ -0,0 +1,36 @@ +import CookieHandler from '../../../api/utils/cookie-handler' +import type { CustomerEndpoint } from '.' +import { getCustomerAccountQuery } from '../../queries/get-customer-account-query' +import { normalizeCustomer } from '../../../lib/normalize' + +const getLoggedInCustomer: CustomerEndpoint['handlers']['getLoggedInCustomer'] = async ({ + req, + res, + config, +}) => { + const cookieHandler = new CookieHandler(config, req, res) + let accessToken = cookieHandler.getAccessToken(); + + if (cookieHandler.getAccessToken()) { + const { data } = await config.fetch(getCustomerAccountQuery, undefined, { + headers: { + 'x-vol-user-claims': accessToken, + }, + }) + + const customer = normalizeCustomer(data?.customerAccount) + + if (!customer.id) { + return res.status(400).json({ + data: null, + errors: [{ message: 'Customer not found', code: 'not_found' }], + }) + } + + return res.status(200).json({ data: { customer } }) + } + + res.status(200).json({ data: null }) +} + +export default getLoggedInCustomer diff --git a/framework/kibocommerce/api/endpoints/customer/index.ts b/framework/kibocommerce/api/endpoints/customer/index.ts new file mode 100644 index 000000000..c32bcfa91 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/customer/index.ts @@ -0,0 +1,18 @@ +import { GetAPISchema, createEndpoint } from '@commerce/api' +import customerEndpoint from '@commerce/api/endpoints/customer' +import type { CustomerSchema } from '../../../types/customer' +import type { KiboCommerceAPI } from '../..' +import getLoggedInCustomer from './customer' + +export type CustomerAPI = GetAPISchema + +export type CustomerEndpoint = CustomerAPI['endpoint'] + +export const handlers: CustomerEndpoint['handlers'] = { getLoggedInCustomer } + +const customerApi = createEndpoint({ + handler: customerEndpoint, + handlers, +}) + +export default customerApi diff --git a/framework/kibocommerce/api/endpoints/login/index.ts b/framework/kibocommerce/api/endpoints/login/index.ts new file mode 100644 index 000000000..f76e0f644 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/login/index.ts @@ -0,0 +1,20 @@ +import { GetAPISchema, createEndpoint } from '@commerce/api' +import loginEndpoint from '@commerce/api/endpoints/login' +import type { LoginSchema } from '../../../types/login' +import type { KiboCommerceAPI } from '../..' +import login from './login' + +export type LoginAPI = GetAPISchema + +export type LoginEndpoint = LoginAPI['endpoint'] + +export const handlers: LoginEndpoint['handlers'] = { login } + +const loginApi = createEndpoint({ + handler: loginEndpoint, + handlers, +}) + +export default loginApi; + + diff --git a/framework/kibocommerce/api/endpoints/login/login.ts b/framework/kibocommerce/api/endpoints/login/login.ts new file mode 100644 index 000000000..84410a281 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/login/login.ts @@ -0,0 +1,66 @@ +import { FetcherError } from '@commerce/utils/errors' +import type { LoginEndpoint } from '.' +import { loginMutation } from '../../mutations/login-mutation' +import { prepareSetCookie } from '../../../lib/prepare-set-cookie'; +import { setCookies } from '../../../lib/set-cookie' +import { getCookieExpirationDate } from '../../../lib/get-cookie-expiration-date' + +const invalidCredentials = /invalid credentials/i + +const login: LoginEndpoint['handlers']['login'] = async ({ + req, + res, + body: { email, password }, + config, + commerce, +}) => { + + if (!(email && password)) { + return res.status(400).json({ + data: null, + errors: [{ message: 'Invalid request' }], + }) + } + + let response; + try { + + const variables = { loginInput : { username: email, password }}; + response = await config.fetch(loginMutation, { variables }) + const { account: token } = response.data; + + // Set Cookie + const cookieExpirationDate = getCookieExpirationDate(config.customerCookieMaxAgeInDays) + + const authCookie = prepareSetCookie( + config.customerCookie, + JSON.stringify(token), + token.accessTokenExpiration ? { expires: cookieExpirationDate }: {}, + ) + setCookies(res, [authCookie]) + + } catch (error) { + // Check if the email and password didn't match an existing account + if ( + error instanceof FetcherError && + invalidCredentials.test(error.message) + ) { + return res.status(401).json({ + data: null, + errors: [ + { + message: + 'Cannot find an account that matches the provided credentials', + code: 'invalid_credentials', + }, + ], + }) + } + + throw error + } + + res.status(200).json({ data: response }) +} + +export default login \ No newline at end of file diff --git a/framework/kibocommerce/api/endpoints/logout/index.ts b/framework/kibocommerce/api/endpoints/logout/index.ts new file mode 100644 index 000000000..ec4ded011 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/logout/index.ts @@ -0,0 +1,18 @@ +import { GetAPISchema, createEndpoint } from '@commerce/api' +import logoutEndpoint from '@commerce/api/endpoints/logout' +import type { LogoutSchema } from '../../../types/logout' +import type { KiboCommerceAPI } from '../..' +import logout from './logout' + +export type LogoutAPI = GetAPISchema + +export type LogoutEndpoint = LogoutAPI['endpoint'] + +export const handlers: LogoutEndpoint['handlers'] = { logout } + +const logoutApi = createEndpoint({ + handler: logoutEndpoint, + handlers, +}) + +export default logoutApi diff --git a/framework/kibocommerce/api/endpoints/logout/logout.ts b/framework/kibocommerce/api/endpoints/logout/logout.ts new file mode 100644 index 000000000..1b0835e39 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/logout/logout.ts @@ -0,0 +1,22 @@ +import type { LogoutEndpoint } from '.' +import {prepareSetCookie} from '../../../lib/prepare-set-cookie'; +import {setCookies} from '../../../lib/set-cookie' + +const logout: LogoutEndpoint['handlers']['logout'] = async ({ + res, + body: { redirectTo }, + config, +}) => { + // Remove the cookie + const authCookie = prepareSetCookie(config.customerCookie,'',{ maxAge: -1, path: '/' }) + setCookies(res, [authCookie]) + + // Only allow redirects to a relative URL + if (redirectTo?.startsWith('/')) { + res.redirect(redirectTo) + } else { + res.status(200).json({ data: null }) + } +} + +export default logout diff --git a/framework/kibocommerce/api/endpoints/signup/index.ts b/framework/kibocommerce/api/endpoints/signup/index.ts new file mode 100644 index 000000000..3eda94d06 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/signup/index.ts @@ -0,0 +1,18 @@ +import { GetAPISchema, createEndpoint } from '@commerce/api' +import signupEndpoint from '@commerce/api/endpoints/signup' +import type { SignupSchema } from '../../../types/signup' +import type { KiboCommerceAPI } from '../..' +import signup from './signup' + +export type SignupAPI = GetAPISchema + +export type SignupEndpoint = SignupAPI['endpoint'] + +export const handlers: SignupEndpoint['handlers'] = { signup } + +const singupApi = createEndpoint({ + handler: signupEndpoint, + handlers, +}) + +export default singupApi diff --git a/framework/kibocommerce/api/endpoints/signup/signup.ts b/framework/kibocommerce/api/endpoints/signup/signup.ts new file mode 100644 index 000000000..77790ca3a --- /dev/null +++ b/framework/kibocommerce/api/endpoints/signup/signup.ts @@ -0,0 +1,91 @@ +import { FetcherError } from '@commerce/utils/errors' +import type { SignupEndpoint } from '.' +import { registerUserMutation, registerUserLoginMutation } from '../../mutations/signup-mutation' +import { prepareSetCookie } from '../../../lib/prepare-set-cookie'; +import { setCookies } from '../../../lib/set-cookie' +import { getCookieExpirationDate } from '../../../lib/get-cookie-expiration-date' + +const invalidCredentials = /invalid credentials/i + +const signup: SignupEndpoint['handlers']['signup'] = async ({ + req, + res, + body: { email, password, firstName, lastName }, + config, + commerce, +}) => { + + if (!(email && password)) { + return res.status(400).json({ + data: null, + errors: [{ message: 'Invalid request' }], + }) + } + + let response; + try { + + // Register user + const registerUserVariables = { + customerAccountInput: { + emailAddress: email, + firstName: firstName, + lastName: lastName, + acceptsMarketing: true, + id: 0 + } + } + + const registerUserResponse = await config.fetch(registerUserMutation, { variables: registerUserVariables}) + const accountId = registerUserResponse.data?.account?.id; + + // Login user + const registerUserLoginVairables = { + accountId: accountId, + customerLoginInfoInput: { + emailAddress: email, + username: email, + password: password, + isImport: false + } + } + + response = await config.fetch(registerUserLoginMutation, { variables: registerUserLoginVairables}) + const { account: token } = response.data; + + // Set Cookie + const cookieExpirationDate = getCookieExpirationDate(config.customerCookieMaxAgeInDays) + + const authCookie = prepareSetCookie( + config.customerCookie, + JSON.stringify(token), + token.accessTokenExpiration ? { expires: cookieExpirationDate }: {}, + ) + + setCookies(res, [authCookie]) + + } catch (error) { + // Check if the email and password didn't match an existing account + if ( + error instanceof FetcherError && + invalidCredentials.test(error.message) + ) { + return res.status(401).json({ + data: null, + errors: [ + { + message: + 'Cannot find an account that matches the provided credentials', + code: 'invalid_credentials', + }, + ], + }) + } + + throw error + } + + res.status(200).json({ data: response }) +} + +export default signup \ No newline at end of file diff --git a/framework/kibocommerce/api/endpoints/wishlist/add-item.ts b/framework/kibocommerce/api/endpoints/wishlist/add-item.ts new file mode 100644 index 000000000..49cfc37d5 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/wishlist/add-item.ts @@ -0,0 +1,124 @@ +import getCustomerWishlist from '../../operations/get-customer-wishlist' +import getCustomerId from '../../utils/get-customer-id' +import type { WishlistEndpoint } from '.' +import { normalizeWishlistItem } from '../../../lib/normalize' +import { getProductQuery } from '../../../api/queries/get-product-query' +import addItemToWishlistMutation from '../../mutations/addItemToWishlist-mutation' +import createWishlist from '../../mutations/create-wishlist-mutation' + +// Return wishlist info +const buildAddToWishlistVariables = ({ + productId, + variantId, + productResponse, + wishlist +}: { + productId: string + variantId: string + productResponse: any + wishlist: any +}) => { + const { product } = productResponse.data + + const selectedOptions = product.variations?.find( + (v: any) => v.productCode === variantId + ).options + const quantity=1 + let options: any[] = [] + selectedOptions?.forEach((each: any) => { + product?.options + .filter((option: any) => { + return option.attributeFQN == each.attributeFQN + }) + .forEach((po: any) => { + options.push({ + attributeFQN: po.attributeFQN, + name: po.attributeDetail.name, + value: po.values?.find((v: any) => v.value == each.value).value, + }) + }) + }) + + return { + wishlistId: wishlist?.id, + wishlistItemInput: { + quantity, + product: { + productCode: productId, + variationProductCode: variantId ? variantId : null, + options, + } + }, + } +} + +const addItem: WishlistEndpoint['handlers']['addItem'] = async ({ + res, + body: { customerToken, item }, + config, + commerce, +}) => { + const token = customerToken ? Buffer.from(customerToken, 'base64').toString('ascii'): null; + const accessToken = token ? JSON.parse(token).accessToken : null; + let result: { data?: any } = {} + let wishlist: any + + if (!item) { + return res.status(400).json({ + data: null, + errors: [{ message: 'Missing item' }], + }) + } + + const customerId = customerToken && (await getCustomerId({ customerToken, config })) + const wishlistName= config.defaultWishlistName + + if (!customerId) { + return res.status(400).json({ + data: null, + errors: [{ message: 'Invalid request' }], + }) + } + + const wishlistResponse = await commerce.getCustomerWishlist({ + variables: { customerId, wishlistName }, + config, + }) + wishlist= wishlistResponse?.wishlist + if(Object.keys(wishlist).length === 0) { + const createWishlistResponse= await config.fetch(createWishlist, {variables: { + wishlistInput: { + customerAccountId: customerId, + name: wishlistName + } + } + }, {headers: { 'x-vol-user-claims': accessToken } }) + wishlist= createWishlistResponse?.data?.createWishlist + } + + const productResponse = await config.fetch(getProductQuery, { + variables: { productCode: item?.productId }, + }) + + const addItemToWishlistResponse = await config.fetch( + addItemToWishlistMutation, + { + variables: buildAddToWishlistVariables({ ...item, productResponse, wishlist }), + }, + { headers: { 'x-vol-user-claims': accessToken } } + ) + + if(addItemToWishlistResponse?.data?.createWishlistItem){ + const wishlistResponse= await commerce.getCustomerWishlist({ + variables: { customerId, wishlistName }, + config, + }) + wishlist= wishlistResponse?.wishlist + } + + result = { data: {...wishlist, items: wishlist?.items?.map((item:any) => normalizeWishlistItem(item, config))} } + + res.status(200).json({ data: result?.data }) +} + +export default addItem diff --git a/framework/kibocommerce/api/endpoints/wishlist/get-wishlist.ts b/framework/kibocommerce/api/endpoints/wishlist/get-wishlist.ts new file mode 100644 index 000000000..be4c403d9 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/wishlist/get-wishlist.ts @@ -0,0 +1,35 @@ +import type { WishlistEndpoint } from '.' +import getCustomerId from '../../utils/get-customer-id' +import { normalizeWishlistItem } from '../../../lib/normalize' + +// Return wishlist info +const getWishlist: WishlistEndpoint['handlers']['getWishlist'] = async ({ + res, + body: { customerToken, includeProducts }, + config, + commerce, +}) => { + let result: { data?: any } = {} + if (customerToken) { + const customerId = customerToken && (await getCustomerId({ customerToken, config })) + const wishlistName= config.defaultWishlistName + if (!customerId) { + // If the customerToken is invalid, then this request is too + return res.status(404).json({ + data: null, + errors: [{ message: 'Wishlist not found' }], + }) + } + const { wishlist } = await commerce.getCustomerWishlist({ + variables: { customerId, wishlistName }, + includeProducts, + config, + }) + + result = { data: {...wishlist, items: wishlist?.items?.map((item:any) => normalizeWishlistItem(item, config, includeProducts))} } + } + + res.status(200).json({ data: result?.data ?? null }) +} + +export default getWishlist diff --git a/framework/kibocommerce/api/endpoints/wishlist/index.ts b/framework/kibocommerce/api/endpoints/wishlist/index.ts new file mode 100644 index 000000000..052cdcef6 --- /dev/null +++ b/framework/kibocommerce/api/endpoints/wishlist/index.ts @@ -0,0 +1,23 @@ +import { GetAPISchema, createEndpoint } from '@commerce/api' +import wishlistEndpoint from '@commerce/api/endpoints/wishlist' +import type { KiboCommerceAPI } from '../..' +import getWishlist from './get-wishlist' +import addItem from './add-item' +import removeItem from './remove-item' + +export type WishlistAPI = GetAPISchema + +export type WishlistEndpoint = WishlistAPI['endpoint'] + +export const handlers: WishlistEndpoint['handlers'] = { + getWishlist, + addItem, + removeItem, +} + +const wishlistApi = createEndpoint({ + handler: wishlistEndpoint, + handlers, +}) + +export default wishlistApi diff --git a/framework/kibocommerce/api/endpoints/wishlist/remove-item.ts b/framework/kibocommerce/api/endpoints/wishlist/remove-item.ts new file mode 100644 index 000000000..ae6a8d81c --- /dev/null +++ b/framework/kibocommerce/api/endpoints/wishlist/remove-item.ts @@ -0,0 +1,60 @@ +import getCustomerId from '../../utils/get-customer-id' +import type { WishlistEndpoint } from '.' +import { normalizeWishlistItem } from '../../../lib/normalize' +import removeItemFromWishlistMutation from '../../mutations/removeItemFromWishlist-mutation' + +// Return wishlist info +const removeItem: WishlistEndpoint['handlers']['removeItem'] = async ({ + res, + body: { customerToken, itemId }, + config, + commerce, +}) => { + const token = customerToken ? Buffer.from(customerToken, 'base64').toString('ascii'): null; + const accessToken = token ? JSON.parse(token).accessToken : null; + let result: { data?: any } = {} + let wishlist: any + + const customerId = customerToken && (await getCustomerId({ customerToken, config })) + const wishlistName= config.defaultWishlistName + const wishlistResponse = await commerce.getCustomerWishlist({ + variables: { customerId, wishlistName }, + config, + }) + wishlist= wishlistResponse?.wishlist + + if (!wishlist || !itemId) { + return res.status(400).json({ + data: null, + errors: [{ message: 'Invalid request' }], + }) + } + const removedItem = wishlist?.items?.find( + (item:any) => { + return item.product.productCode === itemId; + } + ); + + const removeItemFromWishlistResponse = await config.fetch( + removeItemFromWishlistMutation, + { + variables: { + wishlistId: wishlist?.id, + wishlistItemId: removedItem?.id + }, + }, + { headers: { 'x-vol-user-claims': accessToken } } + ) + + if(removeItemFromWishlistResponse?.data?.deleteWishlistItem){ + const wishlistResponse= await commerce.getCustomerWishlist({ + variables: { customerId, wishlistName }, + config, + }) + wishlist= wishlistResponse?.wishlist + } + result = { data: {...wishlist, items: wishlist?.items?.map((item:any) => normalizeWishlistItem(item, config))} } + res.status(200).json({ data: result?.data }) +} + +export default removeItem diff --git a/framework/kibocommerce/api/fragments/cartItemDetails.ts b/framework/kibocommerce/api/fragments/cartItemDetails.ts new file mode 100644 index 000000000..951813073 --- /dev/null +++ b/framework/kibocommerce/api/fragments/cartItemDetails.ts @@ -0,0 +1,11 @@ +import { productDetails } from '../fragments/productDetails' +export const cartItemDetails = /*GraphQL*/` +fragment cartItemDetails on CartItem { + id + product { + ...productDetails + } + quantity +} +${productDetails} +`; diff --git a/framework/kibocommerce/api/fragments/category.ts b/framework/kibocommerce/api/fragments/category.ts new file mode 100644 index 000000000..e6be159b2 --- /dev/null +++ b/framework/kibocommerce/api/fragments/category.ts @@ -0,0 +1,11 @@ +export const CategoryInfo = /* GraphQL */` +fragment categoryInfo on PrCategory { + categoryId + categoryCode + isDisplayed + content { + name + slug + description + } +}`; \ No newline at end of file diff --git a/framework/kibocommerce/api/fragments/product.ts b/framework/kibocommerce/api/fragments/product.ts new file mode 100644 index 000000000..b69d00827 --- /dev/null +++ b/framework/kibocommerce/api/fragments/product.ts @@ -0,0 +1,98 @@ +export const productPrices = /* GraphQL */` +fragment productPrices on Product { + price { + price + salePrice + } + priceRange { + lower { price, salePrice} + upper { price, salePrice } + } + } +`; +export const productAttributes = /* GraphQL */` +fragment productAttributes on Product { + properties { + attributeFQN + attributeDetail { + name + } + isHidden + values { + value + stringValue + } + } +} +`; +export const productContent = /* GraphQL */` +fragment productContent on Product { + content { + productFullDescription + productShortDescription + seoFriendlyUrl + productName + productImages { + imageUrl + imageLabel + mediaType + } + } +} +`; +export const productOptions = /* GraphQL */` +fragment productOptions on Product { + options { + attributeFQN + attributeDetail { + name + } + isProductImageGroupSelector + isRequired + isMultiValue + values { + value + isSelected + deltaPrice + stringValue + } + } +} +`; +export const productInfo = /* GraphQL */` +fragment productInfo on Product { + productCode + productUsage + + purchasableState { + isPurchasable + } + + variations { + productCode, + options { + __typename + attributeFQN + value + } + } + + categories { + categoryCode + categoryId + content { + name + slug + } + } + + ...productPrices + ...productAttributes + ...productContent + ...productOptions +} +${productPrices} +${productAttributes} +${productContent} +${productOptions} +`; diff --git a/framework/kibocommerce/api/fragments/productDetails.ts b/framework/kibocommerce/api/fragments/productDetails.ts new file mode 100644 index 000000000..e29ffa7b7 --- /dev/null +++ b/framework/kibocommerce/api/fragments/productDetails.ts @@ -0,0 +1,30 @@ +export const productDetails = /* GraphQL */ ` + fragment productDetails on CrProduct { + productCode + name + description + imageUrl + imageAlternateText + sku + variationProductCode + price { + price + salePrice + } + options { + attributeFQN + name + value + } + properties { + attributeFQN + name + values { + value + } + } + categories { + id + } +} +` diff --git a/framework/kibocommerce/api/fragments/search.ts b/framework/kibocommerce/api/fragments/search.ts new file mode 100644 index 000000000..dee242a07 --- /dev/null +++ b/framework/kibocommerce/api/fragments/search.ts @@ -0,0 +1,32 @@ +import { productInfo } from './product'; + +export const searchFacets = /* GraphQL */` +fragment searchFacets on Facet { + label + field + values { + label + value + isApplied + filterValue + isDisplayed + count + } +}`; + +export const searchResults = /* GraphQL */` +fragment searchResults on ProductSearchResult { + totalCount + pageSize + pageCount + startIndex + items { + ...productInfo + } + facets { + ...searchFacets + } +} +${searchFacets} +${productInfo} +`; diff --git a/framework/kibocommerce/api/index.ts b/framework/kibocommerce/api/index.ts new file mode 100644 index 000000000..a79745c57 --- /dev/null +++ b/framework/kibocommerce/api/index.ts @@ -0,0 +1,64 @@ +import type { CommerceAPI, CommerceAPIConfig } from '@commerce/api' +import { getCommerceApi as commerceApi } from '@commerce/api' +import createFetchGraphqlApi from './utils/fetch-graphql-api' + +import getAllPages from './operations/get-all-pages' +import getPage from './operations/get-page' +import getSiteInfo from './operations/get-site-info' +import getCustomerWishlist from './operations/get-customer-wishlist' +import getAllProductPaths from './operations/get-all-product-paths' +import getAllProducts from './operations/get-all-products' +import getProduct from './operations/get-product' +import type { RequestInit } from '@vercel/fetch' + +export interface KiboCommerceConfig extends CommerceAPIConfig { + apiHost?: string + clientId?: string + sharedSecret?: string + customerCookieMaxAgeInDays: number, + currencyCode: string, + documentListName: string, + defaultWishlistName: string, + authUrl?: string +} + +const config: KiboCommerceConfig = { + commerceUrl: process.env.KIBO_API_URL || '', + apiToken: process.env.KIBO_API_TOKEN || '', + cartCookie: process.env.KIBO_CART_COOKIE || '', + customerCookie: process.env.KIBO_CUSTOMER_COOKIE || '', + cartCookieMaxAge: 2592000, + documentListName: 'siteSnippets@mozu', + fetch: createFetchGraphqlApi(() => getCommerceApi().getConfig()), + authUrl: process.env.KIBO_AUTH_URL || '', + // REST API + apiHost: process.env.KIBO_API_HOST || '', + clientId: process.env.KIBO_CLIENT_ID || '', + sharedSecret: process.env.KIBO_SHARED_SECRET || '', + customerCookieMaxAgeInDays: 30, + currencyCode: 'USD', + defaultWishlistName: 'My Wishlist' +} + +const operations = { + getAllPages, + getPage, + getSiteInfo, + getCustomerWishlist, + getAllProductPaths, + getAllProducts, + getProduct, +} + +export const provider = { config, operations } + +export type KiboCommerceProvider = typeof provider +export type KiboCommerceAPI< + P extends KiboCommerceProvider = KiboCommerceProvider + > = CommerceAPI

+ +export function getCommerceApi

( + customProvider: P = provider as any +): KiboCommerceAPI

{ + return commerceApi(customProvider as any) +} diff --git a/framework/kibocommerce/api/mutations/addItemToWishlist-mutation.ts b/framework/kibocommerce/api/mutations/addItemToWishlist-mutation.ts new file mode 100644 index 000000000..f9088b0bb --- /dev/null +++ b/framework/kibocommerce/api/mutations/addItemToWishlist-mutation.ts @@ -0,0 +1,21 @@ +import {productDetails} from '../fragments/productDetails' +const addItemToWishlistMutation = /* GraphQL */` + mutation createWishlistItem( + $wishlistId: String! + $wishlistItemInput: WishlistItemInput + ) { + createWishlistItem( + wishlistId: $wishlistId + wishlistItemInput: $wishlistItemInput + ) { + id + quantity + product { + ...productDetails + } + } + } +${productDetails} +`; + +export default addItemToWishlistMutation; diff --git a/framework/kibocommerce/api/mutations/addToCart-mutation.ts b/framework/kibocommerce/api/mutations/addToCart-mutation.ts new file mode 100644 index 000000000..7cbf68801 --- /dev/null +++ b/framework/kibocommerce/api/mutations/addToCart-mutation.ts @@ -0,0 +1,12 @@ +import { cartItemDetails } from './../fragments/cartItemDetails' + +const addToCurrentCartMutation = /*GraphQL*/ ` +${cartItemDetails} + +mutation addToCart($productToAdd:CartItemInput!){ + addItemToCurrentCart(cartItemInput: $productToAdd) { + ...cartItemDetails + } +}` + +export default addToCurrentCartMutation diff --git a/framework/kibocommerce/api/mutations/create-wishlist-mutation.ts b/framework/kibocommerce/api/mutations/create-wishlist-mutation.ts new file mode 100644 index 000000000..66ad88309 --- /dev/null +++ b/framework/kibocommerce/api/mutations/create-wishlist-mutation.ts @@ -0,0 +1,11 @@ +const createWishlist = /*GraphQL*/` +mutation createWishlist($wishlistInput:WishlistInput!) { + createWishlist(wishlistInput:$wishlistInput){ + id + name + customerAccountId + } + } +`; + +export default createWishlist; \ No newline at end of file diff --git a/framework/kibocommerce/api/mutations/login-mutation.ts b/framework/kibocommerce/api/mutations/login-mutation.ts new file mode 100644 index 000000000..730adeda1 --- /dev/null +++ b/framework/kibocommerce/api/mutations/login-mutation.ts @@ -0,0 +1,20 @@ + +export const loginMutation = /* GraphQL */` +mutation login($loginInput:CustomerUserAuthInfoInput!) { + account:createCustomerAuthTicket(customerUserAuthInfoInput:$loginInput) { + accessToken + userId + refreshToken + refreshTokenExpiration + accessTokenExpiration + customerAccount { + id + firstName + lastName + emailAddress + userName + } + } + } +` + diff --git a/framework/kibocommerce/api/mutations/removeItemFromCart-mutation.ts b/framework/kibocommerce/api/mutations/removeItemFromCart-mutation.ts new file mode 100644 index 000000000..3cf5c5af5 --- /dev/null +++ b/framework/kibocommerce/api/mutations/removeItemFromCart-mutation.ts @@ -0,0 +1,9 @@ +/* +* Delete cart based on current user session +*/ +const removeItemFromCartMutation = /*GraphQL*/` +mutation deleteCartItem($id: String!) { + deleteCurrentCartItem(cartItemId:$id) +}`; + +export default removeItemFromCartMutation; diff --git a/framework/kibocommerce/api/mutations/removeItemFromWishlist-mutation.ts b/framework/kibocommerce/api/mutations/removeItemFromWishlist-mutation.ts new file mode 100644 index 000000000..ce3d994a5 --- /dev/null +++ b/framework/kibocommerce/api/mutations/removeItemFromWishlist-mutation.ts @@ -0,0 +1,8 @@ +const removeItemFromWishlistMutation = /* GraphQL */` +mutation deletewishlistitem($wishlistId: String!, $wishlistItemId: String!) { + deleteWishlistItem(wishlistId: $wishlistId, wishlistItemId:$wishlistItemId) + } +`; + +export default removeItemFromWishlistMutation; + diff --git a/framework/kibocommerce/api/mutations/signup-mutation.ts b/framework/kibocommerce/api/mutations/signup-mutation.ts new file mode 100644 index 000000000..bb25534ab --- /dev/null +++ b/framework/kibocommerce/api/mutations/signup-mutation.ts @@ -0,0 +1,41 @@ + +const registerUserMutation = /* GraphQL */` +mutation registerUser($customerAccountInput: CustomerAccountInput!) { + account:createCustomerAccount(customerAccountInput:$customerAccountInput) { + emailAddress + userName + firstName + lastName + localeCode + userId + id + isAnonymous + attributes { + values + fullyQualifiedName + } + } +}`; + +const registerUserLoginMutation = /* GraphQL */` +mutation registerUserLogin($accountId: Int!, $customerLoginInfoInput: CustomerLoginInfoInput!) { + account:createCustomerAccountLogin(accountId:$accountId, customerLoginInfoInput:$customerLoginInfoInput) { + accessToken + accessTokenExpiration + refreshToken + refreshTokenExpiration + userId + customerAccount { + id + emailAddress + firstName + userName + } + } +}`; + +export { + registerUserMutation, + registerUserLoginMutation +}; + diff --git a/framework/kibocommerce/api/mutations/updateCartItemQuantity-mutation.ts b/framework/kibocommerce/api/mutations/updateCartItemQuantity-mutation.ts new file mode 100644 index 000000000..7b2cd5c82 --- /dev/null +++ b/framework/kibocommerce/api/mutations/updateCartItemQuantity-mutation.ts @@ -0,0 +1,9 @@ +const updateCartItemQuantityMutation = /*GraphQL*/` +mutation updateCartItemQuantity($itemId:String!, $quantity: Int!){ + updateCurrentCartItemQuantity(cartItemId:$itemId, quantity:$quantity){ + id + quantity + } +}`; + +export default updateCartItemQuantityMutation; diff --git a/framework/kibocommerce/api/operations/get-all-pages.ts b/framework/kibocommerce/api/operations/get-all-pages.ts new file mode 100644 index 000000000..6bc0e4a8c --- /dev/null +++ b/framework/kibocommerce/api/operations/get-all-pages.ts @@ -0,0 +1,38 @@ +import type { OperationContext } from '@commerce/api/operations' +import type { KiboCommerceConfig } from '../index' +import { getAllPagesQuery } from '../queries/get-all-pages-query' +import { GetPagesQueryParams } from "../../types/page"; +import { normalizePage } from '../../lib/normalize' + +export type GetAllPagesResult< + T extends { pages: any[] } = { pages: any[] } + > = T + +export default function getAllPagesOperation({ + commerce, +}: OperationContext) { + + async function getAllPages({ + query = getAllPagesQuery, + config, + variables, + }: { + url?: string + config?: Partial + variables?: GetPagesQueryParams + preview?: boolean + query?: string + } = {}): Promise { + const cfg = commerce.getConfig(config) + variables = { + documentListName: cfg.documentListName + } + const { data } = await cfg.fetch(query, { variables }); + + const pages = data.documentListDocuments.items.map(normalizePage); + + return { pages } + } + + return getAllPages +} \ No newline at end of file diff --git a/framework/kibocommerce/api/operations/get-all-product-paths.ts b/framework/kibocommerce/api/operations/get-all-product-paths.ts new file mode 100644 index 000000000..3067b67fc --- /dev/null +++ b/framework/kibocommerce/api/operations/get-all-product-paths.ts @@ -0,0 +1,26 @@ +import { KiboCommerceConfig } from '../index' +import { getAllProductsQuery } from '../queries/get-all-products-query'; +import { normalizeProduct } from '../../lib/normalize' + +export type GetAllProductPathsResult = { + products: Array<{ path: string }> +} + +export default function getAllProductPathsOperation({commerce,}: any) { + async function getAllProductPaths({ config }: {config?: KiboCommerceConfig } = {}): Promise { + + const cfg = commerce.getConfig(config) + + const productVariables = {startIndex: 0, pageSize: 100}; + const { data } = await cfg.fetch(getAllProductsQuery, { variables: productVariables }); + + const normalizedProducts = data.products.items ? data.products.items.map( (item:any) => normalizeProduct(item, cfg)) : []; + const products = normalizedProducts.map((product: any) => ({ path: product.path })) + + return Promise.resolve({ + products: products + }) + } + + return getAllProductPaths +} diff --git a/framework/kibocommerce/api/operations/get-all-products.ts b/framework/kibocommerce/api/operations/get-all-products.ts new file mode 100644 index 000000000..c60b88f4e --- /dev/null +++ b/framework/kibocommerce/api/operations/get-all-products.ts @@ -0,0 +1,32 @@ +import { Product } from '@commerce/types/product' +import { GetAllProductsOperation } from '@commerce/types/product' +import type { OperationContext } from '@commerce/api/operations' +import type { KiboCommerceConfig } from '../index' +import { getAllProductsQuery } from '../queries/get-all-products-query'; +import { normalizeProduct } from '../../lib/normalize' + +export default function getAllProductsOperation({ + commerce, +}: OperationContext) { + async function getAllProducts({ + query = getAllProductsQuery, + variables, + config, + }: { + query?: string + variables?: T['variables'] + config?: Partial + preview?: boolean + } = {}): Promise<{ products: Product[] | any[] }> { + + const cfg = commerce.getConfig(config) + const { data } = await cfg.fetch(query); + + let normalizedProducts = data.products.items ? data.products.items.map( (item:any) => normalizeProduct(item, cfg)) : []; + + return { + products: normalizedProducts, + } + } + return getAllProducts +} diff --git a/framework/kibocommerce/api/operations/get-customer-wishlist.ts b/framework/kibocommerce/api/operations/get-customer-wishlist.ts new file mode 100644 index 000000000..a2a60e9ae --- /dev/null +++ b/framework/kibocommerce/api/operations/get-customer-wishlist.ts @@ -0,0 +1,57 @@ +import type { + OperationContext, + OperationOptions, +} from '@commerce/api/operations' +import type { + GetCustomerWishlistOperation, + Wishlist, +} from '@commerce/types/wishlist' +// import type { RecursivePartial, RecursiveRequired } from '../utils/types' +import { KiboCommerceConfig } from '..' +// import getAllProducts, { ProductEdge } from './get-all-products' +import {getCustomerWishlistQuery} from '../queries/get-customer-wishlist-query' + +export default function getCustomerWishlistOperation({ + commerce, +}: OperationContext) { + async function getCustomerWishlist< + T extends GetCustomerWishlistOperation + >(opts: { + variables: T['variables'] + config?: KiboCommerceConfig + includeProducts?: boolean + }): Promise + + async function getCustomerWishlist( + opts: { + variables: T['variables'] + config?: KiboCommerceConfig + includeProducts?: boolean + } & OperationOptions + ): Promise + + async function getCustomerWishlist({ + config, + variables, + includeProducts, + }: { + url?: string + variables: T['variables'] + config?: KiboCommerceConfig + includeProducts?: boolean + }): Promise { + let customerWishlist ={} + try { + + config = commerce.getConfig(config) + const result= await config?.fetch(getCustomerWishlistQuery,{variables}) + customerWishlist= result?.data?.customerWishlist; + } catch(e) { + customerWishlist= {} + } + + return { wishlist: customerWishlist as any } + } + + return getCustomerWishlist +} diff --git a/framework/kibocommerce/api/operations/get-page.ts b/framework/kibocommerce/api/operations/get-page.ts new file mode 100644 index 000000000..8cfccb7db --- /dev/null +++ b/framework/kibocommerce/api/operations/get-page.ts @@ -0,0 +1,40 @@ +import type { + OperationContext, +} from '@commerce/api/operations' +import type { KiboCommerceConfig, KiboCommerceProvider } from '..' +import { normalizePage } from '../../lib/normalize' +import { getPageQuery } from '../queries/get-page-query' +import type { Page, GetPageQueryParams } from "../../types/page"; +import type { Document } from '../../schema' + +export default function getPageOperation({ + commerce, +}: OperationContext) { + async function getPage({ + url, + variables, + config, + preview, + }: { + url?: string + variables: GetPageQueryParams + config?: Partial + preview?: boolean + }): Promise { + // RecursivePartial forces the method to check for every prop in the data, which is + // required in case there's a custom `url` + const cfg = commerce.getConfig(config) + const pageVariables = { documentListName: cfg.documentListName, filter: `id eq ${variables.id}` } + + const { data } = await cfg.fetch(getPageQuery, { variables: pageVariables }) + + const firstPage = data.documentListDocuments.items?.[0]; + const page = firstPage as Document + if (preview || page?.properties?.is_visible) { + return { page: normalizePage(page as any) } + } + return {} + } + + return getPage +} \ No newline at end of file diff --git a/framework/kibocommerce/api/operations/get-product.ts b/framework/kibocommerce/api/operations/get-product.ts new file mode 100644 index 000000000..a3acf44d9 --- /dev/null +++ b/framework/kibocommerce/api/operations/get-product.ts @@ -0,0 +1,35 @@ +import type { KiboCommerceConfig } from '../index' +import { Product } from '@commerce/types/product' +import { GetProductOperation } from '@commerce/types/product' +import type { OperationContext } from '@commerce/api/operations' +import { getProductQuery } from '../queries/get-product-query' +import { normalizeProduct } from '../../lib/normalize' + +export default function getProductOperation({ + commerce, +}: OperationContext) { + + async function getProduct({ + query = getProductQuery, + variables, + config, + }: { + query?: string + variables?: T['variables'] + config?: Partial + preview?: boolean + } = {}): Promise { + const productVariables = { productCode: variables?.slug} + + const cfg = commerce.getConfig(config) + const { data } = await cfg.fetch(query, { variables: productVariables }); + + const normalizedProduct = normalizeProduct(data.product, cfg) + + return { + product: normalizedProduct + } + } + + return getProduct +} diff --git a/framework/kibocommerce/api/operations/get-site-info.ts b/framework/kibocommerce/api/operations/get-site-info.ts new file mode 100644 index 000000000..1bd0ddf63 --- /dev/null +++ b/framework/kibocommerce/api/operations/get-site-info.ts @@ -0,0 +1,35 @@ +import { OperationContext } from '@commerce/api/operations' +import { Category } from '@commerce/types/site' +import { KiboCommerceConfig } from '../index' +import {categoryTreeQuery} from '../queries/get-categories-tree-query' +import { normalizeCategory } from '../../lib/normalize' + +export type GetSiteInfoResult< + T extends { categories: any[]; brands: any[] } = { + categories: Category[] + brands: any[] + } +> = T + +export default function getSiteInfoOperation({commerce}: OperationContext) { + async function getSiteInfo({ + query= categoryTreeQuery, + variables, + config, + }: { + query?: string + variables?: any + config?: Partial + preview?: boolean + } = {}): Promise { + const cfg = commerce.getConfig(config) + const { data } = await cfg.fetch(query); + const categories= data.categories.items.map(normalizeCategory); + return Promise.resolve({ + categories: categories ?? [], + brands: [], + }) + } + + return getSiteInfo +} diff --git a/framework/kibocommerce/api/operations/index.ts b/framework/kibocommerce/api/operations/index.ts new file mode 100644 index 000000000..086fdf83a --- /dev/null +++ b/framework/kibocommerce/api/operations/index.ts @@ -0,0 +1,6 @@ +export { default as getPage } from './get-page' +export { default as getSiteInfo } from './get-site-info' +export { default as getAllPages } from './get-all-pages' +export { default as getProduct } from './get-product' +export { default as getAllProducts } from './get-all-products' +export { default as getAllProductPaths } from './get-all-product-paths' diff --git a/framework/kibocommerce/api/queries/get-all-pages-query.ts b/framework/kibocommerce/api/queries/get-all-pages-query.ts new file mode 100644 index 000000000..6926914f5 --- /dev/null +++ b/framework/kibocommerce/api/queries/get-all-pages-query.ts @@ -0,0 +1,11 @@ +export const getAllPagesQuery = /* GraphQL */` +query($documentListName: String!) { + documentListDocuments(documentListName:$documentListName){ + items { + id + name + listFQN + properties + } + } + }`; \ No newline at end of file diff --git a/framework/kibocommerce/api/queries/get-all-products-query.ts b/framework/kibocommerce/api/queries/get-all-products-query.ts new file mode 100644 index 000000000..3c6599e34 --- /dev/null +++ b/framework/kibocommerce/api/queries/get-all-products-query.ts @@ -0,0 +1,21 @@ +import { productInfo } from '../fragments/product'; + +export const getAllProductsQuery = /* GraphQL */` +${productInfo} + +query products( + $filter: String + $startIndex: Int + $pageSize: Int +) { + products( + filter: $filter + startIndex: $startIndex + pageSize: $pageSize + ) { + items { + ...productInfo + } + } +} +` \ No newline at end of file diff --git a/framework/kibocommerce/api/queries/get-anonymous-shopper-token-query.ts b/framework/kibocommerce/api/queries/get-anonymous-shopper-token-query.ts new file mode 100644 index 000000000..031ffc0ee --- /dev/null +++ b/framework/kibocommerce/api/queries/get-anonymous-shopper-token-query.ts @@ -0,0 +1,11 @@ +export const getAnonymousShopperTokenQuery = /* GraphQL */ ` + query { + getAnonymousShopperToken { + accessToken + accessTokenExpiration + refreshToken + refreshTokenExpiration + jwtAccessToken + } + } +` diff --git a/framework/kibocommerce/api/queries/get-cart-query.ts b/framework/kibocommerce/api/queries/get-cart-query.ts new file mode 100644 index 000000000..5bbf5bbfa --- /dev/null +++ b/framework/kibocommerce/api/queries/get-cart-query.ts @@ -0,0 +1,32 @@ +import { productDetails } from '../fragments/productDetails' +export const getCartQuery = /* GraphQL */` +query cart { + currentCart { + id + userId + orderDiscounts { + impact + discount { + id + name + } + couponCode + } + subtotal + shippingTotal + total + items { + id + subtotal + unitPrice{ + extendedAmount + } + product { + ...productDetails + } + quantity + } + } + } +${productDetails} +` diff --git a/framework/kibocommerce/api/queries/get-categories-tree-query.ts b/framework/kibocommerce/api/queries/get-categories-tree-query.ts new file mode 100644 index 000000000..984833630 --- /dev/null +++ b/framework/kibocommerce/api/queries/get-categories-tree-query.ts @@ -0,0 +1,29 @@ +import { CategoryInfo } from '../fragments/category' + +export const categoryTreeQuery = /* GraphQL */` +query GetCategoryTree { + categories: categoriesTree { + items { + ...categoryInfo + childrenCategories { + ...categoryInfo + childrenCategories { + ...categoryInfo + childrenCategories { + ...categoryInfo + childrenCategories { + ...categoryInfo + childrenCategories { + ...categoryInfo + childrenCategories { + ...categoryInfo + } + } + } + } + } + } + } + } +} +${CategoryInfo}`; \ No newline at end of file diff --git a/framework/kibocommerce/api/queries/get-customer-account-query.ts b/framework/kibocommerce/api/queries/get-customer-account-query.ts new file mode 100644 index 000000000..9528b8467 --- /dev/null +++ b/framework/kibocommerce/api/queries/get-customer-account-query.ts @@ -0,0 +1,12 @@ +export const getCustomerAccountQuery = /* GraphQL */` +query getUser { + customerAccount:getCurrentAccount { + id + firstName + lastName + emailAddress + userName + isAnonymous + } +} +` \ No newline at end of file diff --git a/framework/kibocommerce/api/queries/get-customer-wishlist-query.ts b/framework/kibocommerce/api/queries/get-customer-wishlist-query.ts new file mode 100644 index 000000000..d2ae3edec --- /dev/null +++ b/framework/kibocommerce/api/queries/get-customer-wishlist-query.ts @@ -0,0 +1,25 @@ +import {productDetails} from '../fragments/productDetails' +export const getCustomerWishlistQuery= /* GraphQL */` +query wishlist($customerId: Int!, $wishlistName: String!) { + customerWishlist(customerAccountId:$customerId ,wishlistName: $wishlistName){ + customerAccountId + name + id + userId + items { + id + quantity + total + subtotal + unitPrice{ + extendedAmount + } + quantity + product { + ...productDetails + } + } + } + } +${productDetails} +` \ No newline at end of file diff --git a/framework/kibocommerce/api/queries/get-page-query.ts b/framework/kibocommerce/api/queries/get-page-query.ts new file mode 100644 index 000000000..69371d003 --- /dev/null +++ b/framework/kibocommerce/api/queries/get-page-query.ts @@ -0,0 +1,14 @@ +export const getPageQuery = /* GraphQL */` +query($documentListName: String!, $filter: String!) { + documentListDocuments(documentListName: $documentListName, filter: $filter){ + startIndex + totalCount + items { + id + name + listFQN + properties + } + } + } +`; \ No newline at end of file diff --git a/framework/kibocommerce/api/queries/get-product-query.ts b/framework/kibocommerce/api/queries/get-product-query.ts new file mode 100644 index 000000000..47db311e4 --- /dev/null +++ b/framework/kibocommerce/api/queries/get-product-query.ts @@ -0,0 +1,15 @@ +import { productInfo } from '../fragments/product'; + +export const getProductQuery = /* GraphQL */` +${productInfo} + + query product( + $productCode: String! + ) { + product( + productCode: $productCode + ) { + ...productInfo + } + } +` \ No newline at end of file diff --git a/framework/kibocommerce/api/queries/product-search-query.ts b/framework/kibocommerce/api/queries/product-search-query.ts new file mode 100644 index 000000000..d22f0ef12 --- /dev/null +++ b/framework/kibocommerce/api/queries/product-search-query.ts @@ -0,0 +1,20 @@ +import { searchResults } from '../fragments/search' + +const query = /* GraphQL */` +query ProductSearch($query:String, $startIndex:Int, + $pageSize:Int, $sortBy:String, $filter:String,$facetTemplate:String,$facetValueFilter:String ) { + products:productSearch ( + query:$query, + startIndex: $startIndex, + pageSize:$pageSize, + sortBy: $sortBy, + filter:$filter, + facetTemplate:$facetTemplate, + facetValueFilter:$facetValueFilter + ) { + ...searchResults + } + } + ${searchResults} +`; +export default query; diff --git a/framework/kibocommerce/api/utils/api-auth-helper.ts b/framework/kibocommerce/api/utils/api-auth-helper.ts new file mode 100644 index 000000000..cc4c0acf0 --- /dev/null +++ b/framework/kibocommerce/api/utils/api-auth-helper.ts @@ -0,0 +1,110 @@ +import getNextConfig from 'next/config' +import type { KiboCommerceConfig } from '../index' +import type { FetchOptions } from '@vercel/fetch' +import fetch from './fetch' + +interface AppAuthTicket { + access_token: string + token_type: string + expires_in: number + expires_at: number + refresh_token: string | null +} + +interface AuthTicketCache { + getAuthTicket: () => Promise + setAuthTicket: (kiboAuthTicket: AppAuthTicket) => void +} + +class RuntimeMemCache implements AuthTicketCache { + constructor() {} + async getAuthTicket() { + const { serverRuntimeConfig } = getNextConfig() + return serverRuntimeConfig.kiboAuthTicket + } + setAuthTicket(kiboAuthTicket: AppAuthTicket) { + const { serverRuntimeConfig } = getNextConfig() + serverRuntimeConfig.kiboAuthTicket = kiboAuthTicket + } +} + +export class APIAuthenticationHelper { + private _clientId: string + private _sharedSecret: string + private _authUrl: string + private _authTicketCache!: AuthTicketCache + + constructor( + { clientId = '', sharedSecret = '', authUrl = '' }: KiboCommerceConfig, + authTicketCache?: AuthTicketCache + ) { + this._clientId = clientId + this._sharedSecret = sharedSecret + this._authUrl = authUrl + if(!authTicketCache) { + this._authTicketCache = new RuntimeMemCache(); + } + } + private _buildFetchOptions(body: any = {}): FetchOptions { + return { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(body), + } + } + private _calculateTicketExpiration(kiboAuthTicket: AppAuthTicket) { + //calculate how many milliseconds until auth expires + const millisecsUntilExpiration = kiboAuthTicket.expires_in * 1000 + kiboAuthTicket.expires_at = Date.now() + millisecsUntilExpiration + + return kiboAuthTicket + } + public async authenticate(): Promise { + // create oauth fetch options + const options = this._buildFetchOptions({ + client_id: this._clientId, + client_secret: this._sharedSecret, + grant_type: 'client_credentials', + }) + // perform authentication + const authTicket = await fetch( + `${this._authUrl}/api/platform/applications/authtickets/oauth`, + options + ).then((response) => response.json()) + // set expiration time in ms on auth ticket + this._calculateTicketExpiration(authTicket) + // set authentication ticket on next server runtime object + this._authTicketCache.setAuthTicket(authTicket) + + return authTicket + } + public async refreshTicket(kiboAuthTicket: AppAuthTicket) { + // create oauth refresh fetch options + const options = this._buildFetchOptions({ + refreshToken: kiboAuthTicket?.refresh_token, + }) + // perform auth ticket refresh + const refreshedTicket = await fetch( + `${this._authUrl}/api/platform/applications/authtickets/refresh-ticket`, + options + ).then((response) => response.json()) + + return refreshedTicket + } + public async getAccessToken(): Promise { + // get current Kibo API auth ticket + let authTicket = await this._authTicketCache.getAuthTicket() + + // if no current ticket, perform auth + // or if ticket expired, refresh auth + if (!authTicket) { + authTicket = await this.authenticate() + } else if (authTicket.expires_at < Date.now()) { + authTicket = await this.refreshTicket(authTicket) + } + + return authTicket.access_token + } +} diff --git a/framework/kibocommerce/api/utils/cookie-handler.ts b/framework/kibocommerce/api/utils/cookie-handler.ts new file mode 100644 index 000000000..ee7b5a1e3 --- /dev/null +++ b/framework/kibocommerce/api/utils/cookie-handler.ts @@ -0,0 +1,52 @@ +import { KiboCommerceConfig } from './../index' +import { getCookieExpirationDate } from '../../lib/get-cookie-expiration-date' +import { prepareSetCookie } from '../../lib/prepare-set-cookie' +import { setCookies } from '../../lib/set-cookie' +import { NextApiRequest } from 'next' +import getAnonymousShopperToken from './get-anonymous-shopper-token' + +export default class CookieHandler { + config: KiboCommerceConfig + request: NextApiRequest + response: any + accessToken: any + constructor(config: any, req: NextApiRequest, res: any) { + this.config = config + this.request = req + this.response = res + const encodedToken = req.cookies[config.customerCookie] + const token = encodedToken + ? JSON.parse(Buffer.from(encodedToken, 'base64').toString('ascii')) + : null + this.accessToken = token ? token.accessToken : null + } + + async getAnonymousToken() { + const response: any = await getAnonymousShopperToken({ + config: this.config, + }) + let anonymousAccessToken = response?.accessToken + return { + response, + accessToken: anonymousAccessToken, + } + } + + setAnonymousShopperCookie(anonymousShopperTokenResponse: any) { + const cookieExpirationDate = getCookieExpirationDate( + this.config.customerCookieMaxAgeInDays + ) + + const authCookie = prepareSetCookie( + this.config.customerCookie, + JSON.stringify(anonymousShopperTokenResponse), + anonymousShopperTokenResponse?.accessTokenExpiration + ? { expires: cookieExpirationDate } + : {} + ) + setCookies(this.response, [authCookie]) + } + getAccessToken() { + return this.accessToken + } +} diff --git a/framework/kibocommerce/api/utils/fetch-graphql-api.ts b/framework/kibocommerce/api/utils/fetch-graphql-api.ts new file mode 100644 index 000000000..8638b35b7 --- /dev/null +++ b/framework/kibocommerce/api/utils/fetch-graphql-api.ts @@ -0,0 +1,43 @@ +import { FetcherError } from '@commerce/utils/errors' +import type { GraphQLFetcher } from '@commerce/api' +import type { KiboCommerceConfig } from '../index' +import fetch from './fetch' +import { APIAuthenticationHelper } from './api-auth-helper'; + +const fetchGraphqlApi: ( + getConfig: () => KiboCommerceConfig +) => GraphQLFetcher = (getConfig) => async ( + query: string, + { variables, preview } = {}, + fetchOptions +) => { + const config = getConfig() + const authHelper = new APIAuthenticationHelper(config); + const apiToken = await authHelper.getAccessToken(); + const res = await fetch(config.commerceUrl + (preview ? '/preview' : ''), { + ...fetchOptions, + method: 'POST', + headers: { + ...fetchOptions?.headers, + Authorization: `Bearer ${apiToken}`, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query, + variables, + }), + }) + + const json = await res.json() + if (json.errors) { + console.warn(`Kibo API Request Correlation ID: ${res.headers.get('x-vol-correlation')}`); + throw new FetcherError({ + errors: json.errors ?? [{ message: 'Failed to fetch KiboCommerce API' }], + status: res.status, + }) + } + + return { data: json.data, res } +} + +export default fetchGraphqlApi diff --git a/framework/kibocommerce/api/utils/fetch-local.ts b/framework/kibocommerce/api/utils/fetch-local.ts new file mode 100644 index 000000000..2612188a9 --- /dev/null +++ b/framework/kibocommerce/api/utils/fetch-local.ts @@ -0,0 +1,36 @@ +import { FetcherError } from '@commerce/utils/errors' +import type { GraphQLFetcher } from '@commerce/api' +import type { KiboCommerceConfig } from '../index' +import fetch from './fetch' + +const fetchGraphqlApi: (getConfig: () => KiboCommerceConfig) => GraphQLFetcher = + (getConfig) => + async (query: string, { variables, preview } = {}, fetchOptions) => { + const config = getConfig() + const res = await fetch(config.commerceUrl, { + //const res = await fetch(config.commerceUrl + (preview ? '/preview' : ''), { + ...fetchOptions, + method: 'POST', + headers: { + Authorization: `Bearer ${config.apiToken}`, + ...fetchOptions?.headers, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query, + variables, + }), + }) + + const json = await res.json() + if (json.errors) { + throw new FetcherError({ + errors: json.errors ?? [{ message: 'Failed to fetch KiboCommerce API' }], + status: res.status, + }) + } + + return { data: json.data, res } + } + +export default fetchGraphqlApi diff --git a/framework/kibocommerce/api/utils/fetch.ts b/framework/kibocommerce/api/utils/fetch.ts new file mode 100644 index 000000000..9d9fff3ed --- /dev/null +++ b/framework/kibocommerce/api/utils/fetch.ts @@ -0,0 +1,3 @@ +import zeitFetch from '@vercel/fetch' + +export default zeitFetch() diff --git a/framework/kibocommerce/api/utils/get-anonymous-shopper-token.ts b/framework/kibocommerce/api/utils/get-anonymous-shopper-token.ts new file mode 100644 index 000000000..9325a4ecd --- /dev/null +++ b/framework/kibocommerce/api/utils/get-anonymous-shopper-token.ts @@ -0,0 +1,13 @@ +import type { KiboCommerceConfig } from '../' +import { getAnonymousShopperTokenQuery } from '../queries/get-anonymous-shopper-token-query' + +async function getAnonymousShopperToken({ + config, +}: { + config: KiboCommerceConfig +}): Promise { + const { data } = await config.fetch(getAnonymousShopperTokenQuery) + return data?.getAnonymousShopperToken +} + +export default getAnonymousShopperToken diff --git a/framework/kibocommerce/api/utils/get-customer-id.ts b/framework/kibocommerce/api/utils/get-customer-id.ts new file mode 100644 index 000000000..5ba3d7787 --- /dev/null +++ b/framework/kibocommerce/api/utils/get-customer-id.ts @@ -0,0 +1,26 @@ +import type { KiboCommerceConfig } from '..' +import { getCustomerAccountQuery } from '../queries/get-customer-account-query' + +async function getCustomerId({ + customerToken, + config, +}: { + customerToken: string + config: KiboCommerceConfig +}): Promise { + const token = customerToken ? Buffer.from(customerToken, 'base64').toString('ascii'): null; + const accessToken = token ? JSON.parse(token).accessToken : null; + const { data } = await config.fetch( + getCustomerAccountQuery, + undefined, + { + headers: { + 'x-vol-user-claims': accessToken, + }, + } + ) + + return data?.customerAccount?.id +} + +export default getCustomerId diff --git a/framework/kibocommerce/auth/index.ts b/framework/kibocommerce/auth/index.ts new file mode 100644 index 000000000..36e757a89 --- /dev/null +++ b/framework/kibocommerce/auth/index.ts @@ -0,0 +1,3 @@ +export { default as useLogin } from './use-login' +export { default as useLogout } from './use-logout' +export { default as useSignup } from './use-signup' diff --git a/framework/kibocommerce/auth/use-login.tsx b/framework/kibocommerce/auth/use-login.tsx new file mode 100644 index 000000000..672263f7c --- /dev/null +++ b/framework/kibocommerce/auth/use-login.tsx @@ -0,0 +1,42 @@ +import { MutationHook } from '@commerce/utils/types' +import useLogin, { UseLogin } from '@commerce/auth/use-login' + +import { useCallback } from 'react' +import { CommerceError } from '@commerce/utils/errors' +import type { LoginHook } from '../types/login' +import useCustomer from '../customer/use-customer' +import useCart from '../cart/use-cart' +export default useLogin as UseLogin + +export const handler: MutationHook = { + fetchOptions: { + url: '/api/login', + method: 'POST' + }, + async fetcher({ input: { email, password }, options, fetch }) { + if (!(email && password)) { + throw new CommerceError({ + message: + 'An email and password are required to login', + }) + } + + return fetch({ + ...options, + body: { email, password }, + }) + }, + useHook: ({ fetch }) => () => { + const { revalidate } = useCustomer() + const {revalidate: revalidateCart} = useCart() + return useCallback( + async function login(input) { + const data = await fetch({ input }) + await revalidate() + await revalidateCart() + return data + }, + [fetch, revalidate, revalidateCart] + ) + }, +} diff --git a/framework/kibocommerce/auth/use-logout.tsx b/framework/kibocommerce/auth/use-logout.tsx new file mode 100644 index 000000000..3e344fb09 --- /dev/null +++ b/framework/kibocommerce/auth/use-logout.tsx @@ -0,0 +1,29 @@ +import { useCallback } from 'react' +import type { MutationHook } from '@commerce/utils/types' +import useLogout, { UseLogout } from '@commerce/auth/use-logout' +import type { LogoutHook } from '../types/logout' +import useCustomer from '../customer/use-customer' +import useCart from '../cart/use-cart' + +export default useLogout as UseLogout + +export const handler: MutationHook = { + fetchOptions: { + url: '/api/logout', + method: 'GET', + }, + useHook: ({ fetch }) => () => { + const { mutate } = useCustomer() + const { mutate: mutateCart } = useCart() + + return useCallback( + async function logout() { + const data = await fetch() + await mutate(null, false) + await mutateCart(null, false) + return data + }, + [fetch, mutate, mutateCart] + ) + }, +} diff --git a/framework/kibocommerce/auth/use-signup.tsx b/framework/kibocommerce/auth/use-signup.tsx new file mode 100644 index 000000000..da06fd3eb --- /dev/null +++ b/framework/kibocommerce/auth/use-signup.tsx @@ -0,0 +1,44 @@ +import { useCallback } from 'react' +import type { MutationHook } from '@commerce/utils/types' +import { CommerceError } from '@commerce/utils/errors' +import useSignup, { UseSignup } from '@commerce/auth/use-signup' +import type { SignupHook } from '../types/signup' +import useCustomer from '../customer/use-customer' + +export default useSignup as UseSignup + +export const handler: MutationHook = { + fetchOptions: { + url: '/api/signup', + method: 'POST', + }, + async fetcher({ + input: { firstName, lastName, email, password }, + options, + fetch, + }) { + if (!(firstName && lastName && email && password)) { + throw new CommerceError({ + message: + 'A first name, last name, email and password are required to signup', + }) + } + + return fetch({ + ...options, + body: { firstName, lastName, email, password }, + }) + }, + useHook: ({ fetch }) => () => { + const { revalidate } = useCustomer() + + return useCallback( + async function signup(input) { + const data = await fetch({ input }) + await revalidate() + return data + }, + [fetch, revalidate] + ) + }, +} diff --git a/framework/kibocommerce/cart/index.ts b/framework/kibocommerce/cart/index.ts new file mode 100644 index 000000000..3b8ba990e --- /dev/null +++ b/framework/kibocommerce/cart/index.ts @@ -0,0 +1,4 @@ +export { default as useCart } from './use-cart' +export { default as useAddItem } from './use-add-item' +export { default as useRemoveItem } from './use-remove-item' +export { default as useUpdateItem } from './use-update-item' diff --git a/framework/kibocommerce/cart/use-add-item.tsx b/framework/kibocommerce/cart/use-add-item.tsx new file mode 100644 index 000000000..1ac6ac6f8 --- /dev/null +++ b/framework/kibocommerce/cart/use-add-item.tsx @@ -0,0 +1,44 @@ +import { useCallback } from 'react' +import type { MutationHook } from '@commerce/utils/types' +import { CommerceError } from '@commerce/utils/errors' +import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item' +import type { AddItemHook } from '@commerce/types/cart' +import useCart from './use-cart' + +export default useAddItem as UseAddItem + +export const handler: MutationHook = { + fetchOptions: { + url: '/api/cart', + method: 'POST', + }, + async fetcher({ input: item, options, fetch }) { + if ( + item.quantity && + (!Number.isInteger(item.quantity) || item.quantity! < 1) + ) { + throw new CommerceError({ + message: 'The item quantity has to be a valid integer greater than 0', + }) + } + + const data = await fetch({ + ...options, + body: { item }, + }) + + return data + }, + useHook: ({ fetch }) => () => { + const { mutate } = useCart() + + return useCallback( + async function addItem(input) { + const data = await fetch({ input }) + await mutate(data, false) + return data + }, + [fetch, mutate] + ) + }, +} diff --git a/framework/kibocommerce/cart/use-cart.tsx b/framework/kibocommerce/cart/use-cart.tsx new file mode 100644 index 000000000..0c565e094 --- /dev/null +++ b/framework/kibocommerce/cart/use-cart.tsx @@ -0,0 +1,33 @@ +import { useMemo } from 'react' +import { SWRHook } from '@commerce/utils/types' +import useCart, { UseCart } from '@commerce/cart/use-cart' + +export default useCart as UseCart + +export const handler: SWRHook = { + fetchOptions: { + method: 'GET', + url: '/api/cart', + }, + async fetcher({ options, fetch }) { + return await fetch({ ...options }) + }, + useHook: ({ useData }) => (input) => { + const response = useData({ + swrOptions: { revalidateOnFocus: false, ...input?.swrOptions }, + }) + + return useMemo( + () => + Object.create(response, { + isEmpty: { + get() { + return (response.data?.lineItems.length ?? 0) <= 0 + }, + enumerable: true, + }, + }), + [response] + ) + }, +} diff --git a/framework/kibocommerce/cart/use-remove-item.tsx b/framework/kibocommerce/cart/use-remove-item.tsx new file mode 100644 index 000000000..1376f29ce --- /dev/null +++ b/framework/kibocommerce/cart/use-remove-item.tsx @@ -0,0 +1,56 @@ +import { useCallback } from 'react' +import type { + MutationHookContext, + HookFetcherContext, +} from '@commerce/utils/types' +import { ValidationError } from '@commerce/utils/errors' +import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item' +import type { Cart, LineItem, RemoveItemHook } from '@commerce/types/cart' +import useCart from './use-cart' + +export type RemoveItemFn = T extends LineItem + ? (input?: RemoveItemActionInput) => Promise + : (input: RemoveItemActionInput) => Promise + +export type RemoveItemActionInput = T extends LineItem + ? Partial + : RemoveItemHook['actionInput'] + +export default useRemoveItem as UseRemoveItem + +export const handler = { + fetchOptions: { + url: '/api/cart', + method: 'DELETE', + }, + async fetcher({ + input: { itemId }, + options, + fetch, + }: HookFetcherContext) { + return await fetch({ ...options, body: { itemId } }) + }, + useHook: ({ fetch }: MutationHookContext) => < + T extends LineItem | undefined = undefined + >( + ctx: { item?: T } = {} + ) => { + const { item } = ctx + const { mutate } = useCart() + const removeItem: RemoveItemFn = async (input) => { + const itemId = input?.id ?? item?.id + + if (!itemId) { + throw new ValidationError({ + message: 'Invalid input used for this operation', + }) + } + + const data = await fetch({ input: { itemId } }) + await mutate(data, false) + return data + } + + return useCallback(removeItem as RemoveItemFn, [fetch, mutate]) + }, +} diff --git a/framework/kibocommerce/cart/use-update-item.tsx b/framework/kibocommerce/cart/use-update-item.tsx new file mode 100644 index 000000000..0f9f5754d --- /dev/null +++ b/framework/kibocommerce/cart/use-update-item.tsx @@ -0,0 +1,84 @@ +import { useCallback } from 'react' +import debounce from 'lodash.debounce' +import type { + MutationHookContext, + HookFetcherContext, +} from '@commerce/utils/types' +import { ValidationError } from '@commerce/utils/errors' +import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item' +import type { LineItem, UpdateItemHook } from '@commerce/types/cart' +import { handler as removeItemHandler } from './use-remove-item' +import useCart from './use-cart' + +export type UpdateItemActionInput = T extends LineItem + ? Partial + : UpdateItemHook['actionInput'] + +export default useUpdateItem as UseUpdateItem + +export const handler = { + fetchOptions: { + url: '/api/cart', + method: 'PUT', + }, + async fetcher({ + input: { itemId, item }, + options, + fetch, + }: HookFetcherContext) { + if (Number.isInteger(item.quantity)) { + // Also allow the update hook to remove an item if the quantity is lower than 1 + if (item.quantity! < 1) { + return removeItemHandler.fetcher({ + options: removeItemHandler.fetchOptions, + input: { itemId }, + fetch, + }) + } + } else if (item.quantity) { + throw new ValidationError({ + message: 'The item quantity has to be a valid integer', + }) + } + + return await fetch({ + ...options, + body: { itemId, item }, + }) + }, + useHook: ({ fetch }: MutationHookContext) => < + T extends LineItem | undefined = undefined + >( + ctx: { + item?: T + wait?: number + } = {} + ) => { + const { item } = ctx + const { mutate } = useCart() as any + + return useCallback( + debounce(async (input: UpdateItemActionInput) => { + const itemId = input.id ?? item?.id + const productId = input.productId ?? item?.productId + const variantId = input.productId ?? item?.variantId + + if (!itemId || !productId || !variantId) { + throw new ValidationError({ + message: 'Invalid input used for this operation', + }) + } + + const data = await fetch({ + input: { + itemId, + item: { productId, variantId, quantity: input.quantity }, + }, + }) + await mutate(data, false) + return data + }, ctx.wait ?? 500), + [fetch, mutate] + ) + }, +} diff --git a/framework/kibocommerce/checkout/use-checkout.tsx b/framework/kibocommerce/checkout/use-checkout.tsx new file mode 100644 index 000000000..8ba12c14a --- /dev/null +++ b/framework/kibocommerce/checkout/use-checkout.tsx @@ -0,0 +1,14 @@ +import { SWRHook } from '@commerce/utils/types' +import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout' + +export default useCheckout as UseCheckout + +export const handler: SWRHook = { + fetchOptions: { + query: '', + }, + async fetcher({ input, options, fetch }) {}, + useHook: + ({ useData }) => + async (input) => ({}), +} \ No newline at end of file diff --git a/framework/kibocommerce/codegen.json b/framework/kibocommerce/codegen.json new file mode 100644 index 000000000..cf25363ed --- /dev/null +++ b/framework/kibocommerce/codegen.json @@ -0,0 +1,23 @@ +{ + "schema": { + "https://t17194-s21127.dev10.kubedev.kibo-dev.com/graphql": {} + }, + + "generates": { + "./framework/kibocommerce/schema.d.ts": { + "plugins": ["typescript", "typescript-operations"], + "config": { + "scalars": { + "ID": "string" + } + } + }, + "./framework/kibocommerce/schema.graphql": { + "plugins": ["schema-ast"] + } + }, + "hooks": { + "afterAllFileWrite": ["prettier --write"] + } + } + \ No newline at end of file diff --git a/framework/kibocommerce/commerce.config.json b/framework/kibocommerce/commerce.config.json new file mode 100644 index 000000000..cd58f1e29 --- /dev/null +++ b/framework/kibocommerce/commerce.config.json @@ -0,0 +1,9 @@ +{ + "provider": "kibocommerce", + "features": { + "wishlist": true, + "cart": true, + "search": true, + "customerAuth": true + } +} \ No newline at end of file diff --git a/framework/kibocommerce/customer/address/use-add-item.tsx b/framework/kibocommerce/customer/address/use-add-item.tsx new file mode 100644 index 000000000..70bd044b2 --- /dev/null +++ b/framework/kibocommerce/customer/address/use-add-item.tsx @@ -0,0 +1,15 @@ +import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item' +import { MutationHook } from '@commerce/utils/types' + +export default useAddItem as UseAddItem + +export const handler: MutationHook = { + fetchOptions: { + query: '', + }, + async fetcher({ input, options, fetch }) {}, + useHook: + ({ fetch }) => + () => + async () => ({}), +} \ No newline at end of file diff --git a/framework/kibocommerce/customer/card/use-add-item.tsx b/framework/kibocommerce/customer/card/use-add-item.tsx new file mode 100644 index 000000000..d6bd0d77f --- /dev/null +++ b/framework/kibocommerce/customer/card/use-add-item.tsx @@ -0,0 +1,15 @@ +import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item' +import { MutationHook } from '@commerce/utils/types' + +export default useAddItem as UseAddItem + +export const handler: MutationHook = { + fetchOptions: { + query: '', + }, + async fetcher({ input, options, fetch }) {}, + useHook: + ({ fetch }) => + () => + async () => ({}), +} \ No newline at end of file diff --git a/framework/kibocommerce/customer/index.ts b/framework/kibocommerce/customer/index.ts new file mode 100644 index 000000000..6c903ecc5 --- /dev/null +++ b/framework/kibocommerce/customer/index.ts @@ -0,0 +1 @@ +export { default as useCustomer } from './use-customer' diff --git a/framework/kibocommerce/customer/use-customer.tsx b/framework/kibocommerce/customer/use-customer.tsx new file mode 100644 index 000000000..238b1229b --- /dev/null +++ b/framework/kibocommerce/customer/use-customer.tsx @@ -0,0 +1,24 @@ +import { SWRHook } from '@commerce/utils/types' +import useCustomer, { UseCustomer } from '@commerce/customer/use-customer' +import type { CustomerHook } from '../types/customer' + +export default useCustomer as UseCustomer + +export const handler: SWRHook = { + fetchOptions: { + url: '/api/customer', + method: 'GET', + }, + async fetcher({ options, fetch }) { + const data = await fetch(options) + return data?.customer ?? null + }, + useHook: ({ useData }) => (input) => { + return useData({ + swrOptions: { + revalidateOnFocus: false, + ...input?.swrOptions, + }, + }) + }, +} diff --git a/framework/kibocommerce/fetcher.ts b/framework/kibocommerce/fetcher.ts new file mode 100644 index 000000000..f8ca0c578 --- /dev/null +++ b/framework/kibocommerce/fetcher.ts @@ -0,0 +1,41 @@ +import { FetcherError } from '@commerce/utils/errors' +import type { Fetcher } from '@commerce/utils/types' + +async function getText(res: Response) { + try { + return (await res.text()) || res.statusText + } catch (error) { + return res.statusText + } +} + +async function getError(res: Response) { + if (res.headers.get('Content-Type')?.includes('application/json')) { + const data = await res.json() + return new FetcherError({ errors: data.errors, status: res.status }) + } + return new FetcherError({ message: await getText(res), status: res.status }) +} + +const fetcher: Fetcher = async ({ + url, + method = 'GET', + variables, + body: bodyObj, +}) => { + const hasBody = Boolean(variables || bodyObj) + const body = hasBody + ? JSON.stringify(variables ? { variables } : bodyObj) + : undefined + const headers = hasBody ? { 'Content-Type': 'application/json' } : undefined + const res = await fetch(url!, { method, body, headers }) + + if (res.ok) { + const { data } = await res.json() + return data + } + + throw await getError(res) +} + +export default fetcher diff --git a/framework/kibocommerce/index.tsx b/framework/kibocommerce/index.tsx new file mode 100644 index 000000000..af8b66ee6 --- /dev/null +++ b/framework/kibocommerce/index.tsx @@ -0,0 +1,9 @@ +import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce' +import { kiboCommerceProvider, KibocommerceProvider } from './provider' + +export { kiboCommerceProvider } +export type { KibocommerceProvider } + +export const CommerceProvider = getCommerceProvider(kiboCommerceProvider) + +export const useCommerce = () => useCoreCommerce() diff --git a/framework/kibocommerce/lib/get-cookie-expiration-date.ts b/framework/kibocommerce/lib/get-cookie-expiration-date.ts new file mode 100644 index 000000000..89fd24504 --- /dev/null +++ b/framework/kibocommerce/lib/get-cookie-expiration-date.ts @@ -0,0 +1,8 @@ +export function getCookieExpirationDate(maxAgeInDays: number){ + const today = new Date(); + const expirationDate = new Date(); + + const cookieExpirationDate = new Date ( expirationDate.setDate(today.getDate() + maxAgeInDays) ) + + return cookieExpirationDate; +} \ No newline at end of file diff --git a/framework/kibocommerce/lib/get-slug.ts b/framework/kibocommerce/lib/get-slug.ts new file mode 100644 index 000000000..329c5a27e --- /dev/null +++ b/framework/kibocommerce/lib/get-slug.ts @@ -0,0 +1,5 @@ +// Remove trailing and leading slash, usually included in nodes +// returned by the BigCommerce API +const getSlug = (path: string) => path.replace(/^\/|\/$/g, '') + +export default getSlug diff --git a/framework/kibocommerce/lib/immutability.ts b/framework/kibocommerce/lib/immutability.ts new file mode 100644 index 000000000..488d3570f --- /dev/null +++ b/framework/kibocommerce/lib/immutability.ts @@ -0,0 +1,13 @@ +import update, { Context } from 'immutability-helper' + +const c = new Context() + +c.extend('$auto', function (value, object) { + return object ? c.update(object, value) : c.update({}, value) +}) + +c.extend('$autoArray', function (value, object) { + return object ? c.update(object, value) : c.update([], value) +}) + +export default c.update diff --git a/framework/kibocommerce/lib/normalize.ts b/framework/kibocommerce/lib/normalize.ts new file mode 100644 index 000000000..5fd03b855 --- /dev/null +++ b/framework/kibocommerce/lib/normalize.ts @@ -0,0 +1,194 @@ +import update from './immutability' +import getSlug from './get-slug' +import type { PrCategory, CustomerAccountInput, Document } from '../schema' +import { Page } from '../types/page'; +import { Customer } from '../types/customer' + +function normalizeProductOption(productOption: any) { + const { + node: { entityId, values: { edges = [] } = {}, ...rest }, + } = productOption + + return { + id: entityId, + values: edges?.map(({ node }: any) => node), + ...rest, + } +} + +export function normalizeProduct(productNode: any, config: any): any { + const product = { + id: productNode.productCode, + name: productNode.content.productName, + vendor: '', + path: `/${productNode.productCode}`, + slug: productNode.productCode, + price: { + value: productNode?.price?.price, + currencyCode: config.currencyCode, + }, + descriptionHtml: productNode.content.productShortDescription, + + images: productNode.content.productImages.map((p: any) => ({ + url: `http:${p.imageUrl}`, + altText: p.imageLabel, + })), + + variants: productNode.variations?.map((v: any) => ({ + id: v.productCode, + options: v.options.map((o: any) => ({ + ['__typename']: 'MultipleChoiceOption', + id: o.attributeFQN, + displayName: + o.attributeFQN.split('~')[1][0].toUpperCase() + + o.attributeFQN.split('~')[1].slice(1).toLowerCase(), + values: [{ label: o.value.toString() }], + })), + })) || [ + { + id: '', + }, + ], + + options: + productNode.options?.map((o: any) => ({ + id: o.attributeFQN, + displayName: o.attributeDetail.name, + values: o.values.map((v: any) => ({ + label: v.value.toString(), + hexColors: '', + })), + })) || [], + } + + return product +} + +export function normalizePage(page: Document): Page { + return { + id: String(page.id), + name: String(page.name), + url: page.properties.url, + body: page.properties.body, + is_visible: page.properties.is_visible, + sort_order: page.properties.sort_order + } +} + +export function normalizeCart(data: any): any { + return { + id: data.id, + customerId: data.userId, + email: data?.email, + createdAt: data?.created_time, + currency: { + code: 'USD', + }, + taxesIncluded: true, + lineItems: data.items.map(normalizeLineItem), + lineItemsSubtotalPrice: data?.items.reduce( + (acc: number, obj: { subtotal: number }) => acc + obj.subtotal, + 0 + ), + subtotalPrice: data?.subtotal, + totalPrice: data?.total, + discounts: data.orderDiscounts?.map((discount: any) => ({ + value: discount.impact, + })), + } +} + +export function normalizeCustomer(customer: CustomerAccountInput): Customer { + return { + id: customer.id, + firstName: customer.firstName, + lastName: customer.lastName, + email: customer.emailAddress, + userName: customer.userName, + isAnonymous: customer.isAnonymous + } +} + +function normalizeLineItem(item: any): any { + return { + id: item.id, + variantId: item.product.variationProductCode, + productId: String(item.product.productCode), + name: item.product.name, + quantity: item.quantity, + variant: { + id: item.product.variationProductCode, + sku: item.product?.sku, + name: item.product.name, + image: { + url: item?.product?.imageUrl, + }, + requiresShipping: item?.is_require_shipping, + price: item?.unitPrice.extendedAmount, + listPrice: 0, + }, + options: item.product.options, + path: `${item.product.productCode}`, + discounts: item?.discounts?.map((discount: any) => ({ + value: discount.discounted_amount, + })), + } +} + +export function normalizeCategory(category: PrCategory): any { + return { + id: category?.categoryCode, + name: category?.content?.name, + slug: category?.content?.slug, + path: `/${category?.content?.slug}`, + } +} + +export function normalizeWishlistItem( + item: any, + config: any, + includeProducts=false +): any { + if (includeProducts) { + return { + id: item.id, + product: getProuducts(item, config), + } + } else { + return getProuducts(item, config) + } +} + +function getProuducts(item: any, config: any): any { + return { + variant_id: item.product.variationProductCode || '', + id: String(item.product.productCode), + product_id: String(item.product.productCode), + name: item.product.name, + quantity: item.quantity, + images: [ + { + url: `http:${item.product.imageUrl}`, + alt: item.product.imageAlternateText, + }, + ], + price: { + value: item.product.price.price, + retailPrice: item.product.price.retailPrice || 0, + currencyCode: config.currencyCode, + }, + variants: [ + { + id: item.product.variationProductCode || '', + sku: item.product?.sku, + name: item.product.name, + image: { + url: item?.product.imageUrl, + }, + }, + ], + options: item.product.options, + path: `/${item.product.productCode}`, + description: item.product.description, + } +} diff --git a/framework/kibocommerce/lib/prepare-set-cookie.ts b/framework/kibocommerce/lib/prepare-set-cookie.ts new file mode 100644 index 000000000..c1aeb1c83 --- /dev/null +++ b/framework/kibocommerce/lib/prepare-set-cookie.ts @@ -0,0 +1,15 @@ +export function prepareSetCookie(name: string, value: string, options: any = {}): string { + const encodedValue = Buffer.from(value).toString('base64') + const cookieValue = [`${name}=${encodedValue}`]; + + if (options.maxAge) { + cookieValue.push(`Max-Age=${options.maxAge}`); + } + + if (options.expires && !options.maxAge) { + cookieValue.push(`Expires=${options.expires.toUTCString()}`); + } + + const cookie = cookieValue.join('; ') + return cookie +} \ No newline at end of file diff --git a/framework/kibocommerce/lib/product-search-vars.ts b/framework/kibocommerce/lib/product-search-vars.ts new file mode 100644 index 000000000..37c4d81eb --- /dev/null +++ b/framework/kibocommerce/lib/product-search-vars.ts @@ -0,0 +1,55 @@ +function getFacetValueFilter(categoryCode: string, filters = []) { + let facetValueFilter = ''; + if (categoryCode) { + facetValueFilter = `categoryCode:${categoryCode},`; + } + return facetValueFilter + filters.join(','); +} + +export const buildProductSearchVars = ({ + categoryCode = '', + pageSize = 5, + filters = {} as any, + startIndex = 0, + sort = '', + search = '', +}) => { + let facetTemplate = ''; + let filter = ''; + let sortBy; + if (categoryCode) { + facetTemplate = `categoryCode:${categoryCode}`; + filter = `categoryCode req ${categoryCode}`; + } + const facetFilterList = Object.keys(filters).filter(k => filters[k].length).reduce((accum, k): any => { + return [...accum, ...filters[k].map((facetValue: any) => `Tenant~${k}:${facetValue}`)]; + }, []); + + const facetValueFilter = getFacetValueFilter(categoryCode, facetFilterList); + + switch(sort) { + case 'latest-desc': + sortBy= 'createDate desc'; + break; + case 'price-asc': + sortBy= 'price asc'; + break; + case 'price-desc': + sortBy= 'price desc'; + break; + case 'trending-desc': + default: + sortBy= ''; + break; + } + + return { + query: search, + startIndex, + pageSize, + sortBy, + filter: filter, + facetTemplate, + facetValueFilter + } +} diff --git a/framework/kibocommerce/lib/set-cookie.ts b/framework/kibocommerce/lib/set-cookie.ts new file mode 100644 index 000000000..2c194c921 --- /dev/null +++ b/framework/kibocommerce/lib/set-cookie.ts @@ -0,0 +1,3 @@ +export function setCookies(res: any, cookies: string[]): void { + res.setHeader('Set-Cookie', cookies); +} \ No newline at end of file diff --git a/framework/kibocommerce/next.config.js b/framework/kibocommerce/next.config.js new file mode 100644 index 000000000..79a348c88 --- /dev/null +++ b/framework/kibocommerce/next.config.js @@ -0,0 +1,12 @@ +const commerce = require('./commerce.config.json') + +module.exports = { + commerce, + serverRuntimeConfig: { + // Will only be available on the server side + kiboAuthTicket: null + }, + images: { + domains: ['d1slj7rdbjyb5l.cloudfront.net', 'cdn-tp1.mozu.com', 'cdn-sb.mozu.com'], + }, +} diff --git a/framework/kibocommerce/product/index.ts b/framework/kibocommerce/product/index.ts new file mode 100644 index 000000000..426a3edcd --- /dev/null +++ b/framework/kibocommerce/product/index.ts @@ -0,0 +1,2 @@ +export { default as usePrice } from './use-price' +export { default as useSearch } from './use-search' diff --git a/framework/kibocommerce/product/use-price.tsx b/framework/kibocommerce/product/use-price.tsx new file mode 100644 index 000000000..0174faf5e --- /dev/null +++ b/framework/kibocommerce/product/use-price.tsx @@ -0,0 +1,2 @@ +export * from '@commerce/product/use-price' +export { default } from '@commerce/product/use-price' diff --git a/framework/kibocommerce/product/use-search.tsx b/framework/kibocommerce/product/use-search.tsx new file mode 100644 index 000000000..204ca3181 --- /dev/null +++ b/framework/kibocommerce/product/use-search.tsx @@ -0,0 +1,37 @@ +import { SWRHook } from '@commerce/utils/types' +import useSearch, { UseSearch } from '@commerce/product/use-search' +export default useSearch as UseSearch + +export const handler: SWRHook = { + fetchOptions: { + method: 'GET', + url: '/api/catalog/products', + }, + fetcher({ input: { search, categoryId, brandId, sort }, options, fetch }) { + // Use a dummy base as we only care about the relative path + const url = new URL(options.url!, 'http://a') + + if (search) url.searchParams.set('search', search) + if (Number.isInteger(Number(categoryId))) + url.searchParams.set('categoryId', String(categoryId)) + if (Number.isInteger(brandId)) + url.searchParams.set('brandId', String(brandId)) + if (sort) url.searchParams.set('sort', sort) + + return fetch({ + url: url.pathname + url.search, + method: options.method, + }) + }, + useHook: ({ useData }) => (input) => { + return useData({ + input: [ + ['search', input.search], + ['categoryId', input.categoryId], + ['brandId', input.brandId], + ['sort', input.sort], + ], + swrOptions: { revalidateOnFocus: false, ...input?.swrOptions }, + }) + }, +} diff --git a/framework/kibocommerce/provider.ts b/framework/kibocommerce/provider.ts new file mode 100644 index 000000000..8ca1ddfde --- /dev/null +++ b/framework/kibocommerce/provider.ts @@ -0,0 +1,30 @@ +import fetcher from './fetcher' +import { handler as useCart } from './cart/use-cart' +import { handler as useAddItem } from './cart/use-add-item' +import { handler as useUpdateItem } from './cart/use-update-item' +import { handler as useRemoveItem } from './cart/use-remove-item' +import { handler as useCustomer } from './customer/use-customer' +import { handler as useSearch } from './product/use-search' +import { handler as useLogin } from './auth/use-login' +import { handler as useLogout } from './auth/use-logout' +import { handler as useSignup } from './auth/use-signup' +import { handler as useWishlist } from './wishlist/use-wishlist' +import { handler as useWishlistAddItem } from './wishlist/use-add-item' +import { handler as useWishlistRemoveItem } from './wishlist/use-remove-item' + +export const kiboCommerceProvider = { + locale: 'en-us', + cartCookie: 'kibo_cart', + fetcher, + cart: { useCart, useAddItem, useUpdateItem, useRemoveItem }, + wishlist: { + useWishlist, + useAddItem: useWishlistAddItem, + useRemoveItem: useWishlistRemoveItem, + }, + customer: { useCustomer }, + products: { useSearch }, + auth: { useLogin, useLogout, useSignup }, +} + +export type KibocommerceProvider = typeof kiboCommerceProvider diff --git a/framework/kibocommerce/schema.d.ts b/framework/kibocommerce/schema.d.ts new file mode 100644 index 000000000..cf52ddec9 --- /dev/null +++ b/framework/kibocommerce/schema.d.ts @@ -0,0 +1,11399 @@ +export type Maybe = T | null +export type Exact = { + [K in keyof T]: T[K] +} +export type MakeOptional = Omit & + { [SubKey in K]?: Maybe } +export type MakeMaybe = Omit & + { [SubKey in K]: Maybe } +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: string + String: string + Boolean: boolean + Int: number + Float: number + /** The `AnyScalar` type allows any scalar value by examining the input and passing the serialize, parseValue, and parseLiteral operations to their respective types. */ + AnyScalar: any + /** DateTime custom scalar type */ + DateTime: any + /** Object custom scalar type */ + Object: any +} + +export type AccountPasswordInfoCollectionInput = { + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type AccountPasswordInfoInput = { + accountId: Scalars['Int'] + userId?: Maybe + unlockAccount?: Maybe + passwordInfo?: Maybe +} + +export type AccountSalesRep = { + __typename?: 'AccountSalesRep' + _get?: Maybe + _root?: Maybe + accountId: Scalars['Int'] + adminUserId?: Maybe +} + +export type AccountSalesRep_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type AccountSalesRepInput = { + accountId: Scalars['Int'] + adminUserId?: Maybe +} + +export type ActiveDateRange = { + __typename?: 'ActiveDateRange' + _get?: Maybe + _root?: Maybe + startDate?: Maybe + endDate?: Maybe +} + +export type ActiveDateRange_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ActiveDateRangeInput = { + startDate?: Maybe + endDate?: Maybe +} + +export type AddressValidationRequestInput = { + address?: Maybe +} + +export type AddressValidationResponse = { + __typename?: 'AddressValidationResponse' + _get?: Maybe + _root?: Maybe + addressCandidates?: Maybe>> +} + +export type AddressValidationResponse_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type Adjustment = { + __typename?: 'Adjustment' + _get?: Maybe + _root?: Maybe + amount?: Maybe + description?: Maybe + internalComment?: Maybe +} + +export type Adjustment_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type AdjustmentInput = { + amount?: Maybe + description?: Maybe + internalComment?: Maybe +} + +export type AppliedLineItemProductDiscount = { + __typename?: 'AppliedLineItemProductDiscount' + _get?: Maybe + _root?: Maybe + appliesToSalePrice?: Maybe + discountQuantity: Scalars['Int'] + productQuantity?: Maybe + impactPerUnit?: Maybe +} + +export type AppliedLineItemProductDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type AppliedLineItemProductDiscountInput = { + appliesToSalePrice?: Maybe + discountQuantity: Scalars['Int'] + productQuantity?: Maybe + impactPerUnit?: Maybe +} + +export type AppliedLineItemShippingDiscount = { + __typename?: 'AppliedLineItemShippingDiscount' + _get?: Maybe + _root?: Maybe + methodCode?: Maybe + discount?: Maybe + discountQuantity: Scalars['Int'] + impactPerUnit: Scalars['Float'] +} + +export type AppliedLineItemShippingDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type AppliedLineItemShippingDiscountInput = { + methodCode?: Maybe + discount?: Maybe + discountQuantity: Scalars['Int'] + impactPerUnit: Scalars['Float'] +} + +export type AttributeDetail = { + __typename?: 'AttributeDetail' + _get?: Maybe + _root?: Maybe + valueType?: Maybe + inputType?: Maybe + dataType?: Maybe + usageType?: Maybe + dataTypeSequence: Scalars['Int'] + name?: Maybe + description?: Maybe + validation?: Maybe + searchableInStorefront?: Maybe + searchDisplayValue?: Maybe + allowFilteringAndSortingInStorefront?: Maybe + indexValueWithCase?: Maybe + customWeightInStorefrontSearch?: Maybe + displayIntention?: Maybe +} + +export type AttributeDetail_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type AttributeVocabularyValueDisplayInfo = { + __typename?: 'AttributeVocabularyValueDisplayInfo' + _get?: Maybe + _root?: Maybe + cmsId?: Maybe + imageUrl?: Maybe + colorValue?: Maybe +} + +export type AttributeVocabularyValueDisplayInfo_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type AuditRecord = { + __typename?: 'AuditRecord' + _get?: Maybe + _root?: Maybe + id?: Maybe + changes?: Maybe>> + auditInfo?: Maybe +} + +export type AuditRecord_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type AuditRecordChange = { + __typename?: 'AuditRecordChange' + _get?: Maybe + _root?: Maybe + type?: Maybe + path?: Maybe + fields?: Maybe>> +} + +export type AuditRecordChange_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type AuditRecordChangeField = { + __typename?: 'AuditRecordChangeField' + _get?: Maybe + _root?: Maybe + name?: Maybe + oldValue?: Maybe + newValue?: Maybe +} + +export type AuditRecordChangeField_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type AuditRecordChangeFieldInput = { + name?: Maybe + oldValue?: Maybe + newValue?: Maybe +} + +export type AuditRecordChangeInput = { + type?: Maybe + path?: Maybe + fields?: Maybe>> +} + +export type AuditRecordInput = { + id?: Maybe + changes?: Maybe>> + auditInfo?: Maybe +} + +export type B2BAccount = { + __typename?: 'B2BAccount' + _get?: Maybe + _root?: Maybe + users?: Maybe>> + isActive?: Maybe + priceList?: Maybe + salesReps?: Maybe>> + rootAccountId?: Maybe + parentAccountId?: Maybe + approvalStatus?: Maybe + id: Scalars['Int'] + customerSet?: Maybe + commerceSummary?: Maybe + contacts?: Maybe>> + companyOrOrganization?: Maybe + notes?: Maybe>> + attributes?: Maybe>> + segments?: Maybe>> + taxId?: Maybe + externalId?: Maybe + auditInfo?: Maybe + customerSinceDate?: Maybe + accountType?: Maybe +} + +export type B2BAccount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type B2BAccountCollection = { + __typename?: 'B2BAccountCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type B2BAccountCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type B2BAccountInput = { + users?: Maybe>> + isActive?: Maybe + priceList?: Maybe + salesReps?: Maybe>> + rootAccountId?: Maybe + parentAccountId?: Maybe + approvalStatus?: Maybe + id: Scalars['Int'] + customerSet?: Maybe + commerceSummary?: Maybe + contacts?: Maybe>> + companyOrOrganization?: Maybe + notes?: Maybe>> + attributes?: Maybe>> + segments?: Maybe>> + taxId?: Maybe + externalId?: Maybe + auditInfo?: Maybe + customerSinceDate?: Maybe + accountType?: Maybe +} + +export type B2BUser = { + __typename?: 'B2BUser' + _get?: Maybe + _root?: Maybe + emailAddress?: Maybe + userName?: Maybe + firstName?: Maybe + lastName?: Maybe + localeCode?: Maybe + userId?: Maybe + roles?: Maybe>> + isLocked?: Maybe + isActive?: Maybe + isRemoved?: Maybe + acceptsMarketing?: Maybe + hasExternalPassword?: Maybe +} + +export type B2BUser_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type B2BUserAndAuthInfoInput = { + b2BUser?: Maybe + externalPassword?: Maybe + isImport?: Maybe +} + +export type B2BUserCollection = { + __typename?: 'B2BUserCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type B2BUserCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type B2BUserInput = { + emailAddress?: Maybe + userName?: Maybe + firstName?: Maybe + lastName?: Maybe + localeCode?: Maybe + userId?: Maybe + roles?: Maybe>> + isLocked?: Maybe + isActive?: Maybe + isRemoved?: Maybe + acceptsMarketing?: Maybe + hasExternalPassword?: Maybe +} + +export type BillingInfo = { + __typename?: 'BillingInfo' + _get?: Maybe + _root?: Maybe + paymentType?: Maybe + paymentWorkflow?: Maybe + billingContact?: Maybe + isSameBillingShippingAddress?: Maybe + card?: Maybe + token?: Maybe + purchaseOrder?: Maybe + check?: Maybe + auditInfo?: Maybe + storeCreditCode?: Maybe + storeCreditType?: Maybe + customCreditType?: Maybe + externalTransactionId?: Maybe + data?: Maybe +} + +export type BillingInfo_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type BillingInfoInput = { + paymentType?: Maybe + paymentWorkflow?: Maybe + billingContact?: Maybe + isSameBillingShippingAddress?: Maybe + card?: Maybe + token?: Maybe + purchaseOrder?: Maybe + check?: Maybe + auditInfo?: Maybe + storeCreditCode?: Maybe + storeCreditType?: Maybe + customCreditType?: Maybe + externalTransactionId?: Maybe + data?: Maybe +} + +export type BoxType = { + __typename?: 'BoxType' + _get?: Maybe + _root?: Maybe + name?: Maybe + height?: Maybe + width?: Maybe + length?: Maybe +} + +export type BoxType_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type BpmConfiguration = { + __typename?: 'BpmConfiguration' + _get?: Maybe + _root?: Maybe + shipmentType?: Maybe + workflowContainerId?: Maybe + workflowProcessId?: Maybe +} + +export type BpmConfiguration_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type BundledProductSummary = { + __typename?: 'BundledProductSummary' + _get?: Maybe + _root?: Maybe + productShortDescription?: Maybe + productName?: Maybe + productCode?: Maybe + goodsType?: Maybe + quantity: Scalars['Int'] + measurements?: Maybe + isPackagedStandAlone?: Maybe + inventoryInfo?: Maybe + optionAttributeFQN?: Maybe + optionValue?: Maybe + creditValue?: Maybe + productType?: Maybe +} + +export type BundledProductSummary_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export enum BundlingStrategyEnum { + ItemDependency = 'ITEM_DEPENDENCY', +} + +export type CancelReasonCollection = { + __typename?: 'CancelReasonCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CancelReasonCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CancelReasonItem = { + __typename?: 'CancelReasonItem' + _get?: Maybe + _root?: Maybe + reasonCode?: Maybe + name?: Maybe + needsMoreInfo?: Maybe +} + +export type CancelReasonItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CanceledItem = { + __typename?: 'CanceledItem' + _get?: Maybe + _root?: Maybe + canceledReason?: Maybe + auditInfo?: Maybe + lineId: Scalars['Int'] + originalOrderItemId?: Maybe + parentId?: Maybe + productCode?: Maybe + variationProductCode?: Maybe + optionAttributeFQN?: Maybe + name?: Maybe + fulfillmentLocationCode?: Maybe + imageUrl?: Maybe + isTaxable?: Maybe + quantity: Scalars['Int'] + unitPrice: Scalars['Float'] + actualPrice: Scalars['Float'] + overridePrice?: Maybe + itemDiscount: Scalars['Float'] + lineItemCost: Scalars['Float'] + itemTax: Scalars['Float'] + shipping: Scalars['Float'] + shippingDiscount: Scalars['Float'] + shippingTax: Scalars['Float'] + handling: Scalars['Float'] + handlingDiscount: Scalars['Float'] + handlingTax: Scalars['Float'] + duty: Scalars['Float'] + isPackagedStandAlone?: Maybe + readyForPickupQuantity?: Maybe + backorderReleaseDate?: Maybe + measurements?: Maybe + options?: Maybe>> + data?: Maybe + taxData?: Maybe + weightedShipmentAdjustment: Scalars['Float'] + weightedLineItemTaxAdjustment: Scalars['Float'] + weightedShippingAdjustment: Scalars['Float'] + weightedShippingTaxAdjustment: Scalars['Float'] + weightedHandlingAdjustment: Scalars['Float'] + weightedHandlingTaxAdjustment: Scalars['Float'] + weightedDutyAdjustment: Scalars['Float'] + taxableShipping: Scalars['Float'] + taxableLineItemCost: Scalars['Float'] + taxableHandling: Scalars['Float'] + fulfillmentFields?: Maybe>> + isAssemblyRequired?: Maybe + parentItemId?: Maybe + childItemIds?: Maybe> + giftCards?: Maybe>> +} + +export type CanceledItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CanceledItemInput = { + canceledReason?: Maybe + auditInfo?: Maybe + lineId: Scalars['Int'] + originalOrderItemId?: Maybe + parentId?: Maybe + productCode?: Maybe + variationProductCode?: Maybe + optionAttributeFQN?: Maybe + name?: Maybe + fulfillmentLocationCode?: Maybe + imageUrl?: Maybe + isTaxable?: Maybe + quantity: Scalars['Int'] + unitPrice: Scalars['Float'] + actualPrice: Scalars['Float'] + overridePrice?: Maybe + itemDiscount: Scalars['Float'] + lineItemCost: Scalars['Float'] + itemTax: Scalars['Float'] + shipping: Scalars['Float'] + shippingDiscount: Scalars['Float'] + shippingTax: Scalars['Float'] + handling: Scalars['Float'] + handlingDiscount: Scalars['Float'] + handlingTax: Scalars['Float'] + duty: Scalars['Float'] + isPackagedStandAlone?: Maybe + readyForPickupQuantity?: Maybe + backorderReleaseDate?: Maybe + measurements?: Maybe + options?: Maybe>> + data?: Maybe + taxData?: Maybe + weightedShipmentAdjustment: Scalars['Float'] + weightedLineItemTaxAdjustment: Scalars['Float'] + weightedShippingAdjustment: Scalars['Float'] + weightedShippingTaxAdjustment: Scalars['Float'] + weightedHandlingAdjustment: Scalars['Float'] + weightedHandlingTaxAdjustment: Scalars['Float'] + weightedDutyAdjustment: Scalars['Float'] + taxableShipping: Scalars['Float'] + taxableLineItemCost: Scalars['Float'] + taxableHandling: Scalars['Float'] + fulfillmentFields?: Maybe>> + isAssemblyRequired?: Maybe + parentItemId?: Maybe + childItemIds?: Maybe> + giftCards?: Maybe>> +} + +export type CanceledReason = { + __typename?: 'CanceledReason' + _get?: Maybe + _root?: Maybe + reasonCode?: Maybe + description?: Maybe + moreInfo?: Maybe +} + +export type CanceledReason_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CanceledReasonInput = { + reasonCode?: Maybe + description?: Maybe + moreInfo?: Maybe +} + +export type CapturableShipmentSummary = { + __typename?: 'CapturableShipmentSummary' + _get?: Maybe + _root?: Maybe + shipmentNumber: Scalars['Int'] + shipmentTotal: Scalars['Float'] + amountApplied: Scalars['Float'] +} + +export type CapturableShipmentSummary_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CapturableShipmentSummaryInput = { + shipmentNumber: Scalars['Int'] + shipmentTotal: Scalars['Float'] + amountApplied: Scalars['Float'] +} + +export type Card = { + __typename?: 'Card' + _get?: Maybe + _root?: Maybe + id?: Maybe + nameOnCard?: Maybe + cardType?: Maybe + expireMonth?: Maybe + expireYear?: Maybe + cardNumberPart?: Maybe + contactId: Scalars['Int'] + isDefaultPayMethod?: Maybe +} + +export type Card_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CardCollection = { + __typename?: 'CardCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CardCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CardInput = { + id?: Maybe + nameOnCard?: Maybe + cardType?: Maybe + expireMonth?: Maybe + expireYear?: Maybe + cardNumberPart?: Maybe + contactId: Scalars['Int'] + isDefaultPayMethod?: Maybe +} + +export type Carrier = { + __typename?: 'Carrier' + _get?: Maybe + _root?: Maybe + carrierType?: Maybe + isEnabled?: Maybe + shippingMethodMappings?: Maybe +} + +export type Carrier_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CarrierServiceGenerateLabelResponse = { + __typename?: 'CarrierServiceGenerateLabelResponse' + _get?: Maybe + _root?: Maybe + imageURL?: Maybe + integratorId?: Maybe + price?: Maybe + trackingNumber?: Maybe +} + +export type CarrierServiceGenerateLabelResponse_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type Cart = { + __typename?: 'Cart' + _get?: Maybe + _root?: Maybe + items?: Maybe>> + couponCodes?: Maybe> + invalidCoupons?: Maybe>> + priceListCode?: Maybe + cartMessage?: Maybe + cartMessages?: Maybe>> + handlingAmount?: Maybe + handlingSubTotal?: Maybe + handlingTotal?: Maybe + userId?: Maybe + id?: Maybe + tenantId?: Maybe + siteId?: Maybe + channelCode?: Maybe + currencyCode?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + fulfillmentInfo?: Maybe + orderDiscounts?: Maybe>> + suggestedDiscounts?: Maybe>> + rejectedDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + subtotal?: Maybe + discountedSubtotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + shippingTotal?: Maybe + shippingSubTotal?: Maybe + shippingTaxTotal?: Maybe + handlingTaxTotal?: Maybe + itemTaxTotal?: Maybe + taxTotal?: Maybe + feeTotal?: Maybe + total?: Maybe + lineItemSubtotalWithOrderAdjustments?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + lastValidationDate?: Maybe + expirationDate?: Maybe + changeMessages?: Maybe>> + extendedProperties?: Maybe>> + discountThresholdMessages?: Maybe>> + auditInfo?: Maybe +} + +export type Cart_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CartChangeMessageCollection = { + __typename?: 'CartChangeMessageCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CartChangeMessageCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CartInput = { + items?: Maybe>> + couponCodes?: Maybe> + invalidCoupons?: Maybe>> + priceListCode?: Maybe + cartMessage?: Maybe + cartMessages?: Maybe>> + handlingAmount?: Maybe + handlingSubTotal?: Maybe + handlingTotal?: Maybe + userId?: Maybe + id?: Maybe + tenantId?: Maybe + siteId?: Maybe + channelCode?: Maybe + currencyCode?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + fulfillmentInfo?: Maybe + orderDiscounts?: Maybe>> + suggestedDiscounts?: Maybe>> + rejectedDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + subtotal?: Maybe + discountedSubtotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + shippingTotal?: Maybe + shippingSubTotal?: Maybe + shippingTaxTotal?: Maybe + handlingTaxTotal?: Maybe + itemTaxTotal?: Maybe + taxTotal?: Maybe + feeTotal?: Maybe + total?: Maybe + lineItemSubtotalWithOrderAdjustments?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + lastValidationDate?: Maybe + expirationDate?: Maybe + changeMessages?: Maybe>> + extendedProperties?: Maybe>> + discountThresholdMessages?: Maybe>> + auditInfo?: Maybe +} + +export type CartItem = { + __typename?: 'CartItem' + _get?: Maybe + _root?: Maybe + id?: Maybe + fulfillmentLocationCode?: Maybe + fulfillmentMethod?: Maybe + localeCode?: Maybe + purchaseLocation?: Maybe + lineId?: Maybe + product?: Maybe + quantity: Scalars['Int'] + isRecurring?: Maybe + isTaxable?: Maybe + subtotal?: Maybe + extendedTotal?: Maybe + taxableTotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + itemTaxTotal?: Maybe + shippingTaxTotal?: Maybe + shippingTotal?: Maybe + handlingAmount?: Maybe + feeTotal?: Maybe + total?: Maybe + unitPrice?: Maybe + productDiscount?: Maybe + productDiscounts?: Maybe>> + shippingDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + auditInfo?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + weightedOrderAdjustment?: Maybe + weightedOrderDiscount?: Maybe + adjustedLineItemSubtotal?: Maybe + totalWithoutWeightedShippingAndHandling?: Maybe + weightedOrderTax?: Maybe + weightedOrderShipping?: Maybe + weightedOrderShippingDiscount?: Maybe + weightedOrderShippingManualAdjustment?: Maybe + weightedOrderShippingTax?: Maybe + weightedOrderHandlingFee?: Maybe + weightedOrderHandlingFeeTax?: Maybe + weightedOrderHandlingFeeDiscount?: Maybe + weightedOrderDuty?: Maybe + totalWithWeightedShippingAndHandling?: Maybe + weightedOrderHandlingAdjustment?: Maybe + autoAddDiscountId?: Maybe + isAssemblyRequired?: Maybe + childItemIds?: Maybe> + parentItemId?: Maybe +} + +export type CartItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CartItemCollection = { + __typename?: 'CartItemCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CartItemCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CartItemInput = { + id?: Maybe + fulfillmentLocationCode?: Maybe + fulfillmentMethod?: Maybe + localeCode?: Maybe + purchaseLocation?: Maybe + lineId?: Maybe + product?: Maybe + quantity: Scalars['Int'] + isRecurring?: Maybe + isTaxable?: Maybe + subtotal?: Maybe + extendedTotal?: Maybe + taxableTotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + itemTaxTotal?: Maybe + shippingTaxTotal?: Maybe + shippingTotal?: Maybe + handlingAmount?: Maybe + feeTotal?: Maybe + total?: Maybe + unitPrice?: Maybe + productDiscount?: Maybe + productDiscounts?: Maybe>> + shippingDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + auditInfo?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + weightedOrderAdjustment?: Maybe + weightedOrderDiscount?: Maybe + adjustedLineItemSubtotal?: Maybe + totalWithoutWeightedShippingAndHandling?: Maybe + weightedOrderTax?: Maybe + weightedOrderShipping?: Maybe + weightedOrderShippingDiscount?: Maybe + weightedOrderShippingManualAdjustment?: Maybe + weightedOrderShippingTax?: Maybe + weightedOrderHandlingFee?: Maybe + weightedOrderHandlingFeeTax?: Maybe + weightedOrderHandlingFeeDiscount?: Maybe + weightedOrderDuty?: Maybe + totalWithWeightedShippingAndHandling?: Maybe + weightedOrderHandlingAdjustment?: Maybe + autoAddDiscountId?: Maybe + isAssemblyRequired?: Maybe + childItemIds?: Maybe> + parentItemId?: Maybe +} + +export type CartMessage = { + __typename?: 'CartMessage' + _get?: Maybe + _root?: Maybe + message?: Maybe + messageType?: Maybe + productsRemoved?: Maybe>> +} + +export type CartMessage_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CartMessageInput = { + message?: Maybe + messageType?: Maybe + productsRemoved?: Maybe>> +} + +export type CartSummary = { + __typename?: 'CartSummary' + _get?: Maybe + _root?: Maybe + itemCount?: Maybe + totalQuantity?: Maybe + total?: Maybe + isExpired?: Maybe + hasActiveCart?: Maybe +} + +export type CartSummary_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CategoryCollection = { + __typename?: 'CategoryCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CategoryCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CategoryContent = { + __typename?: 'CategoryContent' + _get?: Maybe + _root?: Maybe + categoryImages?: Maybe>> + name?: Maybe + description?: Maybe + pageTitle?: Maybe + metaTagTitle?: Maybe + metaTagDescription?: Maybe + metaTagKeywords?: Maybe + slug?: Maybe +} + +export type CategoryContent_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CategoryImage = { + __typename?: 'CategoryImage' + _get?: Maybe + _root?: Maybe + imageLabel?: Maybe + altText?: Maybe + imageUrl?: Maybe + cmsId?: Maybe + videoUrl?: Maybe + mediaType?: Maybe + sequence?: Maybe +} + +export type CategoryImage_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CategoryPagedCollection = { + __typename?: 'CategoryPagedCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CategoryPagedCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ChangeMessage = { + __typename?: 'ChangeMessage' + _get?: Maybe + _root?: Maybe + id?: Maybe + correlationId?: Maybe + userId?: Maybe + userFirstName?: Maybe + userLastName?: Maybe + userScopeType?: Maybe + appId?: Maybe + appKey?: Maybe + appName?: Maybe + subjectType?: Maybe + success?: Maybe + identifier?: Maybe + subject?: Maybe + verb?: Maybe + message?: Maybe + metadata?: Maybe + oldValue?: Maybe + newValue?: Maybe + amount?: Maybe + createDate?: Maybe +} + +export type ChangeMessage_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ChangeMessageInput = { + id?: Maybe + correlationId?: Maybe + userId?: Maybe + userFirstName?: Maybe + userLastName?: Maybe + userScopeType?: Maybe + appId?: Maybe + appKey?: Maybe + appName?: Maybe + subjectType?: Maybe + success?: Maybe + identifier?: Maybe + subject?: Maybe + verb?: Maybe + message?: Maybe + metadata?: Maybe + oldValue?: Maybe + newValue?: Maybe + amount?: Maybe + createDate?: Maybe +} + +export type ChangePasswordResult = { + __typename?: 'ChangePasswordResult' + _get?: Maybe + _root?: Maybe + accountId: Scalars['Int'] + succeeded?: Maybe + errorMessage?: Maybe +} + +export type ChangePasswordResult_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ChangePasswordResultCollection = { + __typename?: 'ChangePasswordResultCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type ChangePasswordResultCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type Channel = { + __typename?: 'Channel' + _get?: Maybe + _root?: Maybe + tenantId: Scalars['Int'] + code?: Maybe + name?: Maybe + region?: Maybe + countryCode?: Maybe + groupCode?: Maybe + siteIds?: Maybe> + auditInfo?: Maybe +} + +export type Channel_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ChannelCollection = { + __typename?: 'ChannelCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type ChannelCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ChannelGroup = { + __typename?: 'ChannelGroup' + _get?: Maybe + _root?: Maybe + tenantId: Scalars['Int'] + code?: Maybe + name?: Maybe + auditInfo?: Maybe +} + +export type ChannelGroup_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ChannelGroupCollection = { + __typename?: 'ChannelGroupCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type ChannelGroupCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ChannelGroupInput = { + tenantId: Scalars['Int'] + code?: Maybe + name?: Maybe + auditInfo?: Maybe +} + +export type ChannelInput = { + tenantId: Scalars['Int'] + code?: Maybe + name?: Maybe + region?: Maybe + countryCode?: Maybe + groupCode?: Maybe + siteIds?: Maybe> + auditInfo?: Maybe +} + +export type CheckPayment = { + __typename?: 'CheckPayment' + _get?: Maybe + _root?: Maybe + checkNumber?: Maybe +} + +export type CheckPayment_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CheckPaymentInput = { + checkNumber?: Maybe +} + +export type Checkout = { + __typename?: 'Checkout' + _get?: Maybe + _root?: Maybe + id?: Maybe + siteId: Scalars['Int'] + tenantId: Scalars['Int'] + number?: Maybe + originalCartId?: Maybe + submittedDate?: Maybe + type?: Maybe + items?: Maybe>> + groupings?: Maybe>> + auditInfo?: Maybe + destinations?: Maybe>> + payments?: Maybe>> + amountRemainingForPayment: Scalars['Float'] + acceptsMarketing?: Maybe + customerAccountId?: Maybe + email?: Maybe + customerTaxId?: Maybe + isTaxExempt?: Maybe + currencyCode?: Maybe + priceListCode?: Maybe + attributes?: Maybe>> + shopperNotes?: Maybe + availableActions?: Maybe> + data?: Maybe + taxData?: Maybe + channelCode?: Maybe + locationCode?: Maybe + ipAddress?: Maybe + sourceDevice?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + orderDiscounts?: Maybe>> + couponCodes?: Maybe> + invalidCoupons?: Maybe>> + suggestedDiscounts?: Maybe>> + discountThresholdMessages?: Maybe>> + dutyTotal?: Maybe + feeTotal: Scalars['Float'] + subTotal: Scalars['Float'] + itemLevelProductDiscountTotal: Scalars['Float'] + orderLevelProductDiscountTotal: Scalars['Float'] + itemTaxTotal: Scalars['Float'] + itemTotal: Scalars['Float'] + shippingSubTotal: Scalars['Float'] + itemLevelShippingDiscountTotal: Scalars['Float'] + orderLevelShippingDiscountTotal: Scalars['Float'] + shippingTaxTotal: Scalars['Float'] + shippingTotal: Scalars['Float'] + handlingSubTotal: Scalars['Float'] + itemLevelHandlingDiscountTotal: Scalars['Float'] + orderLevelHandlingDiscountTotal: Scalars['Float'] + handlingTaxTotal: Scalars['Float'] + handlingTotal: Scalars['Float'] + total: Scalars['Float'] +} + +export type Checkout_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CheckoutActionInput = { + actionName?: Maybe +} + +export type CheckoutCollection = { + __typename?: 'CheckoutCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CheckoutCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CheckoutGroupRates = { + __typename?: 'CheckoutGroupRates' + _get?: Maybe + _root?: Maybe + groupingId?: Maybe + shippingRates?: Maybe>> +} + +export type CheckoutGroupRates_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CheckoutGroupShippingMethodInput = { + groupingId?: Maybe + shippingRate?: Maybe +} + +export type CheckoutGrouping = { + __typename?: 'CheckoutGrouping' + _get?: Maybe + _root?: Maybe + id?: Maybe + destinationId?: Maybe + fulfillmentMethod?: Maybe + orderItemIds?: Maybe> + shippingMethodCode?: Maybe + shippingMethodName?: Maybe + standaloneGroup?: Maybe + shippingDiscounts?: Maybe>> + handlingDiscounts?: Maybe>> + dutyAmount?: Maybe + dutyTotal: Scalars['Float'] + shippingAmount?: Maybe + shippingSubTotal: Scalars['Float'] + itemLevelShippingDiscountTotal: Scalars['Float'] + orderLevelShippingDiscountTotal: Scalars['Float'] + shippingTax?: Maybe + shippingTaxTotal: Scalars['Float'] + shippingTotal: Scalars['Float'] + handlingAmount?: Maybe + handlingSubTotal: Scalars['Float'] + itemLevelHandlingDiscountTotal: Scalars['Float'] + orderLevelHandlingDiscountTotal: Scalars['Float'] + handlingTax?: Maybe + handlingTaxTotal: Scalars['Float'] + handlingTotal: Scalars['Float'] + taxData?: Maybe +} + +export type CheckoutGrouping_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CheckoutGroupingInput = { + id?: Maybe + destinationId?: Maybe + fulfillmentMethod?: Maybe + orderItemIds?: Maybe> + shippingMethodCode?: Maybe + shippingMethodName?: Maybe + standaloneGroup?: Maybe + shippingDiscounts?: Maybe>> + handlingDiscounts?: Maybe>> + dutyAmount?: Maybe + dutyTotal: Scalars['Float'] + shippingAmount?: Maybe + shippingSubTotal: Scalars['Float'] + itemLevelShippingDiscountTotal: Scalars['Float'] + orderLevelShippingDiscountTotal: Scalars['Float'] + shippingTax?: Maybe + shippingTaxTotal: Scalars['Float'] + shippingTotal: Scalars['Float'] + handlingAmount?: Maybe + handlingSubTotal: Scalars['Float'] + itemLevelHandlingDiscountTotal: Scalars['Float'] + orderLevelHandlingDiscountTotal: Scalars['Float'] + handlingTax?: Maybe + handlingTaxTotal: Scalars['Float'] + handlingTotal: Scalars['Float'] + taxData?: Maybe +} + +export type CheckoutInput = { + id?: Maybe + siteId: Scalars['Int'] + tenantId: Scalars['Int'] + number?: Maybe + originalCartId?: Maybe + submittedDate?: Maybe + type?: Maybe + items?: Maybe>> + groupings?: Maybe>> + auditInfo?: Maybe + destinations?: Maybe>> + payments?: Maybe>> + amountRemainingForPayment: Scalars['Float'] + acceptsMarketing?: Maybe + customerAccountId?: Maybe + email?: Maybe + customerTaxId?: Maybe + isTaxExempt?: Maybe + currencyCode?: Maybe + priceListCode?: Maybe + attributes?: Maybe>> + shopperNotes?: Maybe + availableActions?: Maybe> + data?: Maybe + taxData?: Maybe + channelCode?: Maybe + locationCode?: Maybe + ipAddress?: Maybe + sourceDevice?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + orderDiscounts?: Maybe>> + couponCodes?: Maybe> + invalidCoupons?: Maybe>> + suggestedDiscounts?: Maybe>> + discountThresholdMessages?: Maybe>> + dutyTotal?: Maybe + feeTotal: Scalars['Float'] + subTotal: Scalars['Float'] + itemLevelProductDiscountTotal: Scalars['Float'] + orderLevelProductDiscountTotal: Scalars['Float'] + itemTaxTotal: Scalars['Float'] + itemTotal: Scalars['Float'] + shippingSubTotal: Scalars['Float'] + itemLevelShippingDiscountTotal: Scalars['Float'] + orderLevelShippingDiscountTotal: Scalars['Float'] + shippingTaxTotal: Scalars['Float'] + shippingTotal: Scalars['Float'] + handlingSubTotal: Scalars['Float'] + itemLevelHandlingDiscountTotal: Scalars['Float'] + orderLevelHandlingDiscountTotal: Scalars['Float'] + handlingTaxTotal: Scalars['Float'] + handlingTotal: Scalars['Float'] + total: Scalars['Float'] +} + +export type CoHttpContentInput = { + headers?: Maybe>> +} + +export type CoHttpMethodInput = { + method?: Maybe +} + +export type CoHttpRequestMessageInput = { + version?: Maybe + content?: Maybe + method?: Maybe + requestUri?: Maybe + headers?: Maybe>> + properties?: Maybe +} + +export type CommerceSummary = { + __typename?: 'CommerceSummary' + _get?: Maybe + _root?: Maybe + totalOrderAmount?: Maybe + orderCount: Scalars['Int'] + lastOrderDate?: Maybe + wishlistCount: Scalars['Int'] + visitsCount: Scalars['Int'] +} + +export type CommerceSummary_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CommerceSummaryInput = { + totalOrderAmount?: Maybe + orderCount: Scalars['Int'] + lastOrderDate?: Maybe + wishlistCount: Scalars['Int'] + visitsCount: Scalars['Int'] +} + +export type CommerceUnitPrice = { + __typename?: 'CommerceUnitPrice' + _get?: Maybe + _root?: Maybe + extendedAmount?: Maybe + listAmount?: Maybe + saleAmount?: Maybe + overrideAmount?: Maybe +} + +export type CommerceUnitPrice_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CommerceUnitPriceInput = { + extendedAmount?: Maybe + listAmount?: Maybe + saleAmount?: Maybe + overrideAmount?: Maybe +} + +export type ConfiguredProduct = { + __typename?: 'ConfiguredProduct' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + purchaseLocation?: Maybe + fulfillmentTypesSupported?: Maybe> + variationProductCode?: Maybe + upc?: Maybe + mfgPartNumber?: Maybe + purchasableState?: Maybe + priceRange?: Maybe + volumePriceBands?: Maybe>> + volumePriceRange?: Maybe + price?: Maybe + availableShippingDiscounts?: Maybe>> + measurements?: Maybe + inventoryInfo?: Maybe + options?: Maybe>> + properties?: Maybe>> + priceListEntryTypeProperty?: Maybe + productImages?: Maybe>> +} + +export type ConfiguredProduct_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type Contact = { + __typename?: 'Contact' + _get?: Maybe + _root?: Maybe + id?: Maybe + email?: Maybe + firstName?: Maybe + middleNameOrInitial?: Maybe + lastNameOrSurname?: Maybe + companyOrOrganization?: Maybe + phoneNumbers?: Maybe + address?: Maybe +} + +export type Contact_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ContactInput = { + id?: Maybe + email?: Maybe + firstName?: Maybe + middleNameOrInitial?: Maybe + lastNameOrSurname?: Maybe + companyOrOrganization?: Maybe + phoneNumbers?: Maybe + address?: Maybe +} + +export type ContactType = { + __typename?: 'ContactType' + _get?: Maybe + _root?: Maybe + name?: Maybe + isPrimary?: Maybe +} + +export type ContactType_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ContactTypeInput = { + name?: Maybe + isPrimary?: Maybe +} + +export type Coordinates = { + __typename?: 'Coordinates' + _get?: Maybe + _root?: Maybe + lat: Scalars['Float'] + lng: Scalars['Float'] +} + +export type Coordinates_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CoordinatesInput = { + lat: Scalars['Float'] + lng: Scalars['Float'] +} + +export type CrAddress = { + __typename?: 'CrAddress' + _get?: Maybe + _root?: Maybe + address1?: Maybe + address2?: Maybe + address3?: Maybe + address4?: Maybe + cityOrTown?: Maybe + stateOrProvince?: Maybe + postalOrZipCode?: Maybe + countryCode?: Maybe + addressType?: Maybe + isValidated?: Maybe +} + +export type CrAddress_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrAddressInput = { + address1?: Maybe + address2?: Maybe + address3?: Maybe + address4?: Maybe + cityOrTown?: Maybe + stateOrProvince?: Maybe + postalOrZipCode?: Maybe + countryCode?: Maybe + addressType?: Maybe + isValidated?: Maybe +} + +export type CrAppliedDiscount = { + __typename?: 'CrAppliedDiscount' + _get?: Maybe + _root?: Maybe + impact?: Maybe + discount?: Maybe + couponCode?: Maybe + excluded?: Maybe +} + +export type CrAppliedDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrAppliedDiscountInput = { + impact?: Maybe + discount?: Maybe + couponCode?: Maybe + excluded?: Maybe +} + +export type CrAuditInfo = { + __typename?: 'CrAuditInfo' + _get?: Maybe + _root?: Maybe + updateDate?: Maybe + createDate?: Maybe + updateBy?: Maybe + createBy?: Maybe +} + +export type CrAuditInfo_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrAuditInfoInput = { + updateDate?: Maybe + createDate?: Maybe + updateBy?: Maybe + createBy?: Maybe +} + +export type CrBundledProduct = { + __typename?: 'CrBundledProduct' + _get?: Maybe + _root?: Maybe + quantity: Scalars['Int'] + optionAttributeFQN?: Maybe + optionValue?: Maybe + creditValue?: Maybe + deltaPrice?: Maybe + productCode?: Maybe + name?: Maybe + description?: Maybe + goodsType?: Maybe + isPackagedStandAlone?: Maybe + stock?: Maybe + productReservationId?: Maybe + allocationId?: Maybe + allocationExpiration?: Maybe + measurements?: Maybe + fulfillmentStatus?: Maybe +} + +export type CrBundledProduct_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrBundledProductInput = { + quantity: Scalars['Int'] + optionAttributeFQN?: Maybe + optionValue?: Maybe + creditValue?: Maybe + deltaPrice?: Maybe + productCode?: Maybe + name?: Maybe + description?: Maybe + goodsType?: Maybe + isPackagedStandAlone?: Maybe + stock?: Maybe + productReservationId?: Maybe + allocationId?: Maybe + allocationExpiration?: Maybe + measurements?: Maybe + fulfillmentStatus?: Maybe +} + +export type CrCategory = { + __typename?: 'CrCategory' + _get?: Maybe + _root?: Maybe + id?: Maybe + parent?: Maybe +} + +export type CrCategory_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrCategoryInput = { + id?: Maybe + parent?: Maybe +} + +export type CrDiscount = { + __typename?: 'CrDiscount' + _get?: Maybe + _root?: Maybe + id: Scalars['Int'] + name?: Maybe + itemIds?: Maybe> + expirationDate?: Maybe + hasMultipleTargetProducts?: Maybe +} + +export type CrDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrDiscountInput = { + id: Scalars['Int'] + name?: Maybe + itemIds?: Maybe> + expirationDate?: Maybe + hasMultipleTargetProducts?: Maybe +} + +export type CrMeasurement = { + __typename?: 'CrMeasurement' + _get?: Maybe + _root?: Maybe + unit?: Maybe + value?: Maybe +} + +export type CrMeasurement_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrMeasurementInput = { + unit?: Maybe + value?: Maybe +} + +export type CrOrderItem = { + __typename?: 'CrOrderItem' + _get?: Maybe + _root?: Maybe + id?: Maybe + destinationId?: Maybe + originalCartItemId?: Maybe + fulfillmentLocationCode?: Maybe + fulfillmentMethod?: Maybe + dutyAmount?: Maybe + expectedDeliveryDate?: Maybe + localeCode?: Maybe + purchaseLocation?: Maybe + lineId?: Maybe + product?: Maybe + quantity: Scalars['Int'] + isRecurring?: Maybe + isTaxable?: Maybe + subtotal?: Maybe + extendedTotal?: Maybe + taxableTotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + itemTaxTotal?: Maybe + shippingTaxTotal?: Maybe + shippingTotal?: Maybe + handlingAmount?: Maybe + feeTotal?: Maybe + total?: Maybe + unitPrice?: Maybe + productDiscount?: Maybe + productDiscounts?: Maybe>> + shippingDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + auditInfo?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + weightedOrderAdjustment?: Maybe + weightedOrderDiscount?: Maybe + adjustedLineItemSubtotal?: Maybe + totalWithoutWeightedShippingAndHandling?: Maybe + weightedOrderTax?: Maybe + weightedOrderShipping?: Maybe + weightedOrderShippingDiscount?: Maybe + weightedOrderShippingManualAdjustment?: Maybe + weightedOrderShippingTax?: Maybe + weightedOrderHandlingFee?: Maybe + weightedOrderHandlingFeeTax?: Maybe + weightedOrderHandlingFeeDiscount?: Maybe + weightedOrderDuty?: Maybe + totalWithWeightedShippingAndHandling?: Maybe + weightedOrderHandlingAdjustment?: Maybe + autoAddDiscountId?: Maybe + isAssemblyRequired?: Maybe + childItemIds?: Maybe> + parentItemId?: Maybe +} + +export type CrOrderItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrOrderItemInput = { + id?: Maybe + destinationId?: Maybe + originalCartItemId?: Maybe + fulfillmentLocationCode?: Maybe + fulfillmentMethod?: Maybe + dutyAmount?: Maybe + expectedDeliveryDate?: Maybe + localeCode?: Maybe + purchaseLocation?: Maybe + lineId?: Maybe + product?: Maybe + quantity: Scalars['Int'] + isRecurring?: Maybe + isTaxable?: Maybe + subtotal?: Maybe + extendedTotal?: Maybe + taxableTotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + itemTaxTotal?: Maybe + shippingTaxTotal?: Maybe + shippingTotal?: Maybe + handlingAmount?: Maybe + feeTotal?: Maybe + total?: Maybe + unitPrice?: Maybe + productDiscount?: Maybe + productDiscounts?: Maybe>> + shippingDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + auditInfo?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + weightedOrderAdjustment?: Maybe + weightedOrderDiscount?: Maybe + adjustedLineItemSubtotal?: Maybe + totalWithoutWeightedShippingAndHandling?: Maybe + weightedOrderTax?: Maybe + weightedOrderShipping?: Maybe + weightedOrderShippingDiscount?: Maybe + weightedOrderShippingManualAdjustment?: Maybe + weightedOrderShippingTax?: Maybe + weightedOrderHandlingFee?: Maybe + weightedOrderHandlingFeeTax?: Maybe + weightedOrderHandlingFeeDiscount?: Maybe + weightedOrderDuty?: Maybe + totalWithWeightedShippingAndHandling?: Maybe + weightedOrderHandlingAdjustment?: Maybe + autoAddDiscountId?: Maybe + isAssemblyRequired?: Maybe + childItemIds?: Maybe> + parentItemId?: Maybe +} + +export type CrPackageMeasurements = { + __typename?: 'CrPackageMeasurements' + _get?: Maybe + _root?: Maybe + height?: Maybe + width?: Maybe + length?: Maybe + weight?: Maybe +} + +export type CrPackageMeasurements_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrPackageMeasurementsInput = { + height?: Maybe + width?: Maybe + length?: Maybe + weight?: Maybe +} + +export type CrPhone = { + __typename?: 'CrPhone' + _get?: Maybe + _root?: Maybe + home?: Maybe + mobile?: Maybe + work?: Maybe +} + +export type CrPhone_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrPhoneInput = { + home?: Maybe + mobile?: Maybe + work?: Maybe +} + +export type CrProduct = { + __typename?: 'CrProduct' + _get?: Maybe + _root?: Maybe + mfgPartNumber?: Maybe + upc?: Maybe + sku?: Maybe + fulfillmentTypesSupported?: Maybe> + imageAlternateText?: Maybe + imageUrl?: Maybe + variationProductCode?: Maybe + options?: Maybe>> + properties?: Maybe>> + categories?: Maybe>> + price?: Maybe + discountsRestricted?: Maybe + discountsRestrictedStartDate?: Maybe + discountsRestrictedEndDate?: Maybe + isRecurring?: Maybe + isTaxable?: Maybe + productType?: Maybe + productUsage?: Maybe + bundledProducts?: Maybe>> + fulfillmentFields?: Maybe>> + productCode?: Maybe + name?: Maybe + description?: Maybe + goodsType?: Maybe + isPackagedStandAlone?: Maybe + stock?: Maybe + productReservationId?: Maybe + allocationId?: Maybe + allocationExpiration?: Maybe + measurements?: Maybe + fulfillmentStatus?: Maybe +} + +export type CrProduct_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrProductInput = { + mfgPartNumber?: Maybe + upc?: Maybe + sku?: Maybe + fulfillmentTypesSupported?: Maybe> + imageAlternateText?: Maybe + imageUrl?: Maybe + variationProductCode?: Maybe + options?: Maybe>> + properties?: Maybe>> + categories?: Maybe>> + price?: Maybe + discountsRestricted?: Maybe + discountsRestrictedStartDate?: Maybe + discountsRestrictedEndDate?: Maybe + isRecurring?: Maybe + isTaxable?: Maybe + productType?: Maybe + productUsage?: Maybe + bundledProducts?: Maybe>> + fulfillmentFields?: Maybe>> + productCode?: Maybe + name?: Maybe + description?: Maybe + goodsType?: Maybe + isPackagedStandAlone?: Maybe + stock?: Maybe + productReservationId?: Maybe + allocationId?: Maybe + allocationExpiration?: Maybe + measurements?: Maybe + fulfillmentStatus?: Maybe +} + +export type CrProductOption = { + __typename?: 'CrProductOption' + _get?: Maybe + _root?: Maybe + name?: Maybe + value?: Maybe + shopperEnteredValue?: Maybe + attributeFQN?: Maybe + dataType?: Maybe + stringValue?: Maybe +} + +export type CrProductOption_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrProductOptionInput = { + name?: Maybe + value?: Maybe + shopperEnteredValue?: Maybe + attributeFQN?: Maybe + dataType?: Maybe + stringValue?: Maybe +} + +export type CrProductPrice = { + __typename?: 'CrProductPrice' + _get?: Maybe + _root?: Maybe + price?: Maybe + salePrice?: Maybe + tenantOverridePrice?: Maybe + msrp?: Maybe + creditValue?: Maybe + priceListCode?: Maybe + priceListEntryMode?: Maybe +} + +export type CrProductPrice_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrProductPriceInput = { + price?: Maybe + salePrice?: Maybe + tenantOverridePrice?: Maybe + msrp?: Maybe + creditValue?: Maybe + priceListCode?: Maybe + priceListEntryMode?: Maybe +} + +export type CrProductProperty = { + __typename?: 'CrProductProperty' + _get?: Maybe + _root?: Maybe + attributeFQN?: Maybe + name?: Maybe + dataType?: Maybe + isMultiValue?: Maybe + values?: Maybe>> +} + +export type CrProductProperty_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrProductPropertyInput = { + attributeFQN?: Maybe + name?: Maybe + dataType?: Maybe + isMultiValue?: Maybe + values?: Maybe>> +} + +export type CrProductPropertyValue = { + __typename?: 'CrProductPropertyValue' + _get?: Maybe + _root?: Maybe + stringValue?: Maybe + value?: Maybe +} + +export type CrProductPropertyValue_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CrProductPropertyValueInput = { + stringValue?: Maybe + value?: Maybe +} + +export type Credit = { + __typename?: 'Credit' + _get?: Maybe + _root?: Maybe + code?: Maybe + activationDate?: Maybe + creditType?: Maybe + customCreditType?: Maybe + currencyCode?: Maybe + initialBalance?: Maybe + currentBalance?: Maybe + expirationDate?: Maybe + customerId?: Maybe + auditInfo?: Maybe + creditTypeId: Scalars['Int'] +} + +export type Credit_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CreditAuditEntry = { + __typename?: 'CreditAuditEntry' + _get?: Maybe + _root?: Maybe + activityType?: Maybe + details?: Maybe + auditInfo?: Maybe + activityTypeId: Scalars['Int'] +} + +export type CreditAuditEntry_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CreditAuditEntryCollection = { + __typename?: 'CreditAuditEntryCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CreditAuditEntryCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CreditCollection = { + __typename?: 'CreditCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CreditCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CreditInput = { + code?: Maybe + activationDate?: Maybe + creditType?: Maybe + customCreditType?: Maybe + currencyCode?: Maybe + initialBalance?: Maybe + currentBalance?: Maybe + expirationDate?: Maybe + customerId?: Maybe + auditInfo?: Maybe + creditTypeId: Scalars['Int'] +} + +export type CreditTransaction = { + __typename?: 'CreditTransaction' + _get?: Maybe + _root?: Maybe + id?: Maybe + transactionType?: Maybe + comments?: Maybe + impactAmount?: Maybe + auditInfo?: Maybe + orderId?: Maybe + data?: Maybe +} + +export type CreditTransaction_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CreditTransactionCollection = { + __typename?: 'CreditTransactionCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CreditTransactionCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CreditTransactionInput = { + id?: Maybe + transactionType?: Maybe + comments?: Maybe + impactAmount?: Maybe + auditInfo?: Maybe + orderId?: Maybe + data?: Maybe +} + +export type CuAddress = { + __typename?: 'CuAddress' + _get?: Maybe + _root?: Maybe + address1?: Maybe + address2?: Maybe + address3?: Maybe + address4?: Maybe + cityOrTown?: Maybe + stateOrProvince?: Maybe + postalOrZipCode?: Maybe + countryCode?: Maybe + addressType?: Maybe + isValidated?: Maybe +} + +export type CuAddress_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CuAddressInput = { + address1?: Maybe + address2?: Maybe + address3?: Maybe + address4?: Maybe + cityOrTown?: Maybe + stateOrProvince?: Maybe + postalOrZipCode?: Maybe + countryCode?: Maybe + addressType?: Maybe + isValidated?: Maybe +} + +export type CuAttribute = { + __typename?: 'CuAttribute' + _get?: Maybe + _root?: Maybe + id?: Maybe + adminName?: Maybe + namespace?: Maybe + attributeCode: Scalars['String'] + inputType?: Maybe + valueType: Scalars['String'] + dataType?: Maybe + attributeMetadata?: Maybe>> + attributeFQN?: Maybe + content?: Maybe + validation?: Maybe + vocabularyValues?: Maybe>> + auditInfo?: Maybe + isActive?: Maybe + isRequired?: Maybe + isReadOnly?: Maybe + isMultiValued?: Maybe + isVisible?: Maybe + order?: Maybe + displayGroup: Scalars['String'] +} + +export type CuAttribute_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CuAttributeCollection = { + __typename?: 'CuAttributeCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CuAttributeCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CuAttributeInput = { + id?: Maybe + adminName?: Maybe + namespace?: Maybe + attributeCode: Scalars['String'] + inputType?: Maybe + valueType: Scalars['String'] + dataType?: Maybe + attributeMetadata?: Maybe>> + attributeFQN?: Maybe + content?: Maybe + validation?: Maybe + vocabularyValues?: Maybe>> + auditInfo?: Maybe + isActive?: Maybe + isRequired?: Maybe + isReadOnly?: Maybe + isMultiValued?: Maybe + isVisible?: Maybe + order?: Maybe + displayGroup: Scalars['String'] +} + +export type CuAttributeLocalizedContent = { + __typename?: 'CuAttributeLocalizedContent' + _get?: Maybe + _root?: Maybe + localeCode?: Maybe + value?: Maybe +} + +export type CuAttributeLocalizedContent_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CuAttributeLocalizedContentInput = { + localeCode?: Maybe + value?: Maybe +} + +export type CuAttributeMetadataItem = { + __typename?: 'CuAttributeMetadataItem' + _get?: Maybe + _root?: Maybe + key: Scalars['String'] + value: Scalars['String'] +} + +export type CuAttributeMetadataItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CuAttributeMetadataItemInput = { + key: Scalars['String'] + value: Scalars['String'] +} + +export type CuAttributeValidation = { + __typename?: 'CuAttributeValidation' + _get?: Maybe + _root?: Maybe + regularExpression?: Maybe + minStringLength?: Maybe + maxStringLength?: Maybe + minNumericValue?: Maybe + maxNumericValue?: Maybe + minDateTime?: Maybe + maxDateTime?: Maybe +} + +export type CuAttributeValidation_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CuAttributeValidationInput = { + regularExpression?: Maybe + minStringLength?: Maybe + maxStringLength?: Maybe + minNumericValue?: Maybe + maxNumericValue?: Maybe + minDateTime?: Maybe + maxDateTime?: Maybe +} + +export type CuAttributeValueLocalizedContent = { + __typename?: 'CuAttributeValueLocalizedContent' + _get?: Maybe + _root?: Maybe + localeCode: Scalars['String'] + value: Scalars['String'] +} + +export type CuAttributeValueLocalizedContent_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CuAttributeValueLocalizedContentInput = { + localeCode: Scalars['String'] + value: Scalars['String'] +} + +export type CuAttributeVocabularyValue = { + __typename?: 'CuAttributeVocabularyValue' + _get?: Maybe + _root?: Maybe + value: Scalars['String'] + sequence?: Maybe + isHidden?: Maybe + content?: Maybe +} + +export type CuAttributeVocabularyValue_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CuAttributeVocabularyValueInput = { + value: Scalars['String'] + sequence?: Maybe + isHidden?: Maybe + content?: Maybe +} + +export type CuAuditInfo = { + __typename?: 'CuAuditInfo' + _get?: Maybe + _root?: Maybe + updateDate?: Maybe + createDate?: Maybe + updateBy?: Maybe + createBy?: Maybe +} + +export type CuAuditInfo_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CuAuditInfoInput = { + updateDate?: Maybe + createDate?: Maybe + updateBy?: Maybe + createBy?: Maybe +} + +export type CuPhone = { + __typename?: 'CuPhone' + _get?: Maybe + _root?: Maybe + home?: Maybe + mobile?: Maybe + work?: Maybe +} + +export type CuPhone_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CuPhoneInput = { + home?: Maybe + mobile?: Maybe + work?: Maybe +} + +export type CurrencyAmount = { + __typename?: 'CurrencyAmount' + _get?: Maybe + _root?: Maybe + currencyCode?: Maybe + amount: Scalars['Float'] +} + +export type CurrencyAmount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CurrencyAmountInput = { + currencyCode?: Maybe + amount: Scalars['Float'] +} + +export type CurrencyExchangeRate = { + __typename?: 'CurrencyExchangeRate' + _get?: Maybe + _root?: Maybe + fromCurrencyCode?: Maybe + toCurrencyCode?: Maybe + rate?: Maybe + multiplier?: Maybe + decimalPlaces?: Maybe + roundingStrategy?: Maybe + referenceData?: Maybe +} + +export type CurrencyExchangeRate_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type Customer = { + __typename?: 'Customer' + _get?: Maybe + _root?: Maybe + customerContact?: Maybe + data?: Maybe + isDestinationCommercial?: Maybe +} + +export type Customer_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerAccount = { + __typename?: 'CustomerAccount' + _get?: Maybe + _root?: Maybe + emailAddress?: Maybe + userName?: Maybe + firstName?: Maybe + lastName?: Maybe + localeCode?: Maybe + userId?: Maybe + isAnonymous?: Maybe + isLocked?: Maybe + isActive?: Maybe + acceptsMarketing?: Maybe + hasExternalPassword?: Maybe + id: Scalars['Int'] + customerSet?: Maybe + commerceSummary?: Maybe + contacts?: Maybe>> + companyOrOrganization?: Maybe + notes?: Maybe>> + attributes?: Maybe>> + segments?: Maybe>> + taxId?: Maybe + externalId?: Maybe + auditInfo?: Maybe + customerSinceDate?: Maybe + accountType?: Maybe +} + +export type CustomerAccount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerAccountAndAuthInfoInput = { + account?: Maybe + password?: Maybe + externalPassword?: Maybe + isImport?: Maybe +} + +export type CustomerAccountCollection = { + __typename?: 'CustomerAccountCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CustomerAccountCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerAccountInput = { + emailAddress?: Maybe + userName?: Maybe + firstName?: Maybe + lastName?: Maybe + localeCode?: Maybe + userId?: Maybe + isAnonymous?: Maybe + isLocked?: Maybe + isActive?: Maybe + acceptsMarketing?: Maybe + hasExternalPassword?: Maybe + id: Scalars['Int'] + customerSet?: Maybe + commerceSummary?: Maybe + contacts?: Maybe>> + companyOrOrganization?: Maybe + notes?: Maybe>> + attributes?: Maybe>> + segments?: Maybe>> + taxId?: Maybe + externalId?: Maybe + auditInfo?: Maybe + customerSinceDate?: Maybe + accountType?: Maybe +} + +export type CustomerAttribute = { + __typename?: 'CustomerAttribute' + _get?: Maybe + _root?: Maybe + auditInfo?: Maybe + fullyQualifiedName?: Maybe + attributeDefinitionId?: Maybe + values?: Maybe> +} + +export type CustomerAttribute_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerAttributeCollection = { + __typename?: 'CustomerAttributeCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CustomerAttributeCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerAttributeInput = { + auditInfo?: Maybe + fullyQualifiedName?: Maybe + attributeDefinitionId?: Maybe + values?: Maybe> +} + +export type CustomerAuditEntry = { + __typename?: 'CustomerAuditEntry' + _get?: Maybe + _root?: Maybe + customerAccountId: Scalars['Int'] + customerAuditEntryId: Scalars['Int'] + entryDate: Scalars['DateTime'] + entryUser?: Maybe + application?: Maybe + site?: Maybe + description?: Maybe + fieldPath?: Maybe + oldValue?: Maybe + newValue?: Maybe +} + +export type CustomerAuditEntry_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerAuditEntryCollection = { + __typename?: 'CustomerAuditEntryCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CustomerAuditEntryCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerAuthTicket = { + __typename?: 'CustomerAuthTicket' + _get?: Maybe + _root?: Maybe + customerAccount?: Maybe + accessToken?: Maybe + accessTokenExpiration: Scalars['DateTime'] + refreshToken?: Maybe + refreshTokenExpiration: Scalars['DateTime'] + userId?: Maybe + jwtAccessToken?: Maybe +} + +export type CustomerAuthTicket_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerContact = { + __typename?: 'CustomerContact' + _get?: Maybe + _root?: Maybe + accountId: Scalars['Int'] + types?: Maybe>> + auditInfo?: Maybe + faxNumber?: Maybe + label?: Maybe + id?: Maybe + email?: Maybe + firstName?: Maybe + middleNameOrInitial?: Maybe + lastNameOrSurname?: Maybe + companyOrOrganization?: Maybe + phoneNumbers?: Maybe + address?: Maybe +} + +export type CustomerContact_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerContactCollection = { + __typename?: 'CustomerContactCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CustomerContactCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerContactInput = { + accountId: Scalars['Int'] + types?: Maybe>> + auditInfo?: Maybe + faxNumber?: Maybe + label?: Maybe + id?: Maybe + email?: Maybe + firstName?: Maybe + middleNameOrInitial?: Maybe + lastNameOrSurname?: Maybe + companyOrOrganization?: Maybe + phoneNumbers?: Maybe + address?: Maybe +} + +export type CustomerInput = { + customerContact?: Maybe + data?: Maybe + isDestinationCommercial?: Maybe +} + +export type CustomerLoginInfoInput = { + emailAddress?: Maybe + username?: Maybe + password?: Maybe + externalPassword?: Maybe + isImport?: Maybe +} + +export type CustomerNote = { + __typename?: 'CustomerNote' + _get?: Maybe + _root?: Maybe + id: Scalars['Int'] + content?: Maybe + auditInfo?: Maybe +} + +export type CustomerNote_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerNoteCollection = { + __typename?: 'CustomerNoteCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CustomerNoteCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerNoteInput = { + id: Scalars['Int'] + content?: Maybe + auditInfo?: Maybe +} + +export type CustomerPurchaseOrderAccount = { + __typename?: 'CustomerPurchaseOrderAccount' + _get?: Maybe + _root?: Maybe + id: Scalars['Int'] + accountId: Scalars['Int'] + isEnabled?: Maybe + creditLimit: Scalars['Float'] + availableBalance: Scalars['Float'] + totalAvailableBalance: Scalars['Float'] + overdraftAllowance?: Maybe + overdraftAllowanceType?: Maybe + customerPurchaseOrderPaymentTerms?: Maybe< + Array> + > + auditInfo?: Maybe +} + +export type CustomerPurchaseOrderAccount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerPurchaseOrderAccountCollection = { + __typename?: 'CustomerPurchaseOrderAccountCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CustomerPurchaseOrderAccountCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerPurchaseOrderAccountInput = { + id: Scalars['Int'] + accountId: Scalars['Int'] + isEnabled?: Maybe + creditLimit: Scalars['Float'] + availableBalance: Scalars['Float'] + totalAvailableBalance: Scalars['Float'] + overdraftAllowance?: Maybe + overdraftAllowanceType?: Maybe + customerPurchaseOrderPaymentTerms?: Maybe< + Array> + > + auditInfo?: Maybe +} + +export type CustomerPurchaseOrderPaymentTerm = { + __typename?: 'CustomerPurchaseOrderPaymentTerm' + _get?: Maybe + _root?: Maybe + siteId: Scalars['Int'] + code?: Maybe + description?: Maybe + auditInfo?: Maybe +} + +export type CustomerPurchaseOrderPaymentTerm_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerPurchaseOrderPaymentTermInput = { + siteId: Scalars['Int'] + code?: Maybe + description?: Maybe + auditInfo?: Maybe +} + +export type CustomerSegment = { + __typename?: 'CustomerSegment' + _get?: Maybe + _root?: Maybe + id: Scalars['Int'] + code?: Maybe + name?: Maybe + description?: Maybe + auditInfo?: Maybe +} + +export type CustomerSegment_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerSegmentCollection = { + __typename?: 'CustomerSegmentCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CustomerSegmentCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerSegmentInput = { + id: Scalars['Int'] + code?: Maybe + name?: Maybe + description?: Maybe + auditInfo?: Maybe +} + +export type CustomerSet = { + __typename?: 'CustomerSet' + _get?: Maybe + _root?: Maybe + code?: Maybe + name?: Maybe + description?: Maybe + auditInfo?: Maybe + sites?: Maybe>> + isDefault?: Maybe + aggregateInfo?: Maybe +} + +export type CustomerSet_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerSetAggregateInfo = { + __typename?: 'CustomerSetAggregateInfo' + _get?: Maybe + _root?: Maybe + customerCount: Scalars['Int'] +} + +export type CustomerSetAggregateInfo_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerSetCollection = { + __typename?: 'CustomerSetCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type CustomerSetCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerSetSite = { + __typename?: 'CustomerSetSite' + _get?: Maybe + _root?: Maybe + siteId: Scalars['Int'] + customerSetCode?: Maybe + name?: Maybe +} + +export type CustomerSetSite_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type CustomerUserAuthInfoInput = { + username?: Maybe + password?: Maybe +} + +export type Destination = { + __typename?: 'Destination' + _get?: Maybe + _root?: Maybe + id?: Maybe + destinationContact?: Maybe + isDestinationCommercial?: Maybe + data?: Maybe +} + +export type Destination_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DestinationInput = { + id?: Maybe + destinationContact?: Maybe + isDestinationCommercial?: Maybe + data?: Maybe +} + +export type DigitalPackage = { + __typename?: 'DigitalPackage' + _get?: Maybe + _root?: Maybe + id?: Maybe + code?: Maybe + status?: Maybe + items?: Maybe>> + fulfillmentDate?: Maybe + fulfillmentLocationCode?: Maybe + auditInfo?: Maybe + availableActions?: Maybe> + changeMessages?: Maybe>> +} + +export type DigitalPackage_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DigitalPackageInput = { + id?: Maybe + code?: Maybe + status?: Maybe + items?: Maybe>> + fulfillmentDate?: Maybe + fulfillmentLocationCode?: Maybe + auditInfo?: Maybe + availableActions?: Maybe> + changeMessages?: Maybe>> +} + +export type DigitalPackageItem = { + __typename?: 'DigitalPackageItem' + _get?: Maybe + _root?: Maybe + giftCardCode?: Maybe + productCode?: Maybe + quantity: Scalars['Int'] + fulfillmentItemType?: Maybe + lineId?: Maybe + optionAttributeFQN?: Maybe +} + +export type DigitalPackageItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DigitalPackageItemInput = { + giftCardCode?: Maybe + productCode?: Maybe + quantity: Scalars['Int'] + fulfillmentItemType?: Maybe + lineId?: Maybe + optionAttributeFQN?: Maybe +} + +export type DigitalWalletInput = { + digitalWalletData?: Maybe + cartId?: Maybe +} + +export type DiscountSelectionsInput = { + discountIds?: Maybe> +} + +export type DiscountValidationSummary = { + __typename?: 'DiscountValidationSummary' + _get?: Maybe + _root?: Maybe + applicableDiscounts?: Maybe>> +} + +export type DiscountValidationSummary_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type Document = { + __typename?: 'Document' + _get?: Maybe + _root?: Maybe + id?: Maybe + name?: Maybe + path?: Maybe + publishSetCode?: Maybe + extension?: Maybe + documentTypeFQN?: Maybe + listFQN?: Maybe + contentLength?: Maybe + contentMimeType?: Maybe + contentUpdateDate?: Maybe + publishState?: Maybe + properties?: Maybe + insertDate?: Maybe + updateDate?: Maybe + activeDateRange?: Maybe +} + +export type Document_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DocumentCollection = { + __typename?: 'DocumentCollection' + _get?: Maybe + _root?: Maybe + subPaths?: Maybe> + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type DocumentCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DocumentDraftSummary = { + __typename?: 'DocumentDraftSummary' + _get?: Maybe + _root?: Maybe + id?: Maybe + name?: Maybe + documentTypeFQN?: Maybe + listFQN?: Maybe + activeUpdateDate?: Maybe + draftUpdateDate: Scalars['DateTime'] + updatedBy?: Maybe + activeUpdatedBy?: Maybe + publishType?: Maybe + publishSetCode?: Maybe + masterCatalogId?: Maybe + catalogId?: Maybe + siteId?: Maybe +} + +export type DocumentDraftSummary_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DocumentDraftSummaryPagedCollection = { + __typename?: 'DocumentDraftSummaryPagedCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type DocumentDraftSummaryPagedCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DocumentInput = { + id?: Maybe + name?: Maybe + path?: Maybe + publishSetCode?: Maybe + extension?: Maybe + documentTypeFQN?: Maybe + listFQN?: Maybe + contentLength?: Maybe + contentMimeType?: Maybe + contentUpdateDate?: Maybe + publishState?: Maybe + properties?: Maybe + insertDate?: Maybe + updateDate?: Maybe + activeDateRange?: Maybe +} + +export type DocumentInstallation = { + __typename?: 'DocumentInstallation' + _get?: Maybe + _root?: Maybe + name?: Maybe + documentTypeFQN?: Maybe + properties?: Maybe + locale?: Maybe +} + +export type DocumentInstallation_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DocumentInstallationInput = { + name?: Maybe + documentTypeFQN?: Maybe + properties?: Maybe + locale?: Maybe +} + +export type DocumentList = { + __typename?: 'DocumentList' + _get?: Maybe + _root?: Maybe + name?: Maybe + namespace?: Maybe + listFQN?: Maybe + documentTypes?: Maybe> + supportsPublishing?: Maybe + enablePublishing?: Maybe + supportsActiveDateRanges?: Maybe + enableActiveDateRanges?: Maybe + views?: Maybe>> + usages?: Maybe> + security?: Maybe + scopeId?: Maybe + scopeType?: Maybe + documentListType?: Maybe + metadata?: Maybe +} + +export type DocumentList_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DocumentListCollection = { + __typename?: 'DocumentListCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type DocumentListCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DocumentListInput = { + name?: Maybe + namespace?: Maybe + listFQN?: Maybe + documentTypes?: Maybe> + supportsPublishing?: Maybe + enablePublishing?: Maybe + supportsActiveDateRanges?: Maybe + enableActiveDateRanges?: Maybe + views?: Maybe>> + usages?: Maybe> + security?: Maybe + scopeId?: Maybe + scopeType?: Maybe + documentListType?: Maybe + metadata?: Maybe +} + +export type DocumentListType = { + __typename?: 'DocumentListType' + _get?: Maybe + _root?: Maybe + name?: Maybe + namespace?: Maybe + documentListTypeFQN?: Maybe + scopeType?: Maybe + installationPackage?: Maybe + version?: Maybe + defaultDocuments?: Maybe>> + documentTypeFQNs?: Maybe> + supportsPublishing?: Maybe + enablePublishing?: Maybe + supportsActiveDateRanges?: Maybe + enableActiveDateRanges?: Maybe + views?: Maybe>> + usages?: Maybe> + metadata?: Maybe +} + +export type DocumentListType_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DocumentListTypeCollection = { + __typename?: 'DocumentListTypeCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type DocumentListTypeCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DocumentListTypeInput = { + name?: Maybe + namespace?: Maybe + documentListTypeFQN?: Maybe + scopeType?: Maybe + installationPackage?: Maybe + version?: Maybe + defaultDocuments?: Maybe>> + documentTypeFQNs?: Maybe> + supportsPublishing?: Maybe + enablePublishing?: Maybe + supportsActiveDateRanges?: Maybe + enableActiveDateRanges?: Maybe + views?: Maybe>> + usages?: Maybe> + metadata?: Maybe +} + +export type DocumentType = { + __typename?: 'DocumentType' + _get?: Maybe + _root?: Maybe + name?: Maybe + namespace?: Maybe + documentTypeFQN?: Maybe + adminName?: Maybe + installationPackage?: Maybe + version?: Maybe + metadata?: Maybe + properties?: Maybe>> +} + +export type DocumentType_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DocumentTypeCollection = { + __typename?: 'DocumentTypeCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type DocumentTypeCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type DocumentTypeInput = { + name?: Maybe + namespace?: Maybe + documentTypeFQN?: Maybe + adminName?: Maybe + installationPackage?: Maybe + version?: Maybe + metadata?: Maybe + properties?: Maybe>> +} + +export type EntityCollection = { + __typename?: 'EntityCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe> +} + +export type EntityCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type EntityContainer = { + __typename?: 'EntityContainer' + _get?: Maybe + _root?: Maybe + tenantId: Scalars['Int'] + siteId?: Maybe + masterCatalogId?: Maybe + catalogId?: Maybe + localeCode?: Maybe + listFullName?: Maybe + userId?: Maybe + id?: Maybe + item?: Maybe + createBy?: Maybe + createDate: Scalars['DateTime'] + updateBy?: Maybe + updateDate: Scalars['DateTime'] +} + +export type EntityContainer_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type EntityContainerCollection = { + __typename?: 'EntityContainerCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type EntityContainerCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type EntityList = { + __typename?: 'EntityList' + _get?: Maybe + _root?: Maybe + tenantId: Scalars['Int'] + nameSpace?: Maybe + name?: Maybe + contextLevel?: Maybe + useSystemAssignedId?: Maybe + idProperty?: Maybe + indexA?: Maybe + indexB?: Maybe + indexC?: Maybe + indexD?: Maybe + isVisibleInStorefront?: Maybe + isLocaleSpecific?: Maybe + isShopperSpecific?: Maybe + isSandboxDataCloningSupported?: Maybe + views?: Maybe>> + usages?: Maybe> + metadata?: Maybe + createDate: Scalars['DateTime'] + updateDate: Scalars['DateTime'] +} + +export type EntityList_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type EntityListCollection = { + __typename?: 'EntityListCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type EntityListCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type EntityListInput = { + tenantId: Scalars['Int'] + nameSpace?: Maybe + name?: Maybe + contextLevel?: Maybe + useSystemAssignedId?: Maybe + idProperty?: Maybe + indexA?: Maybe + indexB?: Maybe + indexC?: Maybe + indexD?: Maybe + isVisibleInStorefront?: Maybe + isLocaleSpecific?: Maybe + isShopperSpecific?: Maybe + isSandboxDataCloningSupported?: Maybe + views?: Maybe>> + usages?: Maybe> + metadata?: Maybe + createDate: Scalars['DateTime'] + updateDate: Scalars['DateTime'] +} + +export type ExclusionListEntryLocationCodeInput = { + locationCode: Scalars['String'] + orderItemID: Scalars['Int'] +} + +export type ExtendedProperty = { + __typename?: 'ExtendedProperty' + _get?: Maybe + _root?: Maybe + key?: Maybe + value?: Maybe +} + +export type ExtendedProperty_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ExtendedPropertyInput = { + key?: Maybe + value?: Maybe +} + +export type Facet = { + __typename?: 'Facet' + _get?: Maybe + _root?: Maybe + label?: Maybe + facetType?: Maybe + field?: Maybe + values?: Maybe>> +} + +export type Facet_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type FacetValue = { + __typename?: 'FacetValue' + _get?: Maybe + _root?: Maybe + label?: Maybe + isApplied?: Maybe + count: Scalars['Int'] + value?: Maybe + filterValue?: Maybe + rangeQueryValueStart?: Maybe + rangeQueryValueEnd?: Maybe + parentFacetValue?: Maybe + isDisplayed?: Maybe + childrenFacetValues?: Maybe>> +} + +export type FacetValue_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type FulfillmentActionInput = { + actionName?: Maybe + packageIds?: Maybe> + pickupIds?: Maybe> + digitalPackageIds?: Maybe> +} + +export type FulfillmentField = { + __typename?: 'FulfillmentField' + _get?: Maybe + _root?: Maybe + name?: Maybe + userEnteredValue?: Maybe + required?: Maybe +} + +export type FulfillmentField_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type FulfillmentFieldInput = { + name?: Maybe + userEnteredValue?: Maybe + required?: Maybe +} + +export type FulfillmentInfo = { + __typename?: 'FulfillmentInfo' + _get?: Maybe + _root?: Maybe + fulfillmentContact?: Maybe + isDestinationCommercial?: Maybe + shippingMethodCode?: Maybe + shippingMethodName?: Maybe + data?: Maybe + auditInfo?: Maybe +} + +export type FulfillmentInfo_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type FulfillmentInfoInput = { + fulfillmentContact?: Maybe + isDestinationCommercial?: Maybe + shippingMethodCode?: Maybe + shippingMethodName?: Maybe + data?: Maybe + auditInfo?: Maybe +} + +export type FulfillmentShopperNotes = { + __typename?: 'FulfillmentShopperNotes' + _get?: Maybe + _root?: Maybe + comments?: Maybe + deliveryInstructions?: Maybe + giftMessage?: Maybe +} + +export type FulfillmentShopperNotes_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type FulfillmentShopperNotesInput = { + comments?: Maybe + deliveryInstructions?: Maybe + giftMessage?: Maybe +} + +export type FulfillmentTask = { + __typename?: 'FulfillmentTask' + _get?: Maybe + _root?: Maybe + links?: Maybe + active?: Maybe + attributes?: Maybe + completed?: Maybe + completedDate?: Maybe + description?: Maybe + inputs?: Maybe>> + name?: Maybe + skippable?: Maybe + subject?: Maybe + taskId?: Maybe +} + +export type FulfillmentTask_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type FulfillmentTaskInput = { + links?: Maybe + active?: Maybe + attributes?: Maybe + completed?: Maybe + completedDate?: Maybe + description?: Maybe + inputs?: Maybe>> + name?: Maybe + skippable?: Maybe + subject?: Maybe + taskId?: Maybe +} + +export type GatewayGiftCard = { + __typename?: 'GatewayGiftCard' + _get?: Maybe + _root?: Maybe + cardNumber?: Maybe + amount: Scalars['Float'] + currencyCode?: Maybe +} + +export type GatewayGiftCard_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type GatewayGiftCardInput = { + cardNumber?: Maybe + amount: Scalars['Float'] + currencyCode?: Maybe +} + +export type GiftCard = { + __typename?: 'GiftCard' + _get?: Maybe + _root?: Maybe + activationDate?: Maybe + cardNumber?: Maybe + code?: Maybe + creditType?: Maybe + creditValue?: Maybe + currencyCode?: Maybe + currentBalance?: Maybe + customerId?: Maybe + expirationDate?: Maybe + initialBalance?: Maybe +} + +export type GiftCard_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type GiftCardInput = { + activationDate?: Maybe + cardNumber?: Maybe + code?: Maybe + creditType?: Maybe + creditValue?: Maybe + currencyCode?: Maybe + currentBalance?: Maybe + customerId?: Maybe + expirationDate?: Maybe + initialBalance?: Maybe +} + +export type Hours = { + __typename?: 'Hours' + _get?: Maybe + _root?: Maybe + label?: Maybe + openTime?: Maybe + closeTime?: Maybe + isClosed?: Maybe +} + +export type Hours_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type HoursInput = { + label?: Maybe + openTime?: Maybe + closeTime?: Maybe + isClosed?: Maybe +} + +export type InStockNotificationSubscription = { + __typename?: 'InStockNotificationSubscription' + _get?: Maybe + _root?: Maybe + id?: Maybe + email?: Maybe + customerId?: Maybe + productCode?: Maybe + locationCode?: Maybe + userId?: Maybe + auditInfo?: Maybe +} + +export type InStockNotificationSubscription_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type InStockNotificationSubscriptionCollection = { + __typename?: 'InStockNotificationSubscriptionCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type InStockNotificationSubscriptionCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type InStockNotificationSubscriptionInput = { + id?: Maybe + email?: Maybe + customerId?: Maybe + productCode?: Maybe + locationCode?: Maybe + userId?: Maybe + auditInfo?: Maybe +} + +export type IndexedProperty = { + __typename?: 'IndexedProperty' + _get?: Maybe + _root?: Maybe + propertyName?: Maybe + dataType?: Maybe +} + +export type IndexedProperty_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type IndexedPropertyInput = { + propertyName?: Maybe + dataType?: Maybe +} + +export type InvalidCoupon = { + __typename?: 'InvalidCoupon' + _get?: Maybe + _root?: Maybe + couponCode?: Maybe + reasonCode: Scalars['Int'] + reason?: Maybe + createDate: Scalars['DateTime'] + discountId: Scalars['Int'] +} + +export type InvalidCoupon_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type InvalidCouponInput = { + couponCode?: Maybe + reasonCode: Scalars['Int'] + reason?: Maybe + createDate: Scalars['DateTime'] + discountId: Scalars['Int'] +} + +export enum InventoryRequestTypeEnum { + All = 'ALL', + Partial = 'PARTIAL', + Any = 'ANY', + AllStores = 'ALL_STORES', +} + +export type ItemsForDestinationInput = { + destinationId?: Maybe + itemIds?: Maybe> +} + +export type JsonNode = { + __typename?: 'JsonNode' + _get?: Maybe + _root?: Maybe + array?: Maybe + bigDecimal?: Maybe + bigInteger?: Maybe + binary?: Maybe + boolean?: Maybe + containerNode?: Maybe + double?: Maybe + float?: Maybe + floatingPointNumber?: Maybe + int?: Maybe + integralNumber?: Maybe + long?: Maybe + missingNode?: Maybe + nodeType?: Maybe + null?: Maybe + number?: Maybe + object?: Maybe + pojo?: Maybe + short?: Maybe + textual?: Maybe + valueNode?: Maybe +} + +export type JsonNode_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type KeyValuePair2Input = { + key?: Maybe + value?: Maybe> +} + +export type ListView = { + __typename?: 'ListView' + _get?: Maybe + _root?: Maybe + name?: Maybe + usages?: Maybe> + metaData?: Maybe + security?: Maybe + filter?: Maybe + defaultSort?: Maybe + fields?: Maybe>> +} + +export type ListView_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ListViewCollection = { + __typename?: 'ListViewCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type ListViewCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ListViewField = { + __typename?: 'ListViewField' + _get?: Maybe + _root?: Maybe + name?: Maybe + type?: Maybe + target?: Maybe +} + +export type ListViewField_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ListViewFieldInput = { + name?: Maybe + type?: Maybe + target?: Maybe +} + +export type ListViewInput = { + name?: Maybe + usages?: Maybe> + metaData?: Maybe + security?: Maybe + filter?: Maybe + defaultSort?: Maybe + fields?: Maybe>> +} + +export type LoAddress = { + __typename?: 'LoAddress' + _get?: Maybe + _root?: Maybe + address1?: Maybe + address2?: Maybe + address3?: Maybe + address4?: Maybe + cityOrTown?: Maybe + stateOrProvince?: Maybe + postalOrZipCode?: Maybe + countryCode?: Maybe + addressType?: Maybe + isValidated?: Maybe +} + +export type LoAddress_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LoAddressInput = { + address1?: Maybe + address2?: Maybe + address3?: Maybe + address4?: Maybe + cityOrTown?: Maybe + stateOrProvince?: Maybe + postalOrZipCode?: Maybe + countryCode?: Maybe + addressType?: Maybe + isValidated?: Maybe +} + +export type LoAttribute = { + __typename?: 'LoAttribute' + _get?: Maybe + _root?: Maybe + id?: Maybe + adminName?: Maybe + namespace?: Maybe + attributeCode: Scalars['String'] + inputType?: Maybe + valueType: Scalars['String'] + dataType?: Maybe + attributeMetadata?: Maybe>> + attributeFQN?: Maybe + content?: Maybe + validation?: Maybe + vocabularyValues?: Maybe>> + auditInfo?: Maybe + isActive?: Maybe + isRequired?: Maybe + isReadOnly?: Maybe + isMultiValued?: Maybe + isVisible?: Maybe + order?: Maybe + displayGroup: Scalars['String'] +} + +export type LoAttribute_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LoAttributeCollection = { + __typename?: 'LoAttributeCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type LoAttributeCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LoAttributeInput = { + id?: Maybe + adminName?: Maybe + namespace?: Maybe + attributeCode: Scalars['String'] + inputType?: Maybe + valueType: Scalars['String'] + dataType?: Maybe + attributeMetadata?: Maybe>> + attributeFQN?: Maybe + content?: Maybe + validation?: Maybe + vocabularyValues?: Maybe>> + auditInfo?: Maybe + isActive?: Maybe + isRequired?: Maybe + isReadOnly?: Maybe + isMultiValued?: Maybe + isVisible?: Maybe + order?: Maybe + displayGroup: Scalars['String'] +} + +export type LoAttributeLocalizedContent = { + __typename?: 'LoAttributeLocalizedContent' + _get?: Maybe + _root?: Maybe + localeCode?: Maybe + value?: Maybe +} + +export type LoAttributeLocalizedContent_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LoAttributeLocalizedContentInput = { + localeCode?: Maybe + value?: Maybe +} + +export type LoAttributeMetadataItem = { + __typename?: 'LoAttributeMetadataItem' + _get?: Maybe + _root?: Maybe + key: Scalars['String'] + value: Scalars['String'] +} + +export type LoAttributeMetadataItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LoAttributeMetadataItemInput = { + key: Scalars['String'] + value: Scalars['String'] +} + +export type LoAttributeValidation = { + __typename?: 'LoAttributeValidation' + _get?: Maybe + _root?: Maybe + regularExpression?: Maybe + minStringLength?: Maybe + maxStringLength?: Maybe + minNumericValue?: Maybe + maxNumericValue?: Maybe + minDateTime?: Maybe + maxDateTime?: Maybe +} + +export type LoAttributeValidation_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LoAttributeValidationInput = { + regularExpression?: Maybe + minStringLength?: Maybe + maxStringLength?: Maybe + minNumericValue?: Maybe + maxNumericValue?: Maybe + minDateTime?: Maybe + maxDateTime?: Maybe +} + +export type LoAttributeValueLocalizedContent = { + __typename?: 'LoAttributeValueLocalizedContent' + _get?: Maybe + _root?: Maybe + localeCode: Scalars['String'] + value: Scalars['String'] +} + +export type LoAttributeValueLocalizedContent_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LoAttributeValueLocalizedContentInput = { + localeCode: Scalars['String'] + value: Scalars['String'] +} + +export type LoAttributeVocabularyValue = { + __typename?: 'LoAttributeVocabularyValue' + _get?: Maybe + _root?: Maybe + value: Scalars['String'] + sequence?: Maybe + isHidden?: Maybe + content?: Maybe +} + +export type LoAttributeVocabularyValue_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LoAttributeVocabularyValueInput = { + value: Scalars['String'] + sequence?: Maybe + isHidden?: Maybe + content?: Maybe +} + +export type LoAuditInfo = { + __typename?: 'LoAuditInfo' + _get?: Maybe + _root?: Maybe + updateDate?: Maybe + createDate?: Maybe + updateBy?: Maybe + createBy?: Maybe +} + +export type LoAuditInfo_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LoAuditInfoInput = { + updateDate?: Maybe + createDate?: Maybe + updateBy?: Maybe + createBy?: Maybe +} + +export type LoFulfillmentType = { + __typename?: 'LoFulfillmentType' + _get?: Maybe + _root?: Maybe + code?: Maybe + name?: Maybe +} + +export type LoFulfillmentType_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LoFulfillmentTypeInput = { + code?: Maybe + name?: Maybe +} + +export type Location = { + __typename?: 'Location' + _get?: Maybe + _root?: Maybe + code?: Maybe + locationTypes?: Maybe>> + name?: Maybe + description?: Maybe + address?: Maybe + geo?: Maybe + phone?: Maybe + fax?: Maybe + supportsInventory?: Maybe + fulfillmentTypes?: Maybe>> + regularHours?: Maybe + shippingOriginContact?: Maybe + note?: Maybe + tags?: Maybe> + attributes?: Maybe>> + auditInfo?: Maybe + allowFulfillmentWithNoStock?: Maybe + isDisabled?: Maybe + express?: Maybe + transferEnabled?: Maybe + includeInInventoryAggregrate?: Maybe + includeInLocationExport?: Maybe + warehouseEnabled?: Maybe + requiresManifest?: Maybe +} + +export type Location_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LocationAttribute = { + __typename?: 'LocationAttribute' + _get?: Maybe + _root?: Maybe + attributeDefinition?: Maybe + auditInfo?: Maybe + fullyQualifiedName?: Maybe + attributeDefinitionId?: Maybe + values?: Maybe> +} + +export type LocationAttribute_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LocationAttributeInput = { + attributeDefinition?: Maybe + auditInfo?: Maybe + fullyQualifiedName?: Maybe + attributeDefinitionId?: Maybe + values?: Maybe> +} + +export type LocationCollection = { + __typename?: 'LocationCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type LocationCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LocationGroup = { + __typename?: 'LocationGroup' + _get?: Maybe + _root?: Maybe + locationGroupId: Scalars['Int'] + locationGroupCode?: Maybe + siteIds?: Maybe> + name?: Maybe + locationCodes?: Maybe> + auditInfo?: Maybe +} + +export type LocationGroup_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LocationGroupCollection = { + __typename?: 'LocationGroupCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type LocationGroupCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LocationGroupConfiguration = { + __typename?: 'LocationGroupConfiguration' + _get?: Maybe + _root?: Maybe + tenantId: Scalars['Int'] + siteId: Scalars['Int'] + locationGroupId: Scalars['Int'] + locationGroupCode?: Maybe + customerFailedToPickupAfterAction?: Maybe + customerFailedToPickupDeadline?: Maybe + sendCustomerPickupReminder?: Maybe + enableForSTH?: Maybe + enableForISPU?: Maybe + enableAdvancedOptionForPickWaveCreation?: Maybe + maximumNumberOfOrdersInPickWave?: Maybe + defaultNumberOfOrdersInPickWave?: Maybe + pickWavePrintFormat?: Maybe + closePickWavePermissions?: Maybe> + wmsEnabled?: Maybe + enableScanningOfUpcForShipToHome?: Maybe + allowReturns?: Maybe + returnRefundReduction?: Maybe + defaultReturnRefundReductionAmount?: Maybe + maximumReturnRefundReductionAmount?: Maybe + defaultCarrier?: Maybe + carriers?: Maybe>> + printReturnLabel?: Maybe + defaultPrinterType?: Maybe + boxTypes?: Maybe>> + attributes?: Maybe>> + bpmConfigurations?: Maybe>> + auditInfo?: Maybe + autoPackingListPopup?: Maybe + blockPartialStock?: Maybe + defaultMaxNumberOfShipmentsInPickWave?: Maybe + displayProductImagesInPickWaveDetails?: Maybe + enablePnpForSTH?: Maybe + enablePnpForBOPIS?: Maybe + blockPartialCancel?: Maybe + packageSettings?: Maybe +} + +export type LocationGroupConfiguration_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LocationGroupInput = { + locationGroupId: Scalars['Int'] + locationGroupCode?: Maybe + siteIds?: Maybe> + name?: Maybe + locationCodes?: Maybe> + auditInfo?: Maybe +} + +export type LocationInput = { + code?: Maybe + locationTypes?: Maybe>> + name?: Maybe + description?: Maybe + address?: Maybe + geo?: Maybe + phone?: Maybe + fax?: Maybe + supportsInventory?: Maybe + fulfillmentTypes?: Maybe>> + regularHours?: Maybe + shippingOriginContact?: Maybe + note?: Maybe + tags?: Maybe> + attributes?: Maybe>> + auditInfo?: Maybe + allowFulfillmentWithNoStock?: Maybe + isDisabled?: Maybe + express?: Maybe + transferEnabled?: Maybe + includeInInventoryAggregrate?: Maybe + includeInLocationExport?: Maybe + warehouseEnabled?: Maybe + requiresManifest?: Maybe +} + +export type LocationInventory = { + __typename?: 'LocationInventory' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + locationCode?: Maybe + stockAvailable?: Maybe + softStockAvailable?: Maybe + sku?: Maybe + mfgPartNumber?: Maybe +} + +export type LocationInventory_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LocationInventoryCollection = { + __typename?: 'LocationInventoryCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type LocationInventoryCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LocationInventoryQueryInput = { + locationCodes?: Maybe> + productCodes?: Maybe> +} + +export type LocationType = { + __typename?: 'LocationType' + _get?: Maybe + _root?: Maybe + code?: Maybe + name?: Maybe + auditInfo?: Maybe +} + +export type LocationType_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LocationTypeInput = { + code?: Maybe + name?: Maybe + auditInfo?: Maybe +} + +export type LocationUsage = { + __typename?: 'LocationUsage' + _get?: Maybe + _root?: Maybe + locationUsageTypeCode?: Maybe + locationTypeCodes?: Maybe> + locationCodes?: Maybe> + auditInfo?: Maybe +} + +export type LocationUsage_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LocationUsageCollection = { + __typename?: 'LocationUsageCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type LocationUsageCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type LocationUsageInput = { + locationUsageTypeCode?: Maybe + locationTypeCodes?: Maybe> + locationCodes?: Maybe> + auditInfo?: Maybe +} + +export type LoginState = { + __typename?: 'LoginState' + _get?: Maybe + _root?: Maybe + isPasswordChangeRequired?: Maybe + lastPasswordChangeOn?: Maybe + isLocked?: Maybe + lastLockedOn?: Maybe + failedLoginAttemptCount: Scalars['Int'] + remainingLoginAttempts: Scalars['Int'] + firstFailedLoginAttemptOn?: Maybe + lastLoginOn?: Maybe + createdOn?: Maybe + updatedOn?: Maybe +} + +export type LoginState_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type MzdbHttpContentInput = { + headers?: Maybe>> +} + +export type MzdbHttpMethodInput = { + method?: Maybe +} + +export type MzdbHttpRequestMessageInput = { + version?: Maybe + content?: Maybe + method?: Maybe + requestUri?: Maybe + headers?: Maybe>> + properties?: Maybe +} + +export type MzdbStringStringIEnumerableKeyValuePairInput = { + key?: Maybe + value?: Maybe> +} + +export type Mutation = { + __typename?: 'Mutation' + createCustomerAccountAttributeDefinition?: Maybe + updateCustomerAccountAttributeDefinition?: Maybe + validateCustomerAddress?: Maybe + validateAddress?: Maybe>> + createCustomerAuthTicket?: Maybe + refreshCustomerAuthTickets?: Maybe + createCustomerB2bAccountAttribute?: Maybe + deleteB2bAccountAttribute?: Maybe + updateCustomerB2bAccountAttribute?: Maybe + createCustomerB2bAccount?: Maybe + updateCustomerB2bAccount?: Maybe + createCustomerB2bAccountUser?: Maybe + updateCustomerB2bAccountUser?: Maybe + removeCustomerB2bAccountUser?: Maybe + addRoleToCustomerB2bAccount?: Maybe + deleteB2bAccountRole?: Maybe + createCustomerCredit?: Maybe + updateCustomerCredit?: Maybe + deleteCustomerCredit?: Maybe + updateCustomerCreditAssociateToShopper?: Maybe + resendCustomerCreditEmail?: Maybe + createCustomerCreditTransaction?: Maybe + createCustomerAccountAttribute?: Maybe + deleteCustomerAccountAttribute?: Maybe + updateCustomerAccountAttribute?: Maybe + createCustomerAccountCard?: Maybe + updateCustomerAccountCard?: Maybe + deleteCustomerAccountCard?: Maybe + createCustomerAccountContact?: Maybe + updateCustomerAccountContacts?: Maybe + updateCustomerAccountContact?: Maybe + deleteCustomerAccountContact?: Maybe + createCustomerAccount?: Maybe + updateCustomerAccount?: Maybe + deleteCustomerAccount?: Maybe + createCustomerAccountTransaction?: Maybe + deleteCustomerAccountTransaction?: Maybe + recomputeCustomerAccountLifetimeValue?: Maybe + createCustomerAccountNote?: Maybe + updateCustomerAccountNote?: Maybe + deleteCustomerAccountNote?: Maybe + createCustomerAccountPurchaseOrderAccount?: Maybe + updateCustomerPurchaseOrderAccount?: Maybe + createCustomerAccountPurchaseOrderAccountTransaction?: Maybe + createPurchaseOrderAccount?: Maybe + changeCustomerAccountPassword?: Maybe + updateCustomerAccountPasswords?: Maybe + resetCustomerAccountPassword?: Maybe + createCustomerAccountLogin?: Maybe + createCustomerAccountAndLogin?: Maybe + setCustomerAccountLoginLocked?: Maybe + setCustomerAccountPasswordChangeRequired?: Maybe + createCustomerAccounts?: Maybe + createCustomerSegment?: Maybe + updateCustomerSegment?: Maybe + deleteCustomerSegment?: Maybe + createCustomerSegmentAccount?: Maybe + deleteCustomerSegmentAccount?: Maybe + createInStockNotification?: Maybe + deleteInStockNotification?: Maybe + createResolvedPriceList?: Maybe + configureProduct?: Maybe + validateProduct?: Maybe + validateProductDiscounts?: Maybe + manageLocationProductInventory?: Maybe + createProductCost?: Maybe + createCartForUser?: Maybe + updateUserCart?: Maybe + updateCurrentCart?: Maybe + deleteCurrentCart?: Maybe + updateCart?: Maybe + deleteCart?: Maybe + deleteUserCart?: Maybe + rejectCartDiscount?: Maybe + updateCartCoupon?: Maybe + deleteCartCoupons?: Maybe + deleteCartCoupon?: Maybe + addExtendedPropertyToCurrentCart?: Maybe>> + updateCurrentCartExtendedProperties?: Maybe>> + deleteCurrentCartExtendedProperties?: Maybe + updateCurrentCartExtendedProperty?: Maybe + deleteCurrentCartExtendedProperty?: Maybe + deleteCurrentCartItems?: Maybe + addItemToCurrentCart?: Maybe + deleteCartItems?: Maybe + addItemToCart?: Maybe + updateCurrentCartItem?: Maybe + deleteCurrentCartItem?: Maybe + updateCartItem?: Maybe + deleteCartItem?: Maybe + addItemsToCurrentCart?: Maybe + addItemsToCart?: Maybe + updateCurrentCartItemQuantity?: Maybe + updateCartItemQuantity?: Maybe + deleteCurrentCartMessages?: Maybe + deleteCurrentCartMessage?: Maybe + createCommerceChannel?: Maybe + updateChannel?: Maybe + deleteCommerceChannel?: Maybe + createCommerceChannelGroup?: Maybe + updateChannelGroup?: Maybe + deleteCommerceChannelGroup?: Maybe + createCheckoutAttribute?: Maybe>> + updateCheckoutAttributes?: Maybe>> + updateCheckout?: Maybe + createCheckout?: Maybe + createCheckoutShippingMethod?: Maybe + createCheckoutAction?: Maybe + updateCheckoutDigitalWalletType?: Maybe + updateCheckoutPriceList?: Maybe + resendCheckoutEmail?: Maybe + updateCheckoutCoupon?: Maybe + deleteCheckoutCoupons?: Maybe + deleteCheckoutCoupon?: Maybe + updateCheckoutDestination?: Maybe + deleteCheckoutDestination?: Maybe + createCheckoutDestination?: Maybe + createCheckoutItem?: Maybe + deleteCheckoutItem?: Maybe + updateCheckoutItemDestination?: Maybe + createCheckoutItemDestination?: Maybe + createCheckoutPaymentAction?: Maybe + updateCheckoutPaymentAction?: Maybe + createOrderPaymentAction?: Maybe + createOrderPaymentPaymentAction?: Maybe + createOrderAutoCapture?: Maybe + createOrderPickup?: Maybe + updateOrderPickup?: Maybe + deleteOrderPickup?: Maybe + createOrderRefund?: Maybe + updateOrderRefund?: Maybe + createOrderShipment?: Maybe>> + deleteOrderShipment?: Maybe + repriceOrderShipment?: Maybe + createOrderShipmentAdjustment?: Maybe + createOrderShipmentItemAdjustment?: Maybe + splitOrderShipment?: Maybe>> + updateOrderValidationResults?: Maybe + updateOrderAdjustment?: Maybe + deleteOrderAdjustment?: Maybe + updateOrderShippingAdjustment?: Maybe + deleteOrderAdjustmentShipping?: Maybe + updateOrderHandlingAdjustment?: Maybe + deleteOrderAdjustmentHandling?: Maybe + createOrderAttribute?: Maybe>> + updateOrderAttributes?: Maybe>> + updateOrderBillingInfo?: Maybe + cancelOrder?: Maybe + createOrder?: Maybe + updateUserOrder?: Maybe + updateOrderPriceList?: Maybe + resendOrderEmail?: Maybe + updateOrder?: Maybe + updateOrderDigitalWalletTpe?: Maybe + updateOrderDraft?: Maybe + createOrderAction?: Maybe + updateOrderDiscount?: Maybe + updateOrderPrice?: Maybe + updateOrderCoupon?: Maybe + deleteOrderCoupons?: Maybe + deleteOrderCoupon?: Maybe + createOrderDigitalPackage?: Maybe + updateOrderDigitalPackage?: Maybe + deleteOrderDigitalPackage?: Maybe + createOrderExtendedProperties?: Maybe>> + updateOrderExtendedProperties?: Maybe>> + deleteOrderExtendedProperties?: Maybe + updateOrderExtendedProperty?: Maybe + deleteOrderExtendedProperty?: Maybe + createOrderFulfillmentAction?: Maybe + resendOrderFulfillmentEmail?: Maybe + updateOrderFulfillmentInfo?: Maybe + createOrderItem?: Maybe + deleteOrderItem?: Maybe + updateOrderItemPrice?: Maybe + updateOrderItemQuantity?: Maybe + updateOrderItemDutyAmount?: Maybe + updateOrderItemFulfillment?: Maybe + updateOrderItemDiscount?: Maybe + createOrderNote?: Maybe + updateOrderNotes?: Maybe + deleteOrderNote?: Maybe + createOrderPackage?: Maybe + updateOrderPackage?: Maybe + deleteOrderPackage?: Maybe + validateOrder?: Maybe + updateQuote?: Maybe + deleteQuote?: Maybe + createQuote?: Maybe + createQuoteItem?: Maybe + deleteQuoteItem?: Maybe + createReturn?: Maybe + resendReturnEmail?: Maybe + updateReturn?: Maybe + deleteReturn?: Maybe + createReturnAction?: Maybe + setReturnShip?: Maybe + createReturnPaymentAction?: Maybe + createReturnPaymentPaymentAction?: Maybe + setReturnRestock?: Maybe + createReturnItem?: Maybe + deleteReturnItem?: Maybe + createReturnNote?: Maybe + updateReturnNote?: Maybe + deleteReturnNote?: Maybe + createReturnPackage?: Maybe + updateReturnPackage?: Maybe + deleteReturnPackage?: Maybe + createReturnShipment?: Maybe>> + deleteReturnShipment?: Maybe + createWishlist?: Maybe + updateWishlist?: Maybe + deleteWishlist?: Maybe + deleteWishlistItems?: Maybe + createWishlistItem?: Maybe + updateWishlistItem?: Maybe + deleteWishlistItem?: Maybe + updateWishlistItemQuantity?: Maybe + updateDocumentListDocumentContent?: Maybe + deleteDocumentListDocumentContent?: Maybe + updateDocumentListDocumentTreeContent?: Maybe + deleteDocumentListDocumentTreeContent?: Maybe + createDocumentListDocument?: Maybe + updateDocumentListDocument?: Maybe + patchDocumentListDocument?: Maybe + deleteDocumentListDocument?: Maybe + createDocumentList?: Maybe + updateDocumentList?: Maybe + deleteDocumentList?: Maybe + createDocumentListType?: Maybe + updateDocumentListType?: Maybe + createDocumentDraft?: Maybe + toggleDocumentPublishing?: Maybe + createDocumentType?: Maybe + updateDocumentType?: Maybe + createPropertyType?: Maybe + updatePropertyType?: Maybe + deletePropertyType?: Maybe + adminCreateLocation?: Maybe + adminUpdateLocation?: Maybe + deleteAdminLocation?: Maybe + adminCreateLocationAttribute?: Maybe + adminUpdateLocationAttribute?: Maybe + adminCreateLocationGroup?: Maybe + updateLocationUsage?: Maybe + adminCreateLocationType?: Maybe + adminUpdateLocationType?: Maybe + deleteAdminLocationType?: Maybe + updateEntityListEntities?: Maybe + deleteEntityListEntity?: Maybe + createEntityListEntity?: Maybe + updateEntityList?: Maybe + deleteEntityList?: Maybe + createEntityList?: Maybe + createEntityListView?: Maybe + updateEntityListView?: Maybe + deleteEntityListView?: Maybe + createTargetRule?: Maybe + updateTargetRule?: Maybe + deleteCommerceTargetRule?: Maybe + validateTargetRule?: Maybe + createOrderRoutingSuggestion?: Maybe +} + +export type MutationCreateCustomerAccountAttributeDefinitionArgs = { + attributeInput?: Maybe +} + +export type MutationUpdateCustomerAccountAttributeDefinitionArgs = { + attributeFQN: Scalars['String'] + attributeInput?: Maybe +} + +export type MutationValidateCustomerAddressArgs = { + addressValidationRequestInput?: Maybe +} + +export type MutationValidateAddressArgs = { + addressInput?: Maybe +} + +export type MutationCreateCustomerAuthTicketArgs = { + customerUserAuthInfoInput?: Maybe +} + +export type MutationRefreshCustomerAuthTicketsArgs = { + refreshToken?: Maybe +} + +export type MutationCreateCustomerB2bAccountAttributeArgs = { + accountId: Scalars['Int'] + customerAttributeInput?: Maybe +} + +export type MutationDeleteB2bAccountAttributeArgs = { + accountId: Scalars['Int'] + attributeFQN: Scalars['String'] +} + +export type MutationUpdateCustomerB2bAccountAttributeArgs = { + accountId: Scalars['Int'] + attributeFQN: Scalars['String'] + customerAttributeInput?: Maybe +} + +export type MutationCreateCustomerB2bAccountArgs = { + b2BAccountInput?: Maybe +} + +export type MutationUpdateCustomerB2bAccountArgs = { + accountId: Scalars['Int'] + b2BAccountInput?: Maybe +} + +export type MutationCreateCustomerB2bAccountUserArgs = { + accountId: Scalars['Int'] + b2BUserAndAuthInfoInput?: Maybe +} + +export type MutationUpdateCustomerB2bAccountUserArgs = { + accountId: Scalars['Int'] + userId: Scalars['String'] + b2BUserInput?: Maybe +} + +export type MutationRemoveCustomerB2bAccountUserArgs = { + accountId: Scalars['Int'] + userId: Scalars['String'] +} + +export type MutationAddRoleToCustomerB2bAccountArgs = { + accountId: Scalars['Int'] + userId: Scalars['String'] + roleId: Scalars['Int'] +} + +export type MutationDeleteB2bAccountRoleArgs = { + accountId: Scalars['Int'] + userId: Scalars['String'] + roleId: Scalars['Int'] +} + +export type MutationCreateCustomerCreditArgs = { + userId?: Maybe + creditInput?: Maybe +} + +export type MutationUpdateCustomerCreditArgs = { + code: Scalars['String'] + creditInput?: Maybe +} + +export type MutationDeleteCustomerCreditArgs = { + code: Scalars['String'] +} + +export type MutationUpdateCustomerCreditAssociateToShopperArgs = { + code: Scalars['String'] +} + +export type MutationResendCustomerCreditEmailArgs = { + code: Scalars['String'] + userId?: Maybe +} + +export type MutationCreateCustomerCreditTransactionArgs = { + code: Scalars['String'] + creditTransactionInput?: Maybe +} + +export type MutationCreateCustomerAccountAttributeArgs = { + accountId: Scalars['Int'] + userId?: Maybe + customerAttributeInput?: Maybe +} + +export type MutationDeleteCustomerAccountAttributeArgs = { + accountId: Scalars['Int'] + attributeFQN: Scalars['String'] + userId?: Maybe +} + +export type MutationUpdateCustomerAccountAttributeArgs = { + accountId: Scalars['Int'] + attributeFQN: Scalars['String'] + userId?: Maybe + customerAttributeInput?: Maybe +} + +export type MutationCreateCustomerAccountCardArgs = { + accountId: Scalars['Int'] + cardInput?: Maybe +} + +export type MutationUpdateCustomerAccountCardArgs = { + accountId: Scalars['Int'] + cardId: Scalars['String'] + cardInput?: Maybe +} + +export type MutationDeleteCustomerAccountCardArgs = { + accountId: Scalars['Int'] + cardId: Scalars['String'] +} + +export type MutationCreateCustomerAccountContactArgs = { + accountId: Scalars['Int'] + customerContactInput?: Maybe +} + +export type MutationUpdateCustomerAccountContactsArgs = { + accountId: Scalars['Int'] + customerContactInput?: Maybe +} + +export type MutationUpdateCustomerAccountContactArgs = { + accountId: Scalars['Int'] + contactId: Scalars['Int'] + userId?: Maybe + customerContactInput?: Maybe +} + +export type MutationDeleteCustomerAccountContactArgs = { + accountId: Scalars['Int'] + contactId: Scalars['Int'] +} + +export type MutationCreateCustomerAccountArgs = { + customerAccountInput?: Maybe +} + +export type MutationUpdateCustomerAccountArgs = { + accountId: Scalars['Int'] + customerAccountInput?: Maybe +} + +export type MutationDeleteCustomerAccountArgs = { + accountId: Scalars['Int'] +} + +export type MutationCreateCustomerAccountTransactionArgs = { + accountId: Scalars['Int'] + transactionInput?: Maybe +} + +export type MutationDeleteCustomerAccountTransactionArgs = { + accountId: Scalars['Int'] + transactionId: Scalars['String'] +} + +export type MutationRecomputeCustomerAccountLifetimeValueArgs = { + accountId: Scalars['Int'] +} + +export type MutationCreateCustomerAccountNoteArgs = { + accountId: Scalars['Int'] + customerNoteInput?: Maybe +} + +export type MutationUpdateCustomerAccountNoteArgs = { + accountId: Scalars['Int'] + noteId: Scalars['Int'] + customerNoteInput?: Maybe +} + +export type MutationDeleteCustomerAccountNoteArgs = { + accountId: Scalars['Int'] + noteId: Scalars['Int'] +} + +export type MutationCreateCustomerAccountPurchaseOrderAccountArgs = { + accountId: Scalars['Int'] + customerPurchaseOrderAccountInput?: Maybe +} + +export type MutationUpdateCustomerPurchaseOrderAccountArgs = { + accountId: Scalars['Int'] + customerPurchaseOrderAccountInput?: Maybe +} + +export type MutationCreateCustomerAccountPurchaseOrderAccountTransactionArgs = { + accountId: Scalars['Int'] + purchaseOrderTransactionInput?: Maybe +} + +export type MutationCreatePurchaseOrderAccountArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + accountType?: Maybe +} + +export type MutationChangeCustomerAccountPasswordArgs = { + accountId: Scalars['Int'] + unlockAccount?: Maybe + userId?: Maybe + passwordInfoInput?: Maybe +} + +export type MutationUpdateCustomerAccountPasswordsArgs = { + accountPasswordInfoCollectionInput?: Maybe +} + +export type MutationResetCustomerAccountPasswordArgs = { + resetPasswordInfoInput?: Maybe +} + +export type MutationCreateCustomerAccountLoginArgs = { + accountId: Scalars['Int'] + customerLoginInfoInput?: Maybe +} + +export type MutationCreateCustomerAccountAndLoginArgs = { + customerAccountAndAuthInfoInput?: Maybe +} + +export type MutationSetCustomerAccountLoginLockedArgs = { + accountId: Scalars['Int'] + userId?: Maybe + graphQLBoolean?: Maybe +} + +export type MutationSetCustomerAccountPasswordChangeRequiredArgs = { + accountId: Scalars['Int'] + userId?: Maybe + graphQLBoolean?: Maybe +} + +export type MutationCreateCustomerAccountsArgs = { + customerAccountAndAuthInfoInput?: Maybe +} + +export type MutationCreateCustomerSegmentArgs = { + customerSegmentInput?: Maybe +} + +export type MutationUpdateCustomerSegmentArgs = { + id: Scalars['Int'] + customerSegmentInput?: Maybe +} + +export type MutationDeleteCustomerSegmentArgs = { + id: Scalars['Int'] +} + +export type MutationCreateCustomerSegmentAccountArgs = { + id: Scalars['Int'] + graphQLInt?: Maybe +} + +export type MutationDeleteCustomerSegmentAccountArgs = { + id: Scalars['Int'] + accountId: Scalars['Int'] +} + +export type MutationCreateInStockNotificationArgs = { + inStockNotificationSubscriptionInput?: Maybe +} + +export type MutationDeleteInStockNotificationArgs = { + id: Scalars['Int'] +} + +export type MutationCreateResolvedPriceListArgs = { + object?: Maybe +} + +export type MutationConfigureProductArgs = { + productCode: Scalars['String'] + includeOptionDetails?: Maybe + skipInventoryCheck?: Maybe + quantity?: Maybe + purchaseLocation?: Maybe + variationProductCodeFilter?: Maybe + productOptionSelectionsInput?: Maybe +} + +export type MutationValidateProductArgs = { + productCode: Scalars['String'] + skipInventoryCheck?: Maybe + quantity?: Maybe + skipDefaults?: Maybe + purchaseLocation?: Maybe + productOptionSelectionsInput?: Maybe +} + +export type MutationValidateProductDiscountsArgs = { + productCode: Scalars['String'] + variationProductCode?: Maybe + customerAccountId?: Maybe + allowInactive?: Maybe + skipInventoryCheck?: Maybe + discountSelectionsInput?: Maybe +} + +export type MutationManageLocationProductInventoryArgs = { + locationInventoryQueryInput?: Maybe +} + +export type MutationCreateProductCostArgs = { + productCostQueryInput?: Maybe +} + +export type MutationCreateCartForUserArgs = { + userId: Scalars['String'] +} + +export type MutationUpdateUserCartArgs = { + userId: Scalars['String'] + cartInput?: Maybe +} + +export type MutationUpdateCurrentCartArgs = { + cartInput?: Maybe +} + +export type MutationUpdateCartArgs = { + cartId: Scalars['String'] + cartInput?: Maybe +} + +export type MutationDeleteCartArgs = { + cartId: Scalars['String'] +} + +export type MutationDeleteUserCartArgs = { + userId: Scalars['String'] +} + +export type MutationRejectCartDiscountArgs = { + cartId: Scalars['String'] + discountId: Scalars['Int'] +} + +export type MutationUpdateCartCouponArgs = { + cartId: Scalars['String'] + couponCode: Scalars['String'] +} + +export type MutationDeleteCartCouponsArgs = { + cartId: Scalars['String'] +} + +export type MutationDeleteCartCouponArgs = { + cartId: Scalars['String'] + couponCode: Scalars['String'] +} + +export type MutationAddExtendedPropertyToCurrentCartArgs = { + extendedPropertyInput?: Maybe +} + +export type MutationUpdateCurrentCartExtendedPropertiesArgs = { + upsert?: Maybe + extendedPropertyInput?: Maybe +} + +export type MutationDeleteCurrentCartExtendedPropertiesArgs = { + graphQLString?: Maybe +} + +export type MutationUpdateCurrentCartExtendedPropertyArgs = { + key: Scalars['String'] + upsert?: Maybe + extendedPropertyInput?: Maybe +} + +export type MutationDeleteCurrentCartExtendedPropertyArgs = { + key: Scalars['String'] +} + +export type MutationAddItemToCurrentCartArgs = { + cartItemInput?: Maybe +} + +export type MutationDeleteCartItemsArgs = { + cartId: Scalars['String'] +} + +export type MutationAddItemToCartArgs = { + cartId: Scalars['String'] + cartItemInput?: Maybe +} + +export type MutationUpdateCurrentCartItemArgs = { + cartItemId: Scalars['String'] + cartItemInput?: Maybe +} + +export type MutationDeleteCurrentCartItemArgs = { + cartItemId: Scalars['String'] +} + +export type MutationUpdateCartItemArgs = { + cartId: Scalars['String'] + cartItemId: Scalars['String'] + cartItemInput?: Maybe +} + +export type MutationDeleteCartItemArgs = { + cartId: Scalars['String'] + cartItemId: Scalars['String'] +} + +export type MutationAddItemsToCurrentCartArgs = { + throwErrorOnInvalidItems?: Maybe + cartItemInput?: Maybe +} + +export type MutationAddItemsToCartArgs = { + cartId: Scalars['String'] + throwErrorOnInvalidItems?: Maybe + cartItemInput?: Maybe +} + +export type MutationUpdateCurrentCartItemQuantityArgs = { + cartItemId: Scalars['String'] + quantity: Scalars['Int'] +} + +export type MutationUpdateCartItemQuantityArgs = { + cartId: Scalars['String'] + cartItemId: Scalars['String'] + quantity: Scalars['Int'] +} + +export type MutationDeleteCurrentCartMessageArgs = { + messageId: Scalars['String'] +} + +export type MutationCreateCommerceChannelArgs = { + channelInput?: Maybe +} + +export type MutationUpdateChannelArgs = { + code: Scalars['String'] + channelInput?: Maybe +} + +export type MutationDeleteCommerceChannelArgs = { + code: Scalars['String'] +} + +export type MutationCreateCommerceChannelGroupArgs = { + channelGroupInput?: Maybe +} + +export type MutationUpdateChannelGroupArgs = { + code: Scalars['String'] + channelGroupInput?: Maybe +} + +export type MutationDeleteCommerceChannelGroupArgs = { + code: Scalars['String'] +} + +export type MutationCreateCheckoutAttributeArgs = { + checkoutId: Scalars['String'] + orderAttributeInput?: Maybe +} + +export type MutationUpdateCheckoutAttributesArgs = { + checkoutId: Scalars['String'] + removeMissing?: Maybe + orderAttributeInput?: Maybe +} + +export type MutationUpdateCheckoutArgs = { + checkoutId: Scalars['String'] + checkoutInput?: Maybe +} + +export type MutationCreateCheckoutArgs = { + cartId?: Maybe +} + +export type MutationCreateCheckoutShippingMethodArgs = { + checkoutId: Scalars['String'] + checkoutGroupShippingMethodInput?: Maybe +} + +export type MutationCreateCheckoutActionArgs = { + checkoutId: Scalars['String'] + checkoutActionInput?: Maybe +} + +export type MutationUpdateCheckoutDigitalWalletTypeArgs = { + checkoutId: Scalars['String'] + digitalWalletType: Scalars['String'] + digitalWalletInput?: Maybe +} + +export type MutationUpdateCheckoutPriceListArgs = { + checkoutId: Scalars['String'] + graphQLString?: Maybe +} + +export type MutationResendCheckoutEmailArgs = { + checkoutId: Scalars['String'] +} + +export type MutationUpdateCheckoutCouponArgs = { + checkoutId: Scalars['String'] + couponCode: Scalars['String'] +} + +export type MutationDeleteCheckoutCouponsArgs = { + checkoutId: Scalars['String'] +} + +export type MutationDeleteCheckoutCouponArgs = { + checkoutId: Scalars['String'] + couponCode: Scalars['String'] +} + +export type MutationUpdateCheckoutDestinationArgs = { + checkoutId: Scalars['String'] + destinationId: Scalars['String'] + destinationInput?: Maybe +} + +export type MutationDeleteCheckoutDestinationArgs = { + checkoutId: Scalars['String'] + destinationId: Scalars['String'] +} + +export type MutationCreateCheckoutDestinationArgs = { + checkoutId: Scalars['String'] + destinationInput?: Maybe +} + +export type MutationCreateCheckoutItemArgs = { + checkoutId: Scalars['String'] + orderItemInput?: Maybe +} + +export type MutationDeleteCheckoutItemArgs = { + checkoutId: Scalars['String'] + itemId: Scalars['String'] +} + +export type MutationUpdateCheckoutItemDestinationArgs = { + checkoutId: Scalars['String'] + itemId: Scalars['String'] + destinationId: Scalars['String'] +} + +export type MutationCreateCheckoutItemDestinationArgs = { + checkoutId: Scalars['String'] + itemsForDestinationInput?: Maybe +} + +export type MutationCreateCheckoutPaymentActionArgs = { + checkoutId: Scalars['String'] + paymentActionInput?: Maybe +} + +export type MutationUpdateCheckoutPaymentActionArgs = { + checkoutId: Scalars['String'] + paymentId: Scalars['String'] + paymentActionInput?: Maybe +} + +export type MutationCreateOrderPaymentActionArgs = { + orderId: Scalars['String'] + paymentActionInput?: Maybe +} + +export type MutationCreateOrderPaymentPaymentActionArgs = { + orderId: Scalars['String'] + paymentId: Scalars['String'] + paymentActionInput?: Maybe +} + +export type MutationCreateOrderAutoCaptureArgs = { + orderId: Scalars['String'] + forceCapture?: Maybe +} + +export type MutationCreateOrderPickupArgs = { + orderId: Scalars['String'] + pickupInput?: Maybe +} + +export type MutationUpdateOrderPickupArgs = { + orderId: Scalars['String'] + pickupId: Scalars['String'] + pickupInput?: Maybe +} + +export type MutationDeleteOrderPickupArgs = { + orderId: Scalars['String'] + pickupId: Scalars['String'] +} + +export type MutationCreateOrderRefundArgs = { + orderId: Scalars['String'] + refundInput?: Maybe +} + +export type MutationUpdateOrderRefundArgs = { + orderId: Scalars['String'] + refundId: Scalars['String'] +} + +export type MutationCreateOrderShipmentArgs = { + orderId: Scalars['String'] + graphQLString?: Maybe +} + +export type MutationDeleteOrderShipmentArgs = { + orderId: Scalars['String'] + shipmentId: Scalars['String'] +} + +export type MutationRepriceOrderShipmentArgs = { + shipmentNumber: Scalars['Int'] + orderId: Scalars['String'] + repriceShipmentObjectInput?: Maybe +} + +export type MutationCreateOrderShipmentAdjustmentArgs = { + orderId: Scalars['String'] + shipmentNumber: Scalars['Int'] + shipmentAdjustmentInput?: Maybe +} + +export type MutationCreateOrderShipmentItemAdjustmentArgs = { + shipmentNumber: Scalars['Int'] + itemId: Scalars['Int'] + orderId: Scalars['String'] + shipmentItemAdjustmentInput?: Maybe +} + +export type MutationSplitOrderShipmentArgs = { + orderId: Scalars['String'] + shipmentNumber: Scalars['String'] + splitShipmentsObjectInput?: Maybe +} + +export type MutationUpdateOrderValidationResultsArgs = { + orderId: Scalars['String'] + orderValidationResultInput?: Maybe +} + +export type MutationUpdateOrderAdjustmentArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + adjustmentInput?: Maybe +} + +export type MutationDeleteOrderAdjustmentArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe +} + +export type MutationUpdateOrderShippingAdjustmentArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + adjustmentInput?: Maybe +} + +export type MutationDeleteOrderAdjustmentShippingArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe +} + +export type MutationUpdateOrderHandlingAdjustmentArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + adjustmentInput?: Maybe +} + +export type MutationDeleteOrderAdjustmentHandlingArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe +} + +export type MutationCreateOrderAttributeArgs = { + orderId: Scalars['String'] + orderAttributeInput?: Maybe +} + +export type MutationUpdateOrderAttributesArgs = { + orderId: Scalars['String'] + removeMissing?: Maybe + orderAttributeInput?: Maybe +} + +export type MutationUpdateOrderBillingInfoArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + billingInfoInput?: Maybe +} + +export type MutationCancelOrderArgs = { + orderId: Scalars['String'] + canceledReasonInput?: Maybe +} + +export type MutationCreateOrderArgs = { + cartId?: Maybe + quoteId?: Maybe + orderInput?: Maybe +} + +export type MutationUpdateUserOrderArgs = { + orderId: Scalars['String'] +} + +export type MutationUpdateOrderPriceListArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + graphQLString?: Maybe +} + +export type MutationResendOrderEmailArgs = { + orderId: Scalars['String'] + orderActionInput?: Maybe +} + +export type MutationUpdateOrderArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + orderInput?: Maybe +} + +export type MutationUpdateOrderDigitalWalletTpeArgs = { + orderId: Scalars['String'] + digitalWalletType: Scalars['String'] + digitalWalletInput?: Maybe +} + +export type MutationUpdateOrderDraftArgs = { + orderId: Scalars['String'] + version?: Maybe +} + +export type MutationCreateOrderActionArgs = { + orderId: Scalars['String'] + orderActionInput?: Maybe +} + +export type MutationUpdateOrderDiscountArgs = { + orderId: Scalars['String'] + discountId: Scalars['Int'] + updateMode?: Maybe + version?: Maybe + appliedDiscountInput?: Maybe +} + +export type MutationUpdateOrderPriceArgs = { + refreshShipping?: Maybe + orderInput?: Maybe +} + +export type MutationUpdateOrderCouponArgs = { + orderId: Scalars['String'] + couponCode: Scalars['String'] + updateMode?: Maybe + version?: Maybe +} + +export type MutationDeleteOrderCouponsArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe +} + +export type MutationDeleteOrderCouponArgs = { + orderId: Scalars['String'] + couponCode: Scalars['String'] + updateMode?: Maybe + version?: Maybe +} + +export type MutationCreateOrderDigitalPackageArgs = { + orderId: Scalars['String'] + digitalPackageInput?: Maybe +} + +export type MutationUpdateOrderDigitalPackageArgs = { + orderId: Scalars['String'] + digitalPackageId: Scalars['String'] + digitalPackageInput?: Maybe +} + +export type MutationDeleteOrderDigitalPackageArgs = { + orderId: Scalars['String'] + digitalPackageId: Scalars['String'] +} + +export type MutationCreateOrderExtendedPropertiesArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + extendedPropertyInput?: Maybe +} + +export type MutationUpdateOrderExtendedPropertiesArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + upsert?: Maybe + extendedPropertyInput?: Maybe +} + +export type MutationDeleteOrderExtendedPropertiesArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + graphQLString?: Maybe +} + +export type MutationUpdateOrderExtendedPropertyArgs = { + orderId: Scalars['String'] + key: Scalars['String'] + updateMode?: Maybe + version?: Maybe + upsert?: Maybe + extendedPropertyInput?: Maybe +} + +export type MutationDeleteOrderExtendedPropertyArgs = { + orderId: Scalars['String'] + key: Scalars['String'] + updateMode?: Maybe + version?: Maybe +} + +export type MutationCreateOrderFulfillmentActionArgs = { + orderId: Scalars['String'] + fulfillmentActionInput?: Maybe +} + +export type MutationResendOrderFulfillmentEmailArgs = { + orderId: Scalars['String'] + fulfillmentActionInput?: Maybe +} + +export type MutationUpdateOrderFulfillmentInfoArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + fulfillmentInfoInput?: Maybe +} + +export type MutationCreateOrderItemArgs = { + orderId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + skipInventoryCheck?: Maybe + orderItemInput?: Maybe +} + +export type MutationDeleteOrderItemArgs = { + orderId: Scalars['String'] + orderItemId: Scalars['String'] + updateMode?: Maybe + version?: Maybe +} + +export type MutationUpdateOrderItemPriceArgs = { + orderId: Scalars['String'] + orderItemId: Scalars['String'] + price: Scalars['Float'] + updateMode?: Maybe + version?: Maybe +} + +export type MutationUpdateOrderItemQuantityArgs = { + orderId: Scalars['String'] + orderItemId: Scalars['String'] + quantity: Scalars['Int'] + updateMode?: Maybe + version?: Maybe +} + +export type MutationUpdateOrderItemDutyAmountArgs = { + orderId: Scalars['String'] + orderItemId: Scalars['String'] + dutyAmount: Scalars['Float'] + updateMode?: Maybe + version?: Maybe +} + +export type MutationUpdateOrderItemFulfillmentArgs = { + orderId: Scalars['String'] + orderItemId: Scalars['String'] + updateMode?: Maybe + version?: Maybe + orderItemInput?: Maybe +} + +export type MutationUpdateOrderItemDiscountArgs = { + orderId: Scalars['String'] + orderItemId: Scalars['String'] + discountId: Scalars['Int'] + updateMode?: Maybe + version?: Maybe + appliedDiscountInput?: Maybe +} + +export type MutationCreateOrderNoteArgs = { + orderId: Scalars['String'] + orderNoteInput?: Maybe +} + +export type MutationUpdateOrderNotesArgs = { + orderId: Scalars['String'] + noteId: Scalars['String'] + orderNoteInput?: Maybe +} + +export type MutationDeleteOrderNoteArgs = { + orderId: Scalars['String'] + noteId: Scalars['String'] +} + +export type MutationCreateOrderPackageArgs = { + orderId: Scalars['String'] + packageObjInput?: Maybe +} + +export type MutationUpdateOrderPackageArgs = { + orderId: Scalars['String'] + packageId: Scalars['String'] + packageObjInput?: Maybe +} + +export type MutationDeleteOrderPackageArgs = { + orderId: Scalars['String'] + packageId: Scalars['String'] +} + +export type MutationValidateOrderArgs = { + orderInput?: Maybe +} + +export type MutationUpdateQuoteArgs = { + quoteId: Scalars['String'] + updateMode?: Maybe + quoteInput?: Maybe +} + +export type MutationDeleteQuoteArgs = { + quoteId: Scalars['String'] + draft?: Maybe +} + +export type MutationCreateQuoteArgs = { + quoteInput?: Maybe +} + +export type MutationCreateQuoteItemArgs = { + quoteId: Scalars['String'] + updateMode?: Maybe + orderItemInput?: Maybe +} + +export type MutationDeleteQuoteItemArgs = { + quoteId: Scalars['String'] + quoteItemId: Scalars['String'] + updateMode?: Maybe +} + +export type MutationCreateReturnArgs = { + returnObjInput?: Maybe +} + +export type MutationResendReturnEmailArgs = { + returnActionInput?: Maybe +} + +export type MutationUpdateReturnArgs = { + returnId: Scalars['String'] + returnObjInput?: Maybe +} + +export type MutationDeleteReturnArgs = { + returnId: Scalars['String'] +} + +export type MutationCreateReturnActionArgs = { + returnActionInput?: Maybe +} + +export type MutationSetReturnShipArgs = { + returnId: Scalars['String'] + returnItemSpecifierInput?: Maybe +} + +export type MutationCreateReturnPaymentActionArgs = { + returnId: Scalars['String'] + paymentActionInput?: Maybe +} + +export type MutationCreateReturnPaymentPaymentActionArgs = { + returnId: Scalars['String'] + paymentId: Scalars['String'] + paymentActionInput?: Maybe +} + +export type MutationSetReturnRestockArgs = { + returnId: Scalars['String'] + restockableReturnItemInput?: Maybe +} + +export type MutationCreateReturnItemArgs = { + returnId: Scalars['String'] + returnItemInput?: Maybe +} + +export type MutationDeleteReturnItemArgs = { + returnId?: Maybe + returnItemId?: Maybe + orderId: Scalars['String'] + orderItemId: Scalars['String'] +} + +export type MutationCreateReturnNoteArgs = { + returnId: Scalars['String'] + orderNoteInput?: Maybe +} + +export type MutationUpdateReturnNoteArgs = { + returnId: Scalars['String'] + noteId: Scalars['String'] + orderNoteInput?: Maybe +} + +export type MutationDeleteReturnNoteArgs = { + returnId: Scalars['String'] + noteId: Scalars['String'] +} + +export type MutationCreateReturnPackageArgs = { + returnId: Scalars['String'] + packageObjInput?: Maybe +} + +export type MutationUpdateReturnPackageArgs = { + returnId: Scalars['String'] + packageId: Scalars['String'] + packageObjInput?: Maybe +} + +export type MutationDeleteReturnPackageArgs = { + returnId: Scalars['String'] + packageId: Scalars['String'] +} + +export type MutationCreateReturnShipmentArgs = { + returnId: Scalars['String'] + graphQLString?: Maybe +} + +export type MutationDeleteReturnShipmentArgs = { + returnId: Scalars['String'] + shipmentId: Scalars['String'] +} + +export type MutationCreateWishlistArgs = { + wishlistInput?: Maybe +} + +export type MutationUpdateWishlistArgs = { + wishlistId: Scalars['String'] + wishlistInput?: Maybe +} + +export type MutationDeleteWishlistArgs = { + wishlistId: Scalars['String'] +} + +export type MutationDeleteWishlistItemsArgs = { + wishlistId: Scalars['String'] +} + +export type MutationCreateWishlistItemArgs = { + wishlistId: Scalars['String'] + wishlistItemInput?: Maybe +} + +export type MutationUpdateWishlistItemArgs = { + wishlistId: Scalars['String'] + wishlistItemId: Scalars['String'] + wishlistItemInput?: Maybe +} + +export type MutationDeleteWishlistItemArgs = { + wishlistId: Scalars['String'] + wishlistItemId: Scalars['String'] +} + +export type MutationUpdateWishlistItemQuantityArgs = { + wishlistId: Scalars['String'] + wishlistItemId: Scalars['String'] + quantity: Scalars['Int'] +} + +export type MutationUpdateDocumentListDocumentContentArgs = { + documentListName: Scalars['String'] + documentId: Scalars['String'] + httpRequestMessageInput?: Maybe +} + +export type MutationDeleteDocumentListDocumentContentArgs = { + documentListName: Scalars['String'] + documentId: Scalars['String'] +} + +export type MutationUpdateDocumentListDocumentTreeContentArgs = { + documentListName: Scalars['String'] + documentName: Scalars['String'] + httpRequestMessageInput?: Maybe +} + +export type MutationDeleteDocumentListDocumentTreeContentArgs = { + documentListName: Scalars['String'] + documentName: Scalars['String'] + httpRequestMessageInput?: Maybe +} + +export type MutationCreateDocumentListDocumentArgs = { + documentListName: Scalars['String'] + documentInput?: Maybe +} + +export type MutationUpdateDocumentListDocumentArgs = { + documentListName: Scalars['String'] + documentId: Scalars['String'] + documentInput?: Maybe +} + +export type MutationPatchDocumentListDocumentArgs = { + documentListName: Scalars['String'] + documentId: Scalars['String'] + documentInput?: Maybe +} + +export type MutationDeleteDocumentListDocumentArgs = { + documentListName: Scalars['String'] + documentId: Scalars['String'] +} + +export type MutationCreateDocumentListArgs = { + documentListInput?: Maybe +} + +export type MutationUpdateDocumentListArgs = { + documentListName: Scalars['String'] + documentListInput?: Maybe +} + +export type MutationDeleteDocumentListArgs = { + documentListName: Scalars['String'] +} + +export type MutationCreateDocumentListTypeArgs = { + documentListTypeInput?: Maybe +} + +export type MutationUpdateDocumentListTypeArgs = { + documentListTypeFQN: Scalars['String'] + documentListTypeInput?: Maybe +} + +export type MutationCreateDocumentDraftArgs = { + documentLists?: Maybe + graphQLString?: Maybe +} + +export type MutationToggleDocumentPublishingArgs = { + documentLists?: Maybe + graphQLString?: Maybe +} + +export type MutationCreateDocumentTypeArgs = { + documentTypeInput?: Maybe +} + +export type MutationUpdateDocumentTypeArgs = { + documentTypeName: Scalars['String'] + documentTypeInput?: Maybe +} + +export type MutationCreatePropertyTypeArgs = { + propertyTypeInput?: Maybe +} + +export type MutationUpdatePropertyTypeArgs = { + propertyTypeName: Scalars['String'] + propertyTypeInput?: Maybe +} + +export type MutationDeletePropertyTypeArgs = { + propertyTypeName: Scalars['String'] +} + +export type MutationAdminCreateLocationArgs = { + locationInput?: Maybe +} + +export type MutationAdminUpdateLocationArgs = { + locationCode: Scalars['String'] + locationInput?: Maybe +} + +export type MutationDeleteAdminLocationArgs = { + locationCode: Scalars['String'] +} + +export type MutationAdminCreateLocationAttributeArgs = { + attributeInput?: Maybe +} + +export type MutationAdminUpdateLocationAttributeArgs = { + attributeFQN: Scalars['String'] + attributeInput?: Maybe +} + +export type MutationAdminCreateLocationGroupArgs = { + locationGroupInput?: Maybe +} + +export type MutationUpdateLocationUsageArgs = { + code: Scalars['String'] + locationUsageInput?: Maybe +} + +export type MutationAdminCreateLocationTypeArgs = { + locationTypeInput?: Maybe +} + +export type MutationAdminUpdateLocationTypeArgs = { + locationTypeCode: Scalars['String'] + locationTypeInput?: Maybe +} + +export type MutationDeleteAdminLocationTypeArgs = { + locationTypeCode: Scalars['String'] +} + +export type MutationUpdateEntityListEntitiesArgs = { + entityListFullName: Scalars['String'] + id: Scalars['String'] + httpRequestMessageInput?: Maybe +} + +export type MutationDeleteEntityListEntityArgs = { + entityListFullName: Scalars['String'] + id: Scalars['String'] +} + +export type MutationCreateEntityListEntityArgs = { + entityListFullName: Scalars['String'] + httpRequestMessageInput?: Maybe +} + +export type MutationUpdateEntityListArgs = { + entityListFullName: Scalars['String'] + entityListInput?: Maybe +} + +export type MutationDeleteEntityListArgs = { + entityListFullName: Scalars['String'] +} + +export type MutationCreateEntityListArgs = { + entityListInput?: Maybe +} + +export type MutationCreateEntityListViewArgs = { + entityListFullName: Scalars['String'] + listViewInput?: Maybe +} + +export type MutationUpdateEntityListViewArgs = { + entityListFullName: Scalars['String'] + viewName: Scalars['String'] + listViewInput?: Maybe +} + +export type MutationDeleteEntityListViewArgs = { + entityListFullName: Scalars['String'] + viewName: Scalars['String'] +} + +export type MutationCreateTargetRuleArgs = { + targetRuleInput?: Maybe +} + +export type MutationUpdateTargetRuleArgs = { + code: Scalars['String'] + targetRuleInput?: Maybe +} + +export type MutationDeleteCommerceTargetRuleArgs = { + code: Scalars['String'] +} + +export type MutationValidateTargetRuleArgs = { + targetRuleInput?: Maybe +} + +export type MutationCreateOrderRoutingSuggestionArgs = { + returnSuggestionLog?: Maybe + suggestionRequestInput?: Maybe +} + +export enum NodeTypeEnum { + Array = 'ARRAY', + Binary = 'BINARY', + Boolean = 'BOOLEAN', + Missing = 'MISSING', + Null = 'NULL', + Number = 'NUMBER', + Object = 'OBJECT', + Pojo = 'POJO', + String = 'STRING', +} + +export type Order = { + __typename?: 'Order' + _get?: Maybe + _root?: Maybe + orderNumber?: Maybe + locationCode?: Maybe + version?: Maybe + parentOrderId?: Maybe + parentOrderNumber?: Maybe + parentCheckoutId?: Maybe + parentCheckoutNumber?: Maybe + partialOrderNumber?: Maybe + partialOrderCount?: Maybe + isPartialOrder?: Maybe + parentReturnId?: Maybe + parentReturnNumber?: Maybe + originalCartId?: Maybe + originalQuoteId?: Maybe + originalQuoteNumber?: Maybe + priceListCode?: Maybe + availableActions?: Maybe> + shopperNotes?: Maybe + customerAccountId?: Maybe + customerTaxId?: Maybe + isTaxExempt?: Maybe + email?: Maybe + ipAddress?: Maybe + sourceDevice?: Maybe + acceptsMarketing?: Maybe + status?: Maybe + type?: Maybe + paymentStatus?: Maybe + returnStatus?: Maybe + isEligibleForReturns?: Maybe + totalCollected: Scalars['Float'] + attributes?: Maybe>> + adjustment?: Maybe + shippingAdjustment?: Maybe + handlingAdjustment?: Maybe + shippingDiscounts?: Maybe>> + handlingDiscounts?: Maybe>> + handlingAmount?: Maybe + handlingSubTotal?: Maybe + handlingTotal?: Maybe + dutyAmount?: Maybe + dutyTotal?: Maybe + fulfillmentStatus?: Maybe + submittedDate?: Maybe + cancelledDate?: Maybe + closedDate?: Maybe + acceptedDate?: Maybe + notes?: Maybe>> + items?: Maybe>> + validationResults?: Maybe>> + billingInfo?: Maybe + payments?: Maybe>> + refunds?: Maybe>> + packages?: Maybe>> + pickups?: Maybe>> + digitalPackages?: Maybe>> + shipments?: Maybe>> + isDraft?: Maybe + hasDraft?: Maybe + isImport?: Maybe + isHistoricalImport?: Maybe + importDate?: Maybe + isUnified?: Maybe + externalId?: Maybe + couponCodes?: Maybe> + invalidCoupons?: Maybe>> + amountAvailableForRefund: Scalars['Float'] + amountRemainingForPayment: Scalars['Float'] + amountRefunded: Scalars['Float'] + readyToCapture?: Maybe + isOptInForSms?: Maybe + userId?: Maybe + id?: Maybe + tenantId?: Maybe + siteId?: Maybe + channelCode?: Maybe + currencyCode?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + fulfillmentInfo?: Maybe + orderDiscounts?: Maybe>> + suggestedDiscounts?: Maybe>> + rejectedDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + subtotal?: Maybe + discountedSubtotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + shippingTotal?: Maybe + shippingSubTotal?: Maybe + shippingTaxTotal?: Maybe + handlingTaxTotal?: Maybe + itemTaxTotal?: Maybe + taxTotal?: Maybe + feeTotal?: Maybe + total?: Maybe + lineItemSubtotalWithOrderAdjustments?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + lastValidationDate?: Maybe + expirationDate?: Maybe + changeMessages?: Maybe>> + extendedProperties?: Maybe>> + discountThresholdMessages?: Maybe>> + auditInfo?: Maybe +} + +export type Order_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type OrderActionInput = { + actionName?: Maybe +} + +export type OrderAttribute = { + __typename?: 'OrderAttribute' + _get?: Maybe + _root?: Maybe + auditInfo?: Maybe + fullyQualifiedName?: Maybe + attributeDefinitionId?: Maybe + values?: Maybe> +} + +export type OrderAttribute_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type OrderAttributeInput = { + auditInfo?: Maybe + fullyQualifiedName?: Maybe + attributeDefinitionId?: Maybe + values?: Maybe> +} + +export type OrderCollection = { + __typename?: 'OrderCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type OrderCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type OrderInput = { + orderNumber?: Maybe + locationCode?: Maybe + version?: Maybe + parentOrderId?: Maybe + parentOrderNumber?: Maybe + parentCheckoutId?: Maybe + parentCheckoutNumber?: Maybe + partialOrderNumber?: Maybe + partialOrderCount?: Maybe + isPartialOrder?: Maybe + parentReturnId?: Maybe + parentReturnNumber?: Maybe + originalCartId?: Maybe + originalQuoteId?: Maybe + originalQuoteNumber?: Maybe + priceListCode?: Maybe + availableActions?: Maybe> + shopperNotes?: Maybe + customerAccountId?: Maybe + customerTaxId?: Maybe + isTaxExempt?: Maybe + email?: Maybe + ipAddress?: Maybe + sourceDevice?: Maybe + acceptsMarketing?: Maybe + status?: Maybe + type?: Maybe + paymentStatus?: Maybe + returnStatus?: Maybe + isEligibleForReturns?: Maybe + totalCollected: Scalars['Float'] + attributes?: Maybe>> + adjustment?: Maybe + shippingAdjustment?: Maybe + handlingAdjustment?: Maybe + shippingDiscounts?: Maybe>> + handlingDiscounts?: Maybe>> + handlingAmount?: Maybe + handlingSubTotal?: Maybe + handlingTotal?: Maybe + dutyAmount?: Maybe + dutyTotal?: Maybe + fulfillmentStatus?: Maybe + submittedDate?: Maybe + cancelledDate?: Maybe + closedDate?: Maybe + acceptedDate?: Maybe + notes?: Maybe>> + items?: Maybe>> + validationResults?: Maybe>> + billingInfo?: Maybe + payments?: Maybe>> + refunds?: Maybe>> + packages?: Maybe>> + pickups?: Maybe>> + digitalPackages?: Maybe>> + shipments?: Maybe>> + isDraft?: Maybe + hasDraft?: Maybe + isImport?: Maybe + isHistoricalImport?: Maybe + importDate?: Maybe + isUnified?: Maybe + externalId?: Maybe + couponCodes?: Maybe> + invalidCoupons?: Maybe>> + amountAvailableForRefund: Scalars['Float'] + amountRemainingForPayment: Scalars['Float'] + amountRefunded: Scalars['Float'] + readyToCapture?: Maybe + isOptInForSms?: Maybe + userId?: Maybe + id?: Maybe + tenantId?: Maybe + siteId?: Maybe + channelCode?: Maybe + currencyCode?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + fulfillmentInfo?: Maybe + orderDiscounts?: Maybe>> + suggestedDiscounts?: Maybe>> + rejectedDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + subtotal?: Maybe + discountedSubtotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + shippingTotal?: Maybe + shippingSubTotal?: Maybe + shippingTaxTotal?: Maybe + handlingTaxTotal?: Maybe + itemTaxTotal?: Maybe + taxTotal?: Maybe + feeTotal?: Maybe + total?: Maybe + lineItemSubtotalWithOrderAdjustments?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + lastValidationDate?: Maybe + expirationDate?: Maybe + changeMessages?: Maybe>> + extendedProperties?: Maybe>> + discountThresholdMessages?: Maybe>> + auditInfo?: Maybe +} + +export type OrderItemCollection = { + __typename?: 'OrderItemCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type OrderItemCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type OrderItemInput = { + backorderable?: Maybe + customItemData: Scalars['Object'] + itemDependency: Scalars['Int'] + orderItemID: Scalars['Int'] + partNumber: Scalars['String'] + quantity: Scalars['Int'] + sku: Scalars['String'] + upc: Scalars['String'] +} + +export type OrderNote = { + __typename?: 'OrderNote' + _get?: Maybe + _root?: Maybe + id?: Maybe + text?: Maybe + auditInfo?: Maybe +} + +export type OrderNote_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type OrderNoteInput = { + id?: Maybe + text?: Maybe + auditInfo?: Maybe +} + +export type OrderReturnableItem = { + __typename?: 'OrderReturnableItem' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + productName?: Maybe + shipmentNumber?: Maybe + shipmentItemId?: Maybe + quantityOrdered: Scalars['Int'] + quantityFulfilled: Scalars['Int'] + quantityReturned: Scalars['Int'] + quantityReturnable: Scalars['Int'] + fulfillmentStatus?: Maybe + orderItemId?: Maybe + orderLineId: Scalars['Int'] + orderItemOptionAttributeFQN?: Maybe + unitQuantity: Scalars['Int'] + parentProductCode?: Maybe + parentProductName?: Maybe + fulfillmentFields?: Maybe>> + sku?: Maybe + mfgPartNumber?: Maybe +} + +export type OrderReturnableItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type OrderReturnableItemCollection = { + __typename?: 'OrderReturnableItemCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type OrderReturnableItemCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export enum OrderTypeEnum { + Directship = 'DIRECTSHIP', + Transfer = 'TRANSFER', +} + +export type OrderValidationMessage = { + __typename?: 'OrderValidationMessage' + _get?: Maybe + _root?: Maybe + orderItemId?: Maybe + messageType?: Maybe + message?: Maybe +} + +export type OrderValidationMessage_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type OrderValidationMessageInput = { + orderItemId?: Maybe + messageType?: Maybe + message?: Maybe +} + +export type OrderValidationResult = { + __typename?: 'OrderValidationResult' + _get?: Maybe + _root?: Maybe + validationId?: Maybe + validatorName?: Maybe + validatorType?: Maybe + status?: Maybe + createdDate?: Maybe + messages?: Maybe>> +} + +export type OrderValidationResult_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type OrderValidationResultInput = { + validationId?: Maybe + validatorName?: Maybe + validatorType?: Maybe + status?: Maybe + createdDate?: Maybe + messages?: Maybe>> +} + +export type PackageItem = { + __typename?: 'PackageItem' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + quantity: Scalars['Int'] + fulfillmentItemType?: Maybe + lineId?: Maybe + optionAttributeFQN?: Maybe +} + +export type PackageItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PackageItemInput = { + productCode?: Maybe + quantity: Scalars['Int'] + fulfillmentItemType?: Maybe + lineId?: Maybe + optionAttributeFQN?: Maybe +} + +export type PackageObj = { + __typename?: 'PackageObj' + _get?: Maybe + _root?: Maybe + shippingMethodCode?: Maybe + shippingMethodName?: Maybe + shipmentId?: Maybe + trackingNumber?: Maybe + trackingNumbers?: Maybe> + packagingType?: Maybe + hasLabel?: Maybe + measurements?: Maybe + carrier?: Maybe + signatureRequired?: Maybe + trackings?: Maybe>> + id?: Maybe + code?: Maybe + status?: Maybe + items?: Maybe>> + fulfillmentDate?: Maybe + fulfillmentLocationCode?: Maybe + auditInfo?: Maybe + availableActions?: Maybe> + changeMessages?: Maybe>> +} + +export type PackageObj_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PackageObjInput = { + shippingMethodCode?: Maybe + shippingMethodName?: Maybe + shipmentId?: Maybe + trackingNumber?: Maybe + trackingNumbers?: Maybe> + packagingType?: Maybe + hasLabel?: Maybe + measurements?: Maybe + carrier?: Maybe + signatureRequired?: Maybe + trackings?: Maybe>> + id?: Maybe + code?: Maybe + status?: Maybe + items?: Maybe>> + fulfillmentDate?: Maybe + fulfillmentLocationCode?: Maybe + auditInfo?: Maybe + availableActions?: Maybe> + changeMessages?: Maybe>> +} + +export type PackageSettings = { + __typename?: 'PackageSettings' + _get?: Maybe + _root?: Maybe + unitType?: Maybe +} + +export type PackageSettings_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PasswordInfoInput = { + oldPassword?: Maybe + newPassword?: Maybe + externalPassword?: Maybe +} + +export type Payment = { + __typename?: 'Payment' + _get?: Maybe + _root?: Maybe + id?: Maybe + groupId?: Maybe + paymentServiceTransactionId?: Maybe + availableActions?: Maybe> + orderId?: Maybe + paymentType?: Maybe + paymentWorkflow?: Maybe + externalTransactionId?: Maybe + billingInfo?: Maybe + data?: Maybe + status?: Maybe + subPayments?: Maybe>> + interactions?: Maybe>> + isRecurring?: Maybe + amountCollected: Scalars['Float'] + amountCredited: Scalars['Float'] + amountRequested: Scalars['Float'] + changeMessages?: Maybe>> + auditInfo?: Maybe + gatewayGiftCard?: Maybe +} + +export type Payment_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PaymentActionInput = { + actionName?: Maybe + currencyCode?: Maybe + checkNumber?: Maybe + returnUrl?: Maybe + cancelUrl?: Maybe + amount?: Maybe + interactionDate?: Maybe + newBillingInfo?: Maybe + referenceSourcePaymentId?: Maybe + manualGatewayInteraction?: Maybe + externalTransactionId?: Maybe + data?: Maybe +} + +export type PaymentActionTarget = { + __typename?: 'PaymentActionTarget' + _get?: Maybe + _root?: Maybe + targetType?: Maybe + targetId?: Maybe + targetNumber?: Maybe +} + +export type PaymentActionTarget_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PaymentActionTargetInput = { + targetType?: Maybe + targetId?: Maybe + targetNumber?: Maybe +} + +export type PaymentCard = { + __typename?: 'PaymentCard' + _get?: Maybe + _root?: Maybe + paymentServiceCardId?: Maybe + isUsedRecurring?: Maybe + nameOnCard?: Maybe + isCardInfoSaved?: Maybe + isTokenized?: Maybe + paymentOrCardType?: Maybe + cardNumberPartOrMask?: Maybe + expireMonth: Scalars['Int'] + expireYear: Scalars['Int'] + bin?: Maybe +} + +export type PaymentCard_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PaymentCardInput = { + paymentServiceCardId?: Maybe + isUsedRecurring?: Maybe + nameOnCard?: Maybe + isCardInfoSaved?: Maybe + isTokenized?: Maybe + paymentOrCardType?: Maybe + cardNumberPartOrMask?: Maybe + expireMonth: Scalars['Int'] + expireYear: Scalars['Int'] + bin?: Maybe +} + +export type PaymentCollection = { + __typename?: 'PaymentCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type PaymentCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PaymentGatewayInteractionInput = { + gatewayInteractionId?: Maybe + gatewayTransactionId?: Maybe + gatewayAuthCode?: Maybe + gatewayAVSCodes?: Maybe + gatewayCVV2Codes?: Maybe + gatewayResponseCode?: Maybe + gatewayResponseText?: Maybe +} + +export type PaymentGatewayResponseData = { + __typename?: 'PaymentGatewayResponseData' + _get?: Maybe + _root?: Maybe + key?: Maybe + value?: Maybe +} + +export type PaymentGatewayResponseData_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PaymentGatewayResponseDataInput = { + key?: Maybe + value?: Maybe +} + +export type PaymentInput = { + id?: Maybe + groupId?: Maybe + paymentServiceTransactionId?: Maybe + availableActions?: Maybe> + orderId?: Maybe + paymentType?: Maybe + paymentWorkflow?: Maybe + externalTransactionId?: Maybe + billingInfo?: Maybe + data?: Maybe + status?: Maybe + subPayments?: Maybe>> + interactions?: Maybe>> + isRecurring?: Maybe + amountCollected: Scalars['Float'] + amountCredited: Scalars['Float'] + amountRequested: Scalars['Float'] + changeMessages?: Maybe>> + auditInfo?: Maybe + gatewayGiftCard?: Maybe +} + +export type PaymentInteraction = { + __typename?: 'PaymentInteraction' + _get?: Maybe + _root?: Maybe + id?: Maybe + gatewayInteractionId?: Maybe + paymentId?: Maybe + orderId?: Maybe + target?: Maybe + currencyCode?: Maybe + interactionType?: Maybe + checkNumber?: Maybe + status?: Maybe + paymentEntryStatus?: Maybe + isRecurring?: Maybe + isManual?: Maybe + gatewayTransactionId?: Maybe + gatewayAuthCode?: Maybe + gatewayAVSCodes?: Maybe + gatewayCVV2Codes?: Maybe + gatewayResponseCode?: Maybe + gatewayResponseText?: Maybe + gatewayResponseData?: Maybe>> + paymentTransactionInteractionIdReference?: Maybe + amount?: Maybe + note?: Maybe + interactionDate?: Maybe + auditInfo?: Maybe + returnId?: Maybe + refundId?: Maybe + capturableShipmentsSummary?: Maybe>> +} + +export type PaymentInteraction_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PaymentInteractionInput = { + id?: Maybe + gatewayInteractionId?: Maybe + paymentId?: Maybe + orderId?: Maybe + target?: Maybe + currencyCode?: Maybe + interactionType?: Maybe + checkNumber?: Maybe + status?: Maybe + paymentEntryStatus?: Maybe + isRecurring?: Maybe + isManual?: Maybe + gatewayTransactionId?: Maybe + gatewayAuthCode?: Maybe + gatewayAVSCodes?: Maybe + gatewayCVV2Codes?: Maybe + gatewayResponseCode?: Maybe + gatewayResponseText?: Maybe + gatewayResponseData?: Maybe>> + paymentTransactionInteractionIdReference?: Maybe + amount?: Maybe + note?: Maybe + interactionDate?: Maybe + auditInfo?: Maybe + returnId?: Maybe + refundId?: Maybe + capturableShipmentsSummary?: Maybe< + Array> + > +} + +export type PaymentToken = { + __typename?: 'PaymentToken' + _get?: Maybe + _root?: Maybe + paymentServiceTokenId?: Maybe + type?: Maybe +} + +export type PaymentToken_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PaymentTokenInput = { + paymentServiceTokenId?: Maybe + type?: Maybe +} + +export type Pickup = { + __typename?: 'Pickup' + _get?: Maybe + _root?: Maybe + id?: Maybe + code?: Maybe + status?: Maybe + items?: Maybe>> + fulfillmentDate?: Maybe + fulfillmentLocationCode?: Maybe + auditInfo?: Maybe + availableActions?: Maybe> + changeMessages?: Maybe>> +} + +export type Pickup_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PickupInput = { + id?: Maybe + code?: Maybe + status?: Maybe + items?: Maybe>> + fulfillmentDate?: Maybe + fulfillmentLocationCode?: Maybe + auditInfo?: Maybe + availableActions?: Maybe> + changeMessages?: Maybe>> +} + +export type PickupItem = { + __typename?: 'PickupItem' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + quantity: Scalars['Int'] + fulfillmentItemType?: Maybe + lineId?: Maybe + optionAttributeFQN?: Maybe +} + +export type PickupItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PickupItemInput = { + productCode?: Maybe + quantity: Scalars['Int'] + fulfillmentItemType?: Maybe + lineId?: Maybe + optionAttributeFQN?: Maybe +} + +export type PrAppliedDiscount = { + __typename?: 'PrAppliedDiscount' + _get?: Maybe + _root?: Maybe + couponCode?: Maybe + discount?: Maybe + discounts?: Maybe>> + impact: Scalars['Float'] +} + +export type PrAppliedDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PrAttributeValidation = { + __typename?: 'PrAttributeValidation' + _get?: Maybe + _root?: Maybe + regularExpression?: Maybe + minStringLength?: Maybe + maxStringLength?: Maybe + minNumericValue?: Maybe + maxNumericValue?: Maybe + minDateValue?: Maybe + maxDateValue?: Maybe +} + +export type PrAttributeValidation_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PrBundledProduct = { + __typename?: 'PrBundledProduct' + _get?: Maybe + _root?: Maybe + content?: Maybe + productCode?: Maybe + goodsType?: Maybe + quantity: Scalars['Int'] + measurements?: Maybe + isPackagedStandAlone?: Maybe + inventoryInfo?: Maybe + optionAttributeFQN?: Maybe + optionValue?: Maybe + creditValue?: Maybe + productType?: Maybe +} + +export type PrBundledProduct_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PrCategory = { + __typename?: 'PrCategory' + _get?: Maybe + _root?: Maybe + categoryId: Scalars['Int'] + parentCategory?: Maybe + content?: Maybe + childrenCategories?: Maybe>> + sequence?: Maybe + isDisplayed?: Maybe + categoryCode?: Maybe + count?: Maybe + updateDate: Scalars['DateTime'] + shouldSlice?: Maybe +} + +export type PrCategory_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PrDiscount = { + __typename?: 'PrDiscount' + _get?: Maybe + _root?: Maybe + discountId: Scalars['Int'] + expirationDate?: Maybe + name?: Maybe + friendlyDescription?: Maybe + impact: Scalars['Float'] +} + +export type PrDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PrMeasurement = { + __typename?: 'PrMeasurement' + _get?: Maybe + _root?: Maybe + unit?: Maybe + value?: Maybe +} + +export type PrMeasurement_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PrPackageMeasurements = { + __typename?: 'PrPackageMeasurements' + _get?: Maybe + _root?: Maybe + packageHeight?: Maybe + packageWidth?: Maybe + packageLength?: Maybe + packageWeight?: Maybe +} + +export type PrPackageMeasurements_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PriceList = { + __typename?: 'PriceList' + _get?: Maybe + _root?: Maybe + priceListCode?: Maybe + priceListId: Scalars['Int'] + enabled?: Maybe + name?: Maybe + resolvable?: Maybe + isIndexed?: Maybe + filteredInStoreFront?: Maybe + isSiteDefault?: Maybe + description?: Maybe + ancestors?: Maybe>> + descendants?: Maybe>> + validSites?: Maybe> +} + +export type PriceList_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PriceListNode = { + __typename?: 'PriceListNode' + _get?: Maybe + _root?: Maybe + priceListCode?: Maybe + priceListId: Scalars['Int'] + parentPriceListId?: Maybe + priceListLevel: Scalars['Int'] +} + +export type PriceListNode_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingAppliedDiscount = { + __typename?: 'PricingAppliedDiscount' + _get?: Maybe + _root?: Maybe + impact: Scalars['Float'] + discount?: Maybe + couponCode?: Maybe + couponSetId?: Maybe +} + +export type PricingAppliedDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingAppliedLineItemProductDiscount = { + __typename?: 'PricingAppliedLineItemProductDiscount' + _get?: Maybe + _root?: Maybe + appliesToSalePrice?: Maybe + quantity: Scalars['Int'] + impactPerUnit: Scalars['Float'] + isForced?: Maybe + normalizedImpact: Scalars['Float'] + impact: Scalars['Float'] + discount?: Maybe + couponCode?: Maybe + couponSetId?: Maybe +} + +export type PricingAppliedLineItemProductDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingAppliedLineItemShippingDiscount = { + __typename?: 'PricingAppliedLineItemShippingDiscount' + _get?: Maybe + _root?: Maybe + shippingMethodCode?: Maybe + quantity: Scalars['Int'] + impactPerUnit: Scalars['Float'] + isForced?: Maybe + normalizedImpact: Scalars['Float'] + impact: Scalars['Float'] + discount?: Maybe + couponCode?: Maybe + couponSetId?: Maybe +} + +export type PricingAppliedLineItemShippingDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingAppliedOrderShippingDiscount = { + __typename?: 'PricingAppliedOrderShippingDiscount' + _get?: Maybe + _root?: Maybe + shippingMethodCode?: Maybe + impact: Scalars['Float'] + discount?: Maybe + couponCode?: Maybe + couponSetId?: Maybe +} + +export type PricingAppliedOrderShippingDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingDiscount = { + __typename?: 'PricingDiscount' + _get?: Maybe + _root?: Maybe + discountId: Scalars['Int'] + name?: Maybe + friendlyDescription?: Maybe + amount: Scalars['Float'] + scope?: Maybe + maxRedemptions?: Maybe + maximumUsesPerUser?: Maybe + requiresAuthenticatedUser?: Maybe + doesNotApplyToProductsWithSalePrice?: Maybe + maximumRedemptionsPerOrder?: Maybe + maximumDiscountValuePerOrder?: Maybe + maxDiscountValuePerRedemption?: Maybe + doesNotApplyToMultiShipToOrders?: Maybe + includedPriceLists?: Maybe> + redemptions: Scalars['Int'] + type?: Maybe + amountType?: Maybe + target?: Maybe + condition?: Maybe + expirationDate?: Maybe + stackingLayer: Scalars['Int'] +} + +export type PricingDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingDiscountCondition = { + __typename?: 'PricingDiscountCondition' + _get?: Maybe + _root?: Maybe + requiresCoupon?: Maybe + couponCode?: Maybe + minimumQuantityProductsRequiredInCategories?: Maybe + includedCategoryIds?: Maybe> + excludedCategoryIds?: Maybe> + minimumQuantityRequiredProducts?: Maybe + includedProductCodes?: Maybe> + excludedProductCodes?: Maybe> + paymentWorkflows?: Maybe> + customerSegmentIds?: Maybe> + minimumOrderAmount?: Maybe + maximumOrderAmount?: Maybe + minimumLifetimeValueAmount?: Maybe + startDate?: Maybe + expirationDate?: Maybe + minimumCategorySubtotalBeforeDiscounts?: Maybe +} + +export type PricingDiscountCondition_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingDiscountTarget = { + __typename?: 'PricingDiscountTarget' + _get?: Maybe + _root?: Maybe + type?: Maybe + includedCategoryIds?: Maybe> + excludedCategoryIds?: Maybe> + includedCategoriesOperator?: Maybe + excludedCategoriesOperator?: Maybe + includedProductCodes?: Maybe> + excludedProductCodes?: Maybe> + includeAllProducts?: Maybe + shippingMethods?: Maybe> + shippingZones?: Maybe> +} + +export type PricingDiscountTarget_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingProductAttribute = { + __typename?: 'PricingProductAttribute' + _get?: Maybe + _root?: Maybe + inputType?: Maybe + valueType?: Maybe + dataType?: Maybe + name?: Maybe + description?: Maybe +} + +export type PricingProductAttribute_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingProductProperty = { + __typename?: 'PricingProductProperty' + _get?: Maybe + _root?: Maybe + attributeFQN?: Maybe + values?: Maybe>> + attributeDetail?: Maybe + isHidden?: Maybe + isMultiValue?: Maybe +} + +export type PricingProductProperty_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingProductPropertyValue = { + __typename?: 'PricingProductPropertyValue' + _get?: Maybe + _root?: Maybe + value?: Maybe + stringValue?: Maybe +} + +export type PricingProductPropertyValue_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingTaxAttribute = { + __typename?: 'PricingTaxAttribute' + _get?: Maybe + _root?: Maybe + fullyQualifiedName?: Maybe + attributeDefinitionId?: Maybe + values?: Maybe> +} + +export type PricingTaxAttribute_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingTaxContext = { + __typename?: 'PricingTaxContext' + _get?: Maybe + _root?: Maybe + taxContextId?: Maybe + customerId?: Maybe + taxExemptId?: Maybe + originAddress?: Maybe + destinationAddress?: Maybe +} + +export type PricingTaxContext_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingTaxableLineItem = { + __typename?: 'PricingTaxableLineItem' + _get?: Maybe + _root?: Maybe + id?: Maybe + productCode?: Maybe + variantProductCode?: Maybe + productName?: Maybe + productProperties?: Maybe>> + quantity: Scalars['Int'] + lineItemPrice: Scalars['Float'] + discountTotal?: Maybe + discountedTotal?: Maybe + shippingAmount: Scalars['Float'] + handlingAmount?: Maybe + feeTotal?: Maybe + isTaxable?: Maybe + reason?: Maybe + data?: Maybe + productDiscount?: Maybe + shippingDiscount?: Maybe + productDiscounts?: Maybe>> + shippingDiscounts?: Maybe< + Array> + > + originAddress?: Maybe + destinationAddress?: Maybe +} + +export type PricingTaxableLineItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PricingTaxableOrder = { + __typename?: 'PricingTaxableOrder' + _get?: Maybe + _root?: Maybe + orderDate: Scalars['DateTime'] + taxContext?: Maybe + lineItems?: Maybe>> + shippingAmount: Scalars['Float'] + currencyCode?: Maybe + handlingFee: Scalars['Float'] + originalDocumentCode?: Maybe + orderId?: Maybe + orderNumber?: Maybe + originalOrderDate: Scalars['DateTime'] + data?: Maybe + attributes?: Maybe>> + shippingDiscounts?: Maybe>> + shippingDiscount?: Maybe + orderDiscounts?: Maybe>> + orderDiscount?: Maybe + handlingDiscounts?: Maybe>> + handlingDiscount?: Maybe + shippingMethodCode?: Maybe + shippingMethodName?: Maybe + taxRequestType?: Maybe +} + +export type PricingTaxableOrder_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type Product = { + __typename?: 'Product' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + purchaseLocation?: Maybe + productSequence?: Maybe + productUsage?: Maybe + fulfillmentTypesSupported?: Maybe> + goodsType?: Maybe + bundledProducts?: Maybe>> + content?: Maybe + purchasableState?: Maybe + isActive?: Maybe + publishState?: Maybe + price?: Maybe + priceRange?: Maybe + volumePriceBands?: Maybe>> + volumePriceRange?: Maybe + availableShippingDiscounts?: Maybe>> + productType?: Maybe + productTypeId?: Maybe + isTaxable?: Maybe + isRecurring?: Maybe + pricingBehavior?: Maybe + inventoryInfo?: Maybe + createDate: Scalars['DateTime'] + updateDate: Scalars['DateTime'] + dateFirstAvailableInCatalog?: Maybe + catalogStartDate?: Maybe + catalogEndDate?: Maybe + daysAvailableInCatalog?: Maybe + upc?: Maybe + upCs?: Maybe> + mfgPartNumber?: Maybe + mfgPartNumbers?: Maybe> + variationProductCode?: Maybe + categories?: Maybe>> + measurements?: Maybe + isPackagedStandAlone?: Maybe + properties?: Maybe>> + options?: Maybe>> + variations?: Maybe>> + validPriceLists?: Maybe> + locationsInStock?: Maybe> + slicingAttributeFQN?: Maybe + productImageGroups?: Maybe>> + sliceValue?: Maybe + productCollections?: Maybe>> + productCollectionMembers?: Maybe>> + collectionMembersProductContent?: Maybe>> + score: Scalars['Float'] + personalizationScore: Scalars['Float'] +} + +export type Product_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductPropertiesArgs = { + filterAttribute?: Maybe + filterOperator?: Maybe + filterValue?: Maybe +} + +export type ProductCollection = { + __typename?: 'ProductCollection' + _get?: Maybe + _root?: Maybe + nextCursorMark?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type ProductCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductCollectionInfo = { + __typename?: 'ProductCollectionInfo' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + isPrimary?: Maybe +} + +export type ProductCollectionInfo_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductCollectionMember = { + __typename?: 'ProductCollectionMember' + _get?: Maybe + _root?: Maybe + memberKey?: Maybe +} + +export type ProductCollectionMember_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductCollectionMemberKey = { + __typename?: 'ProductCollectionMemberKey' + _get?: Maybe + _root?: Maybe + value?: Maybe +} + +export type ProductCollectionMemberKey_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductContent = { + __typename?: 'ProductContent' + _get?: Maybe + _root?: Maybe + productName?: Maybe + productFullDescription?: Maybe + productShortDescription?: Maybe + metaTagTitle?: Maybe + metaTagDescription?: Maybe + metaTagKeywords?: Maybe + seoFriendlyUrl?: Maybe + productImages?: Maybe>> +} + +export type ProductContent_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductCost = { + __typename?: 'ProductCost' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + cost: Scalars['Float'] +} + +export type ProductCost_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductCostCollection = { + __typename?: 'ProductCostCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type ProductCostCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductCostQueryInput = { + productCodes?: Maybe> +} + +export type ProductForIndexing = { + __typename?: 'ProductForIndexing' + _get?: Maybe + _root?: Maybe + slices?: Maybe>> + productCode?: Maybe + purchaseLocation?: Maybe + productSequence?: Maybe + productUsage?: Maybe + fulfillmentTypesSupported?: Maybe> + goodsType?: Maybe + bundledProducts?: Maybe>> + content?: Maybe + purchasableState?: Maybe + isActive?: Maybe + publishState?: Maybe + price?: Maybe + priceRange?: Maybe + volumePriceBands?: Maybe>> + volumePriceRange?: Maybe + availableShippingDiscounts?: Maybe>> + productType?: Maybe + productTypeId?: Maybe + isTaxable?: Maybe + isRecurring?: Maybe + pricingBehavior?: Maybe + inventoryInfo?: Maybe + createDate: Scalars['DateTime'] + updateDate: Scalars['DateTime'] + dateFirstAvailableInCatalog?: Maybe + catalogStartDate?: Maybe + catalogEndDate?: Maybe + daysAvailableInCatalog?: Maybe + upc?: Maybe + upCs?: Maybe> + mfgPartNumber?: Maybe + mfgPartNumbers?: Maybe> + variationProductCode?: Maybe + categories?: Maybe>> + measurements?: Maybe + isPackagedStandAlone?: Maybe + properties?: Maybe>> + options?: Maybe>> + variations?: Maybe>> + validPriceLists?: Maybe> + locationsInStock?: Maybe> + slicingAttributeFQN?: Maybe + productImageGroups?: Maybe>> + sliceValue?: Maybe + productCollections?: Maybe>> + productCollectionMembers?: Maybe>> + collectionMembersProductContent?: Maybe>> + score: Scalars['Float'] + personalizationScore: Scalars['Float'] +} + +export type ProductForIndexing_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductImage = { + __typename?: 'ProductImage' + _get?: Maybe + _root?: Maybe + imageLabel?: Maybe + altText?: Maybe + imageUrl?: Maybe + cmsId?: Maybe + videoUrl?: Maybe + mediaType?: Maybe + sequence?: Maybe + productImageGroupId?: Maybe +} + +export type ProductImage_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductImageGroup = { + __typename?: 'ProductImageGroup' + _get?: Maybe + _root?: Maybe + productImageGroupId: Scalars['String'] + productImageGroupTags?: Maybe>> +} + +export type ProductImageGroup_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductImageGroupTag = { + __typename?: 'ProductImageGroupTag' + _get?: Maybe + _root?: Maybe + attributeFqn?: Maybe + value?: Maybe +} + +export type ProductImageGroupTag_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductInventoryInfo = { + __typename?: 'ProductInventoryInfo' + _get?: Maybe + _root?: Maybe + manageStock?: Maybe + outOfStockBehavior?: Maybe + onlineStockAvailable?: Maybe + onlineSoftStockAvailable?: Maybe + onlineLocationCode?: Maybe + availableDate?: Maybe +} + +export type ProductInventoryInfo_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductOption = { + __typename?: 'ProductOption' + _get?: Maybe + _root?: Maybe + attributeFQN?: Maybe + isRequired?: Maybe + isMultiValue?: Maybe + values?: Maybe>> + attributeDetail?: Maybe + isProductImageGroupSelector?: Maybe +} + +export type ProductOption_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductOptionSelectionInput = { + attributeFQN?: Maybe + value?: Maybe + attributeValueId?: Maybe + shopperEnteredValue?: Maybe +} + +export type ProductOptionSelectionsInput = { + variationProductCode?: Maybe + options?: Maybe>> +} + +export type ProductOptionValue = { + __typename?: 'ProductOptionValue' + _get?: Maybe + _root?: Maybe + value?: Maybe + attributeValueId: Scalars['Int'] + stringValue?: Maybe + isEnabled?: Maybe + isSelected?: Maybe + isDefault?: Maybe + deltaWeight?: Maybe + deltaPrice?: Maybe + shopperEnteredValue?: Maybe + bundledProduct?: Maybe + displayInfo?: Maybe +} + +export type ProductOptionValue_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductPrice = { + __typename?: 'ProductPrice' + _get?: Maybe + _root?: Maybe + msrp?: Maybe + price?: Maybe + priceType?: Maybe + salePrice?: Maybe + salePriceType?: Maybe + catalogSalePrice?: Maybe + catalogListPrice?: Maybe + discount?: Maybe + creditValue?: Maybe + effectivePricelistCode?: Maybe + priceListEntryCode?: Maybe + priceListEntryMode?: Maybe +} + +export type ProductPrice_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductPriceRange = { + __typename?: 'ProductPriceRange' + _get?: Maybe + _root?: Maybe + lower?: Maybe + upper?: Maybe +} + +export type ProductPriceRange_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductPricingBehaviorInfo = { + __typename?: 'ProductPricingBehaviorInfo' + _get?: Maybe + _root?: Maybe + discountsRestricted?: Maybe + discountsRestrictedStartDate?: Maybe + discountsRestrictedEndDate?: Maybe +} + +export type ProductPricingBehaviorInfo_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductProperty = { + __typename?: 'ProductProperty' + _get?: Maybe + _root?: Maybe + attributeFQN?: Maybe + isHidden?: Maybe + isMultiValue?: Maybe + attributeDetail?: Maybe + values?: Maybe>> + propertyType?: Maybe +} + +export type ProductProperty_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductPropertyValue = { + __typename?: 'ProductPropertyValue' + _get?: Maybe + _root?: Maybe + value?: Maybe + stringValue?: Maybe + displayInfo?: Maybe +} + +export type ProductPropertyValue_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductPurchasableState = { + __typename?: 'ProductPurchasableState' + _get?: Maybe + _root?: Maybe + isPurchasable?: Maybe + messages?: Maybe>> +} + +export type ProductPurchasableState_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductSearchRandomAccessCursor = { + __typename?: 'ProductSearchRandomAccessCursor' + _get?: Maybe + _root?: Maybe + cursorMarks?: Maybe> +} + +export type ProductSearchRandomAccessCursor_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductSearchResult = { + __typename?: 'ProductSearchResult' + _get?: Maybe + _root?: Maybe + facets?: Maybe>> + solrDebugInfo?: Maybe + searchRedirect?: Maybe + searchEngine?: Maybe + nextCursorMark?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type ProductSearchResult_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductStock = { + __typename?: 'ProductStock' + _get?: Maybe + _root?: Maybe + manageStock?: Maybe + isOnBackOrder?: Maybe + availableDate?: Maybe + stockAvailable?: Maybe + aggregateInventory?: Maybe +} + +export type ProductStock_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductStockInput = { + manageStock?: Maybe + isOnBackOrder?: Maybe + availableDate?: Maybe + stockAvailable?: Maybe + aggregateInventory?: Maybe +} + +export type ProductValidationSummary = { + __typename?: 'ProductValidationSummary' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + purchaseLocation?: Maybe + productUsage?: Maybe + fulfillmentTypesSupported?: Maybe> + goodsType?: Maybe + bundledProducts?: Maybe>> + upc?: Maybe + mfgPartNumber?: Maybe + variationProductCode?: Maybe + purchasableState?: Maybe + price?: Maybe + measurements?: Maybe + isPackagedStandAlone?: Maybe + image?: Maybe + productShortDescription?: Maybe + productName?: Maybe + categories?: Maybe>> + properties?: Maybe>> + pricingBehavior?: Maybe + inventoryInfo?: Maybe + isTaxable?: Maybe + productType?: Maybe +} + +export type ProductValidationSummary_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ProductVolumePrice = { + __typename?: 'ProductVolumePrice' + _get?: Maybe + _root?: Maybe + isCurrent?: Maybe + minQty: Scalars['Int'] + maxQty?: Maybe + priceRange?: Maybe + price?: Maybe +} + +export type ProductVolumePrice_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type Property = { + __typename?: 'Property' + _get?: Maybe + _root?: Maybe + name?: Maybe + isRequired?: Maybe + isMultiValued?: Maybe + propertyType?: Maybe +} + +export type Property_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PropertyInput = { + name?: Maybe + isRequired?: Maybe + isMultiValued?: Maybe + propertyType?: Maybe +} + +export type PropertyType = { + __typename?: 'PropertyType' + _get?: Maybe + _root?: Maybe + name?: Maybe + namespace?: Maybe + propertyTypeFQN?: Maybe + adminName?: Maybe + installationPackage?: Maybe + version?: Maybe + dataType?: Maybe + isQueryable?: Maybe + isSortable?: Maybe + isAggregatable?: Maybe +} + +export type PropertyType_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PropertyTypeCollection = { + __typename?: 'PropertyTypeCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type PropertyTypeCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PropertyTypeInput = { + name?: Maybe + namespace?: Maybe + propertyTypeFQN?: Maybe + adminName?: Maybe + installationPackage?: Maybe + version?: Maybe + dataType?: Maybe + isQueryable?: Maybe + isSortable?: Maybe + isAggregatable?: Maybe +} + +export type PurchaseOrderCustomField = { + __typename?: 'PurchaseOrderCustomField' + _get?: Maybe + _root?: Maybe + code?: Maybe + label?: Maybe + value?: Maybe +} + +export type PurchaseOrderCustomField_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PurchaseOrderCustomFieldInput = { + code?: Maybe + label?: Maybe + value?: Maybe +} + +export type PurchaseOrderPayment = { + __typename?: 'PurchaseOrderPayment' + _get?: Maybe + _root?: Maybe + purchaseOrderNumber?: Maybe + paymentTerm?: Maybe + customFields?: Maybe>> +} + +export type PurchaseOrderPayment_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PurchaseOrderPaymentInput = { + purchaseOrderNumber?: Maybe + paymentTerm?: Maybe + customFields?: Maybe>> +} + +export type PurchaseOrderPaymentTerm = { + __typename?: 'PurchaseOrderPaymentTerm' + _get?: Maybe + _root?: Maybe + code?: Maybe + description?: Maybe +} + +export type PurchaseOrderPaymentTerm_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PurchaseOrderPaymentTermInput = { + code?: Maybe + description?: Maybe +} + +export type PurchaseOrderTransaction = { + __typename?: 'PurchaseOrderTransaction' + _get?: Maybe + _root?: Maybe + customerPurchaseOrderAccountId: Scalars['Int'] + externalId?: Maybe + siteId: Scalars['Int'] + tenantId: Scalars['Int'] + transactionDate: Scalars['DateTime'] + orderId?: Maybe + purchaseOrderNumber?: Maybe + transactionAmount: Scalars['Float'] + creditLimit: Scalars['Float'] + additionalTransactionDetail?: Maybe + availableBalance: Scalars['Float'] + transactionTypeId: Scalars['Int'] + transactionDescription?: Maybe + author?: Maybe + auditInfo?: Maybe +} + +export type PurchaseOrderTransaction_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PurchaseOrderTransactionCollection = { + __typename?: 'PurchaseOrderTransactionCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type PurchaseOrderTransactionCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type PurchaseOrderTransactionInput = { + customerPurchaseOrderAccountId: Scalars['Int'] + externalId?: Maybe + siteId: Scalars['Int'] + tenantId: Scalars['Int'] + transactionDate: Scalars['DateTime'] + orderId?: Maybe + purchaseOrderNumber?: Maybe + transactionAmount: Scalars['Float'] + creditLimit: Scalars['Float'] + additionalTransactionDetail?: Maybe + availableBalance: Scalars['Float'] + transactionTypeId: Scalars['Int'] + transactionDescription?: Maybe + author?: Maybe + auditInfo?: Maybe +} + +export type Query = { + __typename?: 'Query' + customerAccountAttributeDefinitions?: Maybe + customerAccountAttributeVocabularyValues?: Maybe< + Array> + > + customerAccountAttributeDefinition?: Maybe + b2bAccountAttributes?: Maybe + b2bAccountAttributeVocabularyValues?: Maybe + b2bAccounts?: Maybe + b2bAccount?: Maybe + b2bAccountUsers?: Maybe + b2bAccountUserRoles?: Maybe + customerCreditAuditTrail?: Maybe + customerCredits?: Maybe + customerCredit?: Maybe + customerCreditTransactions?: Maybe + customerAccountAttributes?: Maybe + customerAccountAttribute?: Maybe + customerAccountCards?: Maybe + customerAccountCard?: Maybe + customerAccountContacts?: Maybe + customerAccountContact?: Maybe + customerAccounts?: Maybe + customerAccount?: Maybe + getCurrentAccount?: Maybe + customerAccountTransactions?: Maybe>> + customerAccountNotes?: Maybe + customerAccountNote?: Maybe + customerAccountSegments?: Maybe + customerAccountAuditLog?: Maybe + customerPurchaseOrderAccount?: Maybe + customerPurchaseOrderAccountTransaction?: Maybe + customerAccountLoginState?: Maybe + customerSegments?: Maybe + customerSegment?: Maybe + customerSets?: Maybe + customerSet?: Maybe + inStockNotifications?: Maybe + inStockNotification?: Maybe + authTicket?: Maybe + exchangeRates?: Maybe>> + resolvedPriceList?: Maybe + categoriesTree?: Maybe + categories?: Maybe + category?: Maybe + products?: Maybe + product?: Maybe + productVersion?: Maybe + productLocationInventory?: Maybe + suggestionSearch?: Maybe + productSearchRandomAccessCursor?: Maybe + productSearch?: Maybe + priceList?: Maybe + cartsSummary?: Maybe + userCartSummary?: Maybe + cartSummary?: Maybe + userCart?: Maybe + currentCart?: Maybe + cart?: Maybe + currentCartExtendedProperties?: Maybe>> + currentCartItems?: Maybe + cartItems?: Maybe + currentCartItem?: Maybe + cartItem?: Maybe + currentCartMessages?: Maybe + channels?: Maybe + channel?: Maybe + channelGroups?: Maybe + channelGroup?: Maybe + checkoutAttributes?: Maybe>> + checkout?: Maybe + checkouts?: Maybe + checkoutShippingMethods?: Maybe>> + checkoutActions?: Maybe>> + checkoutDestination?: Maybe + checkoutDestinations?: Maybe>> + orderPackageActions?: Maybe>> + orderPaymentActions?: Maybe>> + orderPayment?: Maybe + orderPayments?: Maybe + orderPickup?: Maybe + orderPickupActions?: Maybe>> + orderReturnableItems?: Maybe + orderShipment?: Maybe + orderShipmentMethods?: Maybe>> + orderValidationResults?: Maybe>> + orderAttributes?: Maybe>> + orderBillingInfo?: Maybe + orderCancelReasons?: Maybe + orders?: Maybe + order?: Maybe + orderActions?: Maybe>> + orderTaxableOrders?: Maybe>> + orderDigitalPackage?: Maybe + orderDigitalPackageActions?: Maybe>> + orderExtendedProperties?: Maybe>> + orderFulfillmentInfo?: Maybe + orderItems?: Maybe + orderNotes?: Maybe>> + orderNote?: Maybe + orderPackage?: Maybe + orderPackageLabel?: Maybe + quote?: Maybe + quotes?: Maybe + customerAccountQuote?: Maybe + quoteItems?: Maybe>> + customerAccountQuoteItems?: Maybe>> + quoteItem?: Maybe + returns?: Maybe + returnReasons?: Maybe + returnReason?: Maybe + returnActions?: Maybe>> + returnPayments?: Maybe + returnPayment?: Maybe + returnPaymentActions?: Maybe>> + returnShippingLabel?: Maybe + returnItems?: Maybe + returnItem?: Maybe + returnNotes?: Maybe>> + returnNote?: Maybe + returnPackage?: Maybe + returnPackageLabel?: Maybe + returnShipment?: Maybe + wishlists?: Maybe + wishlist?: Maybe + customerWishlist?: Maybe + wishlistItems?: Maybe + customerWishlistItems?: Maybe + wishlistItem?: Maybe + orderItem?: Maybe + documentListDocumentContent?: Maybe + documentListDocumentTransform?: Maybe + documentListTreeDocumentContent?: Maybe + documentListTreeDocumentTransform?: Maybe + documentListDocuments?: Maybe + documentListDocument?: Maybe + documentListTreeDocument?: Maybe + documentLists?: Maybe + documentList?: Maybe + documentListViewDocuments?: Maybe + documentListTypes?: Maybe + documentListType?: Maybe + documentDrafts?: Maybe + documentTypes?: Maybe + documentType?: Maybe + propertyTypes?: Maybe + propertyType?: Maybe + adminLocations?: Maybe + adminLocation?: Maybe + adminLocationAttributes?: Maybe + adminLocationAttributeVocabularyValues?: Maybe< + Array> + > + adminLocationAttribute?: Maybe + adminLocationGroups?: Maybe + dslLocation?: Maybe + spLocations?: Maybe + spLocation?: Maybe + usageTypeLocations?: Maybe + location?: Maybe + locationUsages?: Maybe + locationUsage?: Maybe + adminLocationTypes?: Maybe>> + adminLocationType?: Maybe + locationGroupConfig?: Maybe + locationGroup?: Maybe + entityListEntity?: Maybe + entityListEntities?: Maybe + entityListEntityContainer?: Maybe + entityListEntityContainers?: Maybe + entityList?: Maybe + entityLists?: Maybe + entityListViews?: Maybe + entityListView?: Maybe + entityListViewEntityContainers?: Maybe + entityListViewEntities?: Maybe + entityListViewEntityContainer?: Maybe + entityListViewEntity?: Maybe + carrierLocaleServiceTypes?: Maybe>> + localeServiceTypes?: Maybe>> + targetRules?: Maybe + targetRule?: Maybe + orderRoutingRoutingSuggestionLog?: Maybe>> +} + +export type QueryCustomerAccountAttributeDefinitionsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryCustomerAccountAttributeVocabularyValuesArgs = { + attributeFQN: Scalars['String'] +} + +export type QueryCustomerAccountAttributeDefinitionArgs = { + attributeFQN: Scalars['String'] +} + +export type QueryB2bAccountAttributesArgs = { + accountId: Scalars['Int'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryB2bAccountAttributeVocabularyValuesArgs = { + accountId: Scalars['Int'] + attributeFQN: Scalars['String'] +} + +export type QueryB2bAccountsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + fields?: Maybe + q?: Maybe + qLimit?: Maybe +} + +export type QueryB2bAccountArgs = { + accountId: Scalars['Int'] +} + +export type QueryB2bAccountUsersArgs = { + accountId: Scalars['Int'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + q?: Maybe + qLimit?: Maybe +} + +export type QueryB2bAccountUserRolesArgs = { + accountId: Scalars['Int'] + userId: Scalars['String'] +} + +export type QueryCustomerCreditAuditTrailArgs = { + code: Scalars['String'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryCustomerCreditsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryCustomerCreditArgs = { + code: Scalars['String'] +} + +export type QueryCustomerCreditTransactionsArgs = { + code: Scalars['String'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryCustomerAccountAttributesArgs = { + accountId: Scalars['Int'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + userId?: Maybe +} + +export type QueryCustomerAccountAttributeArgs = { + accountId: Scalars['Int'] + attributeFQN: Scalars['String'] + userId?: Maybe +} + +export type QueryCustomerAccountCardsArgs = { + accountId: Scalars['Int'] +} + +export type QueryCustomerAccountCardArgs = { + accountId: Scalars['Int'] + cardId: Scalars['String'] +} + +export type QueryCustomerAccountContactsArgs = { + accountId: Scalars['Int'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + userId?: Maybe +} + +export type QueryCustomerAccountContactArgs = { + accountId: Scalars['Int'] + contactId: Scalars['Int'] + userId?: Maybe +} + +export type QueryCustomerAccountsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + fields?: Maybe + q?: Maybe + qLimit?: Maybe + isAnonymous?: Maybe +} + +export type QueryCustomerAccountArgs = { + accountId: Scalars['Int'] + userId?: Maybe +} + +export type QueryCustomerAccountTransactionsArgs = { + accountId: Scalars['Int'] +} + +export type QueryCustomerAccountNotesArgs = { + accountId: Scalars['Int'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryCustomerAccountNoteArgs = { + accountId: Scalars['Int'] + noteId: Scalars['Int'] +} + +export type QueryCustomerAccountSegmentsArgs = { + accountId: Scalars['Int'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryCustomerAccountAuditLogArgs = { + accountId: Scalars['Int'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryCustomerPurchaseOrderAccountArgs = { + accountId: Scalars['Int'] +} + +export type QueryCustomerPurchaseOrderAccountTransactionArgs = { + accountId: Scalars['Int'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryCustomerAccountLoginStateArgs = { + accountId: Scalars['Int'] + userId?: Maybe +} + +export type QueryCustomerSegmentsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryCustomerSegmentArgs = { + id: Scalars['Int'] +} + +export type QueryCustomerSetsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe +} + +export type QueryCustomerSetArgs = { + code: Scalars['String'] +} + +export type QueryInStockNotificationsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryInStockNotificationArgs = { + id: Scalars['Int'] +} + +export type QueryAuthTicketArgs = { + accountId?: Maybe +} + +export type QueryResolvedPriceListArgs = { + customerAccountId?: Maybe +} + +export type QueryCategoriesArgs = { + filter?: Maybe + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe +} + +export type QueryCategoryArgs = { + categoryId: Scalars['Int'] + allowInactive?: Maybe +} + +export type QueryProductsArgs = { + filter?: Maybe + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + responseOptions?: Maybe + cursorMark?: Maybe + defaultSort?: Maybe + mid?: Maybe + includeAllImages?: Maybe +} + +export type QueryProductArgs = { + productCode: Scalars['String'] + variationProductCode?: Maybe + allowInactive?: Maybe + skipInventoryCheck?: Maybe + supressOutOfStock404?: Maybe + quantity?: Maybe + acceptVariantProductCode?: Maybe + purchaseLocation?: Maybe + variationProductCodeFilter?: Maybe + sliceValue?: Maybe + includeAllImages?: Maybe +} + +export type QueryProductVersionArgs = { + productCode: Scalars['String'] + productVersion?: Maybe + lastModifiedDate?: Maybe +} + +export type QueryProductLocationInventoryArgs = { + productCode: Scalars['String'] + locationCodes?: Maybe +} + +export type QuerySuggestionSearchArgs = { + query?: Maybe + groups?: Maybe + pageSize?: Maybe + mid?: Maybe + filter?: Maybe +} + +export type QueryProductSearchRandomAccessCursorArgs = { + query?: Maybe + filter?: Maybe + pageSize?: Maybe +} + +export type QueryProductSearchArgs = { + query?: Maybe + filter?: Maybe + facetTemplate?: Maybe + facetTemplateSubset?: Maybe + facet?: Maybe + facetFieldRangeQuery?: Maybe + facetHierPrefix?: Maybe + facetHierValue?: Maybe + facetHierDepth?: Maybe + facetStartIndex?: Maybe + facetPageSize?: Maybe + facetSettings?: Maybe + facetValueFilter?: Maybe + sortBy?: Maybe + pageSize?: Maybe + startIndex?: Maybe + searchSettings?: Maybe + enableSearchTuningRules?: Maybe + searchTuningRuleContext?: Maybe + searchTuningRuleCode?: Maybe + facetTemplateExclude?: Maybe + facetPrefix?: Maybe + responseOptions?: Maybe + cursorMark?: Maybe + facetValueSort?: Maybe + defaultSort?: Maybe + sortDefinitionName?: Maybe + defaultSortDefinitionName?: Maybe + shouldSlice?: Maybe + mid?: Maybe + omitNamespace?: Maybe +} + +export type QueryPriceListArgs = { + priceListCode?: Maybe +} + +export type QueryUserCartSummaryArgs = { + userId: Scalars['String'] +} + +export type QueryCartSummaryArgs = { + cartId: Scalars['String'] +} + +export type QueryUserCartArgs = { + userId: Scalars['String'] +} + +export type QueryCartArgs = { + cartId: Scalars['String'] +} + +export type QueryCartItemsArgs = { + cartId: Scalars['String'] +} + +export type QueryCurrentCartItemArgs = { + cartItemId: Scalars['String'] +} + +export type QueryCartItemArgs = { + cartId: Scalars['String'] + cartItemId: Scalars['String'] +} + +export type QueryChannelsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryChannelArgs = { + code: Scalars['String'] +} + +export type QueryChannelGroupsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryChannelGroupArgs = { + code: Scalars['String'] +} + +export type QueryCheckoutAttributesArgs = { + checkoutId: Scalars['String'] +} + +export type QueryCheckoutArgs = { + checkoutId: Scalars['String'] +} + +export type QueryCheckoutsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + q?: Maybe + qLimit?: Maybe +} + +export type QueryCheckoutShippingMethodsArgs = { + checkoutId: Scalars['String'] +} + +export type QueryCheckoutActionsArgs = { + checkoutId: Scalars['String'] +} + +export type QueryCheckoutDestinationArgs = { + checkoutId: Scalars['String'] + destinationId: Scalars['String'] +} + +export type QueryCheckoutDestinationsArgs = { + checkoutId: Scalars['String'] +} + +export type QueryOrderPackageActionsArgs = { + orderId: Scalars['String'] + packageId: Scalars['String'] +} + +export type QueryOrderPaymentActionsArgs = { + orderId: Scalars['String'] + paymentId: Scalars['String'] +} + +export type QueryOrderPaymentArgs = { + orderId: Scalars['String'] + paymentId: Scalars['String'] +} + +export type QueryOrderPaymentsArgs = { + orderId: Scalars['String'] +} + +export type QueryOrderPickupArgs = { + orderId: Scalars['String'] + pickupId: Scalars['String'] +} + +export type QueryOrderPickupActionsArgs = { + orderId: Scalars['String'] + pickupId: Scalars['String'] +} + +export type QueryOrderReturnableItemsArgs = { + orderId: Scalars['String'] +} + +export type QueryOrderShipmentArgs = { + orderId: Scalars['String'] + shipmentId: Scalars['String'] +} + +export type QueryOrderShipmentMethodsArgs = { + orderId: Scalars['String'] + draft?: Maybe +} + +export type QueryOrderValidationResultsArgs = { + orderId: Scalars['String'] +} + +export type QueryOrderAttributesArgs = { + orderId: Scalars['String'] +} + +export type QueryOrderBillingInfoArgs = { + orderId: Scalars['String'] + draft?: Maybe +} + +export type QueryOrderCancelReasonsArgs = { + category?: Maybe +} + +export type QueryOrdersArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + q?: Maybe + qLimit?: Maybe + includeBin?: Maybe + mode?: Maybe +} + +export type QueryOrderArgs = { + orderId: Scalars['String'] + draft?: Maybe + includeBin?: Maybe + mode?: Maybe +} + +export type QueryOrderActionsArgs = { + orderId: Scalars['String'] +} + +export type QueryOrderTaxableOrdersArgs = { + orderId: Scalars['String'] +} + +export type QueryOrderDigitalPackageArgs = { + orderId: Scalars['String'] + digitalPackageId: Scalars['String'] +} + +export type QueryOrderDigitalPackageActionsArgs = { + orderId: Scalars['String'] + digitalPackageId: Scalars['String'] +} + +export type QueryOrderExtendedPropertiesArgs = { + orderId: Scalars['String'] + draft?: Maybe +} + +export type QueryOrderFulfillmentInfoArgs = { + orderId: Scalars['String'] + draft?: Maybe +} + +export type QueryOrderItemsArgs = { + orderId: Scalars['String'] + draft?: Maybe +} + +export type QueryOrderNotesArgs = { + orderId: Scalars['String'] +} + +export type QueryOrderNoteArgs = { + orderId: Scalars['String'] + noteId: Scalars['String'] +} + +export type QueryOrderPackageArgs = { + orderId: Scalars['String'] + packageId: Scalars['String'] +} + +export type QueryOrderPackageLabelArgs = { + orderId: Scalars['String'] + packageId: Scalars['String'] +} + +export type QueryQuoteArgs = { + quoteId: Scalars['String'] + draft?: Maybe +} + +export type QueryQuotesArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + q?: Maybe + qLimit?: Maybe +} + +export type QueryCustomerAccountQuoteArgs = { + customerAccountId: Scalars['Int'] + quoteName: Scalars['String'] + draft?: Maybe +} + +export type QueryQuoteItemsArgs = { + quoteId: Scalars['String'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryCustomerAccountQuoteItemsArgs = { + customerAccountId: Scalars['Int'] + quoteName: Scalars['String'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryQuoteItemArgs = { + quoteId: Scalars['String'] + quoteItemId: Scalars['String'] + draft?: Maybe +} + +export type QueryReturnsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + q?: Maybe +} + +export type QueryReturnReasonArgs = { + returnId: Scalars['String'] +} + +export type QueryReturnActionsArgs = { + returnId: Scalars['String'] +} + +export type QueryReturnPaymentsArgs = { + returnId: Scalars['String'] +} + +export type QueryReturnPaymentArgs = { + returnId: Scalars['String'] + paymentId: Scalars['String'] +} + +export type QueryReturnPaymentActionsArgs = { + returnId: Scalars['String'] + paymentId: Scalars['String'] +} + +export type QueryReturnShippingLabelArgs = { + returnId: Scalars['String'] +} + +export type QueryReturnItemsArgs = { + returnId: Scalars['String'] +} + +export type QueryReturnItemArgs = { + returnId: Scalars['String'] + returnItemId: Scalars['String'] +} + +export type QueryReturnNotesArgs = { + returnId: Scalars['String'] +} + +export type QueryReturnNoteArgs = { + returnId: Scalars['String'] + noteId: Scalars['String'] +} + +export type QueryReturnPackageArgs = { + returnId: Scalars['String'] + packageId: Scalars['String'] +} + +export type QueryReturnPackageLabelArgs = { + returnId: Scalars['String'] + packageId: Scalars['String'] + returnAsBase64Png?: Maybe +} + +export type QueryReturnShipmentArgs = { + returnId: Scalars['String'] + shipmentId: Scalars['String'] +} + +export type QueryWishlistsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + q?: Maybe + qLimit?: Maybe +} + +export type QueryWishlistArgs = { + wishlistId: Scalars['String'] +} + +export type QueryCustomerWishlistArgs = { + customerAccountId: Scalars['Int'] + wishlistName: Scalars['String'] +} + +export type QueryWishlistItemsArgs = { + wishlistId: Scalars['String'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryCustomerWishlistItemsArgs = { + customerAccountId: Scalars['Int'] + wishlistName: Scalars['String'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryWishlistItemArgs = { + wishlistId: Scalars['String'] + wishlistItemId: Scalars['String'] +} + +export type QueryOrderItemArgs = { + orderId?: Maybe + lineId?: Maybe + orderItemId?: Maybe + draft?: Maybe +} + +export type QueryDocumentListDocumentContentArgs = { + documentListName: Scalars['String'] + documentId: Scalars['String'] +} + +export type QueryDocumentListDocumentTransformArgs = { + documentListName: Scalars['String'] + documentId: Scalars['String'] + width?: Maybe + height?: Maybe + max?: Maybe + maxWidth?: Maybe + maxHeight?: Maybe + crop?: Maybe + quality?: Maybe +} + +export type QueryDocumentListTreeDocumentContentArgs = { + documentListName: Scalars['String'] + documentName: Scalars['String'] +} + +export type QueryDocumentListTreeDocumentTransformArgs = { + documentListName: Scalars['String'] + documentName: Scalars['String'] + width?: Maybe + height?: Maybe + max?: Maybe + maxWidth?: Maybe + maxHeight?: Maybe + crop?: Maybe + quality?: Maybe +} + +export type QueryDocumentListDocumentsArgs = { + documentListName: Scalars['String'] + filter?: Maybe + sortBy?: Maybe + pageSize?: Maybe + startIndex?: Maybe + includeInactive?: Maybe + path?: Maybe + includeSubPaths?: Maybe + queryScope?: Maybe +} + +export type QueryDocumentListDocumentArgs = { + documentListName: Scalars['String'] + documentId: Scalars['String'] + includeInactive?: Maybe +} + +export type QueryDocumentListTreeDocumentArgs = { + documentListName: Scalars['String'] + documentName: Scalars['String'] + includeInactive?: Maybe +} + +export type QueryDocumentListsArgs = { + pageSize?: Maybe + startIndex?: Maybe +} + +export type QueryDocumentListArgs = { + documentListName: Scalars['String'] +} + +export type QueryDocumentListViewDocumentsArgs = { + documentListName: Scalars['String'] + viewName: Scalars['String'] + filter?: Maybe + sortBy?: Maybe + pageSize?: Maybe + startIndex?: Maybe + includeInactive?: Maybe +} + +export type QueryDocumentListTypesArgs = { + pageSize?: Maybe + startIndex?: Maybe +} + +export type QueryDocumentListTypeArgs = { + documentListTypeFQN: Scalars['String'] +} + +export type QueryDocumentDraftsArgs = { + pageSize?: Maybe + startIndex?: Maybe + documentLists?: Maybe +} + +export type QueryDocumentTypesArgs = { + pageSize?: Maybe + startIndex?: Maybe +} + +export type QueryDocumentTypeArgs = { + documentTypeName: Scalars['String'] +} + +export type QueryPropertyTypesArgs = { + pageSize?: Maybe + startIndex?: Maybe +} + +export type QueryPropertyTypeArgs = { + propertyTypeName: Scalars['String'] +} + +export type QueryAdminLocationsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryAdminLocationArgs = { + locationCode: Scalars['String'] +} + +export type QueryAdminLocationAttributesArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryAdminLocationAttributeVocabularyValuesArgs = { + attributeFQN: Scalars['String'] +} + +export type QueryAdminLocationAttributeArgs = { + attributeFQN: Scalars['String'] +} + +export type QueryAdminLocationGroupsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryDslLocationArgs = { + includeAttributeDefinition?: Maybe +} + +export type QuerySpLocationsArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + includeAttributeDefinition?: Maybe +} + +export type QuerySpLocationArgs = { + locationCode: Scalars['String'] + includeAttributeDefinition?: Maybe +} + +export type QueryUsageTypeLocationsArgs = { + locationUsageType: Scalars['String'] + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe + includeAttributeDefinition?: Maybe +} + +export type QueryLocationArgs = { + locationCode: Scalars['String'] + includeAttributeDefinition?: Maybe +} + +export type QueryLocationUsageArgs = { + code: Scalars['String'] +} + +export type QueryAdminLocationTypeArgs = { + locationTypeCode: Scalars['String'] +} + +export type QueryLocationGroupConfigArgs = { + locationGroupId?: Maybe + locationGroupCode?: Maybe + locationCode?: Maybe +} + +export type QueryLocationGroupArgs = { + groupId?: Maybe + locationGroupCode?: Maybe +} + +export type QueryEntityListEntityArgs = { + entityListFullName: Scalars['String'] + id: Scalars['String'] +} + +export type QueryEntityListEntitiesArgs = { + entityListFullName: Scalars['String'] + pageSize?: Maybe + startIndex?: Maybe + filter?: Maybe + sortBy?: Maybe +} + +export type QueryEntityListEntityContainerArgs = { + entityListFullName: Scalars['String'] + id: Scalars['String'] +} + +export type QueryEntityListEntityContainersArgs = { + entityListFullName: Scalars['String'] + pageSize?: Maybe + startIndex?: Maybe + filter?: Maybe + sortBy?: Maybe +} + +export type QueryEntityListArgs = { + entityListFullName: Scalars['String'] +} + +export type QueryEntityListsArgs = { + pageSize?: Maybe + startIndex?: Maybe + filter?: Maybe + sortBy?: Maybe +} + +export type QueryEntityListViewsArgs = { + entityListFullName: Scalars['String'] +} + +export type QueryEntityListViewArgs = { + entityListFullName: Scalars['String'] + viewName: Scalars['String'] +} + +export type QueryEntityListViewEntityContainersArgs = { + entityListFullName: Scalars['String'] + viewName: Scalars['String'] + pageSize?: Maybe + startIndex?: Maybe + filter?: Maybe +} + +export type QueryEntityListViewEntitiesArgs = { + entityListFullName: Scalars['String'] + viewName: Scalars['String'] + pageSize?: Maybe + startIndex?: Maybe + filter?: Maybe +} + +export type QueryEntityListViewEntityContainerArgs = { + entityListFullName: Scalars['String'] + viewName: Scalars['String'] + entityId: Scalars['String'] +} + +export type QueryEntityListViewEntityArgs = { + entityListFullName: Scalars['String'] + viewName: Scalars['String'] + entityId: Scalars['String'] +} + +export type QueryCarrierLocaleServiceTypesArgs = { + carrierId: Scalars['String'] + localeCode: Scalars['String'] +} + +export type QueryLocaleServiceTypesArgs = { + localeCode: Scalars['String'] +} + +export type QueryTargetRulesArgs = { + startIndex?: Maybe + pageSize?: Maybe + sortBy?: Maybe + filter?: Maybe +} + +export type QueryTargetRuleArgs = { + code: Scalars['String'] +} + +export type QueryOrderRoutingRoutingSuggestionLogArgs = { + externalResponseID?: Maybe + orderID?: Maybe + responseID?: Maybe + suggestionID?: Maybe +} + +export type Quote = { + __typename?: 'Quote' + _get?: Maybe + _root?: Maybe + id?: Maybe + name?: Maybe + siteId: Scalars['Int'] + tenantId: Scalars['Int'] + number?: Maybe + submittedDate?: Maybe + items?: Maybe>> + auditHistory?: Maybe>> + auditInfo?: Maybe + comments?: Maybe>> + expirationDate?: Maybe + fulfillmentInfo?: Maybe + userId?: Maybe + customerAccountId?: Maybe + email?: Maybe + customerTaxId?: Maybe + isTaxExempt?: Maybe + currencyCode?: Maybe + priceListCode?: Maybe + data?: Maybe + taxData?: Maybe + channelCode?: Maybe + locationCode?: Maybe + ipAddress?: Maybe + sourceDevice?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + orderDiscounts?: Maybe>> + subTotal: Scalars['Float'] + itemLevelProductDiscountTotal: Scalars['Float'] + orderLevelProductDiscountTotal: Scalars['Float'] + itemTaxTotal: Scalars['Float'] + adjustment?: Maybe + itemTotal: Scalars['Float'] + total: Scalars['Float'] + shippingDiscounts?: Maybe>> + itemLevelShippingDiscountTotal: Scalars['Float'] + orderLevelShippingDiscountTotal: Scalars['Float'] + shippingAmount: Scalars['Float'] + shippingAdjustment?: Maybe + shippingSubTotal: Scalars['Float'] + shippingTax?: Maybe + shippingTaxTotal: Scalars['Float'] + shippingTotal: Scalars['Float'] + handlingDiscounts?: Maybe>> + itemLevelHandlingDiscountTotal: Scalars['Float'] + orderLevelHandlingDiscountTotal: Scalars['Float'] + handlingAmount?: Maybe + handlingAdjustment?: Maybe + handlingSubTotal: Scalars['Float'] + handlingTax?: Maybe + handlingTaxTotal: Scalars['Float'] + handlingTotal: Scalars['Float'] + dutyAmount?: Maybe + dutyTotal: Scalars['Float'] + feeTotal: Scalars['Float'] + isDraft?: Maybe + hasDraft?: Maybe + status?: Maybe + couponCodes?: Maybe> + invalidCoupons?: Maybe>> +} + +export type Quote_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type QuoteCollection = { + __typename?: 'QuoteCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type QuoteCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type QuoteComment = { + __typename?: 'QuoteComment' + _get?: Maybe + _root?: Maybe + id?: Maybe + text?: Maybe + auditInfo?: Maybe +} + +export type QuoteComment_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type QuoteCommentInput = { + id?: Maybe + text?: Maybe + auditInfo?: Maybe +} + +export type QuoteInput = { + id?: Maybe + name?: Maybe + siteId: Scalars['Int'] + tenantId: Scalars['Int'] + number?: Maybe + submittedDate?: Maybe + items?: Maybe>> + auditHistory?: Maybe>> + auditInfo?: Maybe + comments?: Maybe>> + expirationDate?: Maybe + fulfillmentInfo?: Maybe + userId?: Maybe + customerAccountId?: Maybe + email?: Maybe + customerTaxId?: Maybe + isTaxExempt?: Maybe + currencyCode?: Maybe + priceListCode?: Maybe + data?: Maybe + taxData?: Maybe + channelCode?: Maybe + locationCode?: Maybe + ipAddress?: Maybe + sourceDevice?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + orderDiscounts?: Maybe>> + subTotal: Scalars['Float'] + itemLevelProductDiscountTotal: Scalars['Float'] + orderLevelProductDiscountTotal: Scalars['Float'] + itemTaxTotal: Scalars['Float'] + adjustment?: Maybe + itemTotal: Scalars['Float'] + total: Scalars['Float'] + shippingDiscounts?: Maybe>> + itemLevelShippingDiscountTotal: Scalars['Float'] + orderLevelShippingDiscountTotal: Scalars['Float'] + shippingAmount: Scalars['Float'] + shippingAdjustment?: Maybe + shippingSubTotal: Scalars['Float'] + shippingTax?: Maybe + shippingTaxTotal: Scalars['Float'] + shippingTotal: Scalars['Float'] + handlingDiscounts?: Maybe>> + itemLevelHandlingDiscountTotal: Scalars['Float'] + orderLevelHandlingDiscountTotal: Scalars['Float'] + handlingAmount?: Maybe + handlingAdjustment?: Maybe + handlingSubTotal: Scalars['Float'] + handlingTax?: Maybe + handlingTaxTotal: Scalars['Float'] + handlingTotal: Scalars['Float'] + dutyAmount?: Maybe + dutyTotal: Scalars['Float'] + feeTotal: Scalars['Float'] + isDraft?: Maybe + hasDraft?: Maybe + status?: Maybe + couponCodes?: Maybe> + invalidCoupons?: Maybe>> +} + +export type ReasonCollection = { + __typename?: 'ReasonCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe> +} + +export type ReasonCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type Refund = { + __typename?: 'Refund' + _get?: Maybe + _root?: Maybe + id?: Maybe + orderId?: Maybe + reason?: Maybe + reasonCode?: Maybe + payment?: Maybe + amount: Scalars['Float'] + refundMethod?: Maybe + auditInfo?: Maybe +} + +export type Refund_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type RefundInput = { + id?: Maybe + orderId?: Maybe + reason?: Maybe + reasonCode?: Maybe + payment?: Maybe + amount: Scalars['Float'] + refundMethod?: Maybe + auditInfo?: Maybe +} + +export type RegularHours = { + __typename?: 'RegularHours' + _get?: Maybe + _root?: Maybe + sunday?: Maybe + monday?: Maybe + tuesday?: Maybe + wednesday?: Maybe + thursday?: Maybe + friday?: Maybe + saturday?: Maybe + timeZone?: Maybe +} + +export type RegularHours_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type RegularHoursInput = { + sunday?: Maybe + monday?: Maybe + tuesday?: Maybe + wednesday?: Maybe + thursday?: Maybe + friday?: Maybe + saturday?: Maybe + timeZone?: Maybe +} + +export type RepriceShipmentObjectInput = { + originalShipment?: Maybe + newShipment?: Maybe +} + +export type ResetPasswordInfoInput = { + emailAddress?: Maybe + userName?: Maybe + customerSetCode?: Maybe +} + +export type ResolvedPriceList = { + __typename?: 'ResolvedPriceList' + _get?: Maybe + _root?: Maybe + priceListCode?: Maybe + priceListId: Scalars['Int'] + name?: Maybe + description?: Maybe +} + +export type ResolvedPriceList_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type RestockableReturnItemInput = { + returnItemId?: Maybe + quantity: Scalars['Int'] + locationCode?: Maybe +} + +export type ReturnActionInput = { + actionName?: Maybe + returnIds?: Maybe> +} + +export type ReturnBundle = { + __typename?: 'ReturnBundle' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + quantity: Scalars['Int'] +} + +export type ReturnBundle_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ReturnBundleInput = { + productCode?: Maybe + quantity: Scalars['Int'] +} + +export type ReturnCollection = { + __typename?: 'ReturnCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type ReturnCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ReturnItem = { + __typename?: 'ReturnItem' + _get?: Maybe + _root?: Maybe + id?: Maybe + orderItemId?: Maybe + orderLineId?: Maybe + orderItemOptionAttributeFQN?: Maybe + product?: Maybe + reasons?: Maybe>> + excludeProductExtras?: Maybe + returnType?: Maybe + returnNotRequired?: Maybe + quantityReceived: Scalars['Int'] + receiveStatus?: Maybe + quantityShipped: Scalars['Int'] + replaceStatus?: Maybe + quantityRestockable: Scalars['Int'] + quantityRestocked: Scalars['Int'] + refundAmount?: Maybe + refundStatus?: Maybe + quantityReplaced?: Maybe + notes?: Maybe>> + productLossAmount?: Maybe + productLossTaxAmount?: Maybe + shippingLossAmount?: Maybe + shippingLossTaxAmount?: Maybe + bundledProducts?: Maybe>> + totalWithoutWeightedShippingAndHandling?: Maybe + totalWithWeightedShippingAndHandling?: Maybe + shipmentItemId?: Maybe + shipmentNumber?: Maybe +} + +export type ReturnItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ReturnItemCollection = { + __typename?: 'ReturnItemCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type ReturnItemCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ReturnItemInput = { + id?: Maybe + orderItemId?: Maybe + orderLineId?: Maybe + orderItemOptionAttributeFQN?: Maybe + product?: Maybe + reasons?: Maybe>> + excludeProductExtras?: Maybe + returnType?: Maybe + returnNotRequired?: Maybe + quantityReceived: Scalars['Int'] + receiveStatus?: Maybe + quantityShipped: Scalars['Int'] + replaceStatus?: Maybe + quantityRestockable: Scalars['Int'] + quantityRestocked: Scalars['Int'] + refundAmount?: Maybe + refundStatus?: Maybe + quantityReplaced?: Maybe + notes?: Maybe>> + productLossAmount?: Maybe + productLossTaxAmount?: Maybe + shippingLossAmount?: Maybe + shippingLossTaxAmount?: Maybe + bundledProducts?: Maybe>> + totalWithoutWeightedShippingAndHandling?: Maybe + totalWithWeightedShippingAndHandling?: Maybe + shipmentItemId?: Maybe + shipmentNumber?: Maybe +} + +export type ReturnItemSpecifierInput = { + returnItemId?: Maybe + quantity: Scalars['Int'] +} + +export type ReturnObj = { + __typename?: 'ReturnObj' + _get?: Maybe + _root?: Maybe + id?: Maybe + customerAccountId?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + availableActions?: Maybe> + returnNumber?: Maybe + contact?: Maybe + locationCode?: Maybe + originalOrderId?: Maybe + originalOrderNumber?: Maybe + returnOrderId?: Maybe + currencyCode?: Maybe + status?: Maybe + receiveStatus?: Maybe + refundStatus?: Maybe + replaceStatus?: Maybe + items?: Maybe>> + notes?: Maybe>> + rmaDeadline?: Maybe + returnType?: Maybe + refundAmount?: Maybe + auditInfo?: Maybe + payments?: Maybe>> + packages?: Maybe>> + productLossTotal?: Maybe + shippingLossTotal?: Maybe + lossTotal?: Maybe + productLossTaxTotal?: Maybe + shippingLossTaxTotal?: Maybe + tenantId?: Maybe + siteId?: Maybe + userId?: Maybe + channelCode?: Maybe + changeMessages?: Maybe>> + actionRequired?: Maybe + isUnified?: Maybe +} + +export type ReturnObj_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ReturnObjInput = { + id?: Maybe + customerAccountId?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + availableActions?: Maybe> + returnNumber?: Maybe + contact?: Maybe + locationCode?: Maybe + originalOrderId?: Maybe + originalOrderNumber?: Maybe + returnOrderId?: Maybe + currencyCode?: Maybe + status?: Maybe + receiveStatus?: Maybe + refundStatus?: Maybe + replaceStatus?: Maybe + items?: Maybe>> + notes?: Maybe>> + rmaDeadline?: Maybe + returnType?: Maybe + refundAmount?: Maybe + auditInfo?: Maybe + payments?: Maybe>> + packages?: Maybe>> + productLossTotal?: Maybe + shippingLossTotal?: Maybe + lossTotal?: Maybe + productLossTaxTotal?: Maybe + shippingLossTaxTotal?: Maybe + tenantId?: Maybe + siteId?: Maybe + userId?: Maybe + channelCode?: Maybe + changeMessages?: Maybe>> + actionRequired?: Maybe + isUnified?: Maybe +} + +export type ReturnReason = { + __typename?: 'ReturnReason' + _get?: Maybe + _root?: Maybe + reason?: Maybe + quantity: Scalars['Int'] +} + +export type ReturnReason_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ReturnReasonInput = { + reason?: Maybe + quantity: Scalars['Int'] +} + +export type SearchSuggestion = { + __typename?: 'SearchSuggestion' + _get?: Maybe + _root?: Maybe + suggestionType?: Maybe + suggestion?: Maybe +} + +export type SearchSuggestion_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type SearchSuggestionGroup = { + __typename?: 'SearchSuggestionGroup' + _get?: Maybe + _root?: Maybe + name?: Maybe + suggestions?: Maybe>> +} + +export type SearchSuggestionGroup_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type SearchSuggestionResult = { + __typename?: 'SearchSuggestionResult' + _get?: Maybe + _root?: Maybe + query?: Maybe + suggestionGroups?: Maybe>> +} + +export type SearchSuggestionResult_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ServiceType = { + __typename?: 'ServiceType' + _get?: Maybe + _root?: Maybe + code?: Maybe + deliveryDuration?: Maybe + content?: Maybe +} + +export type ServiceType_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ServiceTypeLocalizedContent = { + __typename?: 'ServiceTypeLocalizedContent' + _get?: Maybe + _root?: Maybe + localeCode?: Maybe + name?: Maybe +} + +export type ServiceTypeLocalizedContent_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type Shipment = { + __typename?: 'Shipment' + _get?: Maybe + _root?: Maybe + id?: Maybe + externalShipmentId?: Maybe + number?: Maybe + orderId?: Maybe + orderNumber: Scalars['Int'] + email?: Maybe + currencyCode?: Maybe + customerAccountId?: Maybe + customerTaxId?: Maybe + shipmentType?: Maybe + shippingMethodCode?: Maybe + shippingMethodName?: Maybe + fulfillmentLocationCode?: Maybe + origin?: Maybe + destination?: Maybe + shipmentStatus?: Maybe + shipmentStatusReason?: Maybe + transferShipmentNumbers?: Maybe> + isTransfer?: Maybe + originalShipmentNumber?: Maybe + parentShipmentNumber?: Maybe + fulfillmentStatus?: Maybe + workflowProcessId?: Maybe + workflowProcessContainerId?: Maybe + workflowState?: Maybe + backorderCreatedDate?: Maybe + fulfillmentDate?: Maybe + orderSubmitDate?: Maybe + pickStatus?: Maybe + pickType?: Maybe + changeMessages?: Maybe>> + packages?: Maybe>> + items?: Maybe>> + canceledItems?: Maybe>> + data?: Maybe + taxData?: Maybe + auditInfo?: Maybe + shipmentAdjustment: Scalars['Float'] + lineItemSubtotal: Scalars['Float'] + lineItemTaxAdjustment: Scalars['Float'] + lineItemTaxTotal: Scalars['Float'] + lineItemTotal: Scalars['Float'] + shippingAdjustment: Scalars['Float'] + shippingSubtotal: Scalars['Float'] + shippingTaxAdjustment: Scalars['Float'] + shippingTaxTotal: Scalars['Float'] + shippingTotal: Scalars['Float'] + handlingAdjustment: Scalars['Float'] + handlingSubtotal: Scalars['Float'] + handlingTaxAdjustment: Scalars['Float'] + handlingTaxTotal: Scalars['Float'] + handlingTotal: Scalars['Float'] + dutyAdjustment: Scalars['Float'] + dutyTotal: Scalars['Float'] + total: Scalars['Float'] + cost?: Maybe + externalOrderId?: Maybe + isExpress?: Maybe + readyToCapture?: Maybe + pickupInfo?: Maybe + shopperNotes?: Maybe + customer?: Maybe +} + +export type Shipment_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ShipmentAdjustmentInput = { + itemAdjustment?: Maybe + itemTaxAdjustment?: Maybe + shippingAdjustment?: Maybe + shippingTaxAdjustment?: Maybe + handlingAdjustment?: Maybe + handlingTaxAdjustment?: Maybe +} + +export type ShipmentInput = { + id?: Maybe + externalShipmentId?: Maybe + number?: Maybe + orderId?: Maybe + orderNumber: Scalars['Int'] + email?: Maybe + currencyCode?: Maybe + customerAccountId?: Maybe + customerTaxId?: Maybe + shipmentType?: Maybe + shippingMethodCode?: Maybe + shippingMethodName?: Maybe + fulfillmentLocationCode?: Maybe + origin?: Maybe + destination?: Maybe + shipmentStatus?: Maybe + shipmentStatusReason?: Maybe + transferShipmentNumbers?: Maybe> + isTransfer?: Maybe + originalShipmentNumber?: Maybe + parentShipmentNumber?: Maybe + fulfillmentStatus?: Maybe + workflowProcessId?: Maybe + workflowProcessContainerId?: Maybe + workflowState?: Maybe + backorderCreatedDate?: Maybe + fulfillmentDate?: Maybe + orderSubmitDate?: Maybe + pickStatus?: Maybe + pickType?: Maybe + changeMessages?: Maybe>> + packages?: Maybe>> + items?: Maybe>> + canceledItems?: Maybe>> + data?: Maybe + taxData?: Maybe + auditInfo?: Maybe + shipmentAdjustment: Scalars['Float'] + lineItemSubtotal: Scalars['Float'] + lineItemTaxAdjustment: Scalars['Float'] + lineItemTaxTotal: Scalars['Float'] + lineItemTotal: Scalars['Float'] + shippingAdjustment: Scalars['Float'] + shippingSubtotal: Scalars['Float'] + shippingTaxAdjustment: Scalars['Float'] + shippingTaxTotal: Scalars['Float'] + shippingTotal: Scalars['Float'] + handlingAdjustment: Scalars['Float'] + handlingSubtotal: Scalars['Float'] + handlingTaxAdjustment: Scalars['Float'] + handlingTaxTotal: Scalars['Float'] + handlingTotal: Scalars['Float'] + dutyAdjustment: Scalars['Float'] + dutyTotal: Scalars['Float'] + total: Scalars['Float'] + cost?: Maybe + externalOrderId?: Maybe + isExpress?: Maybe + readyToCapture?: Maybe + pickupInfo?: Maybe + shopperNotes?: Maybe + customer?: Maybe +} + +export type ShipmentItem = { + __typename?: 'ShipmentItem' + _get?: Maybe + _root?: Maybe + lineId: Scalars['Int'] + originalOrderItemId?: Maybe + parentId?: Maybe + productCode?: Maybe + variationProductCode?: Maybe + optionAttributeFQN?: Maybe + name?: Maybe + auditInfo?: Maybe + fulfillmentLocationCode?: Maybe + imageUrl?: Maybe + isTaxable?: Maybe + quantity: Scalars['Int'] + unitPrice: Scalars['Float'] + actualPrice: Scalars['Float'] + overridePrice?: Maybe + itemDiscount: Scalars['Float'] + lineItemCost: Scalars['Float'] + itemTax: Scalars['Float'] + shipping: Scalars['Float'] + shippingDiscount: Scalars['Float'] + shippingTax: Scalars['Float'] + handling: Scalars['Float'] + handlingDiscount: Scalars['Float'] + handlingTax: Scalars['Float'] + duty: Scalars['Float'] + isPackagedStandAlone?: Maybe + readyForPickupQuantity?: Maybe + backorderReleaseDate?: Maybe + measurements?: Maybe + options?: Maybe>> + data?: Maybe + taxData?: Maybe + weightedShipmentAdjustment: Scalars['Float'] + weightedLineItemTaxAdjustment: Scalars['Float'] + weightedShippingAdjustment: Scalars['Float'] + weightedShippingTaxAdjustment: Scalars['Float'] + weightedHandlingAdjustment: Scalars['Float'] + weightedHandlingTaxAdjustment: Scalars['Float'] + weightedDutyAdjustment: Scalars['Float'] + taxableShipping: Scalars['Float'] + taxableLineItemCost: Scalars['Float'] + taxableHandling: Scalars['Float'] + fulfillmentFields?: Maybe>> + isAssemblyRequired?: Maybe + parentItemId?: Maybe + childItemIds?: Maybe> + giftCards?: Maybe>> +} + +export type ShipmentItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ShipmentItemAdjustmentInput = { + overridePrice?: Maybe +} + +export type ShipmentItemInput = { + lineId: Scalars['Int'] + originalOrderItemId?: Maybe + parentId?: Maybe + productCode?: Maybe + variationProductCode?: Maybe + optionAttributeFQN?: Maybe + name?: Maybe + auditInfo?: Maybe + fulfillmentLocationCode?: Maybe + imageUrl?: Maybe + isTaxable?: Maybe + quantity: Scalars['Int'] + unitPrice: Scalars['Float'] + actualPrice: Scalars['Float'] + overridePrice?: Maybe + itemDiscount: Scalars['Float'] + lineItemCost: Scalars['Float'] + itemTax: Scalars['Float'] + shipping: Scalars['Float'] + shippingDiscount: Scalars['Float'] + shippingTax: Scalars['Float'] + handling: Scalars['Float'] + handlingDiscount: Scalars['Float'] + handlingTax: Scalars['Float'] + duty: Scalars['Float'] + isPackagedStandAlone?: Maybe + readyForPickupQuantity?: Maybe + backorderReleaseDate?: Maybe + measurements?: Maybe + options?: Maybe>> + data?: Maybe + taxData?: Maybe + weightedShipmentAdjustment: Scalars['Float'] + weightedLineItemTaxAdjustment: Scalars['Float'] + weightedShippingAdjustment: Scalars['Float'] + weightedShippingTaxAdjustment: Scalars['Float'] + weightedHandlingAdjustment: Scalars['Float'] + weightedHandlingTaxAdjustment: Scalars['Float'] + weightedDutyAdjustment: Scalars['Float'] + taxableShipping: Scalars['Float'] + taxableLineItemCost: Scalars['Float'] + taxableHandling: Scalars['Float'] + fulfillmentFields?: Maybe>> + isAssemblyRequired?: Maybe + parentItemId?: Maybe + childItemIds?: Maybe> + giftCards?: Maybe>> +} + +export type ShipmentStatusReason = { + __typename?: 'ShipmentStatusReason' + _get?: Maybe + _root?: Maybe + reasonCode?: Maybe + moreInfo?: Maybe +} + +export type ShipmentStatusReason_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ShipmentStatusReasonInput = { + reasonCode?: Maybe + moreInfo?: Maybe +} + +export type ShippingAddressInput = { + addressID: Scalars['Int'] + addressLine1: Scalars['String'] + city: Scalars['String'] + countryCode: Scalars['String'] + customerID: Scalars['Int'] + latitude: Scalars['Float'] + longitude: Scalars['Float'] + phone: Scalars['String'] + postalCode: Scalars['String'] + state: Scalars['String'] +} + +export type ShippingDiscount = { + __typename?: 'ShippingDiscount' + _get?: Maybe + _root?: Maybe + methodCode?: Maybe + discount?: Maybe +} + +export type ShippingDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ShippingDiscountInput = { + methodCode?: Maybe + discount?: Maybe +} + +export type ShippingMethodMappings = { + __typename?: 'ShippingMethodMappings' + _get?: Maybe + _root?: Maybe + shippingMethods?: Maybe> + returnLabelShippingMethod?: Maybe + standardDefault?: Maybe + express1DayDefault?: Maybe + express2DayDefault?: Maybe + express3DayDefault?: Maybe + enableSmartPost?: Maybe + internationalUsReturnLabelShippingMethod?: Maybe +} + +export type ShippingMethodMappings_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ShippingOriginContact = { + __typename?: 'ShippingOriginContact' + _get?: Maybe + _root?: Maybe + firstName?: Maybe + middleNameOrInitial?: Maybe + lastNameOrSurname?: Maybe + companyOrOrganization?: Maybe + phoneNumber?: Maybe + email?: Maybe +} + +export type ShippingOriginContact_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ShippingOriginContactInput = { + firstName?: Maybe + middleNameOrInitial?: Maybe + lastNameOrSurname?: Maybe + companyOrOrganization?: Maybe + phoneNumber?: Maybe + email?: Maybe +} + +export type ShippingRate = { + __typename?: 'ShippingRate' + _get?: Maybe + _root?: Maybe + shippingMethodCode?: Maybe + shippingMethodName?: Maybe + shippingZoneCode?: Maybe + isValid?: Maybe + messages?: Maybe> + data?: Maybe + currencyCode?: Maybe + price?: Maybe +} + +export type ShippingRate_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ShippingRateInput = { + shippingMethodCode?: Maybe + shippingMethodName?: Maybe + shippingZoneCode?: Maybe + isValid?: Maybe + messages?: Maybe> + data?: Maybe + currencyCode?: Maybe + price?: Maybe +} + +export type ShopperNotes = { + __typename?: 'ShopperNotes' + _get?: Maybe + _root?: Maybe + giftMessage?: Maybe + comments?: Maybe + deliveryInstructions?: Maybe +} + +export type ShopperNotes_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ShopperNotesInput = { + giftMessage?: Maybe + comments?: Maybe + deliveryInstructions?: Maybe +} + +export type SolrDebugInfo = { + __typename?: 'SolrDebugInfo' + _get?: Maybe + _root?: Maybe + searchTuningRuleCode?: Maybe + boostedProductCodes?: Maybe> + blockedProductCodes?: Maybe> + boostQueries?: Maybe> + boostFunctions?: Maybe> +} + +export type SolrDebugInfo_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type SplitShipmentsObjectInput = { + originalShipment?: Maybe + newShipments?: Maybe>> +} + +export type SubPayment = { + __typename?: 'SubPayment' + _get?: Maybe + _root?: Maybe + status?: Maybe + amountCollected: Scalars['Float'] + amountCredited: Scalars['Float'] + amountRequested: Scalars['Float'] + amountRefunded: Scalars['Float'] + target?: Maybe +} + +export type SubPayment_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type SubPaymentInput = { + status?: Maybe + amountCollected: Scalars['Float'] + amountCredited: Scalars['Float'] + amountRequested: Scalars['Float'] + amountRefunded: Scalars['Float'] + target?: Maybe +} + +export type SuggestedDiscount = { + __typename?: 'SuggestedDiscount' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + autoAdd?: Maybe + discountId: Scalars['Int'] + hasMultipleProducts?: Maybe + hasOptions?: Maybe +} + +export type SuggestedDiscount_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type SuggestedDiscountInput = { + productCode?: Maybe + autoAdd?: Maybe + discountId: Scalars['Int'] + hasMultipleProducts?: Maybe + hasOptions?: Maybe +} + +export type SuggestionEvent = { + __typename?: 'SuggestionEvent' + _get?: Maybe + _root?: Maybe + causeID: Scalars['Int'] + errors: Array + name: Scalars['String'] + type?: Maybe +} + +export type SuggestionEvent_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type SuggestionLog = { + __typename?: 'SuggestionLog' + _get?: Maybe + _root?: Maybe + created: Scalars['DateTime'] + creatorUsername: Scalars['String'] + environmentID: Scalars['Int'] + events: Array> + externalResponseID: Scalars['String'] + orderID: Scalars['Int'] + pathString: Scalars['String'] + persisted?: Maybe + siteID: Scalars['Int'] + suggestionID: Scalars['Int'] + tenantID: Scalars['Int'] + updated: Scalars['DateTime'] + updaterUsername: Scalars['String'] +} + +export type SuggestionLog_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type SuggestionRequestInput = { + bundlingStrategy?: Maybe + customData: Scalars['Object'] + environmentID: Scalars['Int'] + exclusionListLocationCode: Array> + externalResponseID: Scalars['String'] + fraud: Scalars['Int'] + inventoryRequestType?: Maybe + isExpress?: Maybe + items: Array> + locationCodeWhiteList: Array + numShipmentsNotInRequest: Scalars['Int'] + orderID: Scalars['Int'] + orderType?: Maybe + pickupLocationCode: Scalars['String'] + shippingAddress?: Maybe + total: Scalars['Float'] +} + +export type SuggestionResponse = { + __typename?: 'SuggestionResponse' + _get?: Maybe + _root?: Maybe + assignmentSuggestions: Scalars['Object'] + availableLocations: Array + externalResponseID: Scalars['String'] + responseID: Scalars['Int'] + stateChangeSuggestions: Scalars['Object'] + suggestionLog?: Maybe +} + +export type SuggestionResponse_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type TargetRule = { + __typename?: 'TargetRule' + _get?: Maybe + _root?: Maybe + code?: Maybe + description?: Maybe + domain?: Maybe + expression?: Maybe +} + +export type TargetRule_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type TargetRuleCollection = { + __typename?: 'TargetRuleCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type TargetRuleCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type TargetRuleInput = { + code?: Maybe + description?: Maybe + domain?: Maybe + expression?: Maybe +} + +export type TaskInput = { + __typename?: 'TaskInput' + _get?: Maybe + _root?: Maybe + helpMessage?: Maybe + label?: Maybe + maxLength?: Maybe + maximum: Scalars['Float'] + minLength?: Maybe + minimum: Scalars['Float'] + name?: Maybe + options?: Maybe> + pattern?: Maybe + required?: Maybe + type?: Maybe +} + +export type TaskInput_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type TaskInputInput = { + helpMessage?: Maybe + label?: Maybe + maxLength?: Maybe + maximum: Scalars['Float'] + minLength?: Maybe + minimum: Scalars['Float'] + name?: Maybe + options?: Maybe> + pattern?: Maybe + required?: Maybe + type?: Maybe +} + +export type ThresholdMessage = { + __typename?: 'ThresholdMessage' + _get?: Maybe + _root?: Maybe + discountId: Scalars['Int'] + message?: Maybe + thresholdValue: Scalars['Float'] + showOnCheckout?: Maybe + showInCart?: Maybe + requiresCouponCode?: Maybe +} + +export type ThresholdMessage_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ThresholdMessageInput = { + discountId: Scalars['Int'] + message?: Maybe + thresholdValue: Scalars['Float'] + showOnCheckout?: Maybe + showInCart?: Maybe + requiresCouponCode?: Maybe +} + +export type Tracking = { + __typename?: 'Tracking' + _get?: Maybe + _root?: Maybe + attributes?: Maybe + number?: Maybe + url?: Maybe +} + +export type Tracking_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type TrackingInput = { + attributes?: Maybe + number?: Maybe + url?: Maybe +} + +export type Transaction = { + __typename?: 'Transaction' + _get?: Maybe + _root?: Maybe + transactionId?: Maybe + visitId?: Maybe + transactionType?: Maybe + interactionType?: Maybe + amount: Scalars['Float'] + date: Scalars['DateTime'] + currencyCode?: Maybe +} + +export type Transaction_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type TransactionInput = { + transactionId?: Maybe + visitId?: Maybe + transactionType?: Maybe + interactionType?: Maybe + amount: Scalars['Float'] + date: Scalars['DateTime'] + currencyCode?: Maybe +} + +export enum TypeEnum { + NewRequest = 'NEW_REQUEST', + RouteSelected = 'ROUTE_SELECTED', + MakeLocationsAvailable = 'MAKE_LOCATIONS_AVAILABLE', + NoRouteFound = 'NO_ROUTE_FOUND', + RemovedInactiveLocations = 'REMOVED_INACTIVE_LOCATIONS', + RemovedOnHoldLocations = 'REMOVED_ON_HOLD_LOCATIONS', + RemovedOverfulfilledLocations = 'REMOVED_OVERFULFILLED_LOCATIONS', + Group = 'GROUP', + GroupFilter = 'GROUP_FILTER', + GroupSort = 'GROUP_SORT', + Filter = 'FILTER', + Sort = 'SORT', + AfterAction = 'AFTER_ACTION', + FoundFullOrderLocation = 'FOUND_FULL_ORDER_LOCATION', + Response = 'RESPONSE', + AfterActionSort = 'AFTER_ACTION_SORT', + DefaultResponse = 'DEFAULT_RESPONSE', + MaxSplitsExceeded = 'MAX_SPLITS_EXCEEDED', + AutoAssignLimitExceeded = 'AUTO_ASSIGN_LIMIT_EXCEEDED', + InventoryRequest = 'INVENTORY_REQUEST', + RemovedInternationalLocations = 'REMOVED_INTERNATIONAL_LOCATIONS', +} + +export type UserRole = { + __typename?: 'UserRole' + _get?: Maybe + _root?: Maybe + userId?: Maybe + assignedInScope?: Maybe + roleId: Scalars['Int'] + roleName?: Maybe + roleTags?: Maybe> + auditInfo?: Maybe +} + +export type UserRole_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type UserRoleCollection = { + __typename?: 'UserRoleCollection' + _get?: Maybe + _root?: Maybe + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type UserRoleCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type UserRoleInput = { + userId?: Maybe + assignedInScope?: Maybe + roleId: Scalars['Int'] + roleName?: Maybe + roleTags?: Maybe> + auditInfo?: Maybe +} + +export type UserScope = { + __typename?: 'UserScope' + _get?: Maybe + _root?: Maybe + type?: Maybe + id?: Maybe + name?: Maybe +} + +export type UserScope_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type UserScopeInput = { + type?: Maybe + id?: Maybe + name?: Maybe +} + +export type ValidationMessage = { + __typename?: 'ValidationMessage' + _get?: Maybe + _root?: Maybe + severity?: Maybe + source?: Maybe + message?: Maybe + validationType?: Maybe + sourceId?: Maybe +} + +export type ValidationMessage_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type VariationOption = { + __typename?: 'VariationOption' + _get?: Maybe + _root?: Maybe + valueSequence: Scalars['Int'] + attributeFQN?: Maybe + value?: Maybe +} + +export type VariationOption_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type VariationSummary = { + __typename?: 'VariationSummary' + _get?: Maybe + _root?: Maybe + productCode?: Maybe + options?: Maybe>> + inventoryInfo?: Maybe +} + +export type VariationSummary_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type View = { + __typename?: 'View' + _get?: Maybe + _root?: Maybe + name?: Maybe + usages?: Maybe> + metadata?: Maybe + isVisibleInStorefront?: Maybe + filter?: Maybe + includeInactiveMode?: Maybe + isAdminDefault?: Maybe + fields?: Maybe>> +} + +export type View_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ViewField = { + __typename?: 'ViewField' + _get?: Maybe + _root?: Maybe + name?: Maybe + target?: Maybe +} + +export type ViewField_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type ViewFieldInput = { + name?: Maybe + target?: Maybe +} + +export type ViewInput = { + name?: Maybe + usages?: Maybe> + metadata?: Maybe + isVisibleInStorefront?: Maybe + filter?: Maybe + includeInactiveMode?: Maybe + isAdminDefault?: Maybe + fields?: Maybe>> +} + +export type Wishlist = { + __typename?: 'Wishlist' + _get?: Maybe + _root?: Maybe + customerAccountId?: Maybe + typeTag?: Maybe + name?: Maybe + items?: Maybe>> + privacyType?: Maybe + sortOrder?: Maybe + version?: Maybe + isImport?: Maybe + importDate?: Maybe + externalId?: Maybe + userId?: Maybe + id?: Maybe + tenantId?: Maybe + siteId?: Maybe + channelCode?: Maybe + currencyCode?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + fulfillmentInfo?: Maybe + orderDiscounts?: Maybe>> + suggestedDiscounts?: Maybe>> + rejectedDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + subtotal?: Maybe + discountedSubtotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + shippingTotal?: Maybe + shippingSubTotal?: Maybe + shippingTaxTotal?: Maybe + handlingTaxTotal?: Maybe + itemTaxTotal?: Maybe + taxTotal?: Maybe + feeTotal?: Maybe + total?: Maybe + lineItemSubtotalWithOrderAdjustments?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + lastValidationDate?: Maybe + expirationDate?: Maybe + changeMessages?: Maybe>> + extendedProperties?: Maybe>> + discountThresholdMessages?: Maybe>> + auditInfo?: Maybe +} + +export type Wishlist_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type WishlistCollection = { + __typename?: 'WishlistCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type WishlistCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type WishlistInput = { + customerAccountId?: Maybe + typeTag?: Maybe + name?: Maybe + items?: Maybe>> + privacyType?: Maybe + sortOrder?: Maybe + version?: Maybe + isImport?: Maybe + importDate?: Maybe + externalId?: Maybe + userId?: Maybe + id?: Maybe + tenantId?: Maybe + siteId?: Maybe + channelCode?: Maybe + currencyCode?: Maybe + visitId?: Maybe + webSessionId?: Maybe + customerInteractionType?: Maybe + fulfillmentInfo?: Maybe + orderDiscounts?: Maybe>> + suggestedDiscounts?: Maybe>> + rejectedDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + subtotal?: Maybe + discountedSubtotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + shippingTotal?: Maybe + shippingSubTotal?: Maybe + shippingTaxTotal?: Maybe + handlingTaxTotal?: Maybe + itemTaxTotal?: Maybe + taxTotal?: Maybe + feeTotal?: Maybe + total?: Maybe + lineItemSubtotalWithOrderAdjustments?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + lastValidationDate?: Maybe + expirationDate?: Maybe + changeMessages?: Maybe>> + extendedProperties?: Maybe>> + discountThresholdMessages?: Maybe>> + auditInfo?: Maybe +} + +export type WishlistItem = { + __typename?: 'WishlistItem' + _get?: Maybe + _root?: Maybe + id?: Maybe + comments?: Maybe + priorityType?: Maybe + purchasableStatusType?: Maybe + localeCode?: Maybe + purchaseLocation?: Maybe + lineId?: Maybe + product?: Maybe + quantity: Scalars['Int'] + isRecurring?: Maybe + isTaxable?: Maybe + subtotal?: Maybe + extendedTotal?: Maybe + taxableTotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + itemTaxTotal?: Maybe + shippingTaxTotal?: Maybe + shippingTotal?: Maybe + handlingAmount?: Maybe + feeTotal?: Maybe + total?: Maybe + unitPrice?: Maybe + productDiscount?: Maybe + productDiscounts?: Maybe>> + shippingDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + auditInfo?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + weightedOrderAdjustment?: Maybe + weightedOrderDiscount?: Maybe + adjustedLineItemSubtotal?: Maybe + totalWithoutWeightedShippingAndHandling?: Maybe + weightedOrderTax?: Maybe + weightedOrderShipping?: Maybe + weightedOrderShippingDiscount?: Maybe + weightedOrderShippingManualAdjustment?: Maybe + weightedOrderShippingTax?: Maybe + weightedOrderHandlingFee?: Maybe + weightedOrderHandlingFeeTax?: Maybe + weightedOrderHandlingFeeDiscount?: Maybe + weightedOrderDuty?: Maybe + totalWithWeightedShippingAndHandling?: Maybe + weightedOrderHandlingAdjustment?: Maybe + autoAddDiscountId?: Maybe + isAssemblyRequired?: Maybe + childItemIds?: Maybe> + parentItemId?: Maybe +} + +export type WishlistItem_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type WishlistItemCollection = { + __typename?: 'WishlistItemCollection' + _get?: Maybe + _root?: Maybe + startIndex: Scalars['Int'] + pageSize: Scalars['Int'] + pageCount: Scalars['Int'] + totalCount: Scalars['Int'] + items?: Maybe>> +} + +export type WishlistItemCollection_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type WishlistItemInput = { + id?: Maybe + comments?: Maybe + priorityType?: Maybe + purchasableStatusType?: Maybe + localeCode?: Maybe + purchaseLocation?: Maybe + lineId?: Maybe + product?: Maybe + quantity: Scalars['Int'] + isRecurring?: Maybe + isTaxable?: Maybe + subtotal?: Maybe + extendedTotal?: Maybe + taxableTotal?: Maybe + discountTotal?: Maybe + discountedTotal?: Maybe + itemTaxTotal?: Maybe + shippingTaxTotal?: Maybe + shippingTotal?: Maybe + handlingAmount?: Maybe + feeTotal?: Maybe + total?: Maybe + unitPrice?: Maybe + productDiscount?: Maybe + productDiscounts?: Maybe>> + shippingDiscounts?: Maybe>> + data?: Maybe + taxData?: Maybe + auditInfo?: Maybe + shippingAmountBeforeDiscountsAndAdjustments?: Maybe + weightedOrderAdjustment?: Maybe + weightedOrderDiscount?: Maybe + adjustedLineItemSubtotal?: Maybe + totalWithoutWeightedShippingAndHandling?: Maybe + weightedOrderTax?: Maybe + weightedOrderShipping?: Maybe + weightedOrderShippingDiscount?: Maybe + weightedOrderShippingManualAdjustment?: Maybe + weightedOrderShippingTax?: Maybe + weightedOrderHandlingFee?: Maybe + weightedOrderHandlingFeeTax?: Maybe + weightedOrderHandlingFeeDiscount?: Maybe + weightedOrderDuty?: Maybe + totalWithWeightedShippingAndHandling?: Maybe + weightedOrderHandlingAdjustment?: Maybe + autoAddDiscountId?: Maybe + isAssemblyRequired?: Maybe + childItemIds?: Maybe> + parentItemId?: Maybe +} + +export type WorkflowState = { + __typename?: 'WorkflowState' + _get?: Maybe + _root?: Maybe + attributes?: Maybe + auditInfo?: Maybe + completedDate?: Maybe + processInstanceId?: Maybe + shipmentState?: Maybe + taskList?: Maybe>> +} + +export type WorkflowState_GetArgs = { + path: Scalars['String'] + defaultValue?: Maybe + allowUndefined?: Maybe +} + +export type WorkflowStateInput = { + attributes?: Maybe + auditInfo?: Maybe + completedDate?: Maybe + processInstanceId?: Maybe + shipmentState?: Maybe + taskList?: Maybe>> +} diff --git a/framework/kibocommerce/schema.graphql b/framework/kibocommerce/schema.graphql new file mode 100644 index 000000000..8d02ae535 --- /dev/null +++ b/framework/kibocommerce/schema.graphql @@ -0,0 +1,9129 @@ +input AccountPasswordInfoCollectionInput { + totalCount: Int! + items: [AccountPasswordInfoInput] +} + +input AccountPasswordInfoInput { + accountId: Int! + userId: String + unlockAccount: Boolean = false + passwordInfo: PasswordInfoInput +} + +type AccountSalesRep { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: AccountSalesRep + accountId: Int! + adminUserId: String +} + +input AccountSalesRepInput { + accountId: Int! + adminUserId: String +} + +type ActiveDateRange { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ActiveDateRange + startDate: DateTime + endDate: DateTime +} + +input ActiveDateRangeInput { + startDate: DateTime + endDate: DateTime +} + +input AddressValidationRequestInput { + address: CuAddressInput +} + +type AddressValidationResponse { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: AddressValidationResponse + addressCandidates: [CuAddress] +} + +type Adjustment { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Adjustment + amount: Float + description: String + internalComment: String +} + +input AdjustmentInput { + amount: Float + description: String + internalComment: String +} + +""" +The `AnyScalar` type allows any scalar value by examining the input and passing the serialize, parseValue, and parseLiteral operations to their respective types. +""" +scalar AnyScalar + +type AppliedLineItemProductDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: AppliedLineItemProductDiscount + appliesToSalePrice: Boolean + discountQuantity: Int! + productQuantity: Int + impactPerUnit: Float +} + +input AppliedLineItemProductDiscountInput { + appliesToSalePrice: Boolean = false + discountQuantity: Int! + productQuantity: Int + impactPerUnit: Float +} + +type AppliedLineItemShippingDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: AppliedLineItemShippingDiscount + methodCode: String + discount: CrAppliedDiscount + discountQuantity: Int! + impactPerUnit: Float! +} + +input AppliedLineItemShippingDiscountInput { + methodCode: String + discount: CrAppliedDiscountInput + discountQuantity: Int! + impactPerUnit: Float! +} + +type AttributeDetail { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: AttributeDetail + valueType: String + inputType: String + dataType: String + usageType: String + dataTypeSequence: Int! + name: String + description: String + validation: PrAttributeValidation + searchableInStorefront: Boolean + searchDisplayValue: Boolean + allowFilteringAndSortingInStorefront: Boolean + indexValueWithCase: Boolean + customWeightInStorefrontSearch: Boolean + displayIntention: String +} + +type AttributeVocabularyValueDisplayInfo { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: AttributeVocabularyValueDisplayInfo + cmsId: String + imageUrl: String + colorValue: String +} + +type AuditRecord { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: AuditRecord + id: String + changes: [AuditRecordChange] + auditInfo: CrAuditInfo +} + +type AuditRecordChange { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: AuditRecordChange + type: String + path: String + fields: [AuditRecordChangeField] +} + +type AuditRecordChangeField { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: AuditRecordChangeField + name: String + oldValue: String + newValue: String +} + +input AuditRecordChangeFieldInput { + name: String + oldValue: String + newValue: String +} + +input AuditRecordChangeInput { + type: String + path: String + fields: [AuditRecordChangeFieldInput] +} + +input AuditRecordInput { + id: String + changes: [AuditRecordChangeInput] + auditInfo: CrAuditInfoInput +} + +type B2BAccount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: B2BAccount + users: [B2BUser] + isActive: Boolean + priceList: String + salesReps: [AccountSalesRep] + rootAccountId: Int + parentAccountId: Int + approvalStatus: String + id: Int! + customerSet: String + commerceSummary: CommerceSummary + contacts: [CustomerContact] + companyOrOrganization: String + notes: [CustomerNote] + attributes: [CustomerAttribute] + segments: [CustomerSegment] + taxId: String + externalId: String + auditInfo: CuAuditInfo + customerSinceDate: DateTime + accountType: String +} + +type B2BAccountCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: B2BAccountCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [B2BAccount] +} + +input B2BAccountInput { + users: [B2BUserInput] + isActive: Boolean = false + priceList: String + salesReps: [AccountSalesRepInput] + rootAccountId: Int + parentAccountId: Int + approvalStatus: String + id: Int! + customerSet: String + commerceSummary: CommerceSummaryInput + contacts: [CustomerContactInput] + companyOrOrganization: String + notes: [CustomerNoteInput] + attributes: [CustomerAttributeInput] + segments: [CustomerSegmentInput] + taxId: String + externalId: String + auditInfo: CuAuditInfoInput + customerSinceDate: DateTime + accountType: String +} + +type B2BUser { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: B2BUser + emailAddress: String + userName: String + firstName: String + lastName: String + localeCode: String + userId: String + roles: [UserRole] + isLocked: Boolean + isActive: Boolean + isRemoved: Boolean + acceptsMarketing: Boolean + hasExternalPassword: Boolean +} + +input B2BUserAndAuthInfoInput { + b2BUser: B2BUserInput + externalPassword: String + isImport: Boolean = false +} + +type B2BUserCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: B2BUserCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [B2BUser] +} + +input B2BUserInput { + emailAddress: String + userName: String + firstName: String + lastName: String + localeCode: String + userId: String + roles: [UserRoleInput] + isLocked: Boolean = false + isActive: Boolean = false + isRemoved: Boolean = false + acceptsMarketing: Boolean = false + hasExternalPassword: Boolean = false +} + +type BillingInfo { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: BillingInfo + paymentType: String + paymentWorkflow: String + billingContact: Contact + isSameBillingShippingAddress: Boolean + card: PaymentCard + token: PaymentToken + purchaseOrder: PurchaseOrderPayment + check: CheckPayment + auditInfo: CrAuditInfo + storeCreditCode: String + storeCreditType: String + customCreditType: String + externalTransactionId: String + data: Object +} + +input BillingInfoInput { + paymentType: String + paymentWorkflow: String + billingContact: ContactInput + isSameBillingShippingAddress: Boolean = false + card: PaymentCardInput + token: PaymentTokenInput + purchaseOrder: PurchaseOrderPaymentInput + check: CheckPaymentInput + auditInfo: CrAuditInfoInput + storeCreditCode: String + storeCreditType: String + customCreditType: String + externalTransactionId: String + data: Object +} + +type BoxType { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: BoxType + name: String + height: Float + width: Float + length: Float +} + +type BpmConfiguration { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: BpmConfiguration + shipmentType: String + workflowContainerId: String + workflowProcessId: String +} + +type BundledProductSummary { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: BundledProductSummary + productShortDescription: String + productName: String + productCode: String + goodsType: String + quantity: Int! + measurements: PrPackageMeasurements + isPackagedStandAlone: Boolean + inventoryInfo: ProductInventoryInfo + optionAttributeFQN: String + optionValue: Object + creditValue: Float + productType: String +} + +enum BundlingStrategyEnum { + ITEM_DEPENDENCY +} + +type CancelReasonCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CancelReasonCollection + totalCount: Int! + items: [CancelReasonItem] +} + +type CancelReasonItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CancelReasonItem + reasonCode: String + name: String + needsMoreInfo: Boolean +} + +type CanceledItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CanceledItem + canceledReason: CanceledReason + auditInfo: CrAuditInfo + lineId: Int! + originalOrderItemId: String + parentId: String + productCode: String + variationProductCode: String + optionAttributeFQN: String + name: String + fulfillmentLocationCode: String + imageUrl: String + isTaxable: Boolean + quantity: Int! + unitPrice: Float! + actualPrice: Float! + overridePrice: Float + itemDiscount: Float! + lineItemCost: Float! + itemTax: Float! + shipping: Float! + shippingDiscount: Float! + shippingTax: Float! + handling: Float! + handlingDiscount: Float! + handlingTax: Float! + duty: Float! + isPackagedStandAlone: Boolean + readyForPickupQuantity: Int + backorderReleaseDate: DateTime + measurements: CrPackageMeasurements + options: [CrProductOption] + data: Object + taxData: Object + weightedShipmentAdjustment: Float! + weightedLineItemTaxAdjustment: Float! + weightedShippingAdjustment: Float! + weightedShippingTaxAdjustment: Float! + weightedHandlingAdjustment: Float! + weightedHandlingTaxAdjustment: Float! + weightedDutyAdjustment: Float! + taxableShipping: Float! + taxableLineItemCost: Float! + taxableHandling: Float! + fulfillmentFields: [FulfillmentField] + isAssemblyRequired: Boolean + parentItemId: String + childItemIds: [String!] + giftCards: [GiftCard] +} + +input CanceledItemInput { + canceledReason: CanceledReasonInput + auditInfo: CrAuditInfoInput + lineId: Int! + originalOrderItemId: String + parentId: String + productCode: String + variationProductCode: String + optionAttributeFQN: String + name: String + fulfillmentLocationCode: String + imageUrl: String + isTaxable: Boolean = false + quantity: Int! + unitPrice: Float! + actualPrice: Float! + overridePrice: Float + itemDiscount: Float! + lineItemCost: Float! + itemTax: Float! + shipping: Float! + shippingDiscount: Float! + shippingTax: Float! + handling: Float! + handlingDiscount: Float! + handlingTax: Float! + duty: Float! + isPackagedStandAlone: Boolean = false + readyForPickupQuantity: Int + backorderReleaseDate: DateTime + measurements: CrPackageMeasurementsInput + options: [CrProductOptionInput] + data: Object + taxData: Object + weightedShipmentAdjustment: Float! + weightedLineItemTaxAdjustment: Float! + weightedShippingAdjustment: Float! + weightedShippingTaxAdjustment: Float! + weightedHandlingAdjustment: Float! + weightedHandlingTaxAdjustment: Float! + weightedDutyAdjustment: Float! + taxableShipping: Float! + taxableLineItemCost: Float! + taxableHandling: Float! + fulfillmentFields: [FulfillmentFieldInput] + isAssemblyRequired: Boolean = false + parentItemId: String + childItemIds: [String!] + giftCards: [GiftCardInput] +} + +type CanceledReason { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CanceledReason + reasonCode: String + description: String + moreInfo: String +} + +input CanceledReasonInput { + reasonCode: String + description: String + moreInfo: String +} + +type CapturableShipmentSummary { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CapturableShipmentSummary + shipmentNumber: Int! + shipmentTotal: Float! + amountApplied: Float! +} + +input CapturableShipmentSummaryInput { + shipmentNumber: Int! + shipmentTotal: Float! + amountApplied: Float! +} + +type Card { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Card + id: String + nameOnCard: String + cardType: String + expireMonth: Int + expireYear: Int + cardNumberPart: String + contactId: Int! + isDefaultPayMethod: Boolean +} + +type CardCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CardCollection + totalCount: Int! + items: [Card] +} + +input CardInput { + id: String + nameOnCard: String + cardType: String + expireMonth: Int + expireYear: Int + cardNumberPart: String + contactId: Int! + isDefaultPayMethod: Boolean = false +} + +type Carrier { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Carrier + carrierType: String + isEnabled: Boolean + shippingMethodMappings: ShippingMethodMappings +} + +type CarrierServiceGenerateLabelResponse { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CarrierServiceGenerateLabelResponse + imageURL: String + integratorId: String + price: Float + trackingNumber: String +} + +type Cart { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Cart + items: [CartItem] + couponCodes: [String!] + invalidCoupons: [InvalidCoupon] + priceListCode: String + cartMessage: CartMessage + cartMessages: [CartMessage] + handlingAmount: Float + handlingSubTotal: Float + handlingTotal: Float + userId: String + id: String + tenantId: Int + siteId: Int + channelCode: String + currencyCode: String + visitId: String + webSessionId: String + customerInteractionType: String + fulfillmentInfo: FulfillmentInfo + orderDiscounts: [CrAppliedDiscount] + suggestedDiscounts: [SuggestedDiscount] + rejectedDiscounts: [SuggestedDiscount] + data: Object + taxData: Object + subtotal: Float + discountedSubtotal: Float + discountTotal: Float + discountedTotal: Float + shippingTotal: Float + shippingSubTotal: Float + shippingTaxTotal: Float + handlingTaxTotal: Float + itemTaxTotal: Float + taxTotal: Float + feeTotal: Float + total: Float + lineItemSubtotalWithOrderAdjustments: Float + shippingAmountBeforeDiscountsAndAdjustments: Float + lastValidationDate: DateTime + expirationDate: DateTime + changeMessages: [ChangeMessage] + extendedProperties: [ExtendedProperty] + discountThresholdMessages: [ThresholdMessage] + auditInfo: CrAuditInfo +} + +type CartChangeMessageCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CartChangeMessageCollection + totalCount: Int! + items: [ChangeMessage] +} + +input CartInput { + items: [CartItemInput] + couponCodes: [String!] + invalidCoupons: [InvalidCouponInput] + priceListCode: String + cartMessage: CartMessageInput + cartMessages: [CartMessageInput] + handlingAmount: Float + handlingSubTotal: Float + handlingTotal: Float + userId: String + id: String + tenantId: Int + siteId: Int + channelCode: String + currencyCode: String + visitId: String + webSessionId: String + customerInteractionType: String + fulfillmentInfo: FulfillmentInfoInput + orderDiscounts: [CrAppliedDiscountInput] + suggestedDiscounts: [SuggestedDiscountInput] + rejectedDiscounts: [SuggestedDiscountInput] + data: Object + taxData: Object + subtotal: Float + discountedSubtotal: Float + discountTotal: Float + discountedTotal: Float + shippingTotal: Float + shippingSubTotal: Float + shippingTaxTotal: Float + handlingTaxTotal: Float + itemTaxTotal: Float + taxTotal: Float + feeTotal: Float + total: Float + lineItemSubtotalWithOrderAdjustments: Float + shippingAmountBeforeDiscountsAndAdjustments: Float + lastValidationDate: DateTime + expirationDate: DateTime + changeMessages: [ChangeMessageInput] + extendedProperties: [ExtendedPropertyInput] + discountThresholdMessages: [ThresholdMessageInput] + auditInfo: CrAuditInfoInput +} + +type CartItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CartItem + id: String + fulfillmentLocationCode: String + fulfillmentMethod: String + localeCode: String + purchaseLocation: String + lineId: Int + product: CrProduct + quantity: Int! + isRecurring: Boolean + isTaxable: Boolean + subtotal: Float + extendedTotal: Float + taxableTotal: Float + discountTotal: Float + discountedTotal: Float + itemTaxTotal: Float + shippingTaxTotal: Float + shippingTotal: Float + handlingAmount: Float + feeTotal: Float + total: Float + unitPrice: CommerceUnitPrice + productDiscount: AppliedLineItemProductDiscount + productDiscounts: [AppliedLineItemProductDiscount] + shippingDiscounts: [AppliedLineItemShippingDiscount] + data: Object + taxData: Object + auditInfo: CrAuditInfo + shippingAmountBeforeDiscountsAndAdjustments: Float + weightedOrderAdjustment: Float + weightedOrderDiscount: Float + adjustedLineItemSubtotal: Float + totalWithoutWeightedShippingAndHandling: Float + weightedOrderTax: Float + weightedOrderShipping: Float + weightedOrderShippingDiscount: Float + weightedOrderShippingManualAdjustment: Float + weightedOrderShippingTax: Float + weightedOrderHandlingFee: Float + weightedOrderHandlingFeeTax: Float + weightedOrderHandlingFeeDiscount: Float + weightedOrderDuty: Float + totalWithWeightedShippingAndHandling: Float + weightedOrderHandlingAdjustment: Float + autoAddDiscountId: Int + isAssemblyRequired: Boolean + childItemIds: [String!] + parentItemId: String +} + +type CartItemCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CartItemCollection + totalCount: Int! + items: [CartItem] +} + +input CartItemInput { + id: String + fulfillmentLocationCode: String + fulfillmentMethod: String + localeCode: String + purchaseLocation: String + lineId: Int + product: CrProductInput + quantity: Int! + isRecurring: Boolean = false + isTaxable: Boolean = false + subtotal: Float + extendedTotal: Float + taxableTotal: Float + discountTotal: Float + discountedTotal: Float + itemTaxTotal: Float + shippingTaxTotal: Float + shippingTotal: Float + handlingAmount: Float + feeTotal: Float + total: Float + unitPrice: CommerceUnitPriceInput + productDiscount: AppliedLineItemProductDiscountInput + productDiscounts: [AppliedLineItemProductDiscountInput] + shippingDiscounts: [AppliedLineItemShippingDiscountInput] + data: Object + taxData: Object + auditInfo: CrAuditInfoInput + shippingAmountBeforeDiscountsAndAdjustments: Float + weightedOrderAdjustment: Float + weightedOrderDiscount: Float + adjustedLineItemSubtotal: Float + totalWithoutWeightedShippingAndHandling: Float + weightedOrderTax: Float + weightedOrderShipping: Float + weightedOrderShippingDiscount: Float + weightedOrderShippingManualAdjustment: Float + weightedOrderShippingTax: Float + weightedOrderHandlingFee: Float + weightedOrderHandlingFeeTax: Float + weightedOrderHandlingFeeDiscount: Float + weightedOrderDuty: Float + totalWithWeightedShippingAndHandling: Float + weightedOrderHandlingAdjustment: Float + autoAddDiscountId: Int + isAssemblyRequired: Boolean = false + childItemIds: [String!] + parentItemId: String +} + +type CartMessage { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CartMessage + message: String + messageType: String + productsRemoved: [CrProduct] +} + +input CartMessageInput { + message: String + messageType: String + productsRemoved: [CrProductInput] +} + +type CartSummary { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CartSummary + itemCount: Int + totalQuantity: Int + total: Float + isExpired: Boolean + hasActiveCart: Boolean +} + +type CategoryCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CategoryCollection + totalCount: Int! + items: [PrCategory] +} + +type CategoryContent { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CategoryContent + categoryImages: [CategoryImage] + name: String + description: String + pageTitle: String + metaTagTitle: String + metaTagDescription: String + metaTagKeywords: String + slug: String +} + +type CategoryImage { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CategoryImage + imageLabel: String + altText: String + imageUrl: String + cmsId: String + videoUrl: String + mediaType: String + sequence: Int +} + +type CategoryPagedCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CategoryPagedCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [PrCategory] +} + +type ChangeMessage { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ChangeMessage + id: String + correlationId: String + userId: String + userFirstName: String + userLastName: String + userScopeType: String + appId: String + appKey: String + appName: String + subjectType: String + success: Boolean + identifier: String + subject: String + verb: String + message: String + metadata: Object + oldValue: String + newValue: String + amount: Float + createDate: DateTime +} + +input ChangeMessageInput { + id: String + correlationId: String + userId: String + userFirstName: String + userLastName: String + userScopeType: String + appId: String + appKey: String + appName: String + subjectType: String + success: Boolean = false + identifier: String + subject: String + verb: String + message: String + metadata: Object + oldValue: String + newValue: String + amount: Float + createDate: DateTime +} + +type ChangePasswordResult { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ChangePasswordResult + accountId: Int! + succeeded: Boolean + errorMessage: String +} + +type ChangePasswordResultCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ChangePasswordResultCollection + totalCount: Int! + items: [ChangePasswordResult] +} + +type Channel { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Channel + tenantId: Int! + code: String + name: String + region: String + countryCode: String + groupCode: String + siteIds: [Int!] + auditInfo: CrAuditInfo +} + +type ChannelCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ChannelCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [Channel] +} + +type ChannelGroup { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ChannelGroup + tenantId: Int! + code: String + name: String + auditInfo: CrAuditInfo +} + +type ChannelGroupCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ChannelGroupCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [ChannelGroup] +} + +input ChannelGroupInput { + tenantId: Int! + code: String + name: String + auditInfo: CrAuditInfoInput +} + +input ChannelInput { + tenantId: Int! + code: String + name: String + region: String + countryCode: String + groupCode: String + siteIds: [Int!] + auditInfo: CrAuditInfoInput +} + +type CheckPayment { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CheckPayment + checkNumber: String +} + +input CheckPaymentInput { + checkNumber: String +} + +type Checkout { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Checkout + id: String + siteId: Int! + tenantId: Int! + number: Int + originalCartId: String + submittedDate: DateTime + type: String + items: [CrOrderItem] + groupings: [CheckoutGrouping] + auditInfo: CrAuditInfo + destinations: [Destination] + payments: [Payment] + amountRemainingForPayment: Float! + acceptsMarketing: Boolean + customerAccountId: Int + email: String + customerTaxId: String + isTaxExempt: Boolean + currencyCode: String + priceListCode: String + attributes: [OrderAttribute] + shopperNotes: ShopperNotes + availableActions: [String!] + data: Object + taxData: Object + channelCode: String + locationCode: String + ipAddress: String + sourceDevice: String + visitId: String + webSessionId: String + customerInteractionType: String + orderDiscounts: [CrAppliedDiscount] + couponCodes: [String!] + invalidCoupons: [InvalidCoupon] + suggestedDiscounts: [SuggestedDiscount] + discountThresholdMessages: [ThresholdMessage] + dutyTotal: Float + feeTotal: Float! + subTotal: Float! + itemLevelProductDiscountTotal: Float! + orderLevelProductDiscountTotal: Float! + itemTaxTotal: Float! + itemTotal: Float! + shippingSubTotal: Float! + itemLevelShippingDiscountTotal: Float! + orderLevelShippingDiscountTotal: Float! + shippingTaxTotal: Float! + shippingTotal: Float! + handlingSubTotal: Float! + itemLevelHandlingDiscountTotal: Float! + orderLevelHandlingDiscountTotal: Float! + handlingTaxTotal: Float! + handlingTotal: Float! + total: Float! +} + +input CheckoutActionInput { + actionName: String +} + +type CheckoutCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CheckoutCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [Checkout] +} + +type CheckoutGroupRates { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CheckoutGroupRates + groupingId: String + shippingRates: [ShippingRate] +} + +input CheckoutGroupShippingMethodInput { + groupingId: String + shippingRate: ShippingRateInput +} + +type CheckoutGrouping { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CheckoutGrouping + id: String + destinationId: String + fulfillmentMethod: String + orderItemIds: [String!] + shippingMethodCode: String + shippingMethodName: String + standaloneGroup: Boolean + shippingDiscounts: [ShippingDiscount] + handlingDiscounts: [CrAppliedDiscount] + dutyAmount: Float + dutyTotal: Float! + shippingAmount: Float + shippingSubTotal: Float! + itemLevelShippingDiscountTotal: Float! + orderLevelShippingDiscountTotal: Float! + shippingTax: Float + shippingTaxTotal: Float! + shippingTotal: Float! + handlingAmount: Float + handlingSubTotal: Float! + itemLevelHandlingDiscountTotal: Float! + orderLevelHandlingDiscountTotal: Float! + handlingTax: Float + handlingTaxTotal: Float! + handlingTotal: Float! + taxData: Object +} + +input CheckoutGroupingInput { + id: String + destinationId: String + fulfillmentMethod: String + orderItemIds: [String!] + shippingMethodCode: String + shippingMethodName: String + standaloneGroup: Boolean = false + shippingDiscounts: [ShippingDiscountInput] + handlingDiscounts: [CrAppliedDiscountInput] + dutyAmount: Float + dutyTotal: Float! + shippingAmount: Float + shippingSubTotal: Float! + itemLevelShippingDiscountTotal: Float! + orderLevelShippingDiscountTotal: Float! + shippingTax: Float + shippingTaxTotal: Float! + shippingTotal: Float! + handlingAmount: Float + handlingSubTotal: Float! + itemLevelHandlingDiscountTotal: Float! + orderLevelHandlingDiscountTotal: Float! + handlingTax: Float + handlingTaxTotal: Float! + handlingTotal: Float! + taxData: Object +} + +input CheckoutInput { + id: String + siteId: Int! + tenantId: Int! + number: Int + originalCartId: String + submittedDate: DateTime + type: String + items: [CrOrderItemInput] + groupings: [CheckoutGroupingInput] + auditInfo: CrAuditInfoInput + destinations: [DestinationInput] + payments: [PaymentInput] + amountRemainingForPayment: Float! + acceptsMarketing: Boolean = false + customerAccountId: Int + email: String + customerTaxId: String + isTaxExempt: Boolean = false + currencyCode: String + priceListCode: String + attributes: [OrderAttributeInput] + shopperNotes: ShopperNotesInput + availableActions: [String!] + data: Object + taxData: Object + channelCode: String + locationCode: String + ipAddress: String + sourceDevice: String + visitId: String + webSessionId: String + customerInteractionType: String + orderDiscounts: [CrAppliedDiscountInput] + couponCodes: [String!] + invalidCoupons: [InvalidCouponInput] + suggestedDiscounts: [SuggestedDiscountInput] + discountThresholdMessages: [ThresholdMessageInput] + dutyTotal: Float + feeTotal: Float! + subTotal: Float! + itemLevelProductDiscountTotal: Float! + orderLevelProductDiscountTotal: Float! + itemTaxTotal: Float! + itemTotal: Float! + shippingSubTotal: Float! + itemLevelShippingDiscountTotal: Float! + orderLevelShippingDiscountTotal: Float! + shippingTaxTotal: Float! + shippingTotal: Float! + handlingSubTotal: Float! + itemLevelHandlingDiscountTotal: Float! + orderLevelHandlingDiscountTotal: Float! + handlingTaxTotal: Float! + handlingTotal: Float! + total: Float! +} + +input CoHttpContentInput { + headers: [KeyValuePair2Input] +} + +input CoHttpMethodInput { + method: String +} + +input CoHttpRequestMessageInput { + version: String + content: CoHttpContentInput + method: CoHttpMethodInput + requestUri: DateTime + headers: [KeyValuePair2Input] + properties: Object +} + +type CommerceSummary { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CommerceSummary + totalOrderAmount: CurrencyAmount + orderCount: Int! + lastOrderDate: DateTime + wishlistCount: Int! + visitsCount: Int! +} + +input CommerceSummaryInput { + totalOrderAmount: CurrencyAmountInput + orderCount: Int! + lastOrderDate: DateTime + wishlistCount: Int! + visitsCount: Int! +} + +type CommerceUnitPrice { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CommerceUnitPrice + extendedAmount: Float + listAmount: Float + saleAmount: Float + overrideAmount: Float +} + +input CommerceUnitPriceInput { + extendedAmount: Float + listAmount: Float + saleAmount: Float + overrideAmount: Float +} + +type ConfiguredProduct { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ConfiguredProduct + productCode: String + purchaseLocation: String + fulfillmentTypesSupported: [String!] + variationProductCode: String + upc: String + mfgPartNumber: String + purchasableState: ProductPurchasableState + priceRange: ProductPriceRange + volumePriceBands: [ProductVolumePrice] + volumePriceRange: ProductPriceRange + price: ProductPrice + availableShippingDiscounts: [PrDiscount] + measurements: PrPackageMeasurements + inventoryInfo: ProductInventoryInfo + options: [ProductOption] + properties: [ProductProperty] + priceListEntryTypeProperty: ProductProperty + productImages: [ProductImage] +} + +type Contact { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Contact + id: Int + email: String + firstName: String + middleNameOrInitial: String + lastNameOrSurname: String + companyOrOrganization: String + phoneNumbers: CrPhone + address: CrAddress +} + +input ContactInput { + id: Int + email: String + firstName: String + middleNameOrInitial: String + lastNameOrSurname: String + companyOrOrganization: String + phoneNumbers: CrPhoneInput + address: CrAddressInput +} + +type ContactType { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ContactType + name: String + isPrimary: Boolean +} + +input ContactTypeInput { + name: String + isPrimary: Boolean = false +} + +type Coordinates { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Coordinates + lat: Float! + lng: Float! +} + +input CoordinatesInput { + lat: Float! + lng: Float! +} + +type CrAddress { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrAddress + address1: String + address2: String + address3: String + address4: String + cityOrTown: String + stateOrProvince: String + postalOrZipCode: String + countryCode: String + addressType: String + isValidated: Boolean +} + +input CrAddressInput { + address1: String + address2: String + address3: String + address4: String + cityOrTown: String + stateOrProvince: String + postalOrZipCode: String + countryCode: String + addressType: String + isValidated: Boolean = false +} + +type CrAppliedDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrAppliedDiscount + impact: Float + discount: CrDiscount + couponCode: String + excluded: Boolean +} + +input CrAppliedDiscountInput { + impact: Float + discount: CrDiscountInput + couponCode: String + excluded: Boolean = false +} + +type CrAuditInfo { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrAuditInfo + updateDate: DateTime + createDate: DateTime + updateBy: String + createBy: String +} + +input CrAuditInfoInput { + updateDate: DateTime + createDate: DateTime + updateBy: String + createBy: String +} + +type CrBundledProduct { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrBundledProduct + quantity: Int! + optionAttributeFQN: String + optionValue: Object + creditValue: Float + deltaPrice: Float + productCode: String + name: String + description: String + goodsType: String + isPackagedStandAlone: Boolean + stock: ProductStock + productReservationId: Int + allocationId: Int + allocationExpiration: DateTime + measurements: CrPackageMeasurements + fulfillmentStatus: String +} + +input CrBundledProductInput { + quantity: Int! + optionAttributeFQN: String + optionValue: Object + creditValue: Float + deltaPrice: Float + productCode: String + name: String + description: String + goodsType: String + isPackagedStandAlone: Boolean = false + stock: ProductStockInput + productReservationId: Int + allocationId: Int + allocationExpiration: DateTime + measurements: CrPackageMeasurementsInput + fulfillmentStatus: String +} + +type CrCategory { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrCategory + id: Int + parent: CrCategory +} + +input CrCategoryInput { + id: Int + parent: CrCategoryInput +} + +type CrDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrDiscount + id: Int! + name: String + itemIds: [String!] + expirationDate: DateTime + hasMultipleTargetProducts: Boolean +} + +input CrDiscountInput { + id: Int! + name: String + itemIds: [String!] + expirationDate: DateTime + hasMultipleTargetProducts: Boolean = false +} + +type CrMeasurement { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrMeasurement + unit: String + value: Float +} + +input CrMeasurementInput { + unit: String + value: Float +} + +type CrOrderItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrOrderItem + id: String + destinationId: String + originalCartItemId: String + fulfillmentLocationCode: String + fulfillmentMethod: String + dutyAmount: Float + expectedDeliveryDate: DateTime + localeCode: String + purchaseLocation: String + lineId: Int + product: CrProduct + quantity: Int! + isRecurring: Boolean + isTaxable: Boolean + subtotal: Float + extendedTotal: Float + taxableTotal: Float + discountTotal: Float + discountedTotal: Float + itemTaxTotal: Float + shippingTaxTotal: Float + shippingTotal: Float + handlingAmount: Float + feeTotal: Float + total: Float + unitPrice: CommerceUnitPrice + productDiscount: AppliedLineItemProductDiscount + productDiscounts: [AppliedLineItemProductDiscount] + shippingDiscounts: [AppliedLineItemShippingDiscount] + data: Object + taxData: Object + auditInfo: CrAuditInfo + shippingAmountBeforeDiscountsAndAdjustments: Float + weightedOrderAdjustment: Float + weightedOrderDiscount: Float + adjustedLineItemSubtotal: Float + totalWithoutWeightedShippingAndHandling: Float + weightedOrderTax: Float + weightedOrderShipping: Float + weightedOrderShippingDiscount: Float + weightedOrderShippingManualAdjustment: Float + weightedOrderShippingTax: Float + weightedOrderHandlingFee: Float + weightedOrderHandlingFeeTax: Float + weightedOrderHandlingFeeDiscount: Float + weightedOrderDuty: Float + totalWithWeightedShippingAndHandling: Float + weightedOrderHandlingAdjustment: Float + autoAddDiscountId: Int + isAssemblyRequired: Boolean + childItemIds: [String!] + parentItemId: String +} + +input CrOrderItemInput { + id: String + destinationId: String + originalCartItemId: String + fulfillmentLocationCode: String + fulfillmentMethod: String + dutyAmount: Float + expectedDeliveryDate: DateTime + localeCode: String + purchaseLocation: String + lineId: Int + product: CrProductInput + quantity: Int! + isRecurring: Boolean = false + isTaxable: Boolean = false + subtotal: Float + extendedTotal: Float + taxableTotal: Float + discountTotal: Float + discountedTotal: Float + itemTaxTotal: Float + shippingTaxTotal: Float + shippingTotal: Float + handlingAmount: Float + feeTotal: Float + total: Float + unitPrice: CommerceUnitPriceInput + productDiscount: AppliedLineItemProductDiscountInput + productDiscounts: [AppliedLineItemProductDiscountInput] + shippingDiscounts: [AppliedLineItemShippingDiscountInput] + data: Object + taxData: Object + auditInfo: CrAuditInfoInput + shippingAmountBeforeDiscountsAndAdjustments: Float + weightedOrderAdjustment: Float + weightedOrderDiscount: Float + adjustedLineItemSubtotal: Float + totalWithoutWeightedShippingAndHandling: Float + weightedOrderTax: Float + weightedOrderShipping: Float + weightedOrderShippingDiscount: Float + weightedOrderShippingManualAdjustment: Float + weightedOrderShippingTax: Float + weightedOrderHandlingFee: Float + weightedOrderHandlingFeeTax: Float + weightedOrderHandlingFeeDiscount: Float + weightedOrderDuty: Float + totalWithWeightedShippingAndHandling: Float + weightedOrderHandlingAdjustment: Float + autoAddDiscountId: Int + isAssemblyRequired: Boolean = false + childItemIds: [String!] + parentItemId: String +} + +type CrPackageMeasurements { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrPackageMeasurements + height: CrMeasurement + width: CrMeasurement + length: CrMeasurement + weight: CrMeasurement +} + +input CrPackageMeasurementsInput { + height: CrMeasurementInput + width: CrMeasurementInput + length: CrMeasurementInput + weight: CrMeasurementInput +} + +type CrPhone { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrPhone + home: String + mobile: String + work: String +} + +input CrPhoneInput { + home: String + mobile: String + work: String +} + +type CrProduct { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrProduct + mfgPartNumber: String + upc: String + sku: String + fulfillmentTypesSupported: [String!] + imageAlternateText: String + imageUrl: String + variationProductCode: String + options: [CrProductOption] + properties: [CrProductProperty] + categories: [CrCategory] + price: CrProductPrice + discountsRestricted: Boolean + discountsRestrictedStartDate: DateTime + discountsRestrictedEndDate: DateTime + isRecurring: Boolean + isTaxable: Boolean + productType: String + productUsage: String + bundledProducts: [CrBundledProduct] + fulfillmentFields: [FulfillmentField] + productCode: String + name: String + description: String + goodsType: String + isPackagedStandAlone: Boolean + stock: ProductStock + productReservationId: Int + allocationId: Int + allocationExpiration: DateTime + measurements: CrPackageMeasurements + fulfillmentStatus: String +} + +input CrProductInput { + mfgPartNumber: String + upc: String + sku: String + fulfillmentTypesSupported: [String!] + imageAlternateText: String + imageUrl: String + variationProductCode: String + options: [CrProductOptionInput] + properties: [CrProductPropertyInput] + categories: [CrCategoryInput] + price: CrProductPriceInput + discountsRestricted: Boolean = false + discountsRestrictedStartDate: DateTime + discountsRestrictedEndDate: DateTime + isRecurring: Boolean = false + isTaxable: Boolean = false + productType: String + productUsage: String + bundledProducts: [CrBundledProductInput] + fulfillmentFields: [FulfillmentFieldInput] + productCode: String + name: String + description: String + goodsType: String + isPackagedStandAlone: Boolean = false + stock: ProductStockInput + productReservationId: Int + allocationId: Int + allocationExpiration: DateTime + measurements: CrPackageMeasurementsInput + fulfillmentStatus: String +} + +type CrProductOption { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrProductOption + name: String + value: Object + shopperEnteredValue: Object + attributeFQN: String + dataType: String + stringValue: String +} + +input CrProductOptionInput { + name: String + value: Object + shopperEnteredValue: Object + attributeFQN: String + dataType: String + stringValue: String +} + +type CrProductPrice { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrProductPrice + price: Float + salePrice: Float + tenantOverridePrice: Float + msrp: Float + creditValue: Float + priceListCode: String + priceListEntryMode: String +} + +input CrProductPriceInput { + price: Float + salePrice: Float + tenantOverridePrice: Float + msrp: Float + creditValue: Float + priceListCode: String + priceListEntryMode: String +} + +type CrProductProperty { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrProductProperty + attributeFQN: String + name: String + dataType: String + isMultiValue: Boolean + values: [CrProductPropertyValue] +} + +input CrProductPropertyInput { + attributeFQN: String + name: String + dataType: String + isMultiValue: Boolean = false + values: [CrProductPropertyValueInput] +} + +type CrProductPropertyValue { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CrProductPropertyValue + stringValue: String + value: Object +} + +input CrProductPropertyValueInput { + stringValue: String + value: Object +} + +type Credit { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Credit + code: String + activationDate: DateTime + creditType: String + customCreditType: String + currencyCode: String + initialBalance: Float + currentBalance: Float + expirationDate: DateTime + customerId: Int + auditInfo: CuAuditInfo + creditTypeId: Int! +} + +type CreditAuditEntry { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CreditAuditEntry + activityType: String + details: String + auditInfo: CuAuditInfo + activityTypeId: Int! +} + +type CreditAuditEntryCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CreditAuditEntryCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [CreditAuditEntry] +} + +type CreditCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CreditCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [Credit] +} + +input CreditInput { + code: String + activationDate: DateTime + creditType: String + customCreditType: String + currencyCode: String + initialBalance: Float + currentBalance: Float + expirationDate: DateTime + customerId: Int + auditInfo: CuAuditInfoInput + creditTypeId: Int! +} + +type CreditTransaction { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CreditTransaction + id: Int + transactionType: String + comments: String + impactAmount: Float + auditInfo: CuAuditInfo + orderId: String + data: Object +} + +type CreditTransactionCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CreditTransactionCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [CreditTransaction] +} + +input CreditTransactionInput { + id: Int + transactionType: String + comments: String + impactAmount: Float + auditInfo: CuAuditInfoInput + orderId: String + data: Object +} + +type CuAddress { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CuAddress + address1: String + address2: String + address3: String + address4: String + cityOrTown: String + stateOrProvince: String + postalOrZipCode: String + countryCode: String + addressType: String + isValidated: Boolean +} + +input CuAddressInput { + address1: String + address2: String + address3: String + address4: String + cityOrTown: String + stateOrProvince: String + postalOrZipCode: String + countryCode: String + addressType: String + isValidated: Boolean = false +} + +type CuAttribute { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CuAttribute + id: Int + adminName: String + namespace: String + attributeCode: String! + inputType: String + valueType: String! + dataType: String + attributeMetadata: [CuAttributeMetadataItem] + attributeFQN: String + content: CuAttributeLocalizedContent + validation: CuAttributeValidation + vocabularyValues: [CuAttributeVocabularyValue] + auditInfo: CuAuditInfo + isActive: Boolean + isRequired: Boolean + isReadOnly: Boolean + isMultiValued: Boolean + isVisible: Boolean + order: Int + displayGroup: String! +} + +type CuAttributeCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CuAttributeCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [CuAttribute] +} + +input CuAttributeInput { + id: Int + adminName: String + namespace: String + attributeCode: String! + inputType: String + valueType: String! + dataType: String + attributeMetadata: [CuAttributeMetadataItemInput] + attributeFQN: String + content: CuAttributeLocalizedContentInput + validation: CuAttributeValidationInput + vocabularyValues: [CuAttributeVocabularyValueInput] + auditInfo: CuAuditInfoInput + isActive: Boolean = false + isRequired: Boolean = false + isReadOnly: Boolean = false + isMultiValued: Boolean = false + isVisible: Boolean = false + order: Int + displayGroup: String! +} + +type CuAttributeLocalizedContent { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CuAttributeLocalizedContent + localeCode: String + value: String +} + +input CuAttributeLocalizedContentInput { + localeCode: String + value: String +} + +type CuAttributeMetadataItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CuAttributeMetadataItem + key: String! + value: String! +} + +input CuAttributeMetadataItemInput { + key: String! + value: String! +} + +type CuAttributeValidation { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CuAttributeValidation + regularExpression: String + minStringLength: Int + maxStringLength: Int + minNumericValue: Float + maxNumericValue: Float + minDateTime: DateTime + maxDateTime: DateTime +} + +input CuAttributeValidationInput { + regularExpression: String + minStringLength: Int + maxStringLength: Int + minNumericValue: Float + maxNumericValue: Float + minDateTime: DateTime + maxDateTime: DateTime +} + +type CuAttributeValueLocalizedContent { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CuAttributeValueLocalizedContent + localeCode: String! + value: String! +} + +input CuAttributeValueLocalizedContentInput { + localeCode: String! + value: String! +} + +type CuAttributeVocabularyValue { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CuAttributeVocabularyValue + value: String! + sequence: Int + isHidden: Boolean + content: CuAttributeValueLocalizedContent +} + +input CuAttributeVocabularyValueInput { + value: String! + sequence: Int + isHidden: Boolean = false + content: CuAttributeValueLocalizedContentInput +} + +type CuAuditInfo { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CuAuditInfo + updateDate: DateTime + createDate: DateTime + updateBy: String + createBy: String +} + +input CuAuditInfoInput { + updateDate: DateTime + createDate: DateTime + updateBy: String + createBy: String +} + +type CuPhone { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CuPhone + home: String + mobile: String + work: String +} + +input CuPhoneInput { + home: String + mobile: String + work: String +} + +type CurrencyAmount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CurrencyAmount + currencyCode: String + amount: Float! +} + +input CurrencyAmountInput { + currencyCode: String + amount: Float! +} + +type CurrencyExchangeRate { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CurrencyExchangeRate + fromCurrencyCode: String + toCurrencyCode: String + rate: Float + multiplier: Float + decimalPlaces: Int + roundingStrategy: Int + referenceData: String +} + +type Customer { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Customer + customerContact: Contact + data: Object + isDestinationCommercial: Boolean +} + +type CustomerAccount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerAccount + emailAddress: String + userName: String + firstName: String + lastName: String + localeCode: String + userId: String + isAnonymous: Boolean + isLocked: Boolean + isActive: Boolean + acceptsMarketing: Boolean + hasExternalPassword: Boolean + id: Int! + customerSet: String + commerceSummary: CommerceSummary + contacts: [CustomerContact] + companyOrOrganization: String + notes: [CustomerNote] + attributes: [CustomerAttribute] + segments: [CustomerSegment] + taxId: String + externalId: String + auditInfo: CuAuditInfo + customerSinceDate: DateTime + accountType: String +} + +input CustomerAccountAndAuthInfoInput { + account: CustomerAccountInput + password: String + externalPassword: String + isImport: Boolean = false +} + +type CustomerAccountCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerAccountCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [CustomerAccount] +} + +input CustomerAccountInput { + emailAddress: String + userName: String + firstName: String + lastName: String + localeCode: String + userId: String + isAnonymous: Boolean = false + isLocked: Boolean = false + isActive: Boolean = false + acceptsMarketing: Boolean = false + hasExternalPassword: Boolean = false + id: Int! + customerSet: String + commerceSummary: CommerceSummaryInput + contacts: [CustomerContactInput] + companyOrOrganization: String + notes: [CustomerNoteInput] + attributes: [CustomerAttributeInput] + segments: [CustomerSegmentInput] + taxId: String + externalId: String + auditInfo: CuAuditInfoInput + customerSinceDate: DateTime + accountType: String +} + +type CustomerAttribute { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerAttribute + auditInfo: CuAuditInfo + fullyQualifiedName: String + attributeDefinitionId: Int + values: [Object!] +} + +type CustomerAttributeCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerAttributeCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [CustomerAttribute] +} + +input CustomerAttributeInput { + auditInfo: CuAuditInfoInput + fullyQualifiedName: String + attributeDefinitionId: Int + values: [Object!] +} + +type CustomerAuditEntry { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerAuditEntry + customerAccountId: Int! + customerAuditEntryId: Int! + entryDate: DateTime! + entryUser: String + application: String + site: String + description: String + fieldPath: String + oldValue: String + newValue: String +} + +type CustomerAuditEntryCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerAuditEntryCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [CustomerAuditEntry] +} + +type CustomerAuthTicket { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerAuthTicket + customerAccount: CustomerAccount + accessToken: String + accessTokenExpiration: DateTime! + refreshToken: String + refreshTokenExpiration: DateTime! + userId: String + jwtAccessToken: String +} + +type CustomerContact { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerContact + accountId: Int! + types: [ContactType] + auditInfo: CuAuditInfo + faxNumber: String + label: String + id: Int + email: String + firstName: String + middleNameOrInitial: String + lastNameOrSurname: String + companyOrOrganization: String + phoneNumbers: CuPhone + address: CuAddress +} + +type CustomerContactCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerContactCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [CustomerContact] +} + +input CustomerContactInput { + accountId: Int! + types: [ContactTypeInput] + auditInfo: CuAuditInfoInput + faxNumber: String + label: String + id: Int + email: String + firstName: String + middleNameOrInitial: String + lastNameOrSurname: String + companyOrOrganization: String + phoneNumbers: CuPhoneInput + address: CuAddressInput +} + +input CustomerInput { + customerContact: ContactInput + data: Object + isDestinationCommercial: Boolean = false +} + +input CustomerLoginInfoInput { + emailAddress: String + username: String + password: String + externalPassword: String + isImport: Boolean = false +} + +type CustomerNote { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerNote + id: Int! + content: String + auditInfo: CuAuditInfo +} + +type CustomerNoteCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerNoteCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [CustomerNote] +} + +input CustomerNoteInput { + id: Int! + content: String + auditInfo: CuAuditInfoInput +} + +type CustomerPurchaseOrderAccount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerPurchaseOrderAccount + id: Int! + accountId: Int! + isEnabled: Boolean + creditLimit: Float! + availableBalance: Float! + totalAvailableBalance: Float! + overdraftAllowance: Float + overdraftAllowanceType: String + customerPurchaseOrderPaymentTerms: [CustomerPurchaseOrderPaymentTerm] + auditInfo: CuAuditInfo +} + +type CustomerPurchaseOrderAccountCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerPurchaseOrderAccountCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [CustomerPurchaseOrderAccount] +} + +input CustomerPurchaseOrderAccountInput { + id: Int! + accountId: Int! + isEnabled: Boolean = false + creditLimit: Float! + availableBalance: Float! + totalAvailableBalance: Float! + overdraftAllowance: Float + overdraftAllowanceType: String + customerPurchaseOrderPaymentTerms: [CustomerPurchaseOrderPaymentTermInput] + auditInfo: CuAuditInfoInput +} + +type CustomerPurchaseOrderPaymentTerm { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerPurchaseOrderPaymentTerm + siteId: Int! + code: String + description: String + auditInfo: CuAuditInfo +} + +input CustomerPurchaseOrderPaymentTermInput { + siteId: Int! + code: String + description: String + auditInfo: CuAuditInfoInput +} + +type CustomerSegment { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerSegment + id: Int! + code: String + name: String + description: String + auditInfo: CuAuditInfo +} + +type CustomerSegmentCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerSegmentCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [CustomerSegment] +} + +input CustomerSegmentInput { + id: Int! + code: String + name: String + description: String + auditInfo: CuAuditInfoInput +} + +type CustomerSet { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerSet + code: String + name: String + description: String + auditInfo: CuAuditInfo + sites: [CustomerSetSite] + isDefault: Boolean + aggregateInfo: CustomerSetAggregateInfo +} + +type CustomerSetAggregateInfo { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerSetAggregateInfo + customerCount: Int! +} + +type CustomerSetCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerSetCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [CustomerSet] +} + +type CustomerSetSite { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: CustomerSetSite + siteId: Int! + customerSetCode: String + name: String +} + +input CustomerUserAuthInfoInput { + username: String + password: String +} + +""" +DateTime custom scalar type +""" +scalar DateTime + +type Destination { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Destination + id: String + destinationContact: Contact + isDestinationCommercial: Boolean + data: Object +} + +input DestinationInput { + id: String + destinationContact: ContactInput + isDestinationCommercial: Boolean = false + data: Object +} + +type DigitalPackage { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DigitalPackage + id: String + code: String + status: String + items: [DigitalPackageItem] + fulfillmentDate: DateTime + fulfillmentLocationCode: String + auditInfo: CrAuditInfo + availableActions: [String!] + changeMessages: [ChangeMessage] +} + +input DigitalPackageInput { + id: String + code: String + status: String + items: [DigitalPackageItemInput] + fulfillmentDate: DateTime + fulfillmentLocationCode: String + auditInfo: CrAuditInfoInput + availableActions: [String!] + changeMessages: [ChangeMessageInput] +} + +type DigitalPackageItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DigitalPackageItem + giftCardCode: String + productCode: String + quantity: Int! + fulfillmentItemType: String + lineId: Int + optionAttributeFQN: String +} + +input DigitalPackageItemInput { + giftCardCode: String + productCode: String + quantity: Int! + fulfillmentItemType: String + lineId: Int + optionAttributeFQN: String +} + +input DigitalWalletInput { + digitalWalletData: String + cartId: String +} + +input DiscountSelectionsInput { + discountIds: [Int!] +} + +type DiscountValidationSummary { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DiscountValidationSummary + applicableDiscounts: [PrDiscount] +} + +type Document { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Document + id: String + name: String + path: String + publishSetCode: String + extension: String + documentTypeFQN: String + listFQN: String + contentLength: Int + contentMimeType: String + contentUpdateDate: DateTime + publishState: String + properties: Object + insertDate: DateTime + updateDate: DateTime + activeDateRange: ActiveDateRange +} + +type DocumentCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DocumentCollection + subPaths: [String!] + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [Document] +} + +type DocumentDraftSummary { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DocumentDraftSummary + id: String + name: String + documentTypeFQN: String + listFQN: String + activeUpdateDate: DateTime + draftUpdateDate: DateTime! + updatedBy: String + activeUpdatedBy: String + publishType: String + publishSetCode: String + masterCatalogId: Int + catalogId: Int + siteId: Int +} + +type DocumentDraftSummaryPagedCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DocumentDraftSummaryPagedCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [DocumentDraftSummary] +} + +input DocumentInput { + id: String + name: String + path: String + publishSetCode: String + extension: String + documentTypeFQN: String + listFQN: String + contentLength: Int + contentMimeType: String + contentUpdateDate: DateTime + publishState: String + properties: Object + insertDate: DateTime + updateDate: DateTime + activeDateRange: ActiveDateRangeInput +} + +type DocumentInstallation { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DocumentInstallation + name: String + documentTypeFQN: String + properties: Object + locale: String +} + +input DocumentInstallationInput { + name: String + documentTypeFQN: String + properties: Object + locale: String +} + +type DocumentList { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DocumentList + name: String + namespace: String + listFQN: String + documentTypes: [String!] + supportsPublishing: Boolean + enablePublishing: Boolean + supportsActiveDateRanges: Boolean + enableActiveDateRanges: Boolean + views: [View] + usages: [String!] + security: String + scopeId: Int + scopeType: String + documentListType: String + metadata: Object +} + +type DocumentListCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DocumentListCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [DocumentList] +} + +input DocumentListInput { + name: String + namespace: String + listFQN: String + documentTypes: [String!] + supportsPublishing: Boolean = false + enablePublishing: Boolean = false + supportsActiveDateRanges: Boolean = false + enableActiveDateRanges: Boolean = false + views: [ViewInput] + usages: [String!] + security: String + scopeId: Int + scopeType: String + documentListType: String + metadata: Object +} + +type DocumentListType { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DocumentListType + name: String + namespace: String + documentListTypeFQN: String + scopeType: String + installationPackage: String + version: String + defaultDocuments: [DocumentInstallation] + documentTypeFQNs: [String!] + supportsPublishing: Boolean + enablePublishing: Boolean + supportsActiveDateRanges: Boolean + enableActiveDateRanges: Boolean + views: [View] + usages: [String!] + metadata: Object +} + +type DocumentListTypeCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DocumentListTypeCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [DocumentListType] +} + +input DocumentListTypeInput { + name: String + namespace: String + documentListTypeFQN: String + scopeType: String + installationPackage: String + version: String + defaultDocuments: [DocumentInstallationInput] + documentTypeFQNs: [String!] + supportsPublishing: Boolean = false + enablePublishing: Boolean = false + supportsActiveDateRanges: Boolean = false + enableActiveDateRanges: Boolean = false + views: [ViewInput] + usages: [String!] + metadata: Object +} + +type DocumentType { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DocumentType + name: String + namespace: String + documentTypeFQN: String + adminName: String + installationPackage: String + version: String + metadata: Object + properties: [Property] +} + +type DocumentTypeCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: DocumentTypeCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [DocumentType] +} + +input DocumentTypeInput { + name: String + namespace: String + documentTypeFQN: String + adminName: String + installationPackage: String + version: String + metadata: Object + properties: [PropertyInput] +} + +type EntityCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: EntityCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [Object!] +} + +type EntityContainer { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: EntityContainer + tenantId: Int! + siteId: Int + masterCatalogId: Int + catalogId: Int + localeCode: String + listFullName: String + userId: String + id: String + item: Object + createBy: String + createDate: DateTime! + updateBy: String + updateDate: DateTime! +} + +type EntityContainerCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: EntityContainerCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [EntityContainer] +} + +type EntityList { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: EntityList + tenantId: Int! + nameSpace: String + name: String + contextLevel: String + useSystemAssignedId: Boolean + idProperty: IndexedProperty + indexA: IndexedProperty + indexB: IndexedProperty + indexC: IndexedProperty + indexD: IndexedProperty + isVisibleInStorefront: Boolean + isLocaleSpecific: Boolean + isShopperSpecific: Boolean + isSandboxDataCloningSupported: Boolean + views: [ListView] + usages: [String!] + metadata: Object + createDate: DateTime! + updateDate: DateTime! +} + +type EntityListCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: EntityListCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [EntityList] +} + +input EntityListInput { + tenantId: Int! + nameSpace: String + name: String + contextLevel: String + useSystemAssignedId: Boolean = false + idProperty: IndexedPropertyInput + indexA: IndexedPropertyInput + indexB: IndexedPropertyInput + indexC: IndexedPropertyInput + indexD: IndexedPropertyInput + isVisibleInStorefront: Boolean = false + isLocaleSpecific: Boolean = false + isShopperSpecific: Boolean = false + isSandboxDataCloningSupported: Boolean = false + views: [ListViewInput] + usages: [String!] + metadata: Object + createDate: DateTime! + updateDate: DateTime! +} + +input ExclusionListEntryLocationCodeInput { + locationCode: String! + orderItemID: Int! +} + +type ExtendedProperty { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ExtendedProperty + key: String + value: String +} + +input ExtendedPropertyInput { + key: String + value: String +} + +type Facet { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Facet + label: String + facetType: String + field: String + values: [FacetValue] +} + +type FacetValue { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: FacetValue + label: String + isApplied: Boolean + count: Int! + value: String + filterValue: String + rangeQueryValueStart: String + rangeQueryValueEnd: String + parentFacetValue: String + isDisplayed: Boolean + childrenFacetValues: [FacetValue] +} + +input FulfillmentActionInput { + actionName: String + packageIds: [String!] + pickupIds: [String!] + digitalPackageIds: [String!] +} + +type FulfillmentField { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: FulfillmentField + name: String + userEnteredValue: Object + required: Boolean +} + +input FulfillmentFieldInput { + name: String + userEnteredValue: Object + required: Boolean = false +} + +type FulfillmentInfo { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: FulfillmentInfo + fulfillmentContact: Contact + isDestinationCommercial: Boolean + shippingMethodCode: String + shippingMethodName: String + data: Object + auditInfo: CrAuditInfo +} + +input FulfillmentInfoInput { + fulfillmentContact: ContactInput + isDestinationCommercial: Boolean = false + shippingMethodCode: String + shippingMethodName: String + data: Object + auditInfo: CrAuditInfoInput +} + +type FulfillmentShopperNotes { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: FulfillmentShopperNotes + comments: String + deliveryInstructions: String + giftMessage: String +} + +input FulfillmentShopperNotesInput { + comments: String + deliveryInstructions: String + giftMessage: String +} + +type FulfillmentTask { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: FulfillmentTask + links: Object + active: Boolean + attributes: Object + completed: Boolean + completedDate: DateTime + description: String + inputs: [TaskInput] + name: String + skippable: Boolean + subject: String + taskId: String +} + +input FulfillmentTaskInput { + links: Object + active: Boolean = false + attributes: Object + completed: Boolean = false + completedDate: DateTime + description: String + inputs: [TaskInputInput] + name: String + skippable: Boolean = false + subject: String + taskId: String +} + +type GatewayGiftCard { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: GatewayGiftCard + cardNumber: String + amount: Float! + currencyCode: String +} + +input GatewayGiftCardInput { + cardNumber: String + amount: Float! + currencyCode: String +} + +type GiftCard { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: GiftCard + activationDate: DateTime + cardNumber: String + code: String + creditType: String + creditValue: Float + currencyCode: String + currentBalance: Float + customerId: Int + expirationDate: DateTime + initialBalance: Float +} + +input GiftCardInput { + activationDate: DateTime + cardNumber: String + code: String + creditType: String + creditValue: Float + currencyCode: String + currentBalance: Float + customerId: Int + expirationDate: DateTime + initialBalance: Float +} + +type Hours { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Hours + label: String + openTime: String + closeTime: String + isClosed: Boolean +} + +input HoursInput { + label: String + openTime: String + closeTime: String + isClosed: Boolean = false +} + +type InStockNotificationSubscription { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: InStockNotificationSubscription + id: Int + email: String + customerId: Int + productCode: String + locationCode: String + userId: String + auditInfo: CuAuditInfo +} + +type InStockNotificationSubscriptionCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: InStockNotificationSubscriptionCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [InStockNotificationSubscription] +} + +input InStockNotificationSubscriptionInput { + id: Int + email: String + customerId: Int + productCode: String + locationCode: String + userId: String + auditInfo: CuAuditInfoInput +} + +type IndexedProperty { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: IndexedProperty + propertyName: String + dataType: String +} + +input IndexedPropertyInput { + propertyName: String + dataType: String +} + +type InvalidCoupon { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: InvalidCoupon + couponCode: String + reasonCode: Int! + reason: String + createDate: DateTime! + discountId: Int! +} + +input InvalidCouponInput { + couponCode: String + reasonCode: Int! + reason: String + createDate: DateTime! + discountId: Int! +} + +enum InventoryRequestTypeEnum { + ALL + PARTIAL + ANY + ALL_STORES +} + +input ItemsForDestinationInput { + destinationId: String + itemIds: [String!] +} + +type JsonNode { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: JsonNode + array: Boolean + bigDecimal: Boolean + bigInteger: Boolean + binary: Boolean + boolean: Boolean + containerNode: Boolean + double: Boolean + float: Boolean + floatingPointNumber: Boolean + int: Boolean + integralNumber: Boolean + long: Boolean + missingNode: Boolean + nodeType: NodeTypeEnum + null: Boolean + number: Boolean + object: Boolean + pojo: Boolean + short: Boolean + textual: Boolean + valueNode: Boolean +} + +input KeyValuePair2Input { + key: String + value: [String!] +} + +type ListView { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ListView + name: String + usages: [String!] + metaData: Object + security: String + filter: String + defaultSort: String + fields: [ListViewField] +} + +type ListViewCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ListViewCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [ListView] +} + +type ListViewField { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ListViewField + name: String + type: String + target: String +} + +input ListViewFieldInput { + name: String + type: String + target: String +} + +input ListViewInput { + name: String + usages: [String!] + metaData: Object + security: String + filter: String + defaultSort: String + fields: [ListViewFieldInput] +} + +type LoAddress { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LoAddress + address1: String + address2: String + address3: String + address4: String + cityOrTown: String + stateOrProvince: String + postalOrZipCode: String + countryCode: String + addressType: String + isValidated: Boolean +} + +input LoAddressInput { + address1: String + address2: String + address3: String + address4: String + cityOrTown: String + stateOrProvince: String + postalOrZipCode: String + countryCode: String + addressType: String + isValidated: Boolean = false +} + +type LoAttribute { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LoAttribute + id: Int + adminName: String + namespace: String + attributeCode: String! + inputType: String + valueType: String! + dataType: String + attributeMetadata: [LoAttributeMetadataItem] + attributeFQN: String + content: LoAttributeLocalizedContent + validation: LoAttributeValidation + vocabularyValues: [LoAttributeVocabularyValue] + auditInfo: LoAuditInfo + isActive: Boolean + isRequired: Boolean + isReadOnly: Boolean + isMultiValued: Boolean + isVisible: Boolean + order: Int + displayGroup: String! +} + +type LoAttributeCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LoAttributeCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [LoAttribute] +} + +input LoAttributeInput { + id: Int + adminName: String + namespace: String + attributeCode: String! + inputType: String + valueType: String! + dataType: String + attributeMetadata: [LoAttributeMetadataItemInput] + attributeFQN: String + content: LoAttributeLocalizedContentInput + validation: LoAttributeValidationInput + vocabularyValues: [LoAttributeVocabularyValueInput] + auditInfo: LoAuditInfoInput + isActive: Boolean = false + isRequired: Boolean = false + isReadOnly: Boolean = false + isMultiValued: Boolean = false + isVisible: Boolean = false + order: Int + displayGroup: String! +} + +type LoAttributeLocalizedContent { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LoAttributeLocalizedContent + localeCode: String + value: String +} + +input LoAttributeLocalizedContentInput { + localeCode: String + value: String +} + +type LoAttributeMetadataItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LoAttributeMetadataItem + key: String! + value: String! +} + +input LoAttributeMetadataItemInput { + key: String! + value: String! +} + +type LoAttributeValidation { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LoAttributeValidation + regularExpression: String + minStringLength: Int + maxStringLength: Int + minNumericValue: Float + maxNumericValue: Float + minDateTime: DateTime + maxDateTime: DateTime +} + +input LoAttributeValidationInput { + regularExpression: String + minStringLength: Int + maxStringLength: Int + minNumericValue: Float + maxNumericValue: Float + minDateTime: DateTime + maxDateTime: DateTime +} + +type LoAttributeValueLocalizedContent { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LoAttributeValueLocalizedContent + localeCode: String! + value: String! +} + +input LoAttributeValueLocalizedContentInput { + localeCode: String! + value: String! +} + +type LoAttributeVocabularyValue { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LoAttributeVocabularyValue + value: String! + sequence: Int + isHidden: Boolean + content: LoAttributeValueLocalizedContent +} + +input LoAttributeVocabularyValueInput { + value: String! + sequence: Int + isHidden: Boolean = false + content: LoAttributeValueLocalizedContentInput +} + +type LoAuditInfo { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LoAuditInfo + updateDate: DateTime + createDate: DateTime + updateBy: String + createBy: String +} + +input LoAuditInfoInput { + updateDate: DateTime + createDate: DateTime + updateBy: String + createBy: String +} + +type LoFulfillmentType { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LoFulfillmentType + code: String + name: String +} + +input LoFulfillmentTypeInput { + code: String + name: String +} + +type Location { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Location + code: String + locationTypes: [LocationType] + name: String + description: String + address: LoAddress + geo: Coordinates + phone: String + fax: String + supportsInventory: Boolean + fulfillmentTypes: [LoFulfillmentType] + regularHours: RegularHours + shippingOriginContact: ShippingOriginContact + note: String + tags: [String!] + attributes: [LocationAttribute] + auditInfo: LoAuditInfo + allowFulfillmentWithNoStock: Boolean + isDisabled: Boolean + express: Boolean + transferEnabled: Boolean + includeInInventoryAggregrate: Boolean + includeInLocationExport: Boolean + warehouseEnabled: Boolean + requiresManifest: Boolean +} + +type LocationAttribute { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LocationAttribute + attributeDefinition: LoAttribute + auditInfo: LoAuditInfo + fullyQualifiedName: String + attributeDefinitionId: Int + values: [Object!] +} + +input LocationAttributeInput { + attributeDefinition: LoAttributeInput + auditInfo: LoAuditInfoInput + fullyQualifiedName: String + attributeDefinitionId: Int + values: [Object!] +} + +type LocationCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LocationCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [Location] +} + +type LocationGroup { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LocationGroup + locationGroupId: Int! + locationGroupCode: String + siteIds: [Int!] + name: String + locationCodes: [String!] + auditInfo: LoAuditInfo +} + +type LocationGroupCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LocationGroupCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [LocationGroup] +} + +type LocationGroupConfiguration { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LocationGroupConfiguration + tenantId: Int! + siteId: Int! + locationGroupId: Int! + locationGroupCode: String + customerFailedToPickupAfterAction: String + customerFailedToPickupDeadline: Int + sendCustomerPickupReminder: Int + enableForSTH: Boolean + enableForISPU: Boolean + enableAdvancedOptionForPickWaveCreation: Boolean + maximumNumberOfOrdersInPickWave: Int + defaultNumberOfOrdersInPickWave: Int + pickWavePrintFormat: String + closePickWavePermissions: [String!] + wmsEnabled: Boolean + enableScanningOfUpcForShipToHome: Boolean + allowReturns: Boolean + returnRefundReduction: Boolean + defaultReturnRefundReductionAmount: Int + maximumReturnRefundReductionAmount: Int + defaultCarrier: String + carriers: [Carrier] + printReturnLabel: Boolean + defaultPrinterType: String + boxTypes: [BoxType] + attributes: [LocationAttribute] + bpmConfigurations: [BpmConfiguration] + auditInfo: LoAuditInfo + autoPackingListPopup: Boolean + blockPartialStock: Boolean + defaultMaxNumberOfShipmentsInPickWave: Int + displayProductImagesInPickWaveDetails: Boolean + enablePnpForSTH: Boolean + enablePnpForBOPIS: Boolean + blockPartialCancel: Boolean + packageSettings: PackageSettings +} + +input LocationGroupInput { + locationGroupId: Int! + locationGroupCode: String + siteIds: [Int!] + name: String + locationCodes: [String!] + auditInfo: LoAuditInfoInput +} + +input LocationInput { + code: String + locationTypes: [LocationTypeInput] + name: String + description: String + address: LoAddressInput + geo: CoordinatesInput + phone: String + fax: String + supportsInventory: Boolean = false + fulfillmentTypes: [LoFulfillmentTypeInput] + regularHours: RegularHoursInput + shippingOriginContact: ShippingOriginContactInput + note: String + tags: [String!] + attributes: [LocationAttributeInput] + auditInfo: LoAuditInfoInput + allowFulfillmentWithNoStock: Boolean = false + isDisabled: Boolean = false + express: Boolean = false + transferEnabled: Boolean = false + includeInInventoryAggregrate: Boolean = false + includeInLocationExport: Boolean = false + warehouseEnabled: Boolean = false + requiresManifest: Boolean = false +} + +type LocationInventory { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LocationInventory + productCode: String + locationCode: String + stockAvailable: Int + softStockAvailable: Int + sku: String + mfgPartNumber: String +} + +type LocationInventoryCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LocationInventoryCollection + totalCount: Int! + items: [LocationInventory] +} + +input LocationInventoryQueryInput { + locationCodes: [String!] + productCodes: [String!] +} + +type LocationType { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LocationType + code: String + name: String + auditInfo: LoAuditInfo +} + +input LocationTypeInput { + code: String + name: String + auditInfo: LoAuditInfoInput +} + +type LocationUsage { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LocationUsage + locationUsageTypeCode: String + locationTypeCodes: [String!] + locationCodes: [String!] + auditInfo: LoAuditInfo +} + +type LocationUsageCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LocationUsageCollection + totalCount: Int! + items: [LocationUsage] +} + +input LocationUsageInput { + locationUsageTypeCode: String + locationTypeCodes: [String!] + locationCodes: [String!] + auditInfo: LoAuditInfoInput +} + +type LoginState { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: LoginState + isPasswordChangeRequired: Boolean + lastPasswordChangeOn: DateTime + isLocked: Boolean + lastLockedOn: DateTime + failedLoginAttemptCount: Int! + remainingLoginAttempts: Int! + firstFailedLoginAttemptOn: DateTime + lastLoginOn: DateTime + createdOn: DateTime + updatedOn: DateTime +} + +input MZDBHttpContentInput { + headers: [MZDBStringStringIEnumerableKeyValuePairInput] +} + +input MZDBHttpMethodInput { + method: String +} + +input MZDBHttpRequestMessageInput { + version: String + content: MZDBHttpContentInput + method: MZDBHttpMethodInput + requestUri: DateTime + headers: [MZDBStringStringIEnumerableKeyValuePairInput] + properties: Object +} + +input MZDBStringStringIEnumerableKeyValuePairInput { + key: String + value: [String!] +} + +type Mutation { + createCustomerAccountAttributeDefinition( + attributeInput: CuAttributeInput + ): CuAttribute + updateCustomerAccountAttributeDefinition( + attributeFQN: String! + attributeInput: CuAttributeInput + ): CuAttribute + validateCustomerAddress( + addressValidationRequestInput: AddressValidationRequestInput + ): AddressValidationResponse + validateAddress(addressInput: CuAddressInput): [CuAddress] + createCustomerAuthTicket( + customerUserAuthInfoInput: CustomerUserAuthInfoInput + ): CustomerAuthTicket + refreshCustomerAuthTickets(refreshToken: String): CustomerAuthTicket + createCustomerB2bAccountAttribute( + accountId: Int! + customerAttributeInput: CustomerAttributeInput + ): CustomerAttribute + deleteB2bAccountAttribute(accountId: Int!, attributeFQN: String!): Boolean + updateCustomerB2bAccountAttribute( + accountId: Int! + attributeFQN: String! + customerAttributeInput: CustomerAttributeInput + ): CustomerAttribute + createCustomerB2bAccount(b2BAccountInput: B2BAccountInput): B2BAccount + updateCustomerB2bAccount( + accountId: Int! + b2BAccountInput: B2BAccountInput + ): B2BAccount + createCustomerB2bAccountUser( + accountId: Int! + b2BUserAndAuthInfoInput: B2BUserAndAuthInfoInput + ): B2BUser + updateCustomerB2bAccountUser( + accountId: Int! + userId: String! + b2BUserInput: B2BUserInput + ): B2BUser + removeCustomerB2bAccountUser(accountId: Int!, userId: String!): Boolean + addRoleToCustomerB2bAccount( + accountId: Int! + userId: String! + roleId: Int! + ): Boolean + deleteB2bAccountRole(accountId: Int!, userId: String!, roleId: Int!): Boolean + createCustomerCredit(userId: String, creditInput: CreditInput): Credit + updateCustomerCredit(code: String!, creditInput: CreditInput): Credit + deleteCustomerCredit(code: String!): Boolean + updateCustomerCreditAssociateToShopper(code: String!): Credit + resendCustomerCreditEmail(code: String!, userId: String): Boolean + createCustomerCreditTransaction( + code: String! + creditTransactionInput: CreditTransactionInput + ): CreditTransaction + createCustomerAccountAttribute( + accountId: Int! + userId: String + customerAttributeInput: CustomerAttributeInput + ): CustomerAttribute + deleteCustomerAccountAttribute( + accountId: Int! + attributeFQN: String! + userId: String + ): Boolean + updateCustomerAccountAttribute( + accountId: Int! + attributeFQN: String! + userId: String + customerAttributeInput: CustomerAttributeInput + ): CustomerAttribute + createCustomerAccountCard(accountId: Int!, cardInput: CardInput): Card + updateCustomerAccountCard( + accountId: Int! + cardId: String! + cardInput: CardInput + ): Card + deleteCustomerAccountCard(accountId: Int!, cardId: String!): Boolean + createCustomerAccountContact( + accountId: Int! + customerContactInput: CustomerContactInput + ): CustomerContact + updateCustomerAccountContacts( + accountId: Int! + customerContactInput: CustomerContactInput + ): CustomerContactCollection + updateCustomerAccountContact( + accountId: Int! + contactId: Int! + userId: String + customerContactInput: CustomerContactInput + ): CustomerContact + deleteCustomerAccountContact(accountId: Int!, contactId: Int!): Boolean + createCustomerAccount( + customerAccountInput: CustomerAccountInput + ): CustomerAccount + updateCustomerAccount( + accountId: Int! + customerAccountInput: CustomerAccountInput + ): CustomerAccount + deleteCustomerAccount(accountId: Int!): Boolean + createCustomerAccountTransaction( + accountId: Int! + transactionInput: TransactionInput + ): Transaction + deleteCustomerAccountTransaction( + accountId: Int! + transactionId: String! + ): Boolean + recomputeCustomerAccountLifetimeValue(accountId: Int!): Boolean + createCustomerAccountNote( + accountId: Int! + customerNoteInput: CustomerNoteInput + ): CustomerNote + updateCustomerAccountNote( + accountId: Int! + noteId: Int! + customerNoteInput: CustomerNoteInput + ): CustomerNote + deleteCustomerAccountNote(accountId: Int!, noteId: Int!): Boolean + createCustomerAccountPurchaseOrderAccount( + accountId: Int! + customerPurchaseOrderAccountInput: CustomerPurchaseOrderAccountInput + ): CustomerPurchaseOrderAccount + updateCustomerPurchaseOrderAccount( + accountId: Int! + customerPurchaseOrderAccountInput: CustomerPurchaseOrderAccountInput + ): CustomerPurchaseOrderAccount + createCustomerAccountPurchaseOrderAccountTransaction( + accountId: Int! + purchaseOrderTransactionInput: PurchaseOrderTransactionInput + ): PurchaseOrderTransaction + createPurchaseOrderAccount( + startIndex: Int + pageSize: Int + sortBy: String + accountType: String + ): CustomerPurchaseOrderAccountCollection + changeCustomerAccountPassword( + accountId: Int! + unlockAccount: Boolean + userId: String + passwordInfoInput: PasswordInfoInput + ): Boolean + updateCustomerAccountPasswords( + accountPasswordInfoCollectionInput: AccountPasswordInfoCollectionInput + ): ChangePasswordResultCollection + resetCustomerAccountPassword( + resetPasswordInfoInput: ResetPasswordInfoInput + ): Boolean + createCustomerAccountLogin( + accountId: Int! + customerLoginInfoInput: CustomerLoginInfoInput + ): CustomerAuthTicket + createCustomerAccountAndLogin( + customerAccountAndAuthInfoInput: CustomerAccountAndAuthInfoInput + ): CustomerAuthTicket + setCustomerAccountLoginLocked( + accountId: Int! + userId: String + graphQLBoolean: Boolean + ): Boolean + setCustomerAccountPasswordChangeRequired( + accountId: Int! + userId: String + graphQLBoolean: Boolean + ): Boolean + createCustomerAccounts( + customerAccountAndAuthInfoInput: CustomerAccountAndAuthInfoInput + ): CustomerAccountCollection + createCustomerSegment( + customerSegmentInput: CustomerSegmentInput + ): CustomerSegment + updateCustomerSegment( + id: Int! + customerSegmentInput: CustomerSegmentInput + ): CustomerSegment + deleteCustomerSegment(id: Int!): Boolean + createCustomerSegmentAccount(id: Int!, graphQLInt: Int): Boolean + deleteCustomerSegmentAccount(id: Int!, accountId: Int!): Boolean + createInStockNotification( + inStockNotificationSubscriptionInput: InStockNotificationSubscriptionInput + ): InStockNotificationSubscription + deleteInStockNotification(id: Int!): Boolean + createResolvedPriceList(object: Object): ResolvedPriceList + configureProduct( + productCode: String! + includeOptionDetails: Boolean + skipInventoryCheck: Boolean + quantity: Int + purchaseLocation: String + variationProductCodeFilter: String + productOptionSelectionsInput: ProductOptionSelectionsInput + ): ConfiguredProduct + validateProduct( + productCode: String! + skipInventoryCheck: Boolean + quantity: Int + skipDefaults: Boolean + purchaseLocation: String + productOptionSelectionsInput: ProductOptionSelectionsInput + ): ProductValidationSummary + validateProductDiscounts( + productCode: String! + variationProductCode: String + customerAccountId: Int + allowInactive: Boolean + skipInventoryCheck: Boolean + discountSelectionsInput: DiscountSelectionsInput + ): DiscountValidationSummary + manageLocationProductInventory( + locationInventoryQueryInput: LocationInventoryQueryInput + ): LocationInventoryCollection + createProductCost( + productCostQueryInput: ProductCostQueryInput + ): ProductCostCollection + createCartForUser(userId: String!): Cart + updateUserCart(userId: String!, cartInput: CartInput): Cart + updateCurrentCart(cartInput: CartInput): Cart + deleteCurrentCart: Boolean + updateCart(cartId: String!, cartInput: CartInput): Cart + deleteCart(cartId: String!): Boolean + deleteUserCart(userId: String!): Boolean + rejectCartDiscount(cartId: String!, discountId: Int!): Cart + updateCartCoupon(cartId: String!, couponCode: String!): Cart + deleteCartCoupons(cartId: String!): Cart + deleteCartCoupon(cartId: String!, couponCode: String!): Cart + addExtendedPropertyToCurrentCart( + extendedPropertyInput: ExtendedPropertyInput + ): [ExtendedProperty] + updateCurrentCartExtendedProperties( + upsert: Boolean + extendedPropertyInput: ExtendedPropertyInput + ): [ExtendedProperty] + deleteCurrentCartExtendedProperties(graphQLString: String): Boolean + updateCurrentCartExtendedProperty( + key: String! + upsert: Boolean + extendedPropertyInput: ExtendedPropertyInput + ): ExtendedProperty + deleteCurrentCartExtendedProperty(key: String!): Boolean + deleteCurrentCartItems: Cart + addItemToCurrentCart(cartItemInput: CartItemInput): CartItem + deleteCartItems(cartId: String!): Cart + addItemToCart(cartId: String!, cartItemInput: CartItemInput): CartItem + updateCurrentCartItem( + cartItemId: String! + cartItemInput: CartItemInput + ): CartItem + deleteCurrentCartItem(cartItemId: String!): Boolean + updateCartItem( + cartId: String! + cartItemId: String! + cartItemInput: CartItemInput + ): CartItem + deleteCartItem(cartId: String!, cartItemId: String!): Boolean + addItemsToCurrentCart( + throwErrorOnInvalidItems: Boolean + cartItemInput: CartItemInput + ): Boolean + addItemsToCart( + cartId: String! + throwErrorOnInvalidItems: Boolean + cartItemInput: CartItemInput + ): Boolean + updateCurrentCartItemQuantity(cartItemId: String!, quantity: Int!): CartItem + updateCartItemQuantity( + cartId: String! + cartItemId: String! + quantity: Int! + ): CartItem + deleteCurrentCartMessages: Boolean + deleteCurrentCartMessage(messageId: String!): Boolean + createCommerceChannel(channelInput: ChannelInput): Channel + updateChannel(code: String!, channelInput: ChannelInput): Channel + deleteCommerceChannel(code: String!): Boolean + createCommerceChannelGroup(channelGroupInput: ChannelGroupInput): ChannelGroup + updateChannelGroup( + code: String! + channelGroupInput: ChannelGroupInput + ): ChannelGroup + deleteCommerceChannelGroup(code: String!): Boolean + createCheckoutAttribute( + checkoutId: String! + orderAttributeInput: OrderAttributeInput + ): [OrderAttribute] + updateCheckoutAttributes( + checkoutId: String! + removeMissing: Boolean + orderAttributeInput: OrderAttributeInput + ): [OrderAttribute] + updateCheckout(checkoutId: String!, checkoutInput: CheckoutInput): Checkout + createCheckout(cartId: String): Checkout + createCheckoutShippingMethod( + checkoutId: String! + checkoutGroupShippingMethodInput: CheckoutGroupShippingMethodInput + ): Checkout + createCheckoutAction( + checkoutId: String! + checkoutActionInput: CheckoutActionInput + ): Checkout + updateCheckoutDigitalWalletType( + checkoutId: String! + digitalWalletType: String! + digitalWalletInput: DigitalWalletInput + ): Checkout + updateCheckoutPriceList(checkoutId: String!, graphQLString: String): Checkout + resendCheckoutEmail(checkoutId: String!): Boolean + updateCheckoutCoupon(checkoutId: String!, couponCode: String!): Checkout + deleteCheckoutCoupons(checkoutId: String!): Checkout + deleteCheckoutCoupon(checkoutId: String!, couponCode: String!): Checkout + updateCheckoutDestination( + checkoutId: String! + destinationId: String! + destinationInput: DestinationInput + ): Destination + deleteCheckoutDestination( + checkoutId: String! + destinationId: String! + ): Boolean + createCheckoutDestination( + checkoutId: String! + destinationInput: DestinationInput + ): Destination + createCheckoutItem( + checkoutId: String! + orderItemInput: CrOrderItemInput + ): Checkout + deleteCheckoutItem(checkoutId: String!, itemId: String!): Checkout + updateCheckoutItemDestination( + checkoutId: String! + itemId: String! + destinationId: String! + ): Checkout + createCheckoutItemDestination( + checkoutId: String! + itemsForDestinationInput: ItemsForDestinationInput + ): Checkout + createCheckoutPaymentAction( + checkoutId: String! + paymentActionInput: PaymentActionInput + ): Checkout + updateCheckoutPaymentAction( + checkoutId: String! + paymentId: String! + paymentActionInput: PaymentActionInput + ): Checkout + createOrderPaymentAction( + orderId: String! + paymentActionInput: PaymentActionInput + ): Order + createOrderPaymentPaymentAction( + orderId: String! + paymentId: String! + paymentActionInput: PaymentActionInput + ): Order + createOrderAutoCapture(orderId: String!, forceCapture: Boolean): Order + createOrderPickup(orderId: String!, pickupInput: PickupInput): Pickup + updateOrderPickup( + orderId: String! + pickupId: String! + pickupInput: PickupInput + ): Pickup + deleteOrderPickup(orderId: String!, pickupId: String!): Boolean + createOrderRefund(orderId: String!, refundInput: RefundInput): Refund + updateOrderRefund(orderId: String!, refundId: String!): Boolean + createOrderShipment(orderId: String!, graphQLString: String): [PackageObj] + deleteOrderShipment(orderId: String!, shipmentId: String!): Boolean + repriceOrderShipment( + shipmentNumber: Int! + orderId: String! + repriceShipmentObjectInput: RepriceShipmentObjectInput + ): Shipment + createOrderShipmentAdjustment( + orderId: String! + shipmentNumber: Int! + shipmentAdjustmentInput: ShipmentAdjustmentInput + ): Shipment + createOrderShipmentItemAdjustment( + shipmentNumber: Int! + itemId: Int! + orderId: String! + shipmentItemAdjustmentInput: ShipmentItemAdjustmentInput + ): Shipment + splitOrderShipment( + orderId: String! + shipmentNumber: String! + splitShipmentsObjectInput: SplitShipmentsObjectInput + ): [Shipment] + updateOrderValidationResults( + orderId: String! + orderValidationResultInput: OrderValidationResultInput + ): OrderValidationResult + updateOrderAdjustment( + orderId: String! + updateMode: String + version: String + adjustmentInput: AdjustmentInput + ): Order + deleteOrderAdjustment( + orderId: String! + updateMode: String + version: String + ): Order + updateOrderShippingAdjustment( + orderId: String! + updateMode: String + version: String + adjustmentInput: AdjustmentInput + ): Order + deleteOrderAdjustmentShipping( + orderId: String! + updateMode: String + version: String + ): Order + updateOrderHandlingAdjustment( + orderId: String! + updateMode: String + version: String + adjustmentInput: AdjustmentInput + ): Order + deleteOrderAdjustmentHandling( + orderId: String! + updateMode: String + version: String + ): Order + createOrderAttribute( + orderId: String! + orderAttributeInput: OrderAttributeInput + ): [OrderAttribute] + updateOrderAttributes( + orderId: String! + removeMissing: Boolean + orderAttributeInput: OrderAttributeInput + ): [OrderAttribute] + updateOrderBillingInfo( + orderId: String! + updateMode: String + version: String + billingInfoInput: BillingInfoInput + ): BillingInfo + cancelOrder(orderId: String!, canceledReasonInput: CanceledReasonInput): Order + createOrder(cartId: String, quoteId: String, orderInput: OrderInput): Order + updateUserOrder(orderId: String!): Order + updateOrderPriceList( + orderId: String! + updateMode: String + version: String + graphQLString: String + ): Order + resendOrderEmail( + orderId: String! + orderActionInput: OrderActionInput + ): Boolean + updateOrder( + orderId: String! + updateMode: String + version: String + orderInput: OrderInput + ): Order + updateOrderDigitalWalletTpe( + orderId: String! + digitalWalletType: String! + digitalWalletInput: DigitalWalletInput + ): Order + updateOrderDraft(orderId: String!, version: String): Boolean + createOrderAction(orderId: String!, orderActionInput: OrderActionInput): Order + updateOrderDiscount( + orderId: String! + discountId: Int! + updateMode: String + version: String + appliedDiscountInput: CrAppliedDiscountInput + ): Order + updateOrderPrice(refreshShipping: Boolean, orderInput: OrderInput): Order + updateOrderCoupon( + orderId: String! + couponCode: String! + updateMode: String + version: String + ): Order + deleteOrderCoupons( + orderId: String! + updateMode: String + version: String + ): Order + deleteOrderCoupon( + orderId: String! + couponCode: String! + updateMode: String + version: String + ): Order + createOrderDigitalPackage( + orderId: String! + digitalPackageInput: DigitalPackageInput + ): DigitalPackage + updateOrderDigitalPackage( + orderId: String! + digitalPackageId: String! + digitalPackageInput: DigitalPackageInput + ): DigitalPackage + deleteOrderDigitalPackage( + orderId: String! + digitalPackageId: String! + ): Boolean + createOrderExtendedProperties( + orderId: String! + updateMode: String + version: String + extendedPropertyInput: ExtendedPropertyInput + ): [ExtendedProperty] + updateOrderExtendedProperties( + orderId: String! + updateMode: String + version: String + upsert: Boolean + extendedPropertyInput: ExtendedPropertyInput + ): [ExtendedProperty] + deleteOrderExtendedProperties( + orderId: String! + updateMode: String + version: String + graphQLString: String + ): Boolean + updateOrderExtendedProperty( + orderId: String! + key: String! + updateMode: String + version: String + upsert: Boolean + extendedPropertyInput: ExtendedPropertyInput + ): ExtendedProperty + deleteOrderExtendedProperty( + orderId: String! + key: String! + updateMode: String + version: String + ): Boolean + createOrderFulfillmentAction( + orderId: String! + fulfillmentActionInput: FulfillmentActionInput + ): Order + resendOrderFulfillmentEmail( + orderId: String! + fulfillmentActionInput: FulfillmentActionInput + ): Order + updateOrderFulfillmentInfo( + orderId: String! + updateMode: String + version: String + fulfillmentInfoInput: FulfillmentInfoInput + ): FulfillmentInfo + createOrderItem( + orderId: String! + updateMode: String + version: String + skipInventoryCheck: Boolean + orderItemInput: CrOrderItemInput + ): Order + deleteOrderItem( + orderId: String! + orderItemId: String! + updateMode: String + version: String + ): Order + updateOrderItemPrice( + orderId: String! + orderItemId: String! + price: Float! + updateMode: String + version: String + ): Order + updateOrderItemQuantity( + orderId: String! + orderItemId: String! + quantity: Int! + updateMode: String + version: String + ): Order + updateOrderItemDutyAmount( + orderId: String! + orderItemId: String! + dutyAmount: Float! + updateMode: String + version: String + ): Order + updateOrderItemFulfillment( + orderId: String! + orderItemId: String! + updateMode: String + version: String + orderItemInput: CrOrderItemInput + ): Order + updateOrderItemDiscount( + orderId: String! + orderItemId: String! + discountId: Int! + updateMode: String + version: String + appliedDiscountInput: CrAppliedDiscountInput + ): Order + createOrderNote(orderId: String!, orderNoteInput: OrderNoteInput): OrderNote + updateOrderNotes( + orderId: String! + noteId: String! + orderNoteInput: OrderNoteInput + ): OrderNote + deleteOrderNote(orderId: String!, noteId: String!): Boolean + createOrderPackage( + orderId: String! + packageObjInput: PackageObjInput + ): PackageObj + updateOrderPackage( + orderId: String! + packageId: String! + packageObjInput: PackageObjInput + ): PackageObj + deleteOrderPackage(orderId: String!, packageId: String!): Boolean + validateOrder(orderInput: OrderInput): OrderValidationResult + updateQuote( + quoteId: String! + updateMode: String + quoteInput: QuoteInput + ): Quote + deleteQuote(quoteId: String!, draft: Boolean): Boolean + createQuote(quoteInput: QuoteInput): Quote + createQuoteItem( + quoteId: String! + updateMode: String + orderItemInput: CrOrderItemInput + ): Quote + deleteQuoteItem( + quoteId: String! + quoteItemId: String! + updateMode: String + ): Boolean + createReturn(returnObjInput: ReturnObjInput): ReturnObj + resendReturnEmail(returnActionInput: ReturnActionInput): Boolean + updateReturn(returnId: String!, returnObjInput: ReturnObjInput): ReturnObj + deleteReturn(returnId: String!): Boolean + createReturnAction(returnActionInput: ReturnActionInput): ReturnCollection + setReturnShip( + returnId: String! + returnItemSpecifierInput: ReturnItemSpecifierInput + ): Order + createReturnPaymentAction( + returnId: String! + paymentActionInput: PaymentActionInput + ): ReturnObj + createReturnPaymentPaymentAction( + returnId: String! + paymentId: String! + paymentActionInput: PaymentActionInput + ): ReturnObj + setReturnRestock( + returnId: String! + restockableReturnItemInput: RestockableReturnItemInput + ): ReturnObj + createReturnItem( + returnId: String! + returnItemInput: ReturnItemInput + ): ReturnObj + deleteReturnItem( + returnId: String + returnItemId: String + orderId: String! + orderItemId: String! + ): ReturnObj + createReturnNote(returnId: String!, orderNoteInput: OrderNoteInput): OrderNote + updateReturnNote( + returnId: String! + noteId: String! + orderNoteInput: OrderNoteInput + ): OrderNote + deleteReturnNote(returnId: String!, noteId: String!): Boolean + createReturnPackage( + returnId: String! + packageObjInput: PackageObjInput + ): PackageObj + updateReturnPackage( + returnId: String! + packageId: String! + packageObjInput: PackageObjInput + ): PackageObj + deleteReturnPackage(returnId: String!, packageId: String!): Boolean + createReturnShipment(returnId: String!, graphQLString: String): [PackageObj] + deleteReturnShipment(returnId: String!, shipmentId: String!): Boolean + createWishlist(wishlistInput: WishlistInput): Wishlist + updateWishlist(wishlistId: String!, wishlistInput: WishlistInput): Wishlist + deleteWishlist(wishlistId: String!): Boolean + deleteWishlistItems(wishlistId: String!): Wishlist + createWishlistItem( + wishlistId: String! + wishlistItemInput: WishlistItemInput + ): WishlistItem + updateWishlistItem( + wishlistId: String! + wishlistItemId: String! + wishlistItemInput: WishlistItemInput + ): WishlistItem + deleteWishlistItem(wishlistId: String!, wishlistItemId: String!): Boolean + updateWishlistItemQuantity( + wishlistId: String! + wishlistItemId: String! + quantity: Int! + ): WishlistItem + updateDocumentListDocumentContent( + documentListName: String! + documentId: String! + httpRequestMessageInput: CoHttpRequestMessageInput + ): Boolean + deleteDocumentListDocumentContent( + documentListName: String! + documentId: String! + ): Boolean + updateDocumentListDocumentTreeContent( + documentListName: String! + documentName: String! + httpRequestMessageInput: CoHttpRequestMessageInput + ): Boolean + deleteDocumentListDocumentTreeContent( + documentListName: String! + documentName: String! + httpRequestMessageInput: CoHttpRequestMessageInput + ): Boolean + createDocumentListDocument( + documentListName: String! + documentInput: DocumentInput + ): Document + updateDocumentListDocument( + documentListName: String! + documentId: String! + documentInput: DocumentInput + ): Document + patchDocumentListDocument( + documentListName: String! + documentId: String! + documentInput: DocumentInput + ): Document + deleteDocumentListDocument( + documentListName: String! + documentId: String! + ): Boolean + createDocumentList(documentListInput: DocumentListInput): DocumentList + updateDocumentList( + documentListName: String! + documentListInput: DocumentListInput + ): DocumentList + deleteDocumentList(documentListName: String!): Boolean + createDocumentListType( + documentListTypeInput: DocumentListTypeInput + ): DocumentListType + updateDocumentListType( + documentListTypeFQN: String! + documentListTypeInput: DocumentListTypeInput + ): DocumentListType + createDocumentDraft(documentLists: String, graphQLString: String): Boolean + toggleDocumentPublishing( + documentLists: String + graphQLString: String + ): Boolean + createDocumentType(documentTypeInput: DocumentTypeInput): DocumentType + updateDocumentType( + documentTypeName: String! + documentTypeInput: DocumentTypeInput + ): DocumentType + createPropertyType(propertyTypeInput: PropertyTypeInput): PropertyType + updatePropertyType( + propertyTypeName: String! + propertyTypeInput: PropertyTypeInput + ): PropertyType + deletePropertyType(propertyTypeName: String!): Boolean + adminCreateLocation(locationInput: LocationInput): Location + adminUpdateLocation( + locationCode: String! + locationInput: LocationInput + ): Location + deleteAdminLocation(locationCode: String!): Boolean + adminCreateLocationAttribute(attributeInput: LoAttributeInput): LoAttribute + adminUpdateLocationAttribute( + attributeFQN: String! + attributeInput: LoAttributeInput + ): LoAttribute + adminCreateLocationGroup( + locationGroupInput: LocationGroupInput + ): LocationGroup + updateLocationUsage( + code: String! + locationUsageInput: LocationUsageInput + ): LocationUsage + adminCreateLocationType(locationTypeInput: LocationTypeInput): LocationType + adminUpdateLocationType( + locationTypeCode: String! + locationTypeInput: LocationTypeInput + ): LocationType + deleteAdminLocationType(locationTypeCode: String!): Boolean + updateEntityListEntities( + entityListFullName: String! + id: String! + httpRequestMessageInput: MZDBHttpRequestMessageInput + ): Boolean + deleteEntityListEntity(entityListFullName: String!, id: String!): Boolean + createEntityListEntity( + entityListFullName: String! + httpRequestMessageInput: MZDBHttpRequestMessageInput + ): Boolean + updateEntityList( + entityListFullName: String! + entityListInput: EntityListInput + ): EntityList + deleteEntityList(entityListFullName: String!): Boolean + createEntityList(entityListInput: EntityListInput): EntityList + createEntityListView( + entityListFullName: String! + listViewInput: ListViewInput + ): ListView + updateEntityListView( + entityListFullName: String! + viewName: String! + listViewInput: ListViewInput + ): ListView + deleteEntityListView(entityListFullName: String!, viewName: String!): Boolean + createTargetRule(targetRuleInput: TargetRuleInput): TargetRule + updateTargetRule(code: String!, targetRuleInput: TargetRuleInput): TargetRule + deleteCommerceTargetRule(code: String!): Boolean + validateTargetRule(targetRuleInput: TargetRuleInput): Boolean + createOrderRoutingSuggestion( + returnSuggestionLog: Boolean + suggestionRequestInput: SuggestionRequestInput + ): SuggestionResponse +} + +enum NodeTypeEnum { + ARRAY + BINARY + BOOLEAN + MISSING + NULL + NUMBER + OBJECT + POJO + STRING +} + +""" +Object custom scalar type +""" +scalar Object + +type Order { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Order + orderNumber: Int + locationCode: String + version: String + parentOrderId: String + parentOrderNumber: Int + parentCheckoutId: String + parentCheckoutNumber: Int + partialOrderNumber: Int + partialOrderCount: Int + isPartialOrder: Boolean + parentReturnId: String + parentReturnNumber: Int + originalCartId: String + originalQuoteId: String + originalQuoteNumber: Int + priceListCode: String + availableActions: [String!] + shopperNotes: ShopperNotes + customerAccountId: Int + customerTaxId: String + isTaxExempt: Boolean + email: String + ipAddress: String + sourceDevice: String + acceptsMarketing: Boolean + status: String + type: String + paymentStatus: String + returnStatus: String + isEligibleForReturns: Boolean + totalCollected: Float! + attributes: [OrderAttribute] + adjustment: Adjustment + shippingAdjustment: Adjustment + handlingAdjustment: Adjustment + shippingDiscounts: [ShippingDiscount] + handlingDiscounts: [CrAppliedDiscount] + handlingAmount: Float + handlingSubTotal: Float + handlingTotal: Float + dutyAmount: Float + dutyTotal: Float + fulfillmentStatus: String + submittedDate: DateTime + cancelledDate: DateTime + closedDate: DateTime + acceptedDate: DateTime + notes: [OrderNote] + items: [CrOrderItem] + validationResults: [OrderValidationResult] + billingInfo: BillingInfo + payments: [Payment] + refunds: [Refund] + packages: [PackageObj] + pickups: [Pickup] + digitalPackages: [DigitalPackage] + shipments: [Shipment] + isDraft: Boolean + hasDraft: Boolean + isImport: Boolean + isHistoricalImport: Boolean + importDate: DateTime + isUnified: Boolean + externalId: String + couponCodes: [String!] + invalidCoupons: [InvalidCoupon] + amountAvailableForRefund: Float! + amountRemainingForPayment: Float! + amountRefunded: Float! + readyToCapture: Boolean + isOptInForSms: Boolean + userId: String + id: String + tenantId: Int + siteId: Int + channelCode: String + currencyCode: String + visitId: String + webSessionId: String + customerInteractionType: String + fulfillmentInfo: FulfillmentInfo + orderDiscounts: [CrAppliedDiscount] + suggestedDiscounts: [SuggestedDiscount] + rejectedDiscounts: [SuggestedDiscount] + data: Object + taxData: Object + subtotal: Float + discountedSubtotal: Float + discountTotal: Float + discountedTotal: Float + shippingTotal: Float + shippingSubTotal: Float + shippingTaxTotal: Float + handlingTaxTotal: Float + itemTaxTotal: Float + taxTotal: Float + feeTotal: Float + total: Float + lineItemSubtotalWithOrderAdjustments: Float + shippingAmountBeforeDiscountsAndAdjustments: Float + lastValidationDate: DateTime + expirationDate: DateTime + changeMessages: [ChangeMessage] + extendedProperties: [ExtendedProperty] + discountThresholdMessages: [ThresholdMessage] + auditInfo: CrAuditInfo +} + +input OrderActionInput { + actionName: String +} + +type OrderAttribute { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: OrderAttribute + auditInfo: CrAuditInfo + fullyQualifiedName: String + attributeDefinitionId: Int + values: [Object!] +} + +input OrderAttributeInput { + auditInfo: CrAuditInfoInput + fullyQualifiedName: String + attributeDefinitionId: Int + values: [Object!] +} + +type OrderCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: OrderCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [Order] +} + +input OrderInput { + orderNumber: Int + locationCode: String + version: String + parentOrderId: String + parentOrderNumber: Int + parentCheckoutId: String + parentCheckoutNumber: Int + partialOrderNumber: Int + partialOrderCount: Int + isPartialOrder: Boolean = false + parentReturnId: String + parentReturnNumber: Int + originalCartId: String + originalQuoteId: String + originalQuoteNumber: Int + priceListCode: String + availableActions: [String!] + shopperNotes: ShopperNotesInput + customerAccountId: Int + customerTaxId: String + isTaxExempt: Boolean = false + email: String + ipAddress: String + sourceDevice: String + acceptsMarketing: Boolean = false + status: String + type: String + paymentStatus: String + returnStatus: String + isEligibleForReturns: Boolean = false + totalCollected: Float! + attributes: [OrderAttributeInput] + adjustment: AdjustmentInput + shippingAdjustment: AdjustmentInput + handlingAdjustment: AdjustmentInput + shippingDiscounts: [ShippingDiscountInput] + handlingDiscounts: [CrAppliedDiscountInput] + handlingAmount: Float + handlingSubTotal: Float + handlingTotal: Float + dutyAmount: Float + dutyTotal: Float + fulfillmentStatus: String + submittedDate: DateTime + cancelledDate: DateTime + closedDate: DateTime + acceptedDate: DateTime + notes: [OrderNoteInput] + items: [CrOrderItemInput] + validationResults: [OrderValidationResultInput] + billingInfo: BillingInfoInput + payments: [PaymentInput] + refunds: [RefundInput] + packages: [PackageObjInput] + pickups: [PickupInput] + digitalPackages: [DigitalPackageInput] + shipments: [ShipmentInput] + isDraft: Boolean = false + hasDraft: Boolean = false + isImport: Boolean = false + isHistoricalImport: Boolean = false + importDate: DateTime + isUnified: Boolean = false + externalId: String + couponCodes: [String!] + invalidCoupons: [InvalidCouponInput] + amountAvailableForRefund: Float! + amountRemainingForPayment: Float! + amountRefunded: Float! + readyToCapture: Boolean = false + isOptInForSms: Boolean = false + userId: String + id: String + tenantId: Int + siteId: Int + channelCode: String + currencyCode: String + visitId: String + webSessionId: String + customerInteractionType: String + fulfillmentInfo: FulfillmentInfoInput + orderDiscounts: [CrAppliedDiscountInput] + suggestedDiscounts: [SuggestedDiscountInput] + rejectedDiscounts: [SuggestedDiscountInput] + data: Object + taxData: Object + subtotal: Float + discountedSubtotal: Float + discountTotal: Float + discountedTotal: Float + shippingTotal: Float + shippingSubTotal: Float + shippingTaxTotal: Float + handlingTaxTotal: Float + itemTaxTotal: Float + taxTotal: Float + feeTotal: Float + total: Float + lineItemSubtotalWithOrderAdjustments: Float + shippingAmountBeforeDiscountsAndAdjustments: Float + lastValidationDate: DateTime + expirationDate: DateTime + changeMessages: [ChangeMessageInput] + extendedProperties: [ExtendedPropertyInput] + discountThresholdMessages: [ThresholdMessageInput] + auditInfo: CrAuditInfoInput +} + +type OrderItemCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: OrderItemCollection + totalCount: Int! + items: [CrOrderItem] +} + +input OrderItemInput { + backorderable: Boolean = false + customItemData: Object! + itemDependency: Int! + orderItemID: Int! + partNumber: String! + quantity: Int! + sku: String! + upc: String! +} + +type OrderNote { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: OrderNote + id: String + text: String + auditInfo: CrAuditInfo +} + +input OrderNoteInput { + id: String + text: String + auditInfo: CrAuditInfoInput +} + +type OrderReturnableItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: OrderReturnableItem + productCode: String + productName: String + shipmentNumber: Int + shipmentItemId: Int + quantityOrdered: Int! + quantityFulfilled: Int! + quantityReturned: Int! + quantityReturnable: Int! + fulfillmentStatus: String + orderItemId: String + orderLineId: Int! + orderItemOptionAttributeFQN: String + unitQuantity: Int! + parentProductCode: String + parentProductName: String + fulfillmentFields: [FulfillmentField] + sku: String + mfgPartNumber: String +} + +type OrderReturnableItemCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: OrderReturnableItemCollection + totalCount: Int! + items: [OrderReturnableItem] +} + +enum OrderTypeEnum { + DIRECTSHIP + TRANSFER +} + +type OrderValidationMessage { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: OrderValidationMessage + orderItemId: String + messageType: String + message: String +} + +input OrderValidationMessageInput { + orderItemId: String + messageType: String + message: String +} + +type OrderValidationResult { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: OrderValidationResult + validationId: String + validatorName: String + validatorType: String + status: String + createdDate: DateTime + messages: [OrderValidationMessage] +} + +input OrderValidationResultInput { + validationId: String + validatorName: String + validatorType: String + status: String + createdDate: DateTime + messages: [OrderValidationMessageInput] +} + +type PackageItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PackageItem + productCode: String + quantity: Int! + fulfillmentItemType: String + lineId: Int + optionAttributeFQN: String +} + +input PackageItemInput { + productCode: String + quantity: Int! + fulfillmentItemType: String + lineId: Int + optionAttributeFQN: String +} + +type PackageObj { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PackageObj + shippingMethodCode: String + shippingMethodName: String + shipmentId: String + trackingNumber: String + trackingNumbers: [String!] + packagingType: String + hasLabel: Boolean + measurements: CrPackageMeasurements + carrier: String + signatureRequired: Boolean + trackings: [Tracking] + id: String + code: String + status: String + items: [PackageItem] + fulfillmentDate: DateTime + fulfillmentLocationCode: String + auditInfo: CrAuditInfo + availableActions: [String!] + changeMessages: [ChangeMessage] +} + +input PackageObjInput { + shippingMethodCode: String + shippingMethodName: String + shipmentId: String + trackingNumber: String + trackingNumbers: [String!] + packagingType: String + hasLabel: Boolean = false + measurements: CrPackageMeasurementsInput + carrier: String + signatureRequired: Boolean = false + trackings: [TrackingInput] + id: String + code: String + status: String + items: [PackageItemInput] + fulfillmentDate: DateTime + fulfillmentLocationCode: String + auditInfo: CrAuditInfoInput + availableActions: [String!] + changeMessages: [ChangeMessageInput] +} + +type PackageSettings { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PackageSettings + unitType: String +} + +input PasswordInfoInput { + oldPassword: String + newPassword: String + externalPassword: String +} + +type Payment { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Payment + id: String + groupId: PaymentActionTarget + paymentServiceTransactionId: String + availableActions: [String!] + orderId: String + paymentType: String + paymentWorkflow: String + externalTransactionId: String + billingInfo: BillingInfo + data: Object + status: String + subPayments: [SubPayment] + interactions: [PaymentInteraction] + isRecurring: Boolean + amountCollected: Float! + amountCredited: Float! + amountRequested: Float! + changeMessages: [ChangeMessage] + auditInfo: CrAuditInfo + gatewayGiftCard: GatewayGiftCard +} + +input PaymentActionInput { + actionName: String + currencyCode: String + checkNumber: String + returnUrl: String + cancelUrl: String + amount: Float + interactionDate: DateTime + newBillingInfo: BillingInfoInput + referenceSourcePaymentId: String + manualGatewayInteraction: PaymentGatewayInteractionInput + externalTransactionId: String + data: Object +} + +type PaymentActionTarget { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PaymentActionTarget + targetType: String + targetId: String + targetNumber: Int +} + +input PaymentActionTargetInput { + targetType: String + targetId: String + targetNumber: Int +} + +type PaymentCard { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PaymentCard + paymentServiceCardId: String + isUsedRecurring: Boolean + nameOnCard: String + isCardInfoSaved: Boolean + isTokenized: Boolean + paymentOrCardType: String + cardNumberPartOrMask: String + expireMonth: Int! + expireYear: Int! + bin: String +} + +input PaymentCardInput { + paymentServiceCardId: String + isUsedRecurring: Boolean = false + nameOnCard: String + isCardInfoSaved: Boolean = false + isTokenized: Boolean = false + paymentOrCardType: String + cardNumberPartOrMask: String + expireMonth: Int! + expireYear: Int! + bin: String +} + +type PaymentCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PaymentCollection + totalCount: Int! + items: [Payment] +} + +input PaymentGatewayInteractionInput { + gatewayInteractionId: Int + gatewayTransactionId: String + gatewayAuthCode: String + gatewayAVSCodes: String + gatewayCVV2Codes: String + gatewayResponseCode: String + gatewayResponseText: String +} + +type PaymentGatewayResponseData { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PaymentGatewayResponseData + key: String + value: String +} + +input PaymentGatewayResponseDataInput { + key: String + value: String +} + +input PaymentInput { + id: String + groupId: PaymentActionTargetInput + paymentServiceTransactionId: String + availableActions: [String!] + orderId: String + paymentType: String + paymentWorkflow: String + externalTransactionId: String + billingInfo: BillingInfoInput + data: Object + status: String + subPayments: [SubPaymentInput] + interactions: [PaymentInteractionInput] + isRecurring: Boolean = false + amountCollected: Float! + amountCredited: Float! + amountRequested: Float! + changeMessages: [ChangeMessageInput] + auditInfo: CrAuditInfoInput + gatewayGiftCard: GatewayGiftCardInput +} + +type PaymentInteraction { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PaymentInteraction + id: String + gatewayInteractionId: Int + paymentId: String + orderId: String + target: PaymentActionTarget + currencyCode: String + interactionType: String + checkNumber: String + status: String + paymentEntryStatus: String + isRecurring: Boolean + isManual: Boolean + gatewayTransactionId: String + gatewayAuthCode: String + gatewayAVSCodes: String + gatewayCVV2Codes: String + gatewayResponseCode: String + gatewayResponseText: String + gatewayResponseData: [PaymentGatewayResponseData] + paymentTransactionInteractionIdReference: Int + amount: Float + note: String + interactionDate: DateTime + auditInfo: CrAuditInfo + returnId: String + refundId: String + capturableShipmentsSummary: [CapturableShipmentSummary] +} + +input PaymentInteractionInput { + id: String + gatewayInteractionId: Int + paymentId: String + orderId: String + target: PaymentActionTargetInput + currencyCode: String + interactionType: String + checkNumber: String + status: String + paymentEntryStatus: String + isRecurring: Boolean = false + isManual: Boolean = false + gatewayTransactionId: String + gatewayAuthCode: String + gatewayAVSCodes: String + gatewayCVV2Codes: String + gatewayResponseCode: String + gatewayResponseText: String + gatewayResponseData: [PaymentGatewayResponseDataInput] + paymentTransactionInteractionIdReference: Int + amount: Float + note: String + interactionDate: DateTime + auditInfo: CrAuditInfoInput + returnId: String + refundId: String + capturableShipmentsSummary: [CapturableShipmentSummaryInput] +} + +type PaymentToken { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PaymentToken + paymentServiceTokenId: String + type: String +} + +input PaymentTokenInput { + paymentServiceTokenId: String + type: String +} + +type Pickup { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Pickup + id: String + code: String + status: String + items: [PickupItem] + fulfillmentDate: DateTime + fulfillmentLocationCode: String + auditInfo: CrAuditInfo + availableActions: [String!] + changeMessages: [ChangeMessage] +} + +input PickupInput { + id: String + code: String + status: String + items: [PickupItemInput] + fulfillmentDate: DateTime + fulfillmentLocationCode: String + auditInfo: CrAuditInfoInput + availableActions: [String!] + changeMessages: [ChangeMessageInput] +} + +type PickupItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PickupItem + productCode: String + quantity: Int! + fulfillmentItemType: String + lineId: Int + optionAttributeFQN: String +} + +input PickupItemInput { + productCode: String + quantity: Int! + fulfillmentItemType: String + lineId: Int + optionAttributeFQN: String +} + +type PrAppliedDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PrAppliedDiscount + couponCode: String + discount: PrDiscount + discounts: [PrDiscount] + impact: Float! +} + +type PrAttributeValidation { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PrAttributeValidation + regularExpression: String + minStringLength: Int + maxStringLength: Int + minNumericValue: Float + maxNumericValue: Float + minDateValue: DateTime + maxDateValue: DateTime +} + +type PrBundledProduct { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PrBundledProduct + content: ProductContent + productCode: String + goodsType: String + quantity: Int! + measurements: PrPackageMeasurements + isPackagedStandAlone: Boolean + inventoryInfo: ProductInventoryInfo + optionAttributeFQN: String + optionValue: Object + creditValue: Float + productType: String +} + +type PrCategory { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PrCategory + categoryId: Int! + parentCategory: PrCategory + content: CategoryContent + childrenCategories: [PrCategory] + sequence: Int + isDisplayed: Boolean + categoryCode: String + count: Int + updateDate: DateTime! + shouldSlice: Boolean +} + +type PrDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PrDiscount + discountId: Int! + expirationDate: DateTime + name: String + friendlyDescription: String + impact: Float! +} + +type PrMeasurement { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PrMeasurement + unit: String + value: Float +} + +type PrPackageMeasurements { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PrPackageMeasurements + packageHeight: PrMeasurement + packageWidth: PrMeasurement + packageLength: PrMeasurement + packageWeight: PrMeasurement +} + +type PriceList { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PriceList + priceListCode: String + priceListId: Int! + enabled: Boolean + name: String + resolvable: Boolean + isIndexed: Boolean + filteredInStoreFront: Boolean + isSiteDefault: Boolean + description: String + ancestors: [PriceListNode] + descendants: [PriceListNode] + validSites: [Int!] +} + +type PriceListNode { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PriceListNode + priceListCode: String + priceListId: Int! + parentPriceListId: Int + priceListLevel: Int! +} + +type PricingAppliedDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingAppliedDiscount + impact: Float! + discount: PricingDiscount + couponCode: String + couponSetId: Int +} + +type PricingAppliedLineItemProductDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingAppliedLineItemProductDiscount + appliesToSalePrice: Boolean + quantity: Int! + impactPerUnit: Float! + isForced: Boolean + normalizedImpact: Float! + impact: Float! + discount: PricingDiscount + couponCode: String + couponSetId: Int +} + +type PricingAppliedLineItemShippingDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingAppliedLineItemShippingDiscount + shippingMethodCode: String + quantity: Int! + impactPerUnit: Float! + isForced: Boolean + normalizedImpact: Float! + impact: Float! + discount: PricingDiscount + couponCode: String + couponSetId: Int +} + +type PricingAppliedOrderShippingDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingAppliedOrderShippingDiscount + shippingMethodCode: String + impact: Float! + discount: PricingDiscount + couponCode: String + couponSetId: Int +} + +type PricingDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingDiscount + discountId: Int! + name: String + friendlyDescription: String + amount: Float! + scope: String + maxRedemptions: Int + maximumUsesPerUser: Int + requiresAuthenticatedUser: Boolean + doesNotApplyToProductsWithSalePrice: Boolean + maximumRedemptionsPerOrder: Int + maximumDiscountValuePerOrder: Float + maxDiscountValuePerRedemption: Float + doesNotApplyToMultiShipToOrders: Boolean + includedPriceLists: [String!] + redemptions: Int! + type: String + amountType: String + target: PricingDiscountTarget + condition: PricingDiscountCondition + expirationDate: DateTime + stackingLayer: Int! +} + +type PricingDiscountCondition { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingDiscountCondition + requiresCoupon: Boolean + couponCode: String + minimumQuantityProductsRequiredInCategories: Int + includedCategoryIds: [Int!] + excludedCategoryIds: [Int!] + minimumQuantityRequiredProducts: Int + includedProductCodes: [String!] + excludedProductCodes: [String!] + paymentWorkflows: [String!] + customerSegmentIds: [Int!] + minimumOrderAmount: Float + maximumOrderAmount: Float + minimumLifetimeValueAmount: Float + startDate: DateTime + expirationDate: DateTime + minimumCategorySubtotalBeforeDiscounts: Float +} + +type PricingDiscountTarget { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingDiscountTarget + type: String + includedCategoryIds: [Int!] + excludedCategoryIds: [Int!] + includedCategoriesOperator: String + excludedCategoriesOperator: String + includedProductCodes: [String!] + excludedProductCodes: [String!] + includeAllProducts: Boolean + shippingMethods: [String!] + shippingZones: [String!] +} + +type PricingProductAttribute { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingProductAttribute + inputType: String + valueType: String + dataType: String + name: String + description: String +} + +type PricingProductProperty { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingProductProperty + attributeFQN: String + values: [PricingProductPropertyValue] + attributeDetail: PricingProductAttribute + isHidden: Boolean + isMultiValue: Boolean +} + +type PricingProductPropertyValue { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingProductPropertyValue + value: Object + stringValue: String +} + +type PricingTaxAttribute { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingTaxAttribute + fullyQualifiedName: String + attributeDefinitionId: Int + values: [Object!] +} + +type PricingTaxContext { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingTaxContext + taxContextId: String + customerId: String + taxExemptId: String + originAddress: CrAddress + destinationAddress: CrAddress +} + +type PricingTaxableLineItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingTaxableLineItem + id: String + productCode: String + variantProductCode: String + productName: String + productProperties: [PricingProductProperty] + quantity: Int! + lineItemPrice: Float! + discountTotal: Float + discountedTotal: Float + shippingAmount: Float! + handlingAmount: Float + feeTotal: Float + isTaxable: Boolean + reason: String + data: Object + productDiscount: PricingAppliedLineItemProductDiscount + shippingDiscount: PricingAppliedLineItemShippingDiscount + productDiscounts: [PricingAppliedLineItemProductDiscount] + shippingDiscounts: [PricingAppliedLineItemShippingDiscount] + originAddress: CrAddress + destinationAddress: CrAddress +} + +type PricingTaxableOrder { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PricingTaxableOrder + orderDate: DateTime! + taxContext: PricingTaxContext + lineItems: [PricingTaxableLineItem] + shippingAmount: Float! + currencyCode: String + handlingFee: Float! + originalDocumentCode: String + orderId: String + orderNumber: Int + originalOrderDate: DateTime! + data: Object + attributes: [PricingTaxAttribute] + shippingDiscounts: [PricingAppliedOrderShippingDiscount] + shippingDiscount: PricingAppliedOrderShippingDiscount + orderDiscounts: [PricingAppliedDiscount] + orderDiscount: PricingAppliedDiscount + handlingDiscounts: [PricingAppliedDiscount] + handlingDiscount: PricingAppliedDiscount + shippingMethodCode: String + shippingMethodName: String + taxRequestType: String +} + +type Product { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Product + productCode: String + purchaseLocation: String + productSequence: Int + productUsage: String + fulfillmentTypesSupported: [String!] + goodsType: String + bundledProducts: [PrBundledProduct] + content: ProductContent + purchasableState: ProductPurchasableState + isActive: Boolean + publishState: String + price: ProductPrice + priceRange: ProductPriceRange + volumePriceBands: [ProductVolumePrice] + volumePriceRange: ProductPriceRange + availableShippingDiscounts: [PrDiscount] + productType: String + productTypeId: Int + isTaxable: Boolean + isRecurring: Boolean + pricingBehavior: ProductPricingBehaviorInfo + inventoryInfo: ProductInventoryInfo + createDate: DateTime! + updateDate: DateTime! + dateFirstAvailableInCatalog: DateTime + catalogStartDate: DateTime + catalogEndDate: DateTime + daysAvailableInCatalog: Int + upc: String + upCs: [String!] + mfgPartNumber: String + mfgPartNumbers: [String!] + variationProductCode: String + categories: [PrCategory] + measurements: PrPackageMeasurements + isPackagedStandAlone: Boolean + properties( + filterAttribute: String + filterOperator: String + filterValue: Object + ): [ProductProperty] + options: [ProductOption] + variations: [VariationSummary] + validPriceLists: [String!] + locationsInStock: [String!] + slicingAttributeFQN: String + productImageGroups: [ProductImageGroup] + sliceValue: String + productCollections: [ProductCollectionInfo] + productCollectionMembers: [ProductCollectionMember] + collectionMembersProductContent: [ProductContent] + score: Float! + personalizationScore: Float! +} + +type ProductCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductCollection + nextCursorMark: String + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [Product] +} + +type ProductCollectionInfo { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductCollectionInfo + productCode: String + isPrimary: Boolean +} + +type ProductCollectionMember { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductCollectionMember + memberKey: ProductCollectionMemberKey +} + +type ProductCollectionMemberKey { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductCollectionMemberKey + value: String +} + +type ProductContent { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductContent + productName: String + productFullDescription: String + productShortDescription: String + metaTagTitle: String + metaTagDescription: String + metaTagKeywords: String + seoFriendlyUrl: String + productImages: [ProductImage] +} + +type ProductCost { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductCost + productCode: String + cost: Float! +} + +type ProductCostCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductCostCollection + totalCount: Int! + items: [ProductCost] +} + +input ProductCostQueryInput { + productCodes: [String!] +} + +type ProductForIndexing { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductForIndexing + slices: [Product] + productCode: String + purchaseLocation: String + productSequence: Int + productUsage: String + fulfillmentTypesSupported: [String!] + goodsType: String + bundledProducts: [PrBundledProduct] + content: ProductContent + purchasableState: ProductPurchasableState + isActive: Boolean + publishState: String + price: ProductPrice + priceRange: ProductPriceRange + volumePriceBands: [ProductVolumePrice] + volumePriceRange: ProductPriceRange + availableShippingDiscounts: [PrDiscount] + productType: String + productTypeId: Int + isTaxable: Boolean + isRecurring: Boolean + pricingBehavior: ProductPricingBehaviorInfo + inventoryInfo: ProductInventoryInfo + createDate: DateTime! + updateDate: DateTime! + dateFirstAvailableInCatalog: DateTime + catalogStartDate: DateTime + catalogEndDate: DateTime + daysAvailableInCatalog: Int + upc: String + upCs: [String!] + mfgPartNumber: String + mfgPartNumbers: [String!] + variationProductCode: String + categories: [PrCategory] + measurements: PrPackageMeasurements + isPackagedStandAlone: Boolean + properties: [ProductProperty] + options: [ProductOption] + variations: [VariationSummary] + validPriceLists: [String!] + locationsInStock: [String!] + slicingAttributeFQN: String + productImageGroups: [ProductImageGroup] + sliceValue: String + productCollections: [ProductCollectionInfo] + productCollectionMembers: [ProductCollectionMember] + collectionMembersProductContent: [ProductContent] + score: Float! + personalizationScore: Float! +} + +type ProductImage { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductImage + imageLabel: String + altText: String + imageUrl: String + cmsId: String + videoUrl: String + mediaType: String + sequence: Int + productImageGroupId: String +} + +type ProductImageGroup { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductImageGroup + productImageGroupId: String! + productImageGroupTags: [ProductImageGroupTag] +} + +type ProductImageGroupTag { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductImageGroupTag + attributeFqn: String + value: String +} + +type ProductInventoryInfo { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductInventoryInfo + manageStock: Boolean + outOfStockBehavior: String + onlineStockAvailable: Int + onlineSoftStockAvailable: Int + onlineLocationCode: String + availableDate: DateTime +} + +type ProductOption { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductOption + attributeFQN: String + isRequired: Boolean + isMultiValue: Boolean + values: [ProductOptionValue] + attributeDetail: AttributeDetail + isProductImageGroupSelector: Boolean +} + +input ProductOptionSelectionInput { + attributeFQN: String + value: Object + attributeValueId: Int + shopperEnteredValue: Object +} + +input ProductOptionSelectionsInput { + variationProductCode: String + options: [ProductOptionSelectionInput] +} + +type ProductOptionValue { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductOptionValue + value: Object + attributeValueId: Int! + stringValue: String + isEnabled: Boolean + isSelected: Boolean + isDefault: Boolean + deltaWeight: Float + deltaPrice: Float + shopperEnteredValue: Object + bundledProduct: PrBundledProduct + displayInfo: AttributeVocabularyValueDisplayInfo +} + +type ProductPrice { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductPrice + msrp: Float + price: Float + priceType: String + salePrice: Float + salePriceType: String + catalogSalePrice: Float + catalogListPrice: Float + discount: PrAppliedDiscount + creditValue: Float + effectivePricelistCode: String + priceListEntryCode: String + priceListEntryMode: String +} + +type ProductPriceRange { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductPriceRange + lower: ProductPrice + upper: ProductPrice +} + +type ProductPricingBehaviorInfo { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductPricingBehaviorInfo + discountsRestricted: Boolean + discountsRestrictedStartDate: DateTime + discountsRestrictedEndDate: DateTime +} + +type ProductProperty { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductProperty + attributeFQN: String + isHidden: Boolean + isMultiValue: Boolean + attributeDetail: AttributeDetail + values: [ProductPropertyValue] + propertyType: String +} + +type ProductPropertyValue { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductPropertyValue + value: Object + stringValue: String + displayInfo: AttributeVocabularyValueDisplayInfo +} + +type ProductPurchasableState { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductPurchasableState + isPurchasable: Boolean + messages: [ValidationMessage] +} + +type ProductSearchRandomAccessCursor { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductSearchRandomAccessCursor + cursorMarks: [String!] +} + +type ProductSearchResult { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductSearchResult + facets: [Facet] + solrDebugInfo: SolrDebugInfo + searchRedirect: String + searchEngine: String + nextCursorMark: String + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [Product] +} + +type ProductStock { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductStock + manageStock: Boolean + isOnBackOrder: Boolean + availableDate: DateTime + stockAvailable: Int + aggregateInventory: Int +} + +input ProductStockInput { + manageStock: Boolean = false + isOnBackOrder: Boolean = false + availableDate: DateTime + stockAvailable: Int + aggregateInventory: Int +} + +type ProductValidationSummary { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductValidationSummary + productCode: String + purchaseLocation: String + productUsage: String + fulfillmentTypesSupported: [String!] + goodsType: String + bundledProducts: [BundledProductSummary] + upc: String + mfgPartNumber: String + variationProductCode: String + purchasableState: ProductPurchasableState + price: ProductPrice + measurements: PrPackageMeasurements + isPackagedStandAlone: Boolean + image: ProductImage + productShortDescription: String + productName: String + categories: [PrCategory] + properties: [ProductProperty] + pricingBehavior: ProductPricingBehaviorInfo + inventoryInfo: ProductInventoryInfo + isTaxable: Boolean + productType: String +} + +type ProductVolumePrice { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ProductVolumePrice + isCurrent: Boolean + minQty: Int! + maxQty: Int + priceRange: ProductPriceRange + price: ProductPrice +} + +type Property { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Property + name: String + isRequired: Boolean + isMultiValued: Boolean + propertyType: PropertyType +} + +input PropertyInput { + name: String + isRequired: Boolean = false + isMultiValued: Boolean = false + propertyType: PropertyTypeInput +} + +type PropertyType { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PropertyType + name: String + namespace: String + propertyTypeFQN: String + adminName: String + installationPackage: String + version: String + dataType: String + isQueryable: Boolean + isSortable: Boolean + isAggregatable: Boolean +} + +type PropertyTypeCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PropertyTypeCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [PropertyType] +} + +input PropertyTypeInput { + name: String + namespace: String + propertyTypeFQN: String + adminName: String + installationPackage: String + version: String + dataType: String + isQueryable: Boolean = false + isSortable: Boolean = false + isAggregatable: Boolean = false +} + +type PurchaseOrderCustomField { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PurchaseOrderCustomField + code: String + label: String + value: String +} + +input PurchaseOrderCustomFieldInput { + code: String + label: String + value: String +} + +type PurchaseOrderPayment { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PurchaseOrderPayment + purchaseOrderNumber: String + paymentTerm: PurchaseOrderPaymentTerm + customFields: [PurchaseOrderCustomField] +} + +input PurchaseOrderPaymentInput { + purchaseOrderNumber: String + paymentTerm: PurchaseOrderPaymentTermInput + customFields: [PurchaseOrderCustomFieldInput] +} + +type PurchaseOrderPaymentTerm { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PurchaseOrderPaymentTerm + code: String + description: String +} + +input PurchaseOrderPaymentTermInput { + code: String + description: String +} + +type PurchaseOrderTransaction { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PurchaseOrderTransaction + customerPurchaseOrderAccountId: Int! + externalId: String + siteId: Int! + tenantId: Int! + transactionDate: DateTime! + orderId: String + purchaseOrderNumber: String + transactionAmount: Float! + creditLimit: Float! + additionalTransactionDetail: String + availableBalance: Float! + transactionTypeId: Int! + transactionDescription: String + author: String + auditInfo: CuAuditInfo +} + +type PurchaseOrderTransactionCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: PurchaseOrderTransactionCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [PurchaseOrderTransaction] +} + +input PurchaseOrderTransactionInput { + customerPurchaseOrderAccountId: Int! + externalId: String + siteId: Int! + tenantId: Int! + transactionDate: DateTime! + orderId: String + purchaseOrderNumber: String + transactionAmount: Float! + creditLimit: Float! + additionalTransactionDetail: String + availableBalance: Float! + transactionTypeId: Int! + transactionDescription: String + author: String + auditInfo: CuAuditInfoInput +} + +type Query { + customerAccountAttributeDefinitions( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): CuAttributeCollection + customerAccountAttributeVocabularyValues( + attributeFQN: String! + ): [CuAttributeVocabularyValue] + customerAccountAttributeDefinition(attributeFQN: String!): CuAttribute + b2bAccountAttributes( + accountId: Int! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): CustomerAttributeCollection + b2bAccountAttributeVocabularyValues( + accountId: Int! + attributeFQN: String! + ): CustomerAttribute + b2bAccounts( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + fields: String + q: String + qLimit: Int + ): B2BAccountCollection + b2bAccount(accountId: Int!): B2BAccount + b2bAccountUsers( + accountId: Int! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + q: String + qLimit: Int + ): B2BUserCollection + b2bAccountUserRoles(accountId: Int!, userId: String!): UserRoleCollection + customerCreditAuditTrail( + code: String! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): CreditAuditEntryCollection + customerCredits( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): CreditCollection + customerCredit(code: String!): Credit + customerCreditTransactions( + code: String! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): CreditTransactionCollection + customerAccountAttributes( + accountId: Int! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + userId: String + ): CustomerAttributeCollection + customerAccountAttribute( + accountId: Int! + attributeFQN: String! + userId: String + ): CustomerAttribute + customerAccountCards(accountId: Int!): CardCollection + customerAccountCard(accountId: Int!, cardId: String!): Card + customerAccountContacts( + accountId: Int! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + userId: String + ): CustomerContactCollection + customerAccountContact( + accountId: Int! + contactId: Int! + userId: String + ): CustomerContact + customerAccounts( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + fields: String + q: String + qLimit: Int + isAnonymous: Boolean + ): CustomerAccountCollection + customerAccount(accountId: Int!, userId: String): CustomerAccount + getCurrentAccount: CustomerAccount + customerAccountTransactions(accountId: Int!): [Transaction] + customerAccountNotes( + accountId: Int! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): CustomerNoteCollection + customerAccountNote(accountId: Int!, noteId: Int!): CustomerNote + customerAccountSegments( + accountId: Int! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): CustomerSegmentCollection + customerAccountAuditLog( + accountId: Int! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): CustomerAuditEntryCollection + customerPurchaseOrderAccount(accountId: Int!): CustomerPurchaseOrderAccount + customerPurchaseOrderAccountTransaction( + accountId: Int! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): PurchaseOrderTransactionCollection + customerAccountLoginState(accountId: Int!, userId: String): LoginState + customerSegments( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): CustomerSegmentCollection + customerSegment(id: Int!): CustomerSegment + customerSets( + startIndex: Int + pageSize: Int + sortBy: String + ): CustomerSetCollection + customerSet(code: String!): CustomerSet + inStockNotifications( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): InStockNotificationSubscriptionCollection + inStockNotification(id: Int!): InStockNotificationSubscription + authTicket(accountId: Int): CustomerAuthTicket + exchangeRates: [CurrencyExchangeRate] + resolvedPriceList(customerAccountId: Int): ResolvedPriceList + categoriesTree: CategoryCollection + categories( + filter: String + startIndex: Int + pageSize: Int + sortBy: String + ): CategoryPagedCollection + category(categoryId: Int!, allowInactive: Boolean): PrCategory + products( + filter: String + startIndex: Int + pageSize: Int + sortBy: String + responseOptions: String + cursorMark: String + defaultSort: String + mid: String + includeAllImages: Boolean + ): ProductCollection + product( + productCode: String! + variationProductCode: String + allowInactive: Boolean + skipInventoryCheck: Boolean + supressOutOfStock404: Boolean + quantity: Int + acceptVariantProductCode: Boolean + purchaseLocation: String + variationProductCodeFilter: String + sliceValue: String + includeAllImages: Boolean + ): Product + productVersion( + productCode: String! + productVersion: Int + lastModifiedDate: DateTime + ): ProductForIndexing + productLocationInventory( + productCode: String! + locationCodes: String + ): LocationInventoryCollection + suggestionSearch( + query: String + groups: String + pageSize: Int + mid: String + filter: String + ): SearchSuggestionResult + productSearchRandomAccessCursor( + query: String + filter: String + pageSize: Int + ): ProductSearchRandomAccessCursor + productSearch( + query: String + filter: String + facetTemplate: String + facetTemplateSubset: String + facet: String + facetFieldRangeQuery: String + facetHierPrefix: String + facetHierValue: String + facetHierDepth: String + facetStartIndex: String + facetPageSize: String + facetSettings: String + facetValueFilter: String + sortBy: String + pageSize: Int + startIndex: Int + searchSettings: String + enableSearchTuningRules: Boolean + searchTuningRuleContext: String + searchTuningRuleCode: String + facetTemplateExclude: String + facetPrefix: String + responseOptions: String + cursorMark: String + facetValueSort: String + defaultSort: String + sortDefinitionName: String + defaultSortDefinitionName: String + shouldSlice: Boolean + mid: String + omitNamespace: Boolean + ): ProductSearchResult + priceList(priceListCode: String): PriceList + cartsSummary: CartSummary + userCartSummary(userId: String!): CartSummary + cartSummary(cartId: String!): CartSummary + userCart(userId: String!): Cart + currentCart: Cart + cart(cartId: String!): Cart + currentCartExtendedProperties: [ExtendedProperty] + currentCartItems: CartItemCollection + cartItems(cartId: String!): CartItemCollection + currentCartItem(cartItemId: String!): CartItem + cartItem(cartId: String!, cartItemId: String!): CartItem + currentCartMessages: CartChangeMessageCollection + channels( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): ChannelCollection + channel(code: String!): Channel + channelGroups( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): ChannelGroupCollection + channelGroup(code: String!): ChannelGroup + checkoutAttributes(checkoutId: String!): [OrderAttribute] + checkout(checkoutId: String!): Checkout + checkouts( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + q: String + qLimit: Int + ): CheckoutCollection + checkoutShippingMethods(checkoutId: String!): [CheckoutGroupRates] + checkoutActions(checkoutId: String!): [String] + checkoutDestination(checkoutId: String!, destinationId: String!): Destination + checkoutDestinations(checkoutId: String!): [Destination] + orderPackageActions(orderId: String!, packageId: String!): [String] + orderPaymentActions(orderId: String!, paymentId: String!): [String] + orderPayment(orderId: String!, paymentId: String!): Payment + orderPayments(orderId: String!): PaymentCollection + orderPickup(orderId: String!, pickupId: String!): Pickup + orderPickupActions(orderId: String!, pickupId: String!): [String] + orderReturnableItems(orderId: String!): OrderReturnableItemCollection + orderShipment(orderId: String!, shipmentId: String!): Shipment + orderShipmentMethods(orderId: String!, draft: Boolean): [ShippingRate] + orderValidationResults(orderId: String!): [OrderValidationResult] + orderAttributes(orderId: String!): [OrderAttribute] + orderBillingInfo(orderId: String!, draft: Boolean): BillingInfo + orderCancelReasons(category: String): CancelReasonCollection + orders( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + q: String + qLimit: Int + includeBin: Boolean + mode: String + ): OrderCollection + order( + orderId: String! + draft: Boolean + includeBin: Boolean + mode: String + ): Order + orderActions(orderId: String!): [String] + orderTaxableOrders(orderId: String!): [PricingTaxableOrder] + orderDigitalPackage( + orderId: String! + digitalPackageId: String! + ): DigitalPackage + orderDigitalPackageActions( + orderId: String! + digitalPackageId: String! + ): [String] + orderExtendedProperties(orderId: String!, draft: Boolean): [ExtendedProperty] + orderFulfillmentInfo(orderId: String!, draft: Boolean): FulfillmentInfo + orderItems(orderId: String!, draft: Boolean): OrderItemCollection + orderNotes(orderId: String!): [OrderNote] + orderNote(orderId: String!, noteId: String!): OrderNote + orderPackage(orderId: String!, packageId: String!): PackageObj + orderPackageLabel(orderId: String!, packageId: String!): Boolean + quote(quoteId: String!, draft: Boolean): Quote + quotes( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + q: String + qLimit: Int + ): QuoteCollection + customerAccountQuote( + customerAccountId: Int! + quoteName: String! + draft: Boolean + ): Quote + quoteItems( + quoteId: String! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): [CrOrderItem] + customerAccountQuoteItems( + customerAccountId: Int! + quoteName: String! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): [CrOrderItem] + quoteItem(quoteId: String!, quoteItemId: String!, draft: Boolean): CrOrderItem + returns( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + q: String + ): ReturnCollection + returnReasons: ReasonCollection + returnReason(returnId: String!): ReturnObj + returnActions(returnId: String!): [String] + returnPayments(returnId: String!): PaymentCollection + returnPayment(returnId: String!, paymentId: String!): Payment + returnPaymentActions(returnId: String!, paymentId: String!): [String] + returnShippingLabel(returnId: String!): CarrierServiceGenerateLabelResponse + returnItems(returnId: String!): ReturnItemCollection + returnItem(returnId: String!, returnItemId: String!): ReturnItem + returnNotes(returnId: String!): [OrderNote] + returnNote(returnId: String!, noteId: String!): OrderNote + returnPackage(returnId: String!, packageId: String!): PackageObj + returnPackageLabel( + returnId: String! + packageId: String! + returnAsBase64Png: Boolean + ): Boolean + returnShipment(returnId: String!, shipmentId: String!): Shipment + wishlists( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + q: String + qLimit: Int + ): WishlistCollection + wishlist(wishlistId: String!): Wishlist + customerWishlist(customerAccountId: Int!, wishlistName: String!): Wishlist + wishlistItems( + wishlistId: String! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): WishlistItemCollection + customerWishlistItems( + customerAccountId: Int! + wishlistName: String! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): WishlistItemCollection + wishlistItem(wishlistId: String!, wishlistItemId: String!): WishlistItem + orderItem( + orderId: String + lineId: Int + orderItemId: String + draft: Boolean + ): CrOrderItem + documentListDocumentContent( + documentListName: String! + documentId: String! + ): Boolean + documentListDocumentTransform( + documentListName: String! + documentId: String! + width: Int + height: Int + max: Int + maxWidth: Int + maxHeight: Int + crop: String + quality: Int + ): Boolean + documentListTreeDocumentContent( + documentListName: String! + documentName: String! + ): Boolean + documentListTreeDocumentTransform( + documentListName: String! + documentName: String! + width: Int + height: Int + max: Int + maxWidth: Int + maxHeight: Int + crop: String + quality: Int + ): Boolean + documentListDocuments( + documentListName: String! + filter: String + sortBy: String + pageSize: Int + startIndex: Int + includeInactive: Boolean + path: String + includeSubPaths: Boolean + queryScope: String + ): DocumentCollection + documentListDocument( + documentListName: String! + documentId: String! + includeInactive: Boolean + ): Document + documentListTreeDocument( + documentListName: String! + documentName: String! + includeInactive: Boolean + ): Document + documentLists(pageSize: Int, startIndex: Int): DocumentListCollection + documentList(documentListName: String!): DocumentList + documentListViewDocuments( + documentListName: String! + viewName: String! + filter: String + sortBy: String + pageSize: Int + startIndex: Int + includeInactive: Boolean + ): DocumentCollection + documentListTypes(pageSize: Int, startIndex: Int): DocumentListTypeCollection + documentListType(documentListTypeFQN: String!): DocumentListType + documentDrafts( + pageSize: Int + startIndex: Int + documentLists: String + ): DocumentDraftSummaryPagedCollection + documentTypes(pageSize: Int, startIndex: Int): DocumentTypeCollection + documentType(documentTypeName: String!): DocumentType + propertyTypes(pageSize: Int, startIndex: Int): PropertyTypeCollection + propertyType(propertyTypeName: String!): PropertyType + adminLocations( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): LocationCollection + adminLocation(locationCode: String!): Location + adminLocationAttributes( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): LoAttributeCollection + adminLocationAttributeVocabularyValues( + attributeFQN: String! + ): [LoAttributeVocabularyValue] + adminLocationAttribute(attributeFQN: String!): LoAttribute + adminLocationGroups( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): LocationGroupCollection + dslLocation(includeAttributeDefinition: Boolean): Location + spLocations( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + includeAttributeDefinition: Boolean + ): LocationCollection + spLocation( + locationCode: String! + includeAttributeDefinition: Boolean + ): Location + usageTypeLocations( + locationUsageType: String! + startIndex: Int + pageSize: Int + sortBy: String + filter: String + includeAttributeDefinition: Boolean + ): LocationCollection + location(locationCode: String!, includeAttributeDefinition: Boolean): Location + locationUsages: LocationUsageCollection + locationUsage(code: String!): LocationUsage + adminLocationTypes: [LocationType] + adminLocationType(locationTypeCode: String!): LocationType + locationGroupConfig( + locationGroupId: Int + locationGroupCode: String + locationCode: String + ): LocationGroupConfiguration + locationGroup(groupId: Int, locationGroupCode: String): LocationGroup + entityListEntity(entityListFullName: String!, id: String!): Boolean + entityListEntities( + entityListFullName: String! + pageSize: Int + startIndex: Int + filter: String + sortBy: String + ): EntityCollection + entityListEntityContainer( + entityListFullName: String! + id: String! + ): EntityContainer + entityListEntityContainers( + entityListFullName: String! + pageSize: Int + startIndex: Int + filter: String + sortBy: String + ): EntityContainerCollection + entityList(entityListFullName: String!): EntityList + entityLists( + pageSize: Int + startIndex: Int + filter: String + sortBy: String + ): EntityListCollection + entityListViews(entityListFullName: String!): ListViewCollection + entityListView(entityListFullName: String!, viewName: String!): ListView + entityListViewEntityContainers( + entityListFullName: String! + viewName: String! + pageSize: Int + startIndex: Int + filter: String + ): EntityContainerCollection + entityListViewEntities( + entityListFullName: String! + viewName: String! + pageSize: Int + startIndex: Int + filter: String + ): EntityCollection + entityListViewEntityContainer( + entityListFullName: String! + viewName: String! + entityId: String! + ): EntityContainer + entityListViewEntity( + entityListFullName: String! + viewName: String! + entityId: String! + ): Boolean + carrierLocaleServiceTypes( + carrierId: String! + localeCode: String! + ): [ServiceType] + localeServiceTypes(localeCode: String!): [ServiceType] + targetRules( + startIndex: Int + pageSize: Int + sortBy: String + filter: String + ): TargetRuleCollection + targetRule(code: String!): TargetRule + orderRoutingRoutingSuggestionLog( + externalResponseID: String + orderID: Int + responseID: Int + suggestionID: Int + ): [JsonNode] +} + +type Quote { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Quote + id: String + name: String + siteId: Int! + tenantId: Int! + number: Int + submittedDate: DateTime + items: [CrOrderItem] + auditHistory: [AuditRecord] + auditInfo: CrAuditInfo + comments: [QuoteComment] + expirationDate: DateTime + fulfillmentInfo: FulfillmentInfo + userId: String + customerAccountId: Int + email: String + customerTaxId: String + isTaxExempt: Boolean + currencyCode: String + priceListCode: String + data: Object + taxData: Object + channelCode: String + locationCode: String + ipAddress: String + sourceDevice: String + visitId: String + webSessionId: String + customerInteractionType: String + orderDiscounts: [CrAppliedDiscount] + subTotal: Float! + itemLevelProductDiscountTotal: Float! + orderLevelProductDiscountTotal: Float! + itemTaxTotal: Float! + adjustment: Adjustment + itemTotal: Float! + total: Float! + shippingDiscounts: [ShippingDiscount] + itemLevelShippingDiscountTotal: Float! + orderLevelShippingDiscountTotal: Float! + shippingAmount: Float! + shippingAdjustment: Adjustment + shippingSubTotal: Float! + shippingTax: Float + shippingTaxTotal: Float! + shippingTotal: Float! + handlingDiscounts: [CrAppliedDiscount] + itemLevelHandlingDiscountTotal: Float! + orderLevelHandlingDiscountTotal: Float! + handlingAmount: Float + handlingAdjustment: Adjustment + handlingSubTotal: Float! + handlingTax: Float + handlingTaxTotal: Float! + handlingTotal: Float! + dutyAmount: Float + dutyTotal: Float! + feeTotal: Float! + isDraft: Boolean + hasDraft: Boolean + status: String + couponCodes: [String!] + invalidCoupons: [InvalidCoupon] +} + +type QuoteCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: QuoteCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [Quote] +} + +type QuoteComment { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: QuoteComment + id: String + text: String + auditInfo: CrAuditInfo +} + +input QuoteCommentInput { + id: String + text: String + auditInfo: CrAuditInfoInput +} + +input QuoteInput { + id: String + name: String + siteId: Int! + tenantId: Int! + number: Int + submittedDate: DateTime + items: [CrOrderItemInput] + auditHistory: [AuditRecordInput] + auditInfo: CrAuditInfoInput + comments: [QuoteCommentInput] + expirationDate: DateTime + fulfillmentInfo: FulfillmentInfoInput + userId: String + customerAccountId: Int + email: String + customerTaxId: String + isTaxExempt: Boolean = false + currencyCode: String + priceListCode: String + data: Object + taxData: Object + channelCode: String + locationCode: String + ipAddress: String + sourceDevice: String + visitId: String + webSessionId: String + customerInteractionType: String + orderDiscounts: [CrAppliedDiscountInput] + subTotal: Float! + itemLevelProductDiscountTotal: Float! + orderLevelProductDiscountTotal: Float! + itemTaxTotal: Float! + adjustment: AdjustmentInput + itemTotal: Float! + total: Float! + shippingDiscounts: [ShippingDiscountInput] + itemLevelShippingDiscountTotal: Float! + orderLevelShippingDiscountTotal: Float! + shippingAmount: Float! + shippingAdjustment: AdjustmentInput + shippingSubTotal: Float! + shippingTax: Float + shippingTaxTotal: Float! + shippingTotal: Float! + handlingDiscounts: [CrAppliedDiscountInput] + itemLevelHandlingDiscountTotal: Float! + orderLevelHandlingDiscountTotal: Float! + handlingAmount: Float + handlingAdjustment: AdjustmentInput + handlingSubTotal: Float! + handlingTax: Float + handlingTaxTotal: Float! + handlingTotal: Float! + dutyAmount: Float + dutyTotal: Float! + feeTotal: Float! + isDraft: Boolean = false + hasDraft: Boolean = false + status: String + couponCodes: [String!] + invalidCoupons: [InvalidCouponInput] +} + +type ReasonCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ReasonCollection + totalCount: Int! + items: [String!] +} + +type Refund { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Refund + id: String + orderId: String + reason: String + reasonCode: String + payment: Payment + amount: Float! + refundMethod: String + auditInfo: CrAuditInfo +} + +input RefundInput { + id: String + orderId: String + reason: String + reasonCode: String + payment: PaymentInput + amount: Float! + refundMethod: String + auditInfo: CrAuditInfoInput +} + +type RegularHours { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: RegularHours + sunday: Hours + monday: Hours + tuesday: Hours + wednesday: Hours + thursday: Hours + friday: Hours + saturday: Hours + timeZone: String +} + +input RegularHoursInput { + sunday: HoursInput + monday: HoursInput + tuesday: HoursInput + wednesday: HoursInput + thursday: HoursInput + friday: HoursInput + saturday: HoursInput + timeZone: String +} + +input RepriceShipmentObjectInput { + originalShipment: ShipmentInput + newShipment: ShipmentInput +} + +input ResetPasswordInfoInput { + emailAddress: String + userName: String + customerSetCode: String +} + +type ResolvedPriceList { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ResolvedPriceList + priceListCode: String + priceListId: Int! + name: String + description: String +} + +input RestockableReturnItemInput { + returnItemId: String + quantity: Int! + locationCode: String +} + +input ReturnActionInput { + actionName: String + returnIds: [String!] +} + +type ReturnBundle { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ReturnBundle + productCode: String + quantity: Int! +} + +input ReturnBundleInput { + productCode: String + quantity: Int! +} + +type ReturnCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ReturnCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [ReturnObj] +} + +type ReturnItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ReturnItem + id: String + orderItemId: String + orderLineId: Int + orderItemOptionAttributeFQN: String + product: CrProduct + reasons: [ReturnReason] + excludeProductExtras: Boolean + returnType: String + returnNotRequired: Boolean + quantityReceived: Int! + receiveStatus: String + quantityShipped: Int! + replaceStatus: String + quantityRestockable: Int! + quantityRestocked: Int! + refundAmount: Float + refundStatus: String + quantityReplaced: Int + notes: [OrderNote] + productLossAmount: Float + productLossTaxAmount: Float + shippingLossAmount: Float + shippingLossTaxAmount: Float + bundledProducts: [ReturnBundle] + totalWithoutWeightedShippingAndHandling: Float + totalWithWeightedShippingAndHandling: Float + shipmentItemId: Int + shipmentNumber: Int +} + +type ReturnItemCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ReturnItemCollection + totalCount: Int! + items: [ReturnItem] +} + +input ReturnItemInput { + id: String + orderItemId: String + orderLineId: Int + orderItemOptionAttributeFQN: String + product: CrProductInput + reasons: [ReturnReasonInput] + excludeProductExtras: Boolean = false + returnType: String + returnNotRequired: Boolean = false + quantityReceived: Int! + receiveStatus: String + quantityShipped: Int! + replaceStatus: String + quantityRestockable: Int! + quantityRestocked: Int! + refundAmount: Float + refundStatus: String + quantityReplaced: Int + notes: [OrderNoteInput] + productLossAmount: Float + productLossTaxAmount: Float + shippingLossAmount: Float + shippingLossTaxAmount: Float + bundledProducts: [ReturnBundleInput] + totalWithoutWeightedShippingAndHandling: Float + totalWithWeightedShippingAndHandling: Float + shipmentItemId: Int + shipmentNumber: Int +} + +input ReturnItemSpecifierInput { + returnItemId: String + quantity: Int! +} + +type ReturnObj { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ReturnObj + id: String + customerAccountId: Int + visitId: String + webSessionId: String + customerInteractionType: String + availableActions: [String!] + returnNumber: Int + contact: Contact + locationCode: String + originalOrderId: String + originalOrderNumber: Int + returnOrderId: String + currencyCode: String + status: String + receiveStatus: String + refundStatus: String + replaceStatus: String + items: [ReturnItem] + notes: [OrderNote] + rmaDeadline: DateTime + returnType: String + refundAmount: Float + auditInfo: CrAuditInfo + payments: [Payment] + packages: [PackageObj] + productLossTotal: Float + shippingLossTotal: Float + lossTotal: Float + productLossTaxTotal: Float + shippingLossTaxTotal: Float + tenantId: Int + siteId: Int + userId: String + channelCode: String + changeMessages: [ChangeMessage] + actionRequired: Boolean + isUnified: Boolean +} + +input ReturnObjInput { + id: String + customerAccountId: Int + visitId: String + webSessionId: String + customerInteractionType: String + availableActions: [String!] + returnNumber: Int + contact: ContactInput + locationCode: String + originalOrderId: String + originalOrderNumber: Int + returnOrderId: String + currencyCode: String + status: String + receiveStatus: String + refundStatus: String + replaceStatus: String + items: [ReturnItemInput] + notes: [OrderNoteInput] + rmaDeadline: DateTime + returnType: String + refundAmount: Float + auditInfo: CrAuditInfoInput + payments: [PaymentInput] + packages: [PackageObjInput] + productLossTotal: Float + shippingLossTotal: Float + lossTotal: Float + productLossTaxTotal: Float + shippingLossTaxTotal: Float + tenantId: Int + siteId: Int + userId: String + channelCode: String + changeMessages: [ChangeMessageInput] + actionRequired: Boolean = false + isUnified: Boolean = false +} + +type ReturnReason { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ReturnReason + reason: String + quantity: Int! +} + +input ReturnReasonInput { + reason: String + quantity: Int! +} + +type SearchSuggestion { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: SearchSuggestion + suggestionType: String + suggestion: Object +} + +type SearchSuggestionGroup { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: SearchSuggestionGroup + name: String + suggestions: [SearchSuggestion] +} + +type SearchSuggestionResult { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: SearchSuggestionResult + query: String + suggestionGroups: [SearchSuggestionGroup] +} + +type ServiceType { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ServiceType + code: String + deliveryDuration: String + content: ServiceTypeLocalizedContent +} + +type ServiceTypeLocalizedContent { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ServiceTypeLocalizedContent + localeCode: String + name: String +} + +type Shipment { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Shipment + id: String + externalShipmentId: String + number: Int + orderId: String + orderNumber: Int! + email: String + currencyCode: String + customerAccountId: Int + customerTaxId: String + shipmentType: String + shippingMethodCode: String + shippingMethodName: String + fulfillmentLocationCode: String + origin: Contact + destination: Destination + shipmentStatus: String + shipmentStatusReason: ShipmentStatusReason + transferShipmentNumbers: [Int!] + isTransfer: Boolean + originalShipmentNumber: Int + parentShipmentNumber: Int + fulfillmentStatus: String + workflowProcessId: String + workflowProcessContainerId: String + workflowState: WorkflowState + backorderCreatedDate: Int + fulfillmentDate: DateTime + orderSubmitDate: DateTime + pickStatus: String + pickType: String + changeMessages: [ChangeMessage] + packages: [PackageObj] + items: [ShipmentItem] + canceledItems: [CanceledItem] + data: Object + taxData: Object + auditInfo: CrAuditInfo + shipmentAdjustment: Float! + lineItemSubtotal: Float! + lineItemTaxAdjustment: Float! + lineItemTaxTotal: Float! + lineItemTotal: Float! + shippingAdjustment: Float! + shippingSubtotal: Float! + shippingTaxAdjustment: Float! + shippingTaxTotal: Float! + shippingTotal: Float! + handlingAdjustment: Float! + handlingSubtotal: Float! + handlingTaxAdjustment: Float! + handlingTaxTotal: Float! + handlingTotal: Float! + dutyAdjustment: Float! + dutyTotal: Float! + total: Float! + cost: Float + externalOrderId: String + isExpress: Boolean + readyToCapture: Boolean + pickupInfo: Object + shopperNotes: FulfillmentShopperNotes + customer: Customer +} + +input ShipmentAdjustmentInput { + itemAdjustment: Float + itemTaxAdjustment: Float + shippingAdjustment: Float + shippingTaxAdjustment: Float + handlingAdjustment: Float + handlingTaxAdjustment: Float +} + +input ShipmentInput { + id: String + externalShipmentId: String + number: Int + orderId: String + orderNumber: Int! + email: String + currencyCode: String + customerAccountId: Int + customerTaxId: String + shipmentType: String + shippingMethodCode: String + shippingMethodName: String + fulfillmentLocationCode: String + origin: ContactInput + destination: DestinationInput + shipmentStatus: String + shipmentStatusReason: ShipmentStatusReasonInput + transferShipmentNumbers: [Int!] + isTransfer: Boolean = false + originalShipmentNumber: Int + parentShipmentNumber: Int + fulfillmentStatus: String + workflowProcessId: String + workflowProcessContainerId: String + workflowState: WorkflowStateInput + backorderCreatedDate: Int + fulfillmentDate: DateTime + orderSubmitDate: DateTime + pickStatus: String + pickType: String + changeMessages: [ChangeMessageInput] + packages: [PackageObjInput] + items: [ShipmentItemInput] + canceledItems: [CanceledItemInput] + data: Object + taxData: Object + auditInfo: CrAuditInfoInput + shipmentAdjustment: Float! + lineItemSubtotal: Float! + lineItemTaxAdjustment: Float! + lineItemTaxTotal: Float! + lineItemTotal: Float! + shippingAdjustment: Float! + shippingSubtotal: Float! + shippingTaxAdjustment: Float! + shippingTaxTotal: Float! + shippingTotal: Float! + handlingAdjustment: Float! + handlingSubtotal: Float! + handlingTaxAdjustment: Float! + handlingTaxTotal: Float! + handlingTotal: Float! + dutyAdjustment: Float! + dutyTotal: Float! + total: Float! + cost: Float + externalOrderId: String + isExpress: Boolean = false + readyToCapture: Boolean = false + pickupInfo: Object + shopperNotes: FulfillmentShopperNotesInput + customer: CustomerInput +} + +type ShipmentItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ShipmentItem + lineId: Int! + originalOrderItemId: String + parentId: String + productCode: String + variationProductCode: String + optionAttributeFQN: String + name: String + auditInfo: CrAuditInfo + fulfillmentLocationCode: String + imageUrl: String + isTaxable: Boolean + quantity: Int! + unitPrice: Float! + actualPrice: Float! + overridePrice: Float + itemDiscount: Float! + lineItemCost: Float! + itemTax: Float! + shipping: Float! + shippingDiscount: Float! + shippingTax: Float! + handling: Float! + handlingDiscount: Float! + handlingTax: Float! + duty: Float! + isPackagedStandAlone: Boolean + readyForPickupQuantity: Int + backorderReleaseDate: DateTime + measurements: CrPackageMeasurements + options: [CrProductOption] + data: Object + taxData: Object + weightedShipmentAdjustment: Float! + weightedLineItemTaxAdjustment: Float! + weightedShippingAdjustment: Float! + weightedShippingTaxAdjustment: Float! + weightedHandlingAdjustment: Float! + weightedHandlingTaxAdjustment: Float! + weightedDutyAdjustment: Float! + taxableShipping: Float! + taxableLineItemCost: Float! + taxableHandling: Float! + fulfillmentFields: [FulfillmentField] + isAssemblyRequired: Boolean + parentItemId: String + childItemIds: [String!] + giftCards: [GiftCard] +} + +input ShipmentItemAdjustmentInput { + overridePrice: Float +} + +input ShipmentItemInput { + lineId: Int! + originalOrderItemId: String + parentId: String + productCode: String + variationProductCode: String + optionAttributeFQN: String + name: String + auditInfo: CrAuditInfoInput + fulfillmentLocationCode: String + imageUrl: String + isTaxable: Boolean = false + quantity: Int! + unitPrice: Float! + actualPrice: Float! + overridePrice: Float + itemDiscount: Float! + lineItemCost: Float! + itemTax: Float! + shipping: Float! + shippingDiscount: Float! + shippingTax: Float! + handling: Float! + handlingDiscount: Float! + handlingTax: Float! + duty: Float! + isPackagedStandAlone: Boolean = false + readyForPickupQuantity: Int + backorderReleaseDate: DateTime + measurements: CrPackageMeasurementsInput + options: [CrProductOptionInput] + data: Object + taxData: Object + weightedShipmentAdjustment: Float! + weightedLineItemTaxAdjustment: Float! + weightedShippingAdjustment: Float! + weightedShippingTaxAdjustment: Float! + weightedHandlingAdjustment: Float! + weightedHandlingTaxAdjustment: Float! + weightedDutyAdjustment: Float! + taxableShipping: Float! + taxableLineItemCost: Float! + taxableHandling: Float! + fulfillmentFields: [FulfillmentFieldInput] + isAssemblyRequired: Boolean = false + parentItemId: String + childItemIds: [String!] + giftCards: [GiftCardInput] +} + +type ShipmentStatusReason { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ShipmentStatusReason + reasonCode: String + moreInfo: String +} + +input ShipmentStatusReasonInput { + reasonCode: String + moreInfo: String +} + +input ShippingAddressInput { + addressID: Int! + addressLine1: String! + city: String! + countryCode: String! + customerID: Int! + latitude: Float! + longitude: Float! + phone: String! + postalCode: String! + state: String! +} + +type ShippingDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ShippingDiscount + methodCode: String + discount: CrAppliedDiscount +} + +input ShippingDiscountInput { + methodCode: String + discount: CrAppliedDiscountInput +} + +type ShippingMethodMappings { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ShippingMethodMappings + shippingMethods: [String!] + returnLabelShippingMethod: String + standardDefault: String + express1DayDefault: String + express2DayDefault: String + express3DayDefault: String + enableSmartPost: Boolean + internationalUsReturnLabelShippingMethod: String +} + +type ShippingOriginContact { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ShippingOriginContact + firstName: String + middleNameOrInitial: String + lastNameOrSurname: String + companyOrOrganization: String + phoneNumber: String + email: String +} + +input ShippingOriginContactInput { + firstName: String + middleNameOrInitial: String + lastNameOrSurname: String + companyOrOrganization: String + phoneNumber: String + email: String +} + +type ShippingRate { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ShippingRate + shippingMethodCode: String + shippingMethodName: String + shippingZoneCode: String + isValid: Boolean + messages: [String!] + data: Object + currencyCode: String + price: Float +} + +input ShippingRateInput { + shippingMethodCode: String + shippingMethodName: String + shippingZoneCode: String + isValid: Boolean = false + messages: [String!] + data: Object + currencyCode: String + price: Float +} + +type ShopperNotes { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ShopperNotes + giftMessage: String + comments: String + deliveryInstructions: String +} + +input ShopperNotesInput { + giftMessage: String + comments: String + deliveryInstructions: String +} + +type SolrDebugInfo { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: SolrDebugInfo + searchTuningRuleCode: String + boostedProductCodes: [String!] + blockedProductCodes: [String!] + boostQueries: [String!] + boostFunctions: [String!] +} + +input SplitShipmentsObjectInput { + originalShipment: ShipmentInput + newShipments: [ShipmentInput] +} + +type SubPayment { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: SubPayment + status: String + amountCollected: Float! + amountCredited: Float! + amountRequested: Float! + amountRefunded: Float! + target: PaymentActionTarget +} + +input SubPaymentInput { + status: String + amountCollected: Float! + amountCredited: Float! + amountRequested: Float! + amountRefunded: Float! + target: PaymentActionTargetInput +} + +type SuggestedDiscount { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: SuggestedDiscount + productCode: String + autoAdd: Boolean + discountId: Int! + hasMultipleProducts: Boolean + hasOptions: Boolean +} + +input SuggestedDiscountInput { + productCode: String + autoAdd: Boolean = false + discountId: Int! + hasMultipleProducts: Boolean = false + hasOptions: Boolean = false +} + +type SuggestionEvent { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: SuggestionEvent + causeID: Int! + errors: [String!]! + name: String! + type: TypeEnum +} + +type SuggestionLog { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: SuggestionLog + created: DateTime! + creatorUsername: String! + environmentID: Int! + events: [SuggestionEvent]! + externalResponseID: String! + orderID: Int! + pathString: String! + persisted: Boolean + siteID: Int! + suggestionID: Int! + tenantID: Int! + updated: DateTime! + updaterUsername: String! +} + +input SuggestionRequestInput { + bundlingStrategy: BundlingStrategyEnum + customData: Object! + environmentID: Int! + exclusionListLocationCode: [ExclusionListEntryLocationCodeInput]! + externalResponseID: String! + fraud: Int! + inventoryRequestType: InventoryRequestTypeEnum + isExpress: Boolean = false + items: [OrderItemInput]! + locationCodeWhiteList: [String!]! + numShipmentsNotInRequest: Int! + orderID: Int! + orderType: OrderTypeEnum + pickupLocationCode: String! + shippingAddress: ShippingAddressInput + total: Float! +} + +type SuggestionResponse { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: SuggestionResponse + assignmentSuggestions: Object! + availableLocations: [Int!]! + externalResponseID: String! + responseID: Int! + stateChangeSuggestions: Object! + suggestionLog: SuggestionLog +} + +type TargetRule { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: TargetRule + code: String + description: String + domain: String + expression: String +} + +type TargetRuleCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: TargetRuleCollection + totalCount: Int! + items: [TargetRule] +} + +input TargetRuleInput { + code: String + description: String + domain: String + expression: String +} + +type TaskInput { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: TaskInput + helpMessage: String + label: String + maxLength: Int + maximum: Float! + minLength: Int + minimum: Float! + name: String + options: [Object!] + pattern: String + required: Boolean + type: String +} + +input TaskInputInput { + helpMessage: String + label: String + maxLength: Int + maximum: Float! + minLength: Int + minimum: Float! + name: String + options: [Object!] + pattern: String + required: Boolean = false + type: String +} + +type ThresholdMessage { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ThresholdMessage + discountId: Int! + message: String + thresholdValue: Float! + showOnCheckout: Boolean + showInCart: Boolean + requiresCouponCode: Boolean +} + +input ThresholdMessageInput { + discountId: Int! + message: String + thresholdValue: Float! + showOnCheckout: Boolean = false + showInCart: Boolean = false + requiresCouponCode: Boolean = false +} + +type Tracking { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Tracking + attributes: Object + number: String + url: String +} + +input TrackingInput { + attributes: Object + number: String + url: String +} + +type Transaction { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Transaction + transactionId: String + visitId: String + transactionType: String + interactionType: String + amount: Float! + date: DateTime! + currencyCode: String +} + +input TransactionInput { + transactionId: String + visitId: String + transactionType: String + interactionType: String + amount: Float! + date: DateTime! + currencyCode: String +} + +enum TypeEnum { + NEW_REQUEST + ROUTE_SELECTED + MAKE_LOCATIONS_AVAILABLE + NO_ROUTE_FOUND + REMOVED_INACTIVE_LOCATIONS + REMOVED_ON_HOLD_LOCATIONS + REMOVED_OVERFULFILLED_LOCATIONS + GROUP + GROUP_FILTER + GROUP_SORT + FILTER + SORT + AFTER_ACTION + FOUND_FULL_ORDER_LOCATION + RESPONSE + AFTER_ACTION_SORT + DEFAULT_RESPONSE + MAX_SPLITS_EXCEEDED + AUTO_ASSIGN_LIMIT_EXCEEDED + INVENTORY_REQUEST + REMOVED_INTERNATIONAL_LOCATIONS +} + +type UserRole { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: UserRole + userId: String + assignedInScope: UserScope + roleId: Int! + roleName: String + roleTags: [String!] + auditInfo: CuAuditInfo +} + +type UserRoleCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: UserRoleCollection + totalCount: Int! + items: [UserRole] +} + +input UserRoleInput { + userId: String + assignedInScope: UserScopeInput + roleId: Int! + roleName: String + roleTags: [String!] + auditInfo: CuAuditInfoInput +} + +type UserScope { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: UserScope + type: String + id: Int + name: String +} + +input UserScopeInput { + type: String + id: Int + name: String +} + +type ValidationMessage { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ValidationMessage + severity: String + source: String + message: String + validationType: String + sourceId: String +} + +type VariationOption { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: VariationOption + valueSequence: Int! + attributeFQN: String + value: Object +} + +type VariationSummary { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: VariationSummary + productCode: String + options: [VariationOption] + inventoryInfo: ProductInventoryInfo +} + +type View { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: View + name: String + usages: [String!] + metadata: Object + isVisibleInStorefront: Boolean + filter: String + includeInactiveMode: String + isAdminDefault: Boolean + fields: [ViewField] +} + +type ViewField { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: ViewField + name: String + target: String +} + +input ViewFieldInput { + name: String + target: String +} + +input ViewInput { + name: String + usages: [String!] + metadata: Object + isVisibleInStorefront: Boolean = false + filter: String + includeInactiveMode: String + isAdminDefault: Boolean = false + fields: [ViewFieldInput] +} + +type Wishlist { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: Wishlist + customerAccountId: Int + typeTag: String + name: String + items: [WishlistItem] + privacyType: String + sortOrder: Int + version: String + isImport: Boolean + importDate: DateTime + externalId: String + userId: String + id: String + tenantId: Int + siteId: Int + channelCode: String + currencyCode: String + visitId: String + webSessionId: String + customerInteractionType: String + fulfillmentInfo: FulfillmentInfo + orderDiscounts: [CrAppliedDiscount] + suggestedDiscounts: [SuggestedDiscount] + rejectedDiscounts: [SuggestedDiscount] + data: Object + taxData: Object + subtotal: Float + discountedSubtotal: Float + discountTotal: Float + discountedTotal: Float + shippingTotal: Float + shippingSubTotal: Float + shippingTaxTotal: Float + handlingTaxTotal: Float + itemTaxTotal: Float + taxTotal: Float + feeTotal: Float + total: Float + lineItemSubtotalWithOrderAdjustments: Float + shippingAmountBeforeDiscountsAndAdjustments: Float + lastValidationDate: DateTime + expirationDate: DateTime + changeMessages: [ChangeMessage] + extendedProperties: [ExtendedProperty] + discountThresholdMessages: [ThresholdMessage] + auditInfo: CrAuditInfo +} + +type WishlistCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: WishlistCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [Wishlist] +} + +input WishlistInput { + customerAccountId: Int + typeTag: String + name: String + items: [WishlistItemInput] + privacyType: String + sortOrder: Int + version: String + isImport: Boolean = false + importDate: DateTime + externalId: String + userId: String + id: String + tenantId: Int + siteId: Int + channelCode: String + currencyCode: String + visitId: String + webSessionId: String + customerInteractionType: String + fulfillmentInfo: FulfillmentInfoInput + orderDiscounts: [CrAppliedDiscountInput] + suggestedDiscounts: [SuggestedDiscountInput] + rejectedDiscounts: [SuggestedDiscountInput] + data: Object + taxData: Object + subtotal: Float + discountedSubtotal: Float + discountTotal: Float + discountedTotal: Float + shippingTotal: Float + shippingSubTotal: Float + shippingTaxTotal: Float + handlingTaxTotal: Float + itemTaxTotal: Float + taxTotal: Float + feeTotal: Float + total: Float + lineItemSubtotalWithOrderAdjustments: Float + shippingAmountBeforeDiscountsAndAdjustments: Float + lastValidationDate: DateTime + expirationDate: DateTime + changeMessages: [ChangeMessageInput] + extendedProperties: [ExtendedPropertyInput] + discountThresholdMessages: [ThresholdMessageInput] + auditInfo: CrAuditInfoInput +} + +type WishlistItem { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: WishlistItem + id: String + comments: String + priorityType: String + purchasableStatusType: String + localeCode: String + purchaseLocation: String + lineId: Int + product: CrProduct + quantity: Int! + isRecurring: Boolean + isTaxable: Boolean + subtotal: Float + extendedTotal: Float + taxableTotal: Float + discountTotal: Float + discountedTotal: Float + itemTaxTotal: Float + shippingTaxTotal: Float + shippingTotal: Float + handlingAmount: Float + feeTotal: Float + total: Float + unitPrice: CommerceUnitPrice + productDiscount: AppliedLineItemProductDiscount + productDiscounts: [AppliedLineItemProductDiscount] + shippingDiscounts: [AppliedLineItemShippingDiscount] + data: Object + taxData: Object + auditInfo: CrAuditInfo + shippingAmountBeforeDiscountsAndAdjustments: Float + weightedOrderAdjustment: Float + weightedOrderDiscount: Float + adjustedLineItemSubtotal: Float + totalWithoutWeightedShippingAndHandling: Float + weightedOrderTax: Float + weightedOrderShipping: Float + weightedOrderShippingDiscount: Float + weightedOrderShippingManualAdjustment: Float + weightedOrderShippingTax: Float + weightedOrderHandlingFee: Float + weightedOrderHandlingFeeTax: Float + weightedOrderHandlingFeeDiscount: Float + weightedOrderDuty: Float + totalWithWeightedShippingAndHandling: Float + weightedOrderHandlingAdjustment: Float + autoAddDiscountId: Int + isAssemblyRequired: Boolean + childItemIds: [String!] + parentItemId: String +} + +type WishlistItemCollection { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: WishlistItemCollection + startIndex: Int! + pageSize: Int! + pageCount: Int! + totalCount: Int! + items: [WishlistItem] +} + +input WishlistItemInput { + id: String + comments: String + priorityType: String + purchasableStatusType: String + localeCode: String + purchaseLocation: String + lineId: Int + product: CrProductInput + quantity: Int! + isRecurring: Boolean = false + isTaxable: Boolean = false + subtotal: Float + extendedTotal: Float + taxableTotal: Float + discountTotal: Float + discountedTotal: Float + itemTaxTotal: Float + shippingTaxTotal: Float + shippingTotal: Float + handlingAmount: Float + feeTotal: Float + total: Float + unitPrice: CommerceUnitPriceInput + productDiscount: AppliedLineItemProductDiscountInput + productDiscounts: [AppliedLineItemProductDiscountInput] + shippingDiscounts: [AppliedLineItemShippingDiscountInput] + data: Object + taxData: Object + auditInfo: CrAuditInfoInput + shippingAmountBeforeDiscountsAndAdjustments: Float + weightedOrderAdjustment: Float + weightedOrderDiscount: Float + adjustedLineItemSubtotal: Float + totalWithoutWeightedShippingAndHandling: Float + weightedOrderTax: Float + weightedOrderShipping: Float + weightedOrderShippingDiscount: Float + weightedOrderShippingManualAdjustment: Float + weightedOrderShippingTax: Float + weightedOrderHandlingFee: Float + weightedOrderHandlingFeeTax: Float + weightedOrderHandlingFeeDiscount: Float + weightedOrderDuty: Float + totalWithWeightedShippingAndHandling: Float + weightedOrderHandlingAdjustment: Float + autoAddDiscountId: Int + isAssemblyRequired: Boolean = false + childItemIds: [String!] + parentItemId: String +} + +type WorkflowState { + _get( + path: String! + defaultValue: AnyScalar + allowUndefined: Boolean + ): AnyScalar + _root: WorkflowState + attributes: Object + auditInfo: CrAuditInfo + completedDate: DateTime + processInstanceId: String + shipmentState: String + taskList: [FulfillmentTask] +} + +input WorkflowStateInput { + attributes: Object + auditInfo: CrAuditInfoInput + completedDate: DateTime + processInstanceId: String + shipmentState: String + taskList: [FulfillmentTaskInput] +} diff --git a/framework/kibocommerce/types/customer.ts b/framework/kibocommerce/types/customer.ts new file mode 100644 index 000000000..0061f070c --- /dev/null +++ b/framework/kibocommerce/types/customer.ts @@ -0,0 +1,27 @@ +import * as Core from '@commerce/types/customer' +export type Maybe = T | null +export * from '@commerce/types/customer' +export type Scalars = { + ID: string + String: string + Boolean: boolean + Int: number + Float: number + /** The `AnyScalar` type allows any scalar value by examining the input and passing the serialize, parseValue, and parseLiteral operations to their respective types. */ + AnyScalar: any + /** DateTime custom scalar type */ + DateTime: any + /** Object custom scalar type */ + Object: any +} + +export type Customer = { + id: Scalars['Int'], + firstName?: Maybe, + lastName?: Maybe, + email?: Maybe, + userName?: Maybe, + isAnonymous?: Maybe +} + +export type CustomerSchema = Core.CustomerSchema diff --git a/framework/kibocommerce/types/login.ts b/framework/kibocommerce/types/login.ts new file mode 100644 index 000000000..78b246191 --- /dev/null +++ b/framework/kibocommerce/types/login.ts @@ -0,0 +1,8 @@ +import * as Core from '@commerce/types/login' +import type { CustomerUserAuthInfoInput } from '../schema' + +export * from '@commerce/types/login' + +export type LoginOperation = Core.LoginOperation & { + variables: CustomerUserAuthInfoInput +} diff --git a/framework/kibocommerce/types/logout.ts b/framework/kibocommerce/types/logout.ts new file mode 100644 index 000000000..9f0a466af --- /dev/null +++ b/framework/kibocommerce/types/logout.ts @@ -0,0 +1 @@ +export * from '@commerce/types/logout' diff --git a/framework/kibocommerce/types/page.ts b/framework/kibocommerce/types/page.ts new file mode 100644 index 000000000..b6bf6d2d6 --- /dev/null +++ b/framework/kibocommerce/types/page.ts @@ -0,0 +1,35 @@ +import * as Core from '@commerce/types/page' +export type Maybe = T | null +export type Scalars = { + ID: string + String: string + Boolean: boolean + Int: number + Float: number + /** The `AnyScalar` type allows any scalar value by examining the input and passing the serialize, parseValue, and parseLiteral operations to their respective types. */ + AnyScalar: any + /** DateTime custom scalar type */ + DateTime: any + /** Object custom scalar type */ + Object: any +} + +export * from '@commerce/types/page' + +export type Page = Core.Page + +export type PageTypes = { + page: Page +} + +export type GetPagesQueryParams = { + documentListName: Maybe +} + +export type GetPageQueryParams = { + id: Maybe + documentListName: Maybe +} + +export type GetAllPagesOperation = Core.GetAllPagesOperation +export type GetPageOperation = Core.GetPageOperation diff --git a/framework/kibocommerce/types/signup.ts b/framework/kibocommerce/types/signup.ts new file mode 100644 index 000000000..58543c6f6 --- /dev/null +++ b/framework/kibocommerce/types/signup.ts @@ -0,0 +1 @@ +export * from '@commerce/types/signup' diff --git a/framework/kibocommerce/wishlist/index.ts b/framework/kibocommerce/wishlist/index.ts new file mode 100644 index 000000000..241af3c7e --- /dev/null +++ b/framework/kibocommerce/wishlist/index.ts @@ -0,0 +1,3 @@ +export { default as useAddItem } from './use-add-item' +export { default as useWishlist } from './use-wishlist' +export { default as useRemoveItem } from './use-remove-item' diff --git a/framework/kibocommerce/wishlist/use-add-item.tsx b/framework/kibocommerce/wishlist/use-add-item.tsx new file mode 100644 index 000000000..f87e1189e --- /dev/null +++ b/framework/kibocommerce/wishlist/use-add-item.tsx @@ -0,0 +1,36 @@ +import { useCallback } from 'react' +import type { MutationHook } from '@commerce/utils/types' +import { CommerceError } from '@commerce/utils/errors' +import useAddItem, { UseAddItem } from '@commerce/wishlist/use-add-item' +import type { AddItemHook } from '@commerce/types/wishlist' +import useCustomer from '../customer/use-customer' +import useWishlist from './use-wishlist' + +export default useAddItem as UseAddItem + +export const handler: MutationHook = { + fetchOptions: { + url: '/api/wishlist', + method: 'POST', + }, + useHook: ({ fetch }) => () => { + const { data: customer } = useCustomer() + const { revalidate } = useWishlist() + + return useCallback( + async function addItem(item) { + if (!customer) { + // A signed customer is required in order to have a wishlist + throw new CommerceError({ + message: 'Signed customer not found', + }) + } + // TODO: add validations before doing the fetch + const data = await fetch({ input: { item } }) + await revalidate() + return data + }, + [fetch, revalidate, customer] + ) + }, +} diff --git a/framework/kibocommerce/wishlist/use-remove-item.tsx b/framework/kibocommerce/wishlist/use-remove-item.tsx new file mode 100644 index 000000000..24487b7a5 --- /dev/null +++ b/framework/kibocommerce/wishlist/use-remove-item.tsx @@ -0,0 +1,38 @@ +import { useCallback } from 'react' +import type { MutationHook } from '@commerce/utils/types' +import { CommerceError } from '@commerce/utils/errors' +import useRemoveItem, { + UseRemoveItem, +} from '@commerce/wishlist/use-remove-item' +import type { RemoveItemHook } from '@commerce/types/wishlist' +import useCustomer from '../customer/use-customer' +import useWishlist from './use-wishlist' + +export default useRemoveItem as UseRemoveItem + +export const handler: MutationHook = { + fetchOptions: { + url: '/api/wishlist', + method: 'DELETE', + }, + useHook: ({ fetch }) => ({ wishlist } = {}) => { + const { data: customer } = useCustomer() + const { revalidate } = useWishlist(wishlist) + + return useCallback( + async function removeItem(input) { + if (!customer) { + // A signed customer is required in order to have a wishlist + throw new CommerceError({ + message: 'Signed customer not found', + }) + } + + const data = await fetch({ input: { itemId: String(input.id) } }) + await revalidate() + return data + }, + [fetch, revalidate, customer] + ) + }, +} diff --git a/framework/kibocommerce/wishlist/use-wishlist.tsx b/framework/kibocommerce/wishlist/use-wishlist.tsx new file mode 100644 index 000000000..f29c182ff --- /dev/null +++ b/framework/kibocommerce/wishlist/use-wishlist.tsx @@ -0,0 +1,52 @@ +import { useMemo } from 'react' +import { SWRHook } from '@commerce/utils/types' +import useWishlist, { UseWishlist } from '@commerce/wishlist/use-wishlist' +import type { GetWishlistHook } from '@commerce/types/wishlist' +import useCustomer from '../customer/use-customer' + +export default useWishlist as UseWishlist + +export const handler: SWRHook = { + fetchOptions: { + url: '/api/wishlist', + method: 'GET', + }, + fetcher({ input: { customerId, includeProducts}, options, fetch }) { + if (!customerId) return null + // Use a dummy base as we only care about the relative path + const url = new URL(options.url!, 'http://a') + + if (includeProducts) url.searchParams.set('products', '1') + if(customerId) url.searchParams.set('customerId', customerId) + + return fetch({ + url: url.pathname + url.search, + method: options.method, + }) + }, + useHook: ({ useData }) => (input) => { + const { data: customer } = useCustomer() + const response = useData({ + input: [ + ['customerId', customer?.id], + ['includeProducts', input?.includeProducts], + ], + swrOptions: { + revalidateOnFocus: false, + ...input?.swrOptions, + }, + }) + return useMemo( + () => + Object.create(response, { + isEmpty: { + get() { + return (response.data?.items?.length || 0) <= 0 + }, + enumerable: true, + }, + }), + [response] + ) + }, +} diff --git a/package.json b/package.json index b53d79ece..e319a867b 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "generate": "graphql-codegen", "generate:shopify": "DOTENV_CONFIG_PATH=./.env.local graphql-codegen -r dotenv/config --config framework/shopify/codegen.json", "generate:vendure": "graphql-codegen --config framework/vendure/codegen.json", - "generate:definitions": "node framework/bigcommerce/scripts/generate-definitions.js" + "generate:definitions": "node framework/bigcommerce/scripts/generate-definitions.js", + "generate:kibocommerce": "graphql-codegen --config framework/kibocommerce/codegen.json" }, "sideEffects": false, "license": "MIT",