├── .env.template ├── queries ├── getCartId.graphql ├── setCartId.graphql ├── signOut.graphql ├── getStoreConfigData.graphql ├── getCategoryName.graphql ├── urlResolver.graphql ├── signIn.graphql ├── getCmsBlocks.graphql ├── getAllCountries.graphql ├── getCustomer.graphql ├── createCart.graphql ├── setGuestEmailOnCart.graphql ├── getNavigationMenu.graphql ├── getCmsPage.graphql ├── getProductFiltersBySearch.graphql ├── getProductFiltersByCategory.graphql ├── getBreadcrumbData.graphql ├── removeItem.graphql ├── updateItemInCart.graphql ├── getCategoryList.graphql ├── addSimpleProductsToCart.graphql ├── createAccount.graphql ├── getProductsBySku.graphql ├── productSearch.graphql ├── getCartDetails.graphql ├── setShippingAddress.graphql ├── getProductDetailByName.graphql ├── getProductDetailBySku.graphql ├── getProductDetail.graphql └── getCategory.graphql ├── static ├── icon.png ├── favicon.ico └── README.md ├── .prettierrc ├── assets ├── svg │ ├── menu.svg │ ├── multiply.svg │ ├── chevron_left.svg │ ├── chevron_right.svg │ ├── cart.svg │ └── logo.svg ├── css │ └── tailwind.css └── README.md ├── components ├── base │ ├── BaseLabel.vue │ ├── BaseIcon.vue │ ├── BaseInput.vue │ └── BaseLoader.vue ├── README.md ├── magento │ ├── Category.vue │ ├── CmsPage.vue │ ├── Product.vue │ └── Magento.vue ├── navigation │ ├── Navigation.vue │ └── CategoryTree.vue ├── Gallery.vue ├── ProductDetails.vue ├── Footer.vue ├── Header.vue ├── Index.vue ├── Breadcrumbs.vue ├── CategoryList.vue └── Cart.vue ├── middleware ├── authenticated.js └── README.md ├── pages ├── customer │ └── account │ │ ├── index.vue │ │ └── login.vue └── README.md ├── .editorconfig ├── layouts ├── default.vue └── README.md ├── .babelrc ├── store └── index.js ├── plugins ├── README.md └── apollo-config.js ├── .graphqlconfig ├── jest.config.js ├── README.md ├── .eslintrc.js ├── tailwind.config.js ├── .gitignore ├── package.json ├── nuxt.config.js ├── fragmentTypes.json └── schema.graphql /.env.template: -------------------------------------------------------------------------------- 1 | MAGENTO_BACKEND_URL=https://magento.test/graphql 2 | -------------------------------------------------------------------------------- /queries/getCartId.graphql: -------------------------------------------------------------------------------- 1 | query CartId { 2 | CartId @client 3 | } 4 | -------------------------------------------------------------------------------- /static/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoopoecommerce/nuxtgento/HEAD/static/icon.png -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoopoecommerce/nuxtgento/HEAD/static/favicon.ico -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true, 4 | "proseWrap": "always" 5 | } 6 | -------------------------------------------------------------------------------- /queries/setCartId.graphql: -------------------------------------------------------------------------------- 1 | mutation setCartId($value: String!) { 2 | setCartId(value: $value) @client 3 | } 4 | -------------------------------------------------------------------------------- /queries/signOut.graphql: -------------------------------------------------------------------------------- 1 | mutation signOut { 2 | revokeCustomerToken { 3 | result 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /queries/getStoreConfigData.graphql: -------------------------------------------------------------------------------- 1 | query storeConfigData { 2 | storeConfig { 3 | id 4 | copyright 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /assets/svg/menu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /queries/getCategoryName.graphql: -------------------------------------------------------------------------------- 1 | query getCategoryName($id: Int!) { 2 | category(id: $id) { 3 | id 4 | name 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /queries/urlResolver.graphql: -------------------------------------------------------------------------------- 1 | query resolveUrl($urlKey: String!) { 2 | urlResolver(url: $urlKey) { 3 | type 4 | id 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /components/base/BaseLabel.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /queries/signIn.graphql: -------------------------------------------------------------------------------- 1 | mutation signIn($email: String!, $password: String!) { 2 | generateCustomerToken(email: $email, password: $password) { 3 | token 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /assets/css/tailwind.css: -------------------------------------------------------------------------------- 1 | /* purgecss start ignore */ 2 | @import 'tailwindcss/base'; 3 | @import 'tailwindcss/components'; 4 | /* purgecss end ignore */ 5 | @import 'tailwindcss/utilities'; 6 | -------------------------------------------------------------------------------- /middleware/authenticated.js: -------------------------------------------------------------------------------- 1 | export default function({ app, redirect }) { 2 | const hasToken = !!app.$apolloHelpers.getToken() 3 | if (!hasToken) { 4 | return redirect('/customer/account/login') 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /queries/getCmsBlocks.graphql: -------------------------------------------------------------------------------- 1 | query cmsBlocks($identifiers: [String]!) { 2 | cmsBlocks(identifiers: $identifiers) { 3 | items { 4 | content 5 | identifier 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /queries/getAllCountries.graphql: -------------------------------------------------------------------------------- 1 | query getAllCountries { 2 | countries { 3 | available_regions { 4 | code 5 | id 6 | name 7 | } 8 | id 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /queries/getCustomer.graphql: -------------------------------------------------------------------------------- 1 | # expects bearer header to be set via context to return data 2 | query getCustomer { 3 | customer { 4 | id 5 | email 6 | firstname 7 | lastname 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /assets/svg/multiply.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pages/customer/account/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /queries/createCart.graphql: -------------------------------------------------------------------------------- 1 | # This mutation will return a masked cart id. If a bearer token is provided for 2 | # a logged in user it will return the cart id for that user. 3 | mutation createCart { 4 | cartId: createEmptyCart 5 | } 6 | -------------------------------------------------------------------------------- /components/README.md: -------------------------------------------------------------------------------- 1 | # COMPONENTS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | The components directory contains your Vue.js Components. 6 | 7 | _Nuxt.js doesn't supercharge these components._ 8 | -------------------------------------------------------------------------------- /assets/svg/chevron_left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svg/chevron_right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /layouts/default.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "test": { 4 | "presets": [ 5 | [ 6 | "@babel/preset-env", 7 | { 8 | "targets": { 9 | "node": "current" 10 | } 11 | } 12 | ] 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /queries/setGuestEmailOnCart.graphql: -------------------------------------------------------------------------------- 1 | mutation setGuestEmailOnCart($cartId: String!, $email: String!) { 2 | setGuestEmailOnCart(input: { cart_id: $cartId, email: $email }) 3 | @connection(key: "setGuestEmailOnCart") { 4 | cart { 5 | id 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /layouts/README.md: -------------------------------------------------------------------------------- 1 | # LAYOUTS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your Application Layouts. 6 | 7 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/views#layouts). 8 | -------------------------------------------------------------------------------- /components/magento/Category.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 18 | -------------------------------------------------------------------------------- /pages/README.md: -------------------------------------------------------------------------------- 1 | # PAGES 2 | 3 | This directory contains your Application Views and Routes. 4 | The framework reads all the `*.vue` files inside this directory and creates the router of your application. 5 | 6 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing). 7 | -------------------------------------------------------------------------------- /components/base/BaseIcon.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 16 | -------------------------------------------------------------------------------- /assets/README.md: -------------------------------------------------------------------------------- 1 | # ASSETS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your un-compiled assets such as LESS, SASS, or JavaScript. 6 | 7 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#webpacked). 8 | -------------------------------------------------------------------------------- /store/index.js: -------------------------------------------------------------------------------- 1 | export const state = () => ({ 2 | navigationIsOpen: false, 3 | cartIsOpen: false 4 | }) 5 | 6 | export const mutations = { 7 | toggleNavigation(state) { 8 | state.navigationIsOpen = !state.navigationIsOpen 9 | }, 10 | toggleCart(state) { 11 | state.cartIsOpen = !state.cartIsOpen 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /queries/getNavigationMenu.graphql: -------------------------------------------------------------------------------- 1 | query navigationMenu($id: Int!) { 2 | category(id: $id) { 3 | id 4 | name 5 | children { 6 | children_count 7 | id 8 | include_in_menu 9 | name 10 | position 11 | url_path 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /plugins/README.md: -------------------------------------------------------------------------------- 1 | # PLUGINS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains Javascript plugins that you want to run before mounting the root Vue.js application. 6 | 7 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/plugins). 8 | -------------------------------------------------------------------------------- /queries/getCmsPage.graphql: -------------------------------------------------------------------------------- 1 | query getCmsPage($id: Int!, $onServer: Boolean!) { 2 | cmsPage(id: $id) { 3 | url_key 4 | content 5 | content_heading 6 | title 7 | page_layout 8 | meta_title @include(if: $onServer) 9 | meta_keywords @include(if: $onServer) 10 | meta_description 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /queries/getProductFiltersBySearch.graphql: -------------------------------------------------------------------------------- 1 | query getProductFiltersBySearch($search: String!) { 2 | products(search: $search) { 3 | aggregations { 4 | label 5 | count 6 | attribute_code 7 | options { 8 | label 9 | value 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /.graphqlconfig: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Untitled GraphQL Schema", 3 | "schemaPath": "schema.graphql", 4 | "extensions": { 5 | "endpoints": { 6 | "Default GraphQL Endpoint": { 7 | "url": "http://magento.test/graphql", 8 | "headers": { 9 | "user-agent": "JS GraphQL" 10 | }, 11 | "introspect": false 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /assets/svg/cart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /queries/getProductFiltersByCategory.graphql: -------------------------------------------------------------------------------- 1 | query getProductFiltersByCategory($categoryIdFilter: FilterEqualTypeInput!) { 2 | products(filter: { category_id: $categoryIdFilter }) { 3 | aggregations { 4 | label 5 | count 6 | attribute_code 7 | options { 8 | label 9 | value 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /middleware/README.md: -------------------------------------------------------------------------------- 1 | # MIDDLEWARE 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your application middleware. 6 | Middleware let you define custom functions that can be run before rendering either a page or a group of pages. 7 | 8 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing#middleware). 9 | -------------------------------------------------------------------------------- /components/navigation/Navigation.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 19 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleNameMapper: { 3 | '^@/(.*)$': '/$1', 4 | '^~/(.*)$': '/$1', 5 | '^vue$': 'vue/dist/vue.common.js' 6 | }, 7 | moduleFileExtensions: ['js', 'vue', 'json'], 8 | transform: { 9 | '^.+\\.js$': 'babel-jest', 10 | '.*\\.(vue)$': 'vue-jest' 11 | }, 12 | collectCoverage: true, 13 | collectCoverageFrom: [ 14 | '/components/**/*.vue', 15 | '/pages/**/*.vue' 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /queries/getBreadcrumbData.graphql: -------------------------------------------------------------------------------- 1 | query getBreadcrumbData($category_id: Int!) { 2 | storeConfig { 3 | id 4 | category_url_suffix 5 | } 6 | category(id: $category_id) { 7 | id 8 | breadcrumbs { 9 | # We may not need level if `breadcrumbs` is sorted. 10 | category_level 11 | category_name 12 | category_url_path 13 | } 14 | id 15 | name 16 | url_path 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /queries/removeItem.graphql: -------------------------------------------------------------------------------- 1 | mutation removeItem($cartId: String!, $itemId: Int!) { 2 | removeItemFromCart(input: { cart_id: $cartId, cart_item_id: $itemId }) 3 | @connection(key: "removeItemFromCart") { 4 | cart { 5 | id 6 | items { 7 | id 8 | product { 9 | id 10 | name 11 | } 12 | quantity 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /static/README.md: -------------------------------------------------------------------------------- 1 | # STATIC 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your static files. 6 | Each file inside this directory is mapped to `/`. 7 | Thus you'd want to delete this README.md before deploying to production. 8 | 9 | Example: `/static/robots.txt` is mapped as `/robots.txt`. 10 | 11 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#static). 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NuxtGento 2 | 3 | > Nuxt starter Storefront R&D for Magento 2 4 | 5 | ## Build Setup 6 | 7 | ``` bash 8 | # install dependencies 9 | $ yarn install 10 | 11 | # serve with hot reload at localhost:3000 12 | $ yarn run dev 13 | 14 | # build for production and launch server 15 | $ yarn run build 16 | $ yarn start 17 | 18 | # generate static project 19 | $ yarn run generate 20 | ``` 21 | 22 | For detailed explanation on how things work, checkout [Nuxt.js docs](https://nuxtjs.org). 23 | -------------------------------------------------------------------------------- /components/Gallery.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 27 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | node: true 6 | }, 7 | parserOptions: { 8 | parser: 'babel-eslint' 9 | }, 10 | extends: [ 11 | '@nuxtjs', 12 | 'plugin:nuxt/recommended', 13 | 'plugin:prettier/recommended', 14 | 'prettier', 15 | 'prettier/vue' 16 | ], 17 | plugins: [ 18 | 'prettier' 19 | ], 20 | // add your custom rules here 21 | rules: { 22 | }, 23 | globals: { 24 | BaseLoader: true, 25 | BaseInlineSvg: true, 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /queries/updateItemInCart.graphql: -------------------------------------------------------------------------------- 1 | mutation updateItemInCart($cartId: String!, $itemId: Int!, $quantity: Float!) { 2 | updateCartItems( 3 | input: { 4 | cart_id: $cartId 5 | cart_items: [{ cart_item_id: $itemId, quantity: $quantity }] 6 | } 7 | ) @connection(key: "updateCartItems") { 8 | cart { 9 | id 10 | items { 11 | id 12 | product { 13 | id 14 | name 15 | } 16 | quantity 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /queries/getCategoryList.graphql: -------------------------------------------------------------------------------- 1 | # TODO: get only active categories from graphql when it is ready 2 | query categoryList($id: Int!) { 3 | category(id: $id) { 4 | id 5 | children { 6 | id 7 | name 8 | url_key 9 | url_path 10 | children_count 11 | path 12 | image 13 | productImagePreview: products(pageSize: 1) { 14 | items { 15 | id 16 | small_image { 17 | url 18 | } 19 | } 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /queries/addSimpleProductsToCart.graphql: -------------------------------------------------------------------------------- 1 | mutation addSimpleProductToCart( 2 | $cartId: String! 3 | $quantity: Float! 4 | $sku: String! 5 | ) { 6 | addSimpleProductsToCart( 7 | input: { 8 | cart_id: $cartId 9 | cart_items: [{ data: { quantity: $quantity, sku: $sku } }] 10 | } 11 | ) @connection(key: "addSimpleProductsToCart") { 12 | cart { 13 | id 14 | items { 15 | id 16 | product { 17 | id 18 | name 19 | sku 20 | } 21 | quantity 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /components/ProductDetails.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 30 | -------------------------------------------------------------------------------- /queries/createAccount.graphql: -------------------------------------------------------------------------------- 1 | mutation createAccount( 2 | $email: String! 3 | $firstname: String! 4 | $lastname: String! 5 | $password: String! 6 | $is_subscribed: Boolean! 7 | ) { 8 | createCustomer( 9 | input: { 10 | email: $email 11 | firstname: $firstname 12 | lastname: $lastname 13 | password: $password 14 | is_subscribed: $is_subscribed 15 | } 16 | ) { 17 | # The createCustomer mutation returns a non-nullable CustomerOutput type 18 | # which requires that at least one of the sub fields be returned. 19 | customer { 20 | id 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /* 2 | ** TailwindCSS Configuration File 3 | ** 4 | ** Docs: https://tailwindcss.com/docs/configuration 5 | ** Default: https://github.com/tailwindcss/tailwindcss/blob/master/stubs/defaultConfig.stub.js 6 | */ 7 | module.exports = { 8 | theme: { 9 | fontFamily: { 10 | sans: ['Open Sans'] 11 | }, 12 | colors: { 13 | white: '#fff', 14 | black: '#212121', 15 | orange: '#f60', 16 | red: '#f04124', 17 | green: '#41B883', 18 | gray: { 19 | light: '#F6F6F6', 20 | default: '#E0E0E0', 21 | dark: '#D1D1D1', 22 | darker: '#707070' 23 | } 24 | } 25 | }, 26 | variants: {}, 27 | plugins: [] 28 | } 29 | -------------------------------------------------------------------------------- /components/Footer.vue: -------------------------------------------------------------------------------- 1 | 19 | -------------------------------------------------------------------------------- /components/Header.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 29 | -------------------------------------------------------------------------------- /queries/getProductsBySku.graphql: -------------------------------------------------------------------------------- 1 | query getProductsBySku($skus: [String], $pageSize: Int!) { 2 | products(filter: { sku: { in: $skus } }, pageSize: $pageSize) { 3 | items { 4 | id 5 | name 6 | sku 7 | small_image { 8 | url 9 | } 10 | url_key 11 | price { 12 | regularPrice { 13 | amount { 14 | value 15 | currency 16 | } 17 | } 18 | } 19 | } 20 | total_count 21 | filters { 22 | name 23 | filter_items_count 24 | request_var 25 | filter_items { 26 | label 27 | value_string 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /components/base/BaseInput.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 41 | -------------------------------------------------------------------------------- /components/magento/CmsPage.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 31 | -------------------------------------------------------------------------------- /queries/productSearch.graphql: -------------------------------------------------------------------------------- 1 | query productSearch( 2 | $currentPage: Int = 1 3 | $inputText: String! 4 | $pageSize: Int = 6 5 | $filters: ProductAttributeFilterInput! 6 | $sort: ProductAttributeSortInput 7 | ) { 8 | products( 9 | currentPage: $currentPage 10 | pageSize: $pageSize 11 | search: $inputText 12 | filter: $filters 13 | sort: $sort 14 | ) { 15 | items { 16 | id 17 | name 18 | small_image { 19 | url 20 | } 21 | url_key 22 | price { 23 | regularPrice { 24 | amount { 25 | value 26 | currency 27 | } 28 | } 29 | } 30 | } 31 | page_info { 32 | total_pages 33 | } 34 | total_count 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /components/magento/Product.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 35 | -------------------------------------------------------------------------------- /assets/svg/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/magento/Magento.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 47 | -------------------------------------------------------------------------------- /queries/getCartDetails.graphql: -------------------------------------------------------------------------------- 1 | query getCartDetails($cartId: String!) { 2 | cart(cart_id: $cartId) @connection(key: "Cart") { 3 | id 4 | items { 5 | id 6 | prices { 7 | price { 8 | value 9 | } 10 | } 11 | product { 12 | id 13 | name 14 | sku 15 | small_image { 16 | url 17 | label 18 | } 19 | price { 20 | regularPrice { 21 | amount { 22 | value 23 | } 24 | } 25 | } 26 | } 27 | quantity 28 | ... on ConfigurableCartItem { 29 | configurable_options { 30 | id 31 | option_label 32 | value_id 33 | value_label 34 | } 35 | } 36 | } 37 | prices { 38 | grand_total { 39 | value 40 | currency 41 | } 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /components/Index.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 41 | -------------------------------------------------------------------------------- /queries/setShippingAddress.graphql: -------------------------------------------------------------------------------- 1 | mutation setShippingAddress( 2 | $cartId: String! 3 | $firstname: String! 4 | $lastname: String! 5 | $street: [String]! 6 | $city: String! 7 | $country_id: String! 8 | $region_code: String! 9 | $postcode: String! 10 | $telephone: String! 11 | ) { 12 | setShippingAddressesOnCart( 13 | input: { 14 | cart_id: $cartId 15 | shipping_addresses: [ 16 | { 17 | address: { 18 | firstname: $firstname 19 | lastname: $lastname 20 | street: $street 21 | city: $city 22 | region: $region_code 23 | postcode: $postcode 24 | telephone: $telephone 25 | country_code: $country_id 26 | save_in_address_book: false 27 | } 28 | } 29 | ] 30 | } 31 | ) @connection(key: "setShippingAddressesOnCart") { 32 | cart { 33 | id 34 | shipping_addresses { 35 | available_shipping_methods { 36 | carrier_code 37 | carrier_title 38 | method_code 39 | method_title 40 | } 41 | } 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /plugins/apollo-config.js: -------------------------------------------------------------------------------- 1 | import { createHttpLink } from 'apollo-link-http' 2 | import { 3 | InMemoryCache, 4 | IntrospectionFragmentMatcher 5 | } from 'apollo-cache-inmemory' 6 | import { persistCache } from 'apollo-cache-persist' 7 | import gql from 'graphql-tag' 8 | import introspectionQueryResultData from '../fragmentTypes.json' 9 | 10 | export default () => { 11 | const uri = 'http://localhost:3000/graphql' 12 | const fragmentMatcher = new IntrospectionFragmentMatcher({ 13 | introspectionQueryResultData 14 | }) 15 | const link = createHttpLink({ 16 | uri, 17 | useGETForQueries: true 18 | }) 19 | const cache = new InMemoryCache({ fragmentMatcher }) 20 | 21 | const resolvers = { 22 | Mutation: { 23 | setCartId: (root, { value }, { cache }) => { 24 | const data = { 25 | CartId: value 26 | } 27 | cache.writeData({ data }) 28 | return null 29 | } 30 | } 31 | } 32 | 33 | const typeDefs = gql` 34 | type Query { 35 | CartId: String! 36 | } 37 | ` 38 | 39 | const onCacheInit = cache => { 40 | const data = { 41 | CartId: null 42 | } 43 | cache.writeData({ data }) 44 | } 45 | 46 | if (process.client) { 47 | persistCache({ 48 | cache, 49 | storage: window.localStorage 50 | }) 51 | } 52 | return { 53 | httpEndpoint: uri, 54 | link, 55 | cache, 56 | resolvers, 57 | typeDefs, 58 | onCacheInit, 59 | defaultHttpLink: false 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /components/Breadcrumbs.vue: -------------------------------------------------------------------------------- 1 | 37 | 38 | 52 | -------------------------------------------------------------------------------- /queries/getProductDetailByName.graphql: -------------------------------------------------------------------------------- 1 | query productDetailByName($name: String, $onServer: Boolean!) { 2 | products(filter: { name: { eq: $name } }) { 3 | items { 4 | __typename 5 | id 6 | sku 7 | name 8 | ... on ConfigurableProduct { 9 | configurable_options { 10 | attribute_code 11 | attribute_id 12 | id 13 | label 14 | values { 15 | default_label 16 | label 17 | store_label 18 | use_default_value 19 | value_index 20 | } 21 | } 22 | variants { 23 | attributes { 24 | code 25 | value_index 26 | } 27 | product { 28 | id 29 | media_gallery_entries { 30 | disabled 31 | file 32 | label 33 | position 34 | } 35 | sku 36 | stock_status 37 | } 38 | } 39 | } 40 | meta_title @include(if: $onServer) 41 | meta_keyword @include(if: $onServer) 42 | meta_description @include(if: $onServer) 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Node template 3 | # Logs 4 | logs 5 | *.log 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | 10 | # Runtime data 11 | pids 12 | *.pid 13 | *.seed 14 | *.pid.lock 15 | 16 | # Directory for instrumented libs generated by jscoverage/JSCover 17 | lib-cov 18 | 19 | # Coverage directory used by tools like istanbul 20 | coverage 21 | 22 | # nyc test coverage 23 | .nyc_output 24 | 25 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 26 | .grunt 27 | 28 | # Bower dependency directory (https://bower.io/) 29 | bower_components 30 | 31 | # node-waf configuration 32 | .lock-wscript 33 | 34 | # Compiled binary addons (https://nodejs.org/api/addons.html) 35 | build/Release 36 | 37 | # Dependency directories 38 | node_modules/ 39 | jspm_packages/ 40 | 41 | # TypeScript v1 declaration files 42 | typings/ 43 | 44 | # Optional npm cache directory 45 | .npm 46 | 47 | # Optional eslint cache 48 | .eslintcache 49 | 50 | # Optional REPL history 51 | .node_repl_history 52 | 53 | # Output of 'npm pack' 54 | *.tgz 55 | 56 | # Yarn Integrity file 57 | .yarn-integrity 58 | 59 | # dotenv environment variables file 60 | .env 61 | 62 | # parcel-bundler cache (https://parceljs.org/) 63 | .cache 64 | 65 | # next.js build output 66 | .next 67 | 68 | # nuxt.js build output 69 | .nuxt 70 | 71 | # Nuxt generate 72 | dist 73 | 74 | # vuepress build output 75 | .vuepress/dist 76 | 77 | # Serverless directories 78 | .serverless 79 | 80 | # IDE 81 | .idea 82 | 83 | # Service worker 84 | sw.* 85 | -------------------------------------------------------------------------------- /components/base/BaseLoader.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 75 | -------------------------------------------------------------------------------- /components/CategoryList.vue: -------------------------------------------------------------------------------- 1 | 47 | 48 | 58 | -------------------------------------------------------------------------------- /queries/getProductDetailBySku.graphql: -------------------------------------------------------------------------------- 1 | query productDetailBySku($sku: String) { 2 | products(filter: { sku: { eq: $sku } }) { 3 | items { 4 | __typename 5 | id 6 | name 7 | sku 8 | url_key 9 | ... on ConfigurableProduct { 10 | configurable_options { 11 | attribute_code 12 | attribute_id 13 | id 14 | label 15 | values { 16 | default_label 17 | label 18 | store_label 19 | use_default_value 20 | value_index 21 | swatch_data { 22 | ... on ImageSwatchData { 23 | thumbnail 24 | } 25 | value 26 | } 27 | } 28 | } 29 | variants { 30 | attributes { 31 | code 32 | value_index 33 | } 34 | product { 35 | id 36 | media_gallery_entries { 37 | id 38 | disabled 39 | file 40 | label 41 | position 42 | } 43 | sku 44 | stock_status 45 | } 46 | } 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NuxtGento", 3 | "version": "1.0.0", 4 | "description": "Nuxt Storefront for Magento 2", 5 | "author": "talalus", 6 | "private": true, 7 | "scripts": { 8 | "dev": "nuxt", 9 | "build": "nuxt build", 10 | "start": "nuxt start", 11 | "generate": "nuxt generate", 12 | "lint": "eslint --ext .js,.vue --ignore-path .gitignore .", 13 | "precommit": "npm run lint", 14 | "test": "jest", 15 | "heroku-postbuild": "npm run build" 16 | }, 17 | "dependencies": { 18 | "@nuxtjs/apollo": "^4.0.0-rc16", 19 | "@nuxtjs/axios": "^5.9.5", 20 | "@nuxtjs/proxy": "^1.3.3", 21 | "@nuxtjs/pwa": "^2.6.0", 22 | "apollo-cache-persist": "^0.1.1", 23 | "cross-env": "^7.0.0", 24 | "dotenv": "^8.2.0", 25 | "graphql-tag": "^2.10.3", 26 | "nuxt": "^2.13" 27 | }, 28 | "devDependencies": { 29 | "@bazzite/nuxt-optimized-images": "^0.4.0", 30 | "@nuxtjs/eslint-config": "^2.0.2", 31 | "@nuxtjs/tailwindcss": "^1.4.0", 32 | "@vue/test-utils": "^1.0.0-beta.27", 33 | "babel-core": "7.0.0-bridge.0", 34 | "babel-eslint": "^10.1.0", 35 | "babel-jest": "^25.1.0", 36 | "eslint": "^6.8.0", 37 | "eslint-config-prettier": "^6.10.0", 38 | "eslint-config-standard": ">=14.1.0", 39 | "eslint-loader": "^3.0.3", 40 | "eslint-plugin-import": ">=2.20.1", 41 | "eslint-plugin-jest": ">=23.8.1", 42 | "eslint-plugin-node": ">=11.0.0", 43 | "eslint-plugin-nuxt": ">=0.5.1", 44 | "eslint-plugin-prettier": "^3.1.2", 45 | "eslint-plugin-promise": ">=4.2.1", 46 | "eslint-plugin-standard": ">=4.0.1", 47 | "eslint-plugin-vue": "^6.2.1", 48 | "jest": "^25.1.0", 49 | "nodemon": "^2.0.2", 50 | "prettier": "^1.19.1", 51 | "vue-jest": "^3.0.5" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /components/Cart.vue: -------------------------------------------------------------------------------- 1 | 44 | 45 | 62 | -------------------------------------------------------------------------------- /components/navigation/CategoryTree.vue: -------------------------------------------------------------------------------- 1 | 54 | 55 | 73 | -------------------------------------------------------------------------------- /pages/customer/account/login.vue: -------------------------------------------------------------------------------- 1 | 53 | 54 | 88 | -------------------------------------------------------------------------------- /nuxt.config.js: -------------------------------------------------------------------------------- 1 | import pkg from './package' 2 | require('dotenv').config() 3 | 4 | export default { 5 | mode: 'universal', 6 | 7 | components: true, 8 | 9 | /* 10 | ** Headers of the page 11 | */ 12 | head: { 13 | title: pkg.name, 14 | meta: [ 15 | { charset: 'utf-8' }, 16 | { name: 'viewport', content: 'width=device-width, initial-scale=1' }, 17 | { hid: 'description', name: 'description', content: pkg.description } 18 | ], 19 | link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }], 20 | htmlAttrs: { 21 | class: 'antialiased text-black' 22 | }, 23 | bodyAttrs: { 24 | class: 'min-h-screen' 25 | } 26 | }, 27 | 28 | /* 29 | ** Customize the progress-bar color 30 | */ 31 | loading: { color: '#f60', height: '3px', throttle: 0 }, 32 | 33 | /* 34 | ** Global CSS 35 | */ 36 | css: [], 37 | 38 | /* 39 | ** Plugins to load before mounting the App 40 | */ 41 | plugins: [], 42 | /* 43 | ** Nuxt.js dev-modules 44 | */ 45 | buildModules: [ 46 | // Doc: https://github.com/nuxt-community/nuxt-tailwindcss 47 | '@nuxtjs/tailwindcss' 48 | ], 49 | 50 | router: { 51 | extendRoutes(routes, resolve) { 52 | routes.push({ 53 | name: 'magento', 54 | path: '*', 55 | component: resolve(__dirname, '~/components/magento/Magento.vue') 56 | }) 57 | } 58 | }, 59 | 60 | /* 61 | ** Nuxt.js modules 62 | */ 63 | modules: [ 64 | // Doc: https://axios.nuxtjs.org/usage 65 | '@nuxtjs/axios', 66 | '@nuxtjs/pwa', 67 | '@nuxtjs/apollo', 68 | '@nuxtjs/proxy', 69 | '@bazzite/nuxt-optimized-images' 70 | ], 71 | /* 72 | ** Axios module configuration 73 | */ 74 | axios: { 75 | // See https://github.com/nuxt-community/axios-module#options 76 | }, 77 | 78 | optimizedImages: { 79 | optimizeImages: true 80 | }, 81 | 82 | apollo: { 83 | tokenName: 'signin_token', 84 | clientConfigs: { 85 | default: '~/plugins/apollo-config.js' 86 | } 87 | }, 88 | 89 | proxy: [ 90 | `${process.env.MAGENTO_BACKEND_URL}graphql`, 91 | `${process.env.MAGENTO_BACKEND_URL}media` 92 | ], 93 | /* 94 | ** Build configuration 95 | */ 96 | build: { 97 | /* 98 | ** You can extend webpack config here 99 | */ 100 | extend(config, ctx) { 101 | // Run ESLint on save 102 | if (ctx.isDev && ctx.isClient) { 103 | config.module.rules.push({ 104 | enforce: 'pre', 105 | test: /\.(js|vue)$/, 106 | loader: 'eslint-loader', 107 | exclude: /(node_modules)/ 108 | }) 109 | } 110 | } 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /queries/getProductDetail.graphql: -------------------------------------------------------------------------------- 1 | query productDetail($urlKey: String, $onServer: Boolean!) { 2 | productDetail: products(filter: { url_key: { eq: $urlKey } }) { 3 | items { 4 | # Once graphql-ce/1027 is resolved, use a ProductDetails fragment 5 | # here instead. Until then, changes to this query (within "items") 6 | # must be mirrored in productDetails.graphql. 7 | __typename 8 | categories { 9 | id 10 | breadcrumbs { 11 | category_id 12 | } 13 | } 14 | description { 15 | html 16 | } 17 | id 18 | media_gallery_entries { 19 | id 20 | label 21 | position 22 | disabled 23 | file 24 | } 25 | meta_title @include(if: $onServer) 26 | meta_keyword @include(if: $onServer) 27 | meta_description 28 | name 29 | price { 30 | regularPrice { 31 | amount { 32 | currency 33 | value 34 | } 35 | } 36 | } 37 | sku 38 | small_image { 39 | url 40 | } 41 | url_key 42 | ... on ConfigurableProduct { 43 | configurable_options { 44 | attribute_code 45 | attribute_id 46 | id 47 | label 48 | values { 49 | default_label 50 | label 51 | store_label 52 | use_default_value 53 | value_index 54 | swatch_data { 55 | ... on ImageSwatchData { 56 | thumbnail 57 | } 58 | value 59 | } 60 | } 61 | } 62 | variants { 63 | attributes { 64 | code 65 | value_index 66 | } 67 | product { 68 | id 69 | media_gallery_entries { 70 | id 71 | disabled 72 | file 73 | label 74 | position 75 | } 76 | sku 77 | stock_status 78 | price { 79 | regularPrice { 80 | amount { 81 | currency 82 | value 83 | } 84 | } 85 | } 86 | } 87 | } 88 | } 89 | } 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /queries/getCategory.graphql: -------------------------------------------------------------------------------- 1 | query category( 2 | $id: Int! 3 | $pageSize: Int! 4 | $currentPage: Int! 5 | $onServer: Boolean! 6 | $filters: ProductAttributeFilterInput! 7 | $sort: ProductAttributeSortInput 8 | ) { 9 | category(id: $id) { 10 | id 11 | description 12 | name 13 | product_count 14 | meta_title @include(if: $onServer) 15 | meta_keywords @include(if: $onServer) 16 | meta_description 17 | } 18 | products( 19 | pageSize: $pageSize 20 | currentPage: $currentPage 21 | filter: $filters 22 | sort: $sort 23 | ) { 24 | items { 25 | # Once graphql-ce/1027 is resolved, use a ProductDetails fragment here instead. 26 | __typename 27 | description { 28 | html 29 | } 30 | id 31 | media_gallery_entries { 32 | id 33 | label 34 | position 35 | disabled 36 | file 37 | } 38 | meta_title @include(if: $onServer) 39 | meta_keyword @include(if: $onServer) 40 | meta_description 41 | name 42 | price { 43 | regularPrice { 44 | amount { 45 | currency 46 | value 47 | } 48 | } 49 | } 50 | sku 51 | small_image { 52 | url 53 | } 54 | url_key 55 | ... on ConfigurableProduct { 56 | configurable_options { 57 | attribute_code 58 | attribute_id 59 | id 60 | label 61 | values { 62 | default_label 63 | label 64 | store_label 65 | use_default_value 66 | value_index 67 | swatch_data { 68 | ... on ImageSwatchData { 69 | thumbnail 70 | } 71 | value 72 | } 73 | } 74 | } 75 | variants { 76 | attributes { 77 | code 78 | value_index 79 | } 80 | product { 81 | id 82 | media_gallery_entries { 83 | id 84 | disabled 85 | file 86 | label 87 | position 88 | } 89 | sku 90 | stock_status 91 | } 92 | } 93 | } 94 | } 95 | page_info { 96 | total_pages 97 | } 98 | total_count 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /fragmentTypes.json: -------------------------------------------------------------------------------- 1 | { 2 | "__schema": { 3 | "types": [ 4 | { 5 | "kind": "INTERFACE", 6 | "name": "CartAddressInterface", 7 | "possibleTypes": [ 8 | { 9 | "name": "BillingCartAddress" 10 | }, 11 | { 12 | "name": "ShippingCartAddress" 13 | } 14 | ] 15 | }, 16 | { 17 | "kind": "INTERFACE", 18 | "name": "CartItemInterface", 19 | "possibleTypes": [ 20 | { 21 | "name": "ConfigurableCartItem" 22 | }, 23 | { 24 | "name": "SimpleCartItem" 25 | }, 26 | { 27 | "name": "VirtualCartItem" 28 | } 29 | ] 30 | }, 31 | { 32 | "kind": "INTERFACE", 33 | "name": "ProductInterface", 34 | "possibleTypes": [ 35 | { 36 | "name": "BundleProduct" 37 | }, 38 | { 39 | "name": "ConfigurableProduct" 40 | }, 41 | { 42 | "name": "SimpleProduct" 43 | }, 44 | { 45 | "name": "DownloadableProduct" 46 | }, 47 | { 48 | "name": "GroupedProduct" 49 | }, 50 | { 51 | "name": "VirtualProduct" 52 | } 53 | ] 54 | }, 55 | { 56 | "kind": "INTERFACE", 57 | "name": "CategoryInterface", 58 | "possibleTypes": [ 59 | { 60 | "name": "CategoryTree" 61 | } 62 | ] 63 | }, 64 | { 65 | "kind": "INTERFACE", 66 | "name": "MediaGalleryInterface", 67 | "possibleTypes": [ 68 | { 69 | "name": "ProductImage" 70 | }, 71 | { 72 | "name": "ProductVideo" 73 | } 74 | ] 75 | }, 76 | { 77 | "kind": "INTERFACE", 78 | "name": "ProductLinksInterface", 79 | "possibleTypes": [ 80 | { 81 | "name": "ProductLinks" 82 | } 83 | ] 84 | }, 85 | { 86 | "kind": "INTERFACE", 87 | "name": "LayerFilterItemInterface", 88 | "possibleTypes": [ 89 | { 90 | "name": "LayerFilterItem" 91 | }, 92 | { 93 | "name": "SwatchLayerFilterItem" 94 | } 95 | ] 96 | }, 97 | { 98 | "kind": "INTERFACE", 99 | "name": "CustomizableOptionInterface", 100 | "possibleTypes": [ 101 | { 102 | "name": "CustomizableAreaOption" 103 | }, 104 | { 105 | "name": "CustomizableCheckboxOption" 106 | }, 107 | { 108 | "name": "CustomizableDateOption" 109 | }, 110 | { 111 | "name": "CustomizableDropDownOption" 112 | }, 113 | { 114 | "name": "CustomizableFieldOption" 115 | }, 116 | { 117 | "name": "CustomizableFileOption" 118 | }, 119 | { 120 | "name": "CustomizableMultipleOption" 121 | }, 122 | { 123 | "name": "CustomizableRadioOption" 124 | } 125 | ] 126 | }, 127 | { 128 | "kind": "INTERFACE", 129 | "name": "CustomizableProductInterface", 130 | "possibleTypes": [ 131 | { 132 | "name": "BundleProduct" 133 | }, 134 | { 135 | "name": "ConfigurableProduct" 136 | }, 137 | { 138 | "name": "SimpleProduct" 139 | }, 140 | { 141 | "name": "DownloadableProduct" 142 | }, 143 | { 144 | "name": "VirtualProduct" 145 | } 146 | ] 147 | }, 148 | { 149 | "kind": "INTERFACE", 150 | "name": "PhysicalProductInterface", 151 | "possibleTypes": [ 152 | { 153 | "name": "BundleProduct" 154 | }, 155 | { 156 | "name": "ConfigurableProduct" 157 | }, 158 | { 159 | "name": "SimpleProduct" 160 | }, 161 | { 162 | "name": "GroupedProduct" 163 | } 164 | ] 165 | }, 166 | { 167 | "kind": "INTERFACE", 168 | "name": "SwatchLayerFilterItemInterface", 169 | "possibleTypes": [ 170 | { 171 | "name": "SwatchLayerFilterItem" 172 | } 173 | ] 174 | } 175 | ] 176 | } 177 | } 178 | -------------------------------------------------------------------------------- /schema.graphql: -------------------------------------------------------------------------------- 1 | # This file was generated based on ".graphqlconfig". Do not edit manually. 2 | 3 | schema { 4 | query: Query 5 | mutation: Mutation 6 | } 7 | 8 | interface CartAddressInterface { 9 | city: String 10 | company: String 11 | country: CartAddressCountry 12 | customer_notes: String 13 | firstname: String 14 | lastname: String 15 | postcode: String 16 | region: CartAddressRegion 17 | street: [String] 18 | telephone: String 19 | } 20 | 21 | interface CartItemInterface { 22 | id: String! 23 | product: ProductInterface! 24 | quantity: Float! 25 | } 26 | 27 | "CategoryInterface contains the full set of attributes that can be returned in a category search." 28 | interface CategoryInterface { 29 | available_sort_by: [String] 30 | "Breadcrumbs, parent categories info." 31 | breadcrumbs: [Breadcrumb] 32 | children_count: String 33 | "Timestamp indicating when the category was created." 34 | created_at: String 35 | "The attribute to use for sorting." 36 | default_sort_by: String 37 | "An optional description of the category." 38 | description: String 39 | display_mode: String 40 | filter_price_range: Float 41 | "An ID that uniquely identifies the category." 42 | id: Int 43 | image: String 44 | include_in_menu: Int 45 | is_anchor: Int 46 | landing_page: Int 47 | "Indicates the depth of the category within the tree." 48 | level: Int 49 | meta_description: String 50 | meta_keywords: String 51 | meta_title: String 52 | "The display name of the category." 53 | name: String 54 | "Category Path." 55 | path: String 56 | "Category path in store." 57 | path_in_store: String 58 | "The position of the category relative to other categories at the same level in tree." 59 | position: Int 60 | "The number of products in the category." 61 | product_count: Int 62 | "The list of products assigned to the category." 63 | products( 64 | #Specifies which page of results to return. The default value is 1. 65 | currentPage: Int = 1, 66 | #Specifies the maximum number of results to return at once. This attribute is optional. 67 | pageSize: Int = 20, 68 | #Specifies which attribute to sort on, and whether to return the results in ascending or descending order. 69 | sort: ProductSortInput 70 | ): CategoryProducts 71 | "Timestamp indicating when the category was updated." 72 | updated_at: String 73 | "The url key assigned to the category." 74 | url_key: String 75 | "The url path assigned to the category." 76 | url_path: String 77 | } 78 | 79 | "The CustomizableOptionInterface contains basic information about a customizable option. It can be implemented by several types of configurable options." 80 | interface CustomizableOptionInterface { 81 | "Option ID." 82 | option_id: Int 83 | "Indicates whether the option is required." 84 | required: Boolean 85 | "The order in which the option is displayed." 86 | sort_order: Int 87 | "The display name for this option." 88 | title: String 89 | } 90 | 91 | "CustomizableProductInterface contains information about customizable product options." 92 | interface CustomizableProductInterface { 93 | "An array of options for a customizable product." 94 | options: [CustomizableOptionInterface] 95 | } 96 | 97 | interface LayerFilterItemInterface { 98 | "Count of items by filter." 99 | items_count: Int 100 | "Filter label." 101 | label: String 102 | "Value for filter request variable to be used in query." 103 | value_string: String 104 | } 105 | 106 | "Contains basic information about a product image or video." 107 | interface MediaGalleryInterface { 108 | "The label of the product image or video." 109 | label: String 110 | "The URL of the product image or video." 111 | url: String 112 | } 113 | 114 | "PhysicalProductInterface contains attributes specific to tangible products." 115 | interface PhysicalProductInterface { 116 | "The weight of the item, in units defined by the store." 117 | weight: Float 118 | } 119 | 120 | "The ProductInterface contains attributes that are common to all types of products. Note that descriptions may not be available for custom and EAV attributes." 121 | interface ProductInterface { 122 | "The attribute set assigned to the product." 123 | attribute_set_id: Int 124 | "Canonical URL." 125 | canonical_url: String 126 | "The categories assigned to a product." 127 | categories: [CategoryInterface] 128 | color: Int 129 | "The product's country of origin." 130 | country_of_manufacture: String 131 | "Timestamp indicating when the product was created." 132 | created_at: String 133 | "Crosssell Products" 134 | crosssell_products: [ProductInterface] 135 | "Detailed information about the product. The value can include simple HTML tags." 136 | description: ComplexTextValue 137 | fashion_color: Int 138 | fashion_material: String 139 | fashion_size: Int 140 | fashion_style: String 141 | "Indicates whether a gift message is available." 142 | gift_message_available: String 143 | has_video: Int 144 | "The ID number assigned to the product." 145 | id: Int 146 | "The relative path to the main image on the product page." 147 | image: ProductImage 148 | "A number representing the product's manufacturer." 149 | manufacturer: Int 150 | "An array of Media Gallery objects." 151 | media_gallery: [MediaGalleryInterface] 152 | "An array of MediaGalleryEntry objects." 153 | media_gallery_entries: [MediaGalleryEntry] 154 | "A brief overview of the product for search results listings, maximum 255 characters." 155 | meta_description: String 156 | "A comma-separated list of keywords that are visible only to search engines." 157 | meta_keyword: String 158 | "A string that is displayed in the title bar and tab of the browser and in search results lists." 159 | meta_title: String 160 | "The product name. Customers use this name to identify the product." 161 | name: String 162 | "The beginning date for new product listings, and determines if the product is featured as a new product." 163 | new_from_date: String 164 | "The end date for new product listings." 165 | new_to_date: String 166 | "Product stock only x left count" 167 | only_x_left_in_stock: Float 168 | "If the product has multiple options, determines where they appear on the product page." 169 | options_container: String 170 | "A ProductPrices object, indicating the price of an item." 171 | price: ProductPrices 172 | "An array of ProductLinks objects." 173 | product_links: [ProductLinksInterface] 174 | "Related Products" 175 | related_products: [ProductInterface] 176 | "A short description of the product. Its use depends on the theme." 177 | short_description: ComplexTextValue 178 | "A number or code assigned to a product to identify the product, options, price, and manufacturer." 179 | sku: String 180 | "The relative path to the small image, which is used on catalog pages." 181 | small_image: ProductImage 182 | "The beginning date that a product has a special price." 183 | special_from_date: String 184 | "The discounted price of the product." 185 | special_price: Float 186 | "The end date that a product has a special price." 187 | special_to_date: String 188 | "Stock status of the product" 189 | stock_status: ProductStockStatus 190 | "The file name of a swatch image" 191 | swatch_image: String 192 | "The relative path to the product's thumbnail image." 193 | thumbnail: ProductImage 194 | "The price when tier pricing is in effect and the items purchased threshold has been reached." 195 | tier_price: Float 196 | "An array of ProductTierPrices objects." 197 | tier_prices: [ProductTierPrices] 198 | "One of simple, virtual, bundle, downloadable, grouped, or configurable." 199 | type_id: String 200 | "Timestamp indicating when the product was updated." 201 | updated_at: String 202 | "Upsell Products" 203 | upsell_products: [ProductInterface] 204 | "The part of the URL that identifies the product" 205 | url_key: String 206 | url_path: String 207 | "URL rewrites list" 208 | url_rewrites: [UrlRewrite] 209 | video_file: String 210 | "An array of websites in which the product is available." 211 | websites: [Website] 212 | } 213 | 214 | "ProductLinks contains information about linked products, including the link type and product type of each item." 215 | interface ProductLinksInterface { 216 | "One of related, associated, upsell, or crosssell." 217 | link_type: String 218 | "The SKU of the linked product." 219 | linked_product_sku: String 220 | "The type of linked product (simple, virtual, bundle, downloadable, grouped, configurable)." 221 | linked_product_type: String 222 | "The position within the list of product links." 223 | position: Int 224 | "The identifier of the linked product." 225 | sku: String 226 | } 227 | 228 | interface SwatchLayerFilterItemInterface { 229 | "Data required to render swatch filter item" 230 | swatch_data: SwatchData 231 | } 232 | 233 | type AddConfigurableProductsToCartOutput { 234 | cart: Cart! 235 | } 236 | 237 | type AddSimpleProductsToCartOutput { 238 | cart: Cart! 239 | } 240 | 241 | type AddVirtualProductsToCartOutput { 242 | cart: Cart! 243 | } 244 | 245 | type AppliedCoupon { 246 | code: String! 247 | } 248 | 249 | type ApplyCouponToCartOutput { 250 | cart: Cart! 251 | } 252 | 253 | "Attribute contains the attribute_type of the specified attribute_code and entity_type" 254 | type Attribute { 255 | "The unique identifier for an attribute code. This value should be in lowercase letters without spaces." 256 | attribute_code: String 257 | "Attribute options list." 258 | attribute_options: [AttributeOption] 259 | "The data type of the attribute" 260 | attribute_type: String 261 | "The type of entity that defines the attribute" 262 | entity_type: String 263 | } 264 | 265 | "Attribute option." 266 | type AttributeOption { 267 | "Attribute option label." 268 | label: String 269 | "Attribute option value." 270 | value: String 271 | } 272 | 273 | type AvailablePaymentMethod { 274 | "The payment method code" 275 | code: String! 276 | "The payment method title." 277 | title: String! 278 | } 279 | 280 | type AvailableShippingMethod { 281 | amount: Money! 282 | available: Boolean! 283 | "Could be null if method is not available" 284 | base_amount: Money 285 | carrier_code: String! 286 | carrier_title: String! 287 | error_message: String 288 | "Could be null if method is not available" 289 | method_code: String 290 | "Could be null if method is not available" 291 | method_title: String 292 | price_excl_tax: Money! 293 | price_incl_tax: Money! 294 | } 295 | 296 | type BillingCartAddress implements CartAddressInterface { 297 | city: String 298 | company: String 299 | country: CartAddressCountry 300 | customer_notes: String 301 | firstname: String 302 | lastname: String 303 | postcode: String 304 | region: CartAddressRegion 305 | street: [String] 306 | telephone: String 307 | } 308 | 309 | "Breadcrumb item." 310 | type Breadcrumb { 311 | "Category ID." 312 | category_id: Int 313 | "Category level." 314 | category_level: Int 315 | "Category name." 316 | category_name: String 317 | "Category URL key." 318 | category_url_key: String 319 | } 320 | 321 | "BundleItem defines an individual item in a bundle product." 322 | type BundleItem { 323 | "An ID assigned to each type of item in a bundle product." 324 | option_id: Int 325 | "An array of additional options for this bundle item." 326 | options: [BundleItemOption] 327 | "he relative position of this item compared to the other bundle items." 328 | position: Int 329 | "Indicates whether the item must be included in the bundle." 330 | required: Boolean 331 | "The SKU of the bundle product." 332 | sku: String 333 | "The display name of the item." 334 | title: String 335 | "The input type that the customer uses to select the item. Examples include radio button and checkbox." 336 | type: String 337 | } 338 | 339 | "BundleItemOption defines characteristics and options for a specific bundle item." 340 | type BundleItemOption { 341 | "Indicates whether the customer can change the number of items for this option." 342 | can_change_quantity: Boolean 343 | "The ID assigned to the bundled item option." 344 | id: Int 345 | "Indicates whether this option is the default option." 346 | is_default: Boolean 347 | "The text that identifies the bundled item option." 348 | label: String 349 | "When a bundle item contains multiple options, the relative position of this option compared to the other options." 350 | position: Int 351 | "The price of the selected option." 352 | price: Float 353 | "One of FIXED, PERCENT, or DYNAMIC." 354 | price_type: PriceTypeEnum 355 | "Contains details about this product option." 356 | product: ProductInterface 357 | "Indicates the quantity of this specific bundle item." 358 | qty: Float 359 | "Indicates the quantity of this specific bundle item." 360 | quantity: Float 361 | } 362 | 363 | "BundleProduct defines basic features of a bundle product and contains multiple BundleItems." 364 | type BundleProduct implements CustomizableProductInterface & PhysicalProductInterface & ProductInterface { 365 | "The attribute set assigned to the product." 366 | attribute_set_id: Int 367 | "Canonical URL." 368 | canonical_url: String 369 | "The categories assigned to a product." 370 | categories: [CategoryInterface] 371 | color: Int 372 | "The product's country of origin." 373 | country_of_manufacture: String 374 | "Timestamp indicating when the product was created." 375 | created_at: String 376 | "Crosssell Products" 377 | crosssell_products: [ProductInterface] 378 | "Detailed information about the product. The value can include simple HTML tags." 379 | description: ComplexTextValue 380 | "Indicates whether the bundle product has a dynamic price." 381 | dynamic_price: Boolean 382 | "Indicates whether the bundle product has a dynamic SK." 383 | dynamic_sku: Boolean 384 | "Indicates whether the bundle product has a dynamically calculated weight." 385 | dynamic_weight: Boolean 386 | fashion_color: Int 387 | fashion_material: String 388 | fashion_size: Int 389 | fashion_style: String 390 | "Indicates whether a gift message is available." 391 | gift_message_available: String 392 | has_video: Int 393 | "The ID number assigned to the product." 394 | id: Int 395 | "The relative path to the main image on the product page." 396 | image: ProductImage 397 | "An array containing information about individual bundle items." 398 | items: [BundleItem] 399 | "A number representing the product's manufacturer." 400 | manufacturer: Int 401 | "An array of Media Gallery objects." 402 | media_gallery: [MediaGalleryInterface] 403 | "An array of MediaGalleryEntry objects." 404 | media_gallery_entries: [MediaGalleryEntry] 405 | "A brief overview of the product for search results listings, maximum 255 characters." 406 | meta_description: String 407 | "A comma-separated list of keywords that are visible only to search engines." 408 | meta_keyword: String 409 | "A string that is displayed in the title bar and tab of the browser and in search results lists." 410 | meta_title: String 411 | "The product name. Customers use this name to identify the product." 412 | name: String 413 | "The beginning date for new product listings, and determines if the product is featured as a new product." 414 | new_from_date: String 415 | "The end date for new product listings." 416 | new_to_date: String 417 | "Product stock only x left count" 418 | only_x_left_in_stock: Float 419 | "An array of options for a customizable product." 420 | options: [CustomizableOptionInterface] 421 | "If the product has multiple options, determines where they appear on the product page." 422 | options_container: String 423 | "A ProductPrices object, indicating the price of an item." 424 | price: ProductPrices 425 | "One of PRICE_RANGE or AS_LOW_AS." 426 | price_view: PriceViewEnum 427 | "An array of ProductLinks objects." 428 | product_links: [ProductLinksInterface] 429 | "Related Products" 430 | related_products: [ProductInterface] 431 | "Indicates whether to ship bundle items together or individually." 432 | ship_bundle_items: ShipBundleItemsEnum 433 | "A short description of the product. Its use depends on the theme." 434 | short_description: ComplexTextValue 435 | "A number or code assigned to a product to identify the product, options, price, and manufacturer." 436 | sku: String 437 | "The relative path to the small image, which is used on catalog pages." 438 | small_image: ProductImage 439 | "The beginning date that a product has a special price." 440 | special_from_date: String 441 | "The discounted price of the product." 442 | special_price: Float 443 | "The end date that a product has a special price." 444 | special_to_date: String 445 | "Stock status of the product" 446 | stock_status: ProductStockStatus 447 | "The file name of a swatch image" 448 | swatch_image: String 449 | "The relative path to the product's thumbnail image." 450 | thumbnail: ProductImage 451 | "The price when tier pricing is in effect and the items purchased threshold has been reached." 452 | tier_price: Float 453 | "An array of ProductTierPrices objects." 454 | tier_prices: [ProductTierPrices] 455 | "One of simple, virtual, bundle, downloadable, grouped, or configurable." 456 | type_id: String 457 | "Timestamp indicating when the product was updated." 458 | updated_at: String 459 | "Upsell Products" 460 | upsell_products: [ProductInterface] 461 | "The part of the URL that identifies the product" 462 | url_key: String 463 | url_path: String 464 | "URL rewrites list" 465 | url_rewrites: [UrlRewrite] 466 | video_file: String 467 | "An array of websites in which the product is available." 468 | websites: [Website] 469 | "The weight of the item, in units defined by the store." 470 | weight: Float 471 | } 472 | 473 | type Cart { 474 | applied_coupon: AppliedCoupon 475 | "Available payment methods" 476 | available_payment_methods: [AvailablePaymentMethod] 477 | billing_address: BillingCartAddress! 478 | email: String 479 | items: [CartItemInterface] 480 | prices: CartPrices 481 | selected_payment_method: SelectedPaymentMethod 482 | shipping_addresses: [ShippingCartAddress]! 483 | } 484 | 485 | type CartAddressCountry { 486 | code: String 487 | label: String 488 | } 489 | 490 | type CartAddressRegion { 491 | code: String 492 | label: String 493 | } 494 | 495 | type CartDiscount { 496 | amount: Money! 497 | label: [String]! 498 | } 499 | 500 | type CartItemQuantity { 501 | cart_item_id: Int! 502 | quantity: Float! 503 | } 504 | 505 | type CartItemSelectedOptionValuePrice { 506 | type: PriceTypeEnum! 507 | units: String! 508 | value: Float! 509 | } 510 | 511 | type CartPrices { 512 | applied_taxes: [CartTaxItem] 513 | discount: CartDiscount 514 | grand_total: Money 515 | subtotal_excluding_tax: Money 516 | subtotal_including_tax: Money 517 | subtotal_with_discount_excluding_tax: Money 518 | } 519 | 520 | type CartTaxItem { 521 | amount: Money! 522 | label: String! 523 | } 524 | 525 | "The category products object returned in the Category query." 526 | type CategoryProducts { 527 | "An array of products that are assigned to the category." 528 | items: [ProductInterface] 529 | "An object that includes the page_info and currentPage values specified in the query." 530 | page_info: SearchResultPageInfo 531 | "The number of products returned." 532 | total_count: Int 533 | } 534 | 535 | "Category Tree implementation." 536 | type CategoryTree implements CategoryInterface { 537 | available_sort_by: [String] 538 | "Breadcrumbs, parent categories info." 539 | breadcrumbs: [Breadcrumb] 540 | "Child categories tree." 541 | children: [CategoryTree] 542 | children_count: String 543 | "Timestamp indicating when the category was created." 544 | created_at: String 545 | "The attribute to use for sorting." 546 | default_sort_by: String 547 | "An optional description of the category." 548 | description: String 549 | display_mode: String 550 | filter_price_range: Float 551 | "An ID that uniquely identifies the category." 552 | id: Int 553 | image: String 554 | include_in_menu: Int 555 | is_anchor: Int 556 | landing_page: Int 557 | "Indicates the depth of the category within the tree." 558 | level: Int 559 | meta_description: String 560 | meta_keywords: String 561 | meta_title: String 562 | "The display name of the category." 563 | name: String 564 | "Category Path." 565 | path: String 566 | "Category path in store." 567 | path_in_store: String 568 | "The position of the category relative to other categories at the same level in tree." 569 | position: Int 570 | "The number of products in the category." 571 | product_count: Int 572 | "The list of products assigned to the category." 573 | products( 574 | #Specifies which page of results to return. The default value is 1. 575 | currentPage: Int = 1, 576 | #Specifies the maximum number of results to return at once. This attribute is optional. 577 | pageSize: Int = 20, 578 | #Specifies which attribute to sort on, and whether to return the results in ascending or descending order. 579 | sort: ProductSortInput 580 | ): CategoryProducts 581 | "Timestamp indicating when the category was updated." 582 | updated_at: String 583 | "The url key assigned to the category." 584 | url_key: String 585 | "The url path assigned to the category." 586 | url_path: String 587 | } 588 | 589 | "Defines all Checkout Agreement information" 590 | type CheckoutAgreement { 591 | "Checkout Agreement identifier" 592 | agreement_id: Int! 593 | "Checkout Agreement checkbox text" 594 | checkbox_text: String! 595 | "Checkout Agreement content" 596 | content: String! 597 | "Checkout Agreement content height" 598 | content_height: String 599 | "Is Checkout Agreement content in HTML format" 600 | is_html: Boolean! 601 | mode: CheckoutAgreementMode! 602 | "Checkout Agreement name" 603 | name: String! 604 | } 605 | 606 | "CMS block defines all CMS block information" 607 | type CmsBlock { 608 | "CMS block content" 609 | content: String 610 | "CMS block identifier" 611 | identifier: String 612 | "CMS block title" 613 | title: String 614 | } 615 | 616 | "CMS blocks information" 617 | type CmsBlocks { 618 | "An array of CMS blocks" 619 | items: [CmsBlock] 620 | } 621 | 622 | "CMS page defines all CMS page information" 623 | type CmsPage { 624 | "CMS page content" 625 | content: String 626 | "CMS page content heading" 627 | content_heading: String 628 | "Identifier of the CMS page" 629 | identifier: String 630 | "CMS page meta description" 631 | meta_description: String 632 | "CMS page meta keywords" 633 | meta_keywords: String 634 | "CMS page meta title" 635 | meta_title: String 636 | "CMS page content heading" 637 | page_layout: String 638 | "CMS page title" 639 | title: String 640 | "URL key of CMS page" 641 | url_key: String 642 | } 643 | 644 | type ComplexTextValue { 645 | "HTML format" 646 | html: String! 647 | } 648 | 649 | "ConfigurableAttributeOption contains the value_index (and other related information) assigned to a configurable product option" 650 | type ConfigurableAttributeOption { 651 | "The ID assigned to the attribute" 652 | code: String 653 | "A string that describes the configurable attribute option" 654 | label: String 655 | "A unique index number assigned to the configurable product option" 656 | value_index: Int 657 | } 658 | 659 | type ConfigurableCartItem implements CartItemInterface { 660 | configurable_options: [SelectedConfigurableOption]! 661 | customizable_options: [SelectedCustomizableOption]! 662 | id: String! 663 | product: ProductInterface! 664 | quantity: Float! 665 | } 666 | 667 | "ConfigurableProduct defines basic features of a configurable product and its simple product variants" 668 | type ConfigurableProduct implements CustomizableProductInterface & PhysicalProductInterface & ProductInterface { 669 | "The attribute set assigned to the product." 670 | attribute_set_id: Int 671 | "Canonical URL." 672 | canonical_url: String 673 | "The categories assigned to a product." 674 | categories: [CategoryInterface] 675 | color: Int 676 | "An array of linked simple product items" 677 | configurable_options: [ConfigurableProductOptions] 678 | "The product's country of origin." 679 | country_of_manufacture: String 680 | "Timestamp indicating when the product was created." 681 | created_at: String 682 | "Crosssell Products" 683 | crosssell_products: [ProductInterface] 684 | "Detailed information about the product. The value can include simple HTML tags." 685 | description: ComplexTextValue 686 | fashion_color: Int 687 | fashion_material: String 688 | fashion_size: Int 689 | fashion_style: String 690 | "Indicates whether a gift message is available." 691 | gift_message_available: String 692 | has_video: Int 693 | "The ID number assigned to the product." 694 | id: Int 695 | "The relative path to the main image on the product page." 696 | image: ProductImage 697 | "A number representing the product's manufacturer." 698 | manufacturer: Int 699 | "An array of Media Gallery objects." 700 | media_gallery: [MediaGalleryInterface] 701 | "An array of MediaGalleryEntry objects." 702 | media_gallery_entries: [MediaGalleryEntry] 703 | "A brief overview of the product for search results listings, maximum 255 characters." 704 | meta_description: String 705 | "A comma-separated list of keywords that are visible only to search engines." 706 | meta_keyword: String 707 | "A string that is displayed in the title bar and tab of the browser and in search results lists." 708 | meta_title: String 709 | "The product name. Customers use this name to identify the product." 710 | name: String 711 | "The beginning date for new product listings, and determines if the product is featured as a new product." 712 | new_from_date: String 713 | "The end date for new product listings." 714 | new_to_date: String 715 | "Product stock only x left count" 716 | only_x_left_in_stock: Float 717 | "An array of options for a customizable product." 718 | options: [CustomizableOptionInterface] 719 | "If the product has multiple options, determines where they appear on the product page." 720 | options_container: String 721 | "A ProductPrices object, indicating the price of an item." 722 | price: ProductPrices 723 | "An array of ProductLinks objects." 724 | product_links: [ProductLinksInterface] 725 | "Related Products" 726 | related_products: [ProductInterface] 727 | "A short description of the product. Its use depends on the theme." 728 | short_description: ComplexTextValue 729 | "A number or code assigned to a product to identify the product, options, price, and manufacturer." 730 | sku: String 731 | "The relative path to the small image, which is used on catalog pages." 732 | small_image: ProductImage 733 | "The beginning date that a product has a special price." 734 | special_from_date: String 735 | "The discounted price of the product." 736 | special_price: Float 737 | "The end date that a product has a special price." 738 | special_to_date: String 739 | "Stock status of the product" 740 | stock_status: ProductStockStatus 741 | "The file name of a swatch image" 742 | swatch_image: String 743 | "The relative path to the product's thumbnail image." 744 | thumbnail: ProductImage 745 | "The price when tier pricing is in effect and the items purchased threshold has been reached." 746 | tier_price: Float 747 | "An array of ProductTierPrices objects." 748 | tier_prices: [ProductTierPrices] 749 | "One of simple, virtual, bundle, downloadable, grouped, or configurable." 750 | type_id: String 751 | "Timestamp indicating when the product was updated." 752 | updated_at: String 753 | "Upsell Products" 754 | upsell_products: [ProductInterface] 755 | "The part of the URL that identifies the product" 756 | url_key: String 757 | url_path: String 758 | "URL rewrites list" 759 | url_rewrites: [UrlRewrite] 760 | "An array of variants of products" 761 | variants: [ConfigurableVariant] 762 | video_file: String 763 | "An array of websites in which the product is available." 764 | websites: [Website] 765 | "The weight of the item, in units defined by the store." 766 | weight: Float 767 | } 768 | 769 | "ConfigurableProductOptions defines configurable attributes for the specified product" 770 | type ConfigurableProductOptions { 771 | "A string that identifies the attribute" 772 | attribute_code: String 773 | "The ID assigned to the attribute" 774 | attribute_id: String 775 | "The configurable option ID number assigned by the system" 776 | id: Int 777 | "A string that describes the configurable product option, which is displayed on the UI" 778 | label: String 779 | "A number that indicates the order in which the attribute is displayed" 780 | position: Int 781 | "This is the same as a product's id field" 782 | product_id: Int 783 | "Indicates whether the option is the default" 784 | use_default: Boolean 785 | "An array that defines the value_index codes assigned to the configurable product" 786 | values: [ConfigurableProductOptionsValues] 787 | } 788 | 789 | "ConfigurableProductOptionsValues contains the index number assigned to a configurable product option" 790 | type ConfigurableProductOptionsValues { 791 | "The label of the product on the default store" 792 | default_label: String 793 | "The label of the product" 794 | label: String 795 | "The label of the product on the current store" 796 | store_label: String 797 | "Indicates whether to use the default_label" 798 | use_default_value: Boolean 799 | "A unique index number assigned to the configurable product option" 800 | value_index: Int 801 | } 802 | 803 | "An array containing all the simple product variants of a configurable product" 804 | type ConfigurableVariant { 805 | attributes: [ConfigurableAttributeOption] 806 | product: SimpleProduct 807 | } 808 | 809 | type Country { 810 | available_regions: [Region] 811 | full_name_english: String 812 | full_name_locale: String 813 | id: String 814 | three_letter_abbreviation: String 815 | two_letter_abbreviation: String 816 | } 817 | 818 | type Currency { 819 | available_currency_codes: [String] 820 | base_currency_code: String 821 | base_currency_symbol: String 822 | default_display_currecy_code: String 823 | default_display_currecy_symbol: String 824 | default_display_currency_code: String 825 | default_display_currency_symbol: String 826 | exchange_rates: [ExchangeRate] 827 | } 828 | 829 | "CustomAttributeMetadata defines an array of attribute_codes and entity_types" 830 | type CustomAttributeMetadata { 831 | "An array of attributes" 832 | items: [Attribute] 833 | } 834 | 835 | "Customer defines the customer name and address and other details" 836 | type Customer { 837 | "An array containing the customer's shipping and billing addresses" 838 | addresses: [CustomerAddress] 839 | "Timestamp indicating when the account was created" 840 | created_at: String 841 | "The ID assigned to the billing address" 842 | default_billing: String 843 | "The ID assigned to the shipping address" 844 | default_shipping: String 845 | "The customer's date of birth" 846 | dob: String 847 | "The customer's email address. Required" 848 | email: String 849 | "The customer's first name" 850 | firstname: String 851 | "The customer's gender(Male - 1, Female - 2)" 852 | gender: Int 853 | "The group assigned to the user. Default values are 0 (Not logged in), 1 (General), 2 (Wholesale), and 3 (Retailer)" 854 | group_id: Int 855 | "The ID assigned to the customer" 856 | id: Int 857 | "Indicates whether the customer is subscribed to the company's newsletter" 858 | is_subscribed: Boolean 859 | "The customer's family name" 860 | lastname: String 861 | "The customer's middle name" 862 | middlename: String 863 | "An honorific, such as Dr., Mr., or Mrs." 864 | prefix: String 865 | "A value such as Sr., Jr., or III" 866 | suffix: String 867 | "The customer's Tax/VAT number (for corporate customers)" 868 | taxvat: String 869 | } 870 | 871 | "CustomerAddress contains detailed information about a customer's billing and shipping addresses" 872 | type CustomerAddress { 873 | "The city or town" 874 | city: String 875 | "The customer's company" 876 | company: String 877 | "The customer's country" 878 | country_id: String 879 | "Address custom attributes" 880 | custom_attributes: [CustomerAddressAttribute] 881 | "The customer ID" 882 | customer_id: Int 883 | "Indicates whether the address is the default billing address" 884 | default_billing: Boolean 885 | "Indicates whether the address is the default shipping address" 886 | default_shipping: Boolean 887 | "Address extension attributes" 888 | extension_attributes: [CustomerAddressAttribute] 889 | "The fax number" 890 | fax: String 891 | "The first name of the person associated with the shipping/billing address" 892 | firstname: String 893 | "The ID assigned to the address object" 894 | id: Int 895 | "The family name of the person associated with the shipping/billing address" 896 | lastname: String 897 | "The middle name of the person associated with the shipping/billing address" 898 | middlename: String 899 | "The customer's ZIP or postal code" 900 | postcode: String 901 | "An honorific, such as Dr., Mr., or Mrs." 902 | prefix: String 903 | "An object containing the region name, region code, and region ID" 904 | region: CustomerAddressRegion 905 | "A number that uniquely identifies the state, province, or other area" 906 | region_id: Int 907 | "An array of strings that define the street number and name" 908 | street: [String] 909 | "A value such as Sr., Jr., or III" 910 | suffix: String 911 | "The telephone number" 912 | telephone: String 913 | "The customer's Tax/VAT number (for corporate customers)" 914 | vat_id: String 915 | } 916 | 917 | type CustomerAddressAttribute { 918 | "Attribute code" 919 | attribute_code: String 920 | "Attribute value" 921 | value: String 922 | } 923 | 924 | "CustomerAddressRegion defines the customer's state or province" 925 | type CustomerAddressRegion { 926 | "The state or province name" 927 | region: String 928 | "The address region code" 929 | region_code: String 930 | "Uniquely identifies the region" 931 | region_id: Int 932 | } 933 | 934 | type CustomerDownloadableProduct { 935 | date: String 936 | download_url: String 937 | order_increment_id: String 938 | remaining_downloads: String 939 | status: String 940 | } 941 | 942 | type CustomerDownloadableProducts { 943 | "List of purchased downloadable items" 944 | items: [CustomerDownloadableProduct] 945 | } 946 | 947 | "Order mapping fields" 948 | type CustomerOrder { 949 | created_at: String 950 | grand_total: Float 951 | id: Int 952 | increment_id: String 953 | status: String 954 | } 955 | 956 | type CustomerOrders { 957 | "Array of orders" 958 | items: [CustomerOrder] 959 | } 960 | 961 | type CustomerOutput { 962 | customer: Customer! 963 | } 964 | 965 | type CustomerPaymentTokens { 966 | "An array of payment tokens" 967 | items: [PaymentToken]! 968 | } 969 | 970 | type CustomerToken { 971 | "The customer token" 972 | token: String 973 | } 974 | 975 | "CustomizableAreaOption contains information about a text area that is defined as part of a customizable option." 976 | type CustomizableAreaOption implements CustomizableOptionInterface { 977 | "Option ID." 978 | option_id: Int 979 | "The Stock Keeping Unit of the base product." 980 | product_sku: String 981 | "Indicates whether the option is required." 982 | required: Boolean 983 | "The order in which the option is displayed." 984 | sort_order: Int 985 | "The display name for this option." 986 | title: String 987 | "An object that defines a text area." 988 | value: CustomizableAreaValue 989 | } 990 | 991 | "CustomizableAreaValue defines the price and sku of a product whose page contains a customized text area." 992 | type CustomizableAreaValue { 993 | "The maximum number of characters that can be entered for this customizable option." 994 | max_characters: Int 995 | "The price assigned to this option." 996 | price: Float 997 | "FIXED, PERCENT, or DYNAMIC." 998 | price_type: PriceTypeEnum 999 | "The Stock Keeping Unit for this option." 1000 | sku: String 1001 | } 1002 | 1003 | "CustomizableCheckbbixOption contains information about a set of checkbox values that are defined as part of a customizable option." 1004 | type CustomizableCheckboxOption implements CustomizableOptionInterface { 1005 | "Option ID." 1006 | option_id: Int 1007 | "Indicates whether the option is required." 1008 | required: Boolean 1009 | "The order in which the option is displayed." 1010 | sort_order: Int 1011 | "The display name for this option." 1012 | title: String 1013 | "An array that defines a set of checkbox values." 1014 | value: [CustomizableCheckboxValue] 1015 | } 1016 | 1017 | "CustomizableCheckboxValue defines the price and sku of a product whose page contains a customized set of checkbox values." 1018 | type CustomizableCheckboxValue { 1019 | "The ID assigned to the value." 1020 | option_type_id: Int 1021 | "The price assigned to this option." 1022 | price: Float 1023 | "FIXED, PERCENT, or DYNAMIC." 1024 | price_type: PriceTypeEnum 1025 | "The Stock Keeping Unit for this option." 1026 | sku: String 1027 | "The order in which the checkbox value is displayed." 1028 | sort_order: Int 1029 | "The display name for this option." 1030 | title: String 1031 | } 1032 | 1033 | "CustomizableDateOption contains information about a date picker that is defined as part of a customizable option." 1034 | type CustomizableDateOption implements CustomizableOptionInterface { 1035 | "Option ID." 1036 | option_id: Int 1037 | "The Stock Keeping Unit of the base product." 1038 | product_sku: String 1039 | "Indicates whether the option is required." 1040 | required: Boolean 1041 | "The order in which the option is displayed." 1042 | sort_order: Int 1043 | "The display name for this option." 1044 | title: String 1045 | "An object that defines a date field in a customizable option." 1046 | value: CustomizableDateValue 1047 | } 1048 | 1049 | "CustomizableDateValue defines the price and sku of a product whose page contains a customized date picker." 1050 | type CustomizableDateValue { 1051 | "The price assigned to this option." 1052 | price: Float 1053 | "FIXED, PERCENT, or DYNAMIC." 1054 | price_type: PriceTypeEnum 1055 | "The Stock Keeping Unit for this option." 1056 | sku: String 1057 | } 1058 | 1059 | "CustomizableDropDownOption contains information about a drop down menu that is defined as part of a customizable option." 1060 | type CustomizableDropDownOption implements CustomizableOptionInterface { 1061 | "Option ID." 1062 | option_id: Int 1063 | "Indicates whether the option is required." 1064 | required: Boolean 1065 | "The order in which the option is displayed." 1066 | sort_order: Int 1067 | "The display name for this option." 1068 | title: String 1069 | "An array that defines the set of options for a drop down menu." 1070 | value: [CustomizableDropDownValue] 1071 | } 1072 | 1073 | "CustomizableDropDownValue defines the price and sku of a product whose page contains a customized drop down menu." 1074 | type CustomizableDropDownValue { 1075 | "The ID assigned to the value." 1076 | option_type_id: Int 1077 | "The price assigned to this option." 1078 | price: Float 1079 | "FIXED, PERCENT, or DYNAMIC." 1080 | price_type: PriceTypeEnum 1081 | "The Stock Keeping Unit for this option." 1082 | sku: String 1083 | "The order in which the option is displayed." 1084 | sort_order: Int 1085 | "The display name for this option." 1086 | title: String 1087 | } 1088 | 1089 | "CustomizableFieldOption contains information about a text field that is defined as part of a customizable option." 1090 | type CustomizableFieldOption implements CustomizableOptionInterface { 1091 | "Option ID." 1092 | option_id: Int 1093 | "The Stock Keeping Unit of the base product." 1094 | product_sku: String 1095 | "Indicates whether the option is required." 1096 | required: Boolean 1097 | "The order in which the option is displayed." 1098 | sort_order: Int 1099 | "The display name for this option." 1100 | title: String 1101 | "An object that defines a text field." 1102 | value: CustomizableFieldValue 1103 | } 1104 | 1105 | "CustomizableFieldValue defines the price and sku of a product whose page contains a customized text field." 1106 | type CustomizableFieldValue { 1107 | "The maximum number of characters that can be entered for this customizable option." 1108 | max_characters: Int 1109 | "The price of the custom value." 1110 | price: Float 1111 | "FIXED, PERCENT, or DYNAMIC." 1112 | price_type: PriceTypeEnum 1113 | "The Stock Keeping Unit for this option." 1114 | sku: String 1115 | } 1116 | 1117 | "CustomizableFileOption contains information about a file picker that is defined as part of a customizable option." 1118 | type CustomizableFileOption implements CustomizableOptionInterface { 1119 | "Option ID." 1120 | option_id: Int 1121 | "The Stock Keeping Unit of the base product." 1122 | product_sku: String 1123 | "Indicates whether the option is required." 1124 | required: Boolean 1125 | "The order in which the option is displayed." 1126 | sort_order: Int 1127 | "The display name for this option." 1128 | title: String 1129 | "An object that defines a file value." 1130 | value: CustomizableFileValue 1131 | } 1132 | 1133 | "CustomizableFileValue defines the price and sku of a product whose page contains a customized file picker." 1134 | type CustomizableFileValue { 1135 | "The file extension to accept." 1136 | file_extension: String 1137 | "The maximum width of an image." 1138 | image_size_x: Int 1139 | "The maximum height of an image." 1140 | image_size_y: Int 1141 | "The price assigned to this option." 1142 | price: Float 1143 | "FIXED, PERCENT, or DYNAMIC." 1144 | price_type: PriceTypeEnum 1145 | "The Stock Keeping Unit for this option." 1146 | sku: String 1147 | } 1148 | 1149 | "CustomizableMultipleOption contains information about a multiselect that is defined as part of a customizable option." 1150 | type CustomizableMultipleOption implements CustomizableOptionInterface { 1151 | "Option ID." 1152 | option_id: Int 1153 | "Indicates whether the option is required." 1154 | required: Boolean 1155 | "The order in which the option is displayed." 1156 | sort_order: Int 1157 | "The display name for this option." 1158 | title: String 1159 | "An array that defines the set of options for a multiselect." 1160 | value: [CustomizableMultipleValue] 1161 | } 1162 | 1163 | "CustomizableMultipleValue defines the price and sku of a product whose page contains a customized multiselect." 1164 | type CustomizableMultipleValue { 1165 | "The ID assigned to the value." 1166 | option_type_id: Int 1167 | "The price assigned to this option." 1168 | price: Float 1169 | "FIXED, PERCENT, or DYNAMIC." 1170 | price_type: PriceTypeEnum 1171 | "The Stock Keeping Unit for this option." 1172 | sku: String 1173 | "The order in which the option is displayed." 1174 | sort_order: Int 1175 | "The display name for this option." 1176 | title: String 1177 | } 1178 | 1179 | "CustomizableRadioOption contains information about a set of radio buttons that are defined as part of a customizable option." 1180 | type CustomizableRadioOption implements CustomizableOptionInterface { 1181 | "Option ID." 1182 | option_id: Int 1183 | "Indicates whether the option is required." 1184 | required: Boolean 1185 | "The order in which the option is displayed." 1186 | sort_order: Int 1187 | "The display name for this option." 1188 | title: String 1189 | "An array that defines a set of radio buttons." 1190 | value: [CustomizableRadioValue] 1191 | } 1192 | 1193 | "CustomizableRadioValue defines the price and sku of a product whose page contains a customized set of radio buttons." 1194 | type CustomizableRadioValue { 1195 | "The ID assigned to the value." 1196 | option_type_id: Int 1197 | "The price assigned to this option." 1198 | price: Float 1199 | "FIXED, PERCENT, or DYNAMIC." 1200 | price_type: PriceTypeEnum 1201 | "The Stock Keeping Unit for this option." 1202 | sku: String 1203 | "The order in which the radio button is displayed." 1204 | sort_order: Int 1205 | "The display name for this option." 1206 | title: String 1207 | } 1208 | 1209 | type DeletePaymentTokenOutput { 1210 | customerPaymentTokens: CustomerPaymentTokens 1211 | result: Boolean! 1212 | } 1213 | 1214 | "DownloadableProduct defines a product that the customer downloads" 1215 | type DownloadableProduct implements CustomizableProductInterface & ProductInterface { 1216 | "The attribute set assigned to the product." 1217 | attribute_set_id: Int 1218 | "Canonical URL." 1219 | canonical_url: String 1220 | "The categories assigned to a product." 1221 | categories: [CategoryInterface] 1222 | color: Int 1223 | "The product's country of origin." 1224 | country_of_manufacture: String 1225 | "Timestamp indicating when the product was created." 1226 | created_at: String 1227 | "Crosssell Products" 1228 | crosssell_products: [ProductInterface] 1229 | "Detailed information about the product. The value can include simple HTML tags." 1230 | description: ComplexTextValue 1231 | "An array containing information about the links for this downloadable product" 1232 | downloadable_product_links: [DownloadableProductLinks] 1233 | "An array containing information about samples of this downloadable product." 1234 | downloadable_product_samples: [DownloadableProductSamples] 1235 | fashion_color: Int 1236 | fashion_material: String 1237 | fashion_size: Int 1238 | fashion_style: String 1239 | "Indicates whether a gift message is available." 1240 | gift_message_available: String 1241 | has_video: Int 1242 | "The ID number assigned to the product." 1243 | id: Int 1244 | "The relative path to the main image on the product page." 1245 | image: ProductImage 1246 | "A value of 1 indicates that each link in the array must be purchased separately" 1247 | links_purchased_separately: Int 1248 | "The heading above the list of downloadable products" 1249 | links_title: String 1250 | "A number representing the product's manufacturer." 1251 | manufacturer: Int 1252 | "An array of Media Gallery objects." 1253 | media_gallery: [MediaGalleryInterface] 1254 | "An array of MediaGalleryEntry objects." 1255 | media_gallery_entries: [MediaGalleryEntry] 1256 | "A brief overview of the product for search results listings, maximum 255 characters." 1257 | meta_description: String 1258 | "A comma-separated list of keywords that are visible only to search engines." 1259 | meta_keyword: String 1260 | "A string that is displayed in the title bar and tab of the browser and in search results lists." 1261 | meta_title: String 1262 | "The product name. Customers use this name to identify the product." 1263 | name: String 1264 | "The beginning date for new product listings, and determines if the product is featured as a new product." 1265 | new_from_date: String 1266 | "The end date for new product listings." 1267 | new_to_date: String 1268 | "Product stock only x left count" 1269 | only_x_left_in_stock: Float 1270 | "An array of options for a customizable product." 1271 | options: [CustomizableOptionInterface] 1272 | "If the product has multiple options, determines where they appear on the product page." 1273 | options_container: String 1274 | "A ProductPrices object, indicating the price of an item." 1275 | price: ProductPrices 1276 | "An array of ProductLinks objects." 1277 | product_links: [ProductLinksInterface] 1278 | "Related Products" 1279 | related_products: [ProductInterface] 1280 | "A short description of the product. Its use depends on the theme." 1281 | short_description: ComplexTextValue 1282 | "A number or code assigned to a product to identify the product, options, price, and manufacturer." 1283 | sku: String 1284 | "The relative path to the small image, which is used on catalog pages." 1285 | small_image: ProductImage 1286 | "The beginning date that a product has a special price." 1287 | special_from_date: String 1288 | "The discounted price of the product." 1289 | special_price: Float 1290 | "The end date that a product has a special price." 1291 | special_to_date: String 1292 | "Stock status of the product" 1293 | stock_status: ProductStockStatus 1294 | "The file name of a swatch image" 1295 | swatch_image: String 1296 | "The relative path to the product's thumbnail image." 1297 | thumbnail: ProductImage 1298 | "The price when tier pricing is in effect and the items purchased threshold has been reached." 1299 | tier_price: Float 1300 | "An array of ProductTierPrices objects." 1301 | tier_prices: [ProductTierPrices] 1302 | "One of simple, virtual, bundle, downloadable, grouped, or configurable." 1303 | type_id: String 1304 | "Timestamp indicating when the product was updated." 1305 | updated_at: String 1306 | "Upsell Products" 1307 | upsell_products: [ProductInterface] 1308 | "The part of the URL that identifies the product" 1309 | url_key: String 1310 | url_path: String 1311 | "URL rewrites list" 1312 | url_rewrites: [UrlRewrite] 1313 | video_file: String 1314 | "An array of websites in which the product is available." 1315 | websites: [Website] 1316 | } 1317 | 1318 | "DownloadableProductLinks defines characteristics of a downloadable product" 1319 | type DownloadableProductLinks { 1320 | id: Int 1321 | is_shareable: Boolean 1322 | link_type: DownloadableFileTypeEnum 1323 | number_of_downloads: Int 1324 | "The price of the downloadable product" 1325 | price: Float 1326 | sample_file: String 1327 | sample_type: DownloadableFileTypeEnum 1328 | "URL to the downloadable sample" 1329 | sample_url: String 1330 | "A number indicating the sort order" 1331 | sort_order: Int 1332 | "The display name of the link" 1333 | title: String 1334 | } 1335 | 1336 | "DownloadableProductSamples defines characteristics of a downloadable product" 1337 | type DownloadableProductSamples { 1338 | id: Int 1339 | sample_file: String 1340 | sample_type: DownloadableFileTypeEnum 1341 | "URL to the downloadable sample" 1342 | sample_url: String 1343 | "A number indicating the sort order" 1344 | sort_order: Int 1345 | "The display name of the sample" 1346 | title: String 1347 | } 1348 | 1349 | "EntityUrl is an output object containing the `id`, `relative_url`, and `type` attributes" 1350 | type EntityUrl { 1351 | canonical_url: String 1352 | "The ID assigned to the object associated with the specified url. This could be a product ID, category ID, or page ID." 1353 | id: Int 1354 | "The internal relative URL. If the specified url is a redirect, the query returns the redirected URL, not the original." 1355 | relative_url: String 1356 | "One of PRODUCT, CATEGORY, or CMS_PAGE." 1357 | type: UrlRewriteEntityTypeEnum 1358 | } 1359 | 1360 | type ExchangeRate { 1361 | currency_to: String 1362 | rate: Float 1363 | } 1364 | 1365 | "GroupedProduct defines a grouped product" 1366 | type GroupedProduct implements PhysicalProductInterface & ProductInterface { 1367 | "The attribute set assigned to the product." 1368 | attribute_set_id: Int 1369 | "Canonical URL." 1370 | canonical_url: String 1371 | "The categories assigned to a product." 1372 | categories: [CategoryInterface] 1373 | color: Int 1374 | "The product's country of origin." 1375 | country_of_manufacture: String 1376 | "Timestamp indicating when the product was created." 1377 | created_at: String 1378 | "Crosssell Products" 1379 | crosssell_products: [ProductInterface] 1380 | "Detailed information about the product. The value can include simple HTML tags." 1381 | description: ComplexTextValue 1382 | fashion_color: Int 1383 | fashion_material: String 1384 | fashion_size: Int 1385 | fashion_style: String 1386 | "Indicates whether a gift message is available." 1387 | gift_message_available: String 1388 | has_video: Int 1389 | "The ID number assigned to the product." 1390 | id: Int 1391 | "The relative path to the main image on the product page." 1392 | image: ProductImage 1393 | "An array containing grouped product items" 1394 | items: [GroupedProductItem] 1395 | "A number representing the product's manufacturer." 1396 | manufacturer: Int 1397 | "An array of Media Gallery objects." 1398 | media_gallery: [MediaGalleryInterface] 1399 | "An array of MediaGalleryEntry objects." 1400 | media_gallery_entries: [MediaGalleryEntry] 1401 | "A brief overview of the product for search results listings, maximum 255 characters." 1402 | meta_description: String 1403 | "A comma-separated list of keywords that are visible only to search engines." 1404 | meta_keyword: String 1405 | "A string that is displayed in the title bar and tab of the browser and in search results lists." 1406 | meta_title: String 1407 | "The product name. Customers use this name to identify the product." 1408 | name: String 1409 | "The beginning date for new product listings, and determines if the product is featured as a new product." 1410 | new_from_date: String 1411 | "The end date for new product listings." 1412 | new_to_date: String 1413 | "Product stock only x left count" 1414 | only_x_left_in_stock: Float 1415 | "If the product has multiple options, determines where they appear on the product page." 1416 | options_container: String 1417 | "A ProductPrices object, indicating the price of an item." 1418 | price: ProductPrices 1419 | "An array of ProductLinks objects." 1420 | product_links: [ProductLinksInterface] 1421 | "Related Products" 1422 | related_products: [ProductInterface] 1423 | "A short description of the product. Its use depends on the theme." 1424 | short_description: ComplexTextValue 1425 | "A number or code assigned to a product to identify the product, options, price, and manufacturer." 1426 | sku: String 1427 | "The relative path to the small image, which is used on catalog pages." 1428 | small_image: ProductImage 1429 | "The beginning date that a product has a special price." 1430 | special_from_date: String 1431 | "The discounted price of the product." 1432 | special_price: Float 1433 | "The end date that a product has a special price." 1434 | special_to_date: String 1435 | "Stock status of the product" 1436 | stock_status: ProductStockStatus 1437 | "The file name of a swatch image" 1438 | swatch_image: String 1439 | "The relative path to the product's thumbnail image." 1440 | thumbnail: ProductImage 1441 | "The price when tier pricing is in effect and the items purchased threshold has been reached." 1442 | tier_price: Float 1443 | "An array of ProductTierPrices objects." 1444 | tier_prices: [ProductTierPrices] 1445 | "One of simple, virtual, bundle, downloadable, grouped, or configurable." 1446 | type_id: String 1447 | "Timestamp indicating when the product was updated." 1448 | updated_at: String 1449 | "Upsell Products" 1450 | upsell_products: [ProductInterface] 1451 | "The part of the URL that identifies the product" 1452 | url_key: String 1453 | url_path: String 1454 | "URL rewrites list" 1455 | url_rewrites: [UrlRewrite] 1456 | video_file: String 1457 | "An array of websites in which the product is available." 1458 | websites: [Website] 1459 | "The weight of the item, in units defined by the store." 1460 | weight: Float 1461 | } 1462 | 1463 | "GroupedProductItem contains information about an individual grouped product item" 1464 | type GroupedProductItem { 1465 | "The relative position of this item compared to the other group items" 1466 | position: Int 1467 | "The ProductInterface object, which contains details about this product option" 1468 | product: ProductInterface 1469 | "The quantity of this grouped product item" 1470 | qty: Float 1471 | } 1472 | 1473 | type HostedProUrl { 1474 | "Secure Url generated by PayPal" 1475 | secure_form_url: String 1476 | } 1477 | 1478 | "The object details of target path parameters" 1479 | type HttpQueryParameter { 1480 | "Parameter name" 1481 | name: String 1482 | "Parameter value" 1483 | value: String 1484 | } 1485 | 1486 | type IsEmailAvailableOutput { 1487 | "Is email availabel value" 1488 | is_email_available: Boolean 1489 | } 1490 | 1491 | type LayerFilter { 1492 | "Array of filter items." 1493 | filter_items: [LayerFilterItemInterface] 1494 | "Count of filter items in filter group." 1495 | filter_items_count: Int 1496 | "Layered navigation filter name." 1497 | name: String 1498 | "Request variable name for filter query." 1499 | request_var: String 1500 | } 1501 | 1502 | type LayerFilterItem implements LayerFilterItemInterface { 1503 | "Count of items by filter." 1504 | items_count: Int 1505 | "Filter label." 1506 | label: String 1507 | "Value for filter request variable to be used in query." 1508 | value_string: String 1509 | } 1510 | 1511 | "MediaGalleryEntry defines characteristics about images and videos associated with a specific product." 1512 | type MediaGalleryEntry { 1513 | "Contains a ProductMediaGalleryEntriesContent object." 1514 | content: ProductMediaGalleryEntriesContent 1515 | "Whether the image is hidden from vie." 1516 | disabled: Boolean 1517 | "The path of the image on the server." 1518 | file: String 1519 | "The identifier assigned to the object." 1520 | id: Int 1521 | "The alt text displayed on the UI when the user points to the image." 1522 | label: String 1523 | "image or video." 1524 | media_type: String 1525 | "The media item's position after it has been sorted." 1526 | position: Int 1527 | "Array of image types. It can have the following values: image, small_image, thumbnail." 1528 | types: [String] 1529 | "Contains a ProductMediaGalleryEntriesVideoContent object." 1530 | video_content: ProductMediaGalleryEntriesVideoContent 1531 | } 1532 | 1533 | "A Money object defines a monetary value, including a numeric value and a currency code." 1534 | type Money { 1535 | "A three-letter currency code, such as USD or EUR" 1536 | currency: CurrencyEnum 1537 | "A number expressing a monetary value" 1538 | value: Float 1539 | } 1540 | 1541 | type Mutation { 1542 | addConfigurableProductsToCart(input: AddConfigurableProductsToCartInput): AddConfigurableProductsToCartOutput 1543 | addSimpleProductsToCart(input: AddSimpleProductsToCartInput): AddSimpleProductsToCartOutput 1544 | addVirtualProductsToCart(input: AddVirtualProductsToCartInput): AddVirtualProductsToCartOutput 1545 | applyCouponToCart(input: ApplyCouponToCartInput): ApplyCouponToCartOutput 1546 | "Changes the password for the logged-in customer" 1547 | changeCustomerPassword(currentPassword: String!, newPassword: String!): Customer 1548 | "Creates Braintree Client Token for creating client-side nonce." 1549 | createBraintreeClientToken: String! 1550 | "Create customer account" 1551 | createCustomer(input: CustomerInput!): CustomerOutput 1552 | "Create customer address" 1553 | createCustomerAddress(input: CustomerAddressInput!): CustomerAddress 1554 | "Creates an empty shopping cart for a guest or logged in user" 1555 | createEmptyCart(input: createEmptyCartInput): String 1556 | "Initiates a transaction and receives a token. Use this mutation for Payflow Pro and Payments Pro payment methods" 1557 | createPayflowProToken(input: PayflowProTokenInput!): PayflowProToken 1558 | "Initiates an Express Checkout transaction and receives a token. Use this mutation for Express Checkout and Payments Standard payment methods." 1559 | createPaypalExpressToken(input: PaypalExpressTokenInput!): PaypalExpressToken 1560 | "Delete customer address" 1561 | deleteCustomerAddress(id: Int!): Boolean 1562 | "Delete a customer payment token" 1563 | deletePaymentToken(public_hash: String!): DeletePaymentTokenOutput 1564 | "Retrieve the customer token" 1565 | generateCustomerToken(email: String!, password: String!): CustomerToken 1566 | "Handles payment response and saves payment in Quote. Use this mutations for Payflow Pro and Payments Pro payment methods." 1567 | handlePayflowProResponse(input: PayflowProResponseInput!): PayflowProResponseOutput 1568 | placeOrder(input: PlaceOrderInput): PlaceOrderOutput 1569 | removeCouponFromCart(input: RemoveCouponFromCartInput): RemoveCouponFromCartOutput 1570 | removeItemFromCart(input: RemoveItemFromCartInput): RemoveItemFromCartOutput 1571 | "Revoke the customer token" 1572 | revokeCustomerToken: RevokeCustomerTokenOutput 1573 | "Recommends Product by Sending Single/Multiple Email" 1574 | sendEmailToFriend(input: SendEmailToFriendInput): SendEmailToFriendOutput 1575 | setBillingAddressOnCart(input: SetBillingAddressOnCartInput): SetBillingAddressOnCartOutput 1576 | setGuestEmailOnCart(input: SetGuestEmailOnCartInput): SetGuestEmailOnCartOutput 1577 | setPaymentMethodAndPlaceOrder(input: SetPaymentMethodAndPlaceOrderInput): PlaceOrderOutput 1578 | setPaymentMethodOnCart(input: SetPaymentMethodOnCartInput): SetPaymentMethodOnCartOutput 1579 | setShippingAddressesOnCart(input: SetShippingAddressesOnCartInput): SetShippingAddressesOnCartOutput 1580 | setShippingMethodsOnCart(input: SetShippingMethodsOnCartInput): SetShippingMethodsOnCartOutput 1581 | updateCartItems(input: UpdateCartItemsInput): UpdateCartItemsOutput 1582 | "Update the customer's personal information" 1583 | updateCustomer(input: CustomerInput!): CustomerOutput 1584 | "Update customer address" 1585 | updateCustomerAddress(id: Int!, input: CustomerAddressInput): CustomerAddress 1586 | } 1587 | 1588 | type Order { 1589 | order_id: String 1590 | } 1591 | 1592 | "Contains information used to generate PayPal iframe for transaction. Applies to Payflow Link and Payments Advanced payment methods." 1593 | type PayflowLinkToken { 1594 | "Mode for Payflow transaction" 1595 | mode: PayflowLinkMode 1596 | "PayPal URL used for requesting Payflow form" 1597 | paypal_url: String 1598 | "Secure token generated by PayPal" 1599 | secure_token: String 1600 | "Secure token ID generated by PayPal" 1601 | secure_token_id: String 1602 | } 1603 | 1604 | type PayflowProResponseOutput { 1605 | cart: Cart! 1606 | } 1607 | 1608 | "Contains the secure information used to authorize transaction. Applies to Payflow Pro and Payments Pro payment methods." 1609 | type PayflowProToken { 1610 | response_message: String! 1611 | result: Int! 1612 | result_code: Int! 1613 | secure_token: String! 1614 | secure_token_id: String! 1615 | } 1616 | 1617 | "The stored payment method available to the customer" 1618 | type PaymentToken { 1619 | "Stored account details" 1620 | details: String 1621 | "The payment method code associated with the token" 1622 | payment_method_code: String! 1623 | "The public hash of the token" 1624 | public_hash: String! 1625 | type: PaymentTokenTypeEnum! 1626 | } 1627 | 1628 | "Contains the token returned by PayPal and a set of URLs that allow the buyer to authorize payment and adjust checkout details. Applies to Express Checkout and Payments Standard payment methods." 1629 | type PaypalExpressToken { 1630 | "A set of URLs that allow the buyer to authorize payment and adjust checkout details" 1631 | paypal_urls: PaypalExpressUrlList 1632 | "The token returned by PayPal" 1633 | token: String 1634 | } 1635 | 1636 | "A set of URLs that allow the buyer to authorize payment and adjust checkout details for Express Checkout and Payments Standard transactions." 1637 | type PaypalExpressUrlList { 1638 | "The PayPal URL that allows the buyer to edit their checkout details" 1639 | edit: String 1640 | "The URL to the PayPal login page" 1641 | start: String 1642 | } 1643 | 1644 | type PlaceOrderOutput { 1645 | order: Order! 1646 | } 1647 | 1648 | "The Price object defines the price of a product as well as any tax-related adjustments." 1649 | type Price { 1650 | "An array that provides information about tax, weee, or weee_tax adjustments." 1651 | adjustments: [PriceAdjustment] 1652 | "The price of a product plus a three-letter currency code." 1653 | amount: Money 1654 | } 1655 | 1656 | "The PricedAdjustment object defines the amount of money to apply as an adjustment, the type of adjustment to apply, and whether the item is included or excluded from the adjustment." 1657 | type PriceAdjustment { 1658 | "The amount of the price adjustment and its currency code." 1659 | amount: Money 1660 | "Indicates whether the adjustment involves tax, weee, or weee_tax." 1661 | code: PriceAdjustmentCodesEnum 1662 | "Indicates whether the entity described by the code attribute is included or excluded from the adjustment." 1663 | description: PriceAdjustmentDescriptionEnum 1664 | } 1665 | 1666 | "Product image information. Contains the image URL and label." 1667 | type ProductImage implements MediaGalleryInterface { 1668 | "The label of the product image or video." 1669 | label: String 1670 | "The URL of the product image or video." 1671 | url: String 1672 | } 1673 | 1674 | "ProductLinks is an implementation of ProductLinksInterface." 1675 | type ProductLinks implements ProductLinksInterface { 1676 | "One of related, associated, upsell, or crosssell." 1677 | link_type: String 1678 | "The SKU of the linked product." 1679 | linked_product_sku: String 1680 | "The type of linked product (simple, virtual, bundle, downloadable, grouped, configurable)." 1681 | linked_product_type: String 1682 | "The position within the list of product links." 1683 | position: Int 1684 | "The identifier of the linked product." 1685 | sku: String 1686 | } 1687 | 1688 | "ProductMediaGalleryEntriesContent contains an image in base64 format and basic information about the image." 1689 | type ProductMediaGalleryEntriesContent { 1690 | "The image in base64 format." 1691 | base64_encoded_data: String 1692 | "The file name of the image." 1693 | name: String 1694 | "The MIME type of the file, such as image/png." 1695 | type: String 1696 | } 1697 | 1698 | "ProductMediaGalleryEntriesVideoContent contains a link to a video file and basic information about the video." 1699 | type ProductMediaGalleryEntriesVideoContent { 1700 | "Must be external-video." 1701 | media_type: String 1702 | "A description of the video." 1703 | video_description: String 1704 | "Optional data about the video." 1705 | video_metadata: String 1706 | "Describes the video source." 1707 | video_provider: String 1708 | "The title of the video." 1709 | video_title: String 1710 | "The URL to the video." 1711 | video_url: String 1712 | } 1713 | 1714 | "The ProductPrices object contains the regular price of an item, as well as its minimum and maximum prices. Only composite products, which include bundle, configurable, and grouped products, can contain a minimum and maximum price." 1715 | type ProductPrices { 1716 | "The highest possible final price for all the options defined within a composite product. If you are specifying a price range, this would be the to value." 1717 | maximalPrice: Price 1718 | "The lowest possible final price for all the options defined within a composite product. If you are specifying a price range, this would be the from value." 1719 | minimalPrice: Price 1720 | "The base price of a product." 1721 | regularPrice: Price 1722 | } 1723 | 1724 | "The ProductTierPrices object defines a tier price, which is a quantity discount offered to a specific customer group." 1725 | type ProductTierPrices { 1726 | "The ID of the customer group." 1727 | customer_group_id: String 1728 | "The percentage discount of the item." 1729 | percentage_value: Float 1730 | "The number of items that must be purchased to qualify for tier pricing." 1731 | qty: Float 1732 | "The price of the fixed price item." 1733 | value: Float 1734 | "The ID assigned to the website." 1735 | website_id: Float 1736 | } 1737 | 1738 | "Contains information about a product video." 1739 | type ProductVideo implements MediaGalleryInterface { 1740 | "The label of the product image or video." 1741 | label: String 1742 | "The URL of the product image or video." 1743 | url: String 1744 | "Contains a ProductMediaGalleryEntriesVideoContent object." 1745 | video_content: ProductMediaGalleryEntriesVideoContent 1746 | } 1747 | 1748 | "The Products object is the top-level object returned in a product search." 1749 | type Products { 1750 | "Layered navigation filters array." 1751 | filters: [LayerFilter] 1752 | "An array of products that match the specified search criteria." 1753 | items: [ProductInterface] 1754 | "An object that includes the page_info and currentPage values specified in the query." 1755 | page_info: SearchResultPageInfo 1756 | "An object that includes the default sort field and all available sort fields." 1757 | sort_fields: SortFields 1758 | "The number of products returned." 1759 | total_count: Int 1760 | } 1761 | 1762 | type Query { 1763 | "Returns information about shopping cart" 1764 | cart(cart_id: String!): Cart 1765 | "The category query searches for categories that match the criteria specified in the search and filter attributes." 1766 | category( 1767 | #Id of the category. 1768 | id: Int 1769 | ): CategoryTree 1770 | "The Checkout Agreements information" 1771 | checkoutAgreements: [CheckoutAgreement] 1772 | "The CMS block query returns information about CMS blocks" 1773 | cmsBlocks( 1774 | #Identifiers of the CMS blocks 1775 | identifiers: [String] 1776 | ): CmsBlocks 1777 | "The CMS page query returns information about a CMS page" 1778 | cmsPage( 1779 | #Id of the CMS page 1780 | id: Int, 1781 | #Identifier of the CMS page 1782 | identifier: String 1783 | ): CmsPage 1784 | "The countries query provides information for all countries." 1785 | countries: [Country] 1786 | "The countries query provides information for a single country." 1787 | country(id: String): Country 1788 | "The currency query returns information about store currency." 1789 | currency: Currency 1790 | "The customAttributeMetadata query returns the attribute type, given an attribute code and entity type" 1791 | customAttributeMetadata(attributes: [AttributeInput!]!): CustomAttributeMetadata 1792 | "The customer query returns information about a customer account" 1793 | customer: Customer 1794 | "The query returns the contents of a customer's downloadable products" 1795 | customerDownloadableProducts: CustomerDownloadableProducts 1796 | "List of customer orders" 1797 | customerOrders: CustomerOrders 1798 | "Return a list of customer payment tokens" 1799 | customerPaymentTokens: CustomerPaymentTokens 1800 | "Retrieve secure PayPal url for Payments Pro Hosted Solution transaction." 1801 | getHostedProUrl(input: HostedProUrlInput!): HostedProUrl 1802 | "Retrieve payment credentials for transaction. Use this query for Payflow Link and Payments Advanced payment methods." 1803 | getPayflowLinkToken(input: PayflowLinkTokenInput!): PayflowLinkToken 1804 | isEmailAvailable( 1805 | #The new customer email 1806 | email: String! 1807 | ): IsEmailAvailableOutput 1808 | "The products query searches for products that match the criteria specified in the search and filter attributes." 1809 | products( 1810 | #Specifies which page of results to return. The default value is 1. 1811 | currentPage: Int = 1, 1812 | #Identifies which product attributes to search for and return. 1813 | filter: ProductFilterInput, 1814 | #Specifies the maximum number of results to return at once. This attribute is optional. 1815 | pageSize: Int = 20, 1816 | #Performs a full-text search using the specified key words. 1817 | search: String, 1818 | #Specifies which attribute to sort on, and whether to return the results in ascending or descending order. 1819 | sort: ProductSortInput 1820 | ): Products 1821 | "The store config query" 1822 | storeConfig: StoreConfig 1823 | "The urlResolver query returns the relative URL for a specified product, category or CMS page" 1824 | urlResolver(url: String!): EntityUrl 1825 | "The wishlist query returns the contents of a customer's wish list" 1826 | wishlist: WishlistOutput 1827 | } 1828 | 1829 | type Region { 1830 | code: String 1831 | id: Int 1832 | name: String 1833 | } 1834 | 1835 | type RemoveCouponFromCartOutput { 1836 | cart: Cart 1837 | } 1838 | 1839 | type RemoveItemFromCartOutput { 1840 | cart: Cart! 1841 | } 1842 | 1843 | type RevokeCustomerTokenOutput { 1844 | result: Boolean! 1845 | } 1846 | 1847 | "SearchResultPageInfo provides navigation for the query response" 1848 | type SearchResultPageInfo { 1849 | "Specifies which page of results to return" 1850 | current_page: Int 1851 | "Specifies the maximum number of items to return" 1852 | page_size: Int 1853 | "Total pages" 1854 | total_pages: Int 1855 | } 1856 | 1857 | type SelectedConfigurableOption { 1858 | id: Int! 1859 | option_label: String! 1860 | value_id: Int! 1861 | value_label: String! 1862 | } 1863 | 1864 | type SelectedCustomizableOption { 1865 | id: Int! 1866 | is_required: Boolean! 1867 | label: String! 1868 | sort_order: Int! 1869 | values: [SelectedCustomizableOptionValue]! 1870 | } 1871 | 1872 | type SelectedCustomizableOptionValue { 1873 | id: Int! 1874 | label: String! 1875 | price: CartItemSelectedOptionValuePrice! 1876 | value: String! 1877 | } 1878 | 1879 | type SelectedPaymentMethod { 1880 | "The payment method code" 1881 | code: String! 1882 | "The purchase order number." 1883 | purchase_order_number: String 1884 | "The payment method title." 1885 | title: String! 1886 | } 1887 | 1888 | type SelectedShippingMethod { 1889 | amount: Money 1890 | base_amount: Money 1891 | carrier_code: String 1892 | carrier_title: String 1893 | method_code: String 1894 | method_title: String 1895 | } 1896 | 1897 | type SendEmailToFriendOutput { 1898 | recipients: [SendEmailToFriendRecipient] 1899 | sender: SendEmailToFriendSender 1900 | } 1901 | 1902 | type SendEmailToFriendRecipient { 1903 | email: String! 1904 | name: String! 1905 | } 1906 | 1907 | type SendEmailToFriendSender { 1908 | email: String! 1909 | message: String! 1910 | name: String! 1911 | } 1912 | 1913 | type SetBillingAddressOnCartOutput { 1914 | cart: Cart! 1915 | } 1916 | 1917 | type SetGuestEmailOnCartOutput { 1918 | cart: Cart! 1919 | } 1920 | 1921 | type SetPaymentMethodOnCartOutput { 1922 | cart: Cart! 1923 | } 1924 | 1925 | type SetShippingAddressesOnCartOutput { 1926 | cart: Cart! 1927 | } 1928 | 1929 | type SetShippingMethodsOnCartOutput { 1930 | cart: Cart! 1931 | } 1932 | 1933 | type ShippingCartAddress implements CartAddressInterface { 1934 | available_shipping_methods: [AvailableShippingMethod] 1935 | cart_items: [CartItemQuantity] 1936 | city: String 1937 | company: String 1938 | country: CartAddressCountry 1939 | customer_notes: String 1940 | firstname: String 1941 | items_weight: Float 1942 | lastname: String 1943 | postcode: String 1944 | region: CartAddressRegion 1945 | selected_shipping_method: SelectedShippingMethod 1946 | street: [String] 1947 | telephone: String 1948 | } 1949 | 1950 | "Simple Cart Item" 1951 | type SimpleCartItem implements CartItemInterface { 1952 | customizable_options: [SelectedCustomizableOption] 1953 | id: String! 1954 | product: ProductInterface! 1955 | quantity: Float! 1956 | } 1957 | 1958 | "A simple product is tangible and are usually sold as single units or in fixed quantities." 1959 | type SimpleProduct implements CustomizableProductInterface & PhysicalProductInterface & ProductInterface { 1960 | "The attribute set assigned to the product." 1961 | attribute_set_id: Int 1962 | "Canonical URL." 1963 | canonical_url: String 1964 | "The categories assigned to a product." 1965 | categories: [CategoryInterface] 1966 | color: Int 1967 | "The product's country of origin." 1968 | country_of_manufacture: String 1969 | "Timestamp indicating when the product was created." 1970 | created_at: String 1971 | "Crosssell Products" 1972 | crosssell_products: [ProductInterface] 1973 | "Detailed information about the product. The value can include simple HTML tags." 1974 | description: ComplexTextValue 1975 | fashion_color: Int 1976 | fashion_material: String 1977 | fashion_size: Int 1978 | fashion_style: String 1979 | "Indicates whether a gift message is available." 1980 | gift_message_available: String 1981 | has_video: Int 1982 | "The ID number assigned to the product." 1983 | id: Int 1984 | "The relative path to the main image on the product page." 1985 | image: ProductImage 1986 | "A number representing the product's manufacturer." 1987 | manufacturer: Int 1988 | "An array of Media Gallery objects." 1989 | media_gallery: [MediaGalleryInterface] 1990 | "An array of MediaGalleryEntry objects." 1991 | media_gallery_entries: [MediaGalleryEntry] 1992 | "A brief overview of the product for search results listings, maximum 255 characters." 1993 | meta_description: String 1994 | "A comma-separated list of keywords that are visible only to search engines." 1995 | meta_keyword: String 1996 | "A string that is displayed in the title bar and tab of the browser and in search results lists." 1997 | meta_title: String 1998 | "The product name. Customers use this name to identify the product." 1999 | name: String 2000 | "The beginning date for new product listings, and determines if the product is featured as a new product." 2001 | new_from_date: String 2002 | "The end date for new product listings." 2003 | new_to_date: String 2004 | "Product stock only x left count" 2005 | only_x_left_in_stock: Float 2006 | "An array of options for a customizable product." 2007 | options: [CustomizableOptionInterface] 2008 | "If the product has multiple options, determines where they appear on the product page." 2009 | options_container: String 2010 | "A ProductPrices object, indicating the price of an item." 2011 | price: ProductPrices 2012 | "An array of ProductLinks objects." 2013 | product_links: [ProductLinksInterface] 2014 | "Related Products" 2015 | related_products: [ProductInterface] 2016 | "A short description of the product. Its use depends on the theme." 2017 | short_description: ComplexTextValue 2018 | "A number or code assigned to a product to identify the product, options, price, and manufacturer." 2019 | sku: String 2020 | "The relative path to the small image, which is used on catalog pages." 2021 | small_image: ProductImage 2022 | "The beginning date that a product has a special price." 2023 | special_from_date: String 2024 | "The discounted price of the product." 2025 | special_price: Float 2026 | "The end date that a product has a special price." 2027 | special_to_date: String 2028 | "Stock status of the product" 2029 | stock_status: ProductStockStatus 2030 | "The file name of a swatch image" 2031 | swatch_image: String 2032 | "The relative path to the product's thumbnail image." 2033 | thumbnail: ProductImage 2034 | "The price when tier pricing is in effect and the items purchased threshold has been reached." 2035 | tier_price: Float 2036 | "An array of ProductTierPrices objects." 2037 | tier_prices: [ProductTierPrices] 2038 | "One of simple, virtual, bundle, downloadable, grouped, or configurable." 2039 | type_id: String 2040 | "Timestamp indicating when the product was updated." 2041 | updated_at: String 2042 | "Upsell Products" 2043 | upsell_products: [ProductInterface] 2044 | "The part of the URL that identifies the product" 2045 | url_key: String 2046 | url_path: String 2047 | "URL rewrites list" 2048 | url_rewrites: [UrlRewrite] 2049 | video_file: String 2050 | "An array of websites in which the product is available." 2051 | websites: [Website] 2052 | "The weight of the item, in units defined by the store." 2053 | weight: Float 2054 | } 2055 | 2056 | type SortField { 2057 | "Label of sort field." 2058 | label: String 2059 | "Attribute code of sort field." 2060 | value: String 2061 | } 2062 | 2063 | "SortFields contains a default value for sort fields and all available sort fields." 2064 | type SortFields { 2065 | "Default value of sort fields." 2066 | default: String 2067 | "Available sort fields." 2068 | options: [SortField] 2069 | } 2070 | 2071 | "The type contains information about a store config" 2072 | type StoreConfig { 2073 | "Footer Miscellaneous HTML" 2074 | absolute_footer: String 2075 | "Base currency code" 2076 | base_currency_code: String 2077 | "Base link URL for the store" 2078 | base_link_url: String 2079 | "Base media URL for the store" 2080 | base_media_url: String 2081 | "Base static URL for the store" 2082 | base_static_url: String 2083 | "Base URL for the store" 2084 | base_url: String 2085 | "Default Sort By." 2086 | catalog_default_sort_by: String 2087 | "Category URL Suffix." 2088 | category_url_suffix: String 2089 | "CMS Home Page" 2090 | cms_home_page: String 2091 | "CMS No Cookies Page" 2092 | cms_no_cookies: String 2093 | "CMS No Route Page" 2094 | cms_no_route: String 2095 | "A code assigned to the store to identify it" 2096 | code: String 2097 | "Copyright" 2098 | copyright: String 2099 | "Default Meta Description" 2100 | default_description: String 2101 | "Default display currency code" 2102 | default_display_currency_code: String 2103 | "Default Meta Keywords" 2104 | default_keywords: String 2105 | "Default Page Title" 2106 | default_title: String 2107 | "Display Demo Store Notice" 2108 | demonotice: Int 2109 | "Default Web URL" 2110 | front: String 2111 | "Products per Page on Grid Default Value." 2112 | grid_per_page: Int 2113 | "Products per Page on Grid Allowed Values." 2114 | grid_per_page_values: String 2115 | "Scripts and Style Sheets" 2116 | head_includes: String 2117 | "Favicon Icon" 2118 | head_shortcut_icon: String 2119 | "Logo Image" 2120 | header_logo_src: String 2121 | "The ID number assigned to the store" 2122 | id: Int 2123 | "List Mode." 2124 | list_mode: String 2125 | "Products per Page on List Default Value." 2126 | list_per_page: Int 2127 | "Products per Page on List Allowed Values." 2128 | list_per_page_values: String 2129 | "Store locale" 2130 | locale: String 2131 | "Logo Image Alt" 2132 | logo_alt: String 2133 | "Logo Attribute Height" 2134 | logo_height: Int 2135 | "Logo Attribute Width" 2136 | logo_width: Int 2137 | "Default No-route URL" 2138 | no_route: String 2139 | "Product URL Suffix." 2140 | product_url_suffix: String 2141 | "Secure base link URL for the store" 2142 | secure_base_link_url: String 2143 | "Secure base media URL for the store" 2144 | secure_base_media_url: String 2145 | "Secure base static URL for the store" 2146 | secure_base_static_url: String 2147 | "Secure base URL for the store" 2148 | secure_base_url: String 2149 | "Show Breadcrumbs for CMS Pages" 2150 | show_cms_breadcrumbs: Int 2151 | "Timezone of the store" 2152 | timezone: String 2153 | "Page Title Prefix" 2154 | title_prefix: String 2155 | "Page Title Separator." 2156 | title_separator: String 2157 | "Page Title Suffix" 2158 | title_suffix: String 2159 | "The ID number assigned to the website store belongs" 2160 | website_id: Int 2161 | "The unit of weight" 2162 | weight_unit: String 2163 | "Welcome Text" 2164 | welcome: String 2165 | } 2166 | 2167 | type SwatchData { 2168 | "Type of swatch filter item: 1 - text, 2 - image" 2169 | type: String 2170 | "Value for swatch item (text or image link)" 2171 | value: String 2172 | } 2173 | 2174 | type SwatchLayerFilterItem implements LayerFilterItemInterface & SwatchLayerFilterItemInterface { 2175 | "Count of items by filter." 2176 | items_count: Int 2177 | "Filter label." 2178 | label: String 2179 | "Data required to render swatch filter item" 2180 | swatch_data: SwatchData 2181 | "Value for filter request variable to be used in query." 2182 | value_string: String 2183 | } 2184 | 2185 | type UpdateCartItemsOutput { 2186 | cart: Cart! 2187 | } 2188 | 2189 | "The object contains URL rewrite details" 2190 | type UrlRewrite { 2191 | "Request parameters" 2192 | parameters: [HttpQueryParameter] 2193 | "Request URL" 2194 | url: String 2195 | } 2196 | 2197 | "Virtual Cart Item" 2198 | type VirtualCartItem implements CartItemInterface { 2199 | customizable_options: [SelectedCustomizableOption] 2200 | id: String! 2201 | product: ProductInterface! 2202 | quantity: Float! 2203 | } 2204 | 2205 | "A virtual product is non-tangible product that does not require shipping and is not kept in inventory." 2206 | type VirtualProduct implements CustomizableProductInterface & ProductInterface { 2207 | "The attribute set assigned to the product." 2208 | attribute_set_id: Int 2209 | "Canonical URL." 2210 | canonical_url: String 2211 | "The categories assigned to a product." 2212 | categories: [CategoryInterface] 2213 | color: Int 2214 | "The product's country of origin." 2215 | country_of_manufacture: String 2216 | "Timestamp indicating when the product was created." 2217 | created_at: String 2218 | "Crosssell Products" 2219 | crosssell_products: [ProductInterface] 2220 | "Detailed information about the product. The value can include simple HTML tags." 2221 | description: ComplexTextValue 2222 | fashion_color: Int 2223 | fashion_material: String 2224 | fashion_size: Int 2225 | fashion_style: String 2226 | "Indicates whether a gift message is available." 2227 | gift_message_available: String 2228 | has_video: Int 2229 | "The ID number assigned to the product." 2230 | id: Int 2231 | "The relative path to the main image on the product page." 2232 | image: ProductImage 2233 | "A number representing the product's manufacturer." 2234 | manufacturer: Int 2235 | "An array of Media Gallery objects." 2236 | media_gallery: [MediaGalleryInterface] 2237 | "An array of MediaGalleryEntry objects." 2238 | media_gallery_entries: [MediaGalleryEntry] 2239 | "A brief overview of the product for search results listings, maximum 255 characters." 2240 | meta_description: String 2241 | "A comma-separated list of keywords that are visible only to search engines." 2242 | meta_keyword: String 2243 | "A string that is displayed in the title bar and tab of the browser and in search results lists." 2244 | meta_title: String 2245 | "The product name. Customers use this name to identify the product." 2246 | name: String 2247 | "The beginning date for new product listings, and determines if the product is featured as a new product." 2248 | new_from_date: String 2249 | "The end date for new product listings." 2250 | new_to_date: String 2251 | "Product stock only x left count" 2252 | only_x_left_in_stock: Float 2253 | "An array of options for a customizable product." 2254 | options: [CustomizableOptionInterface] 2255 | "If the product has multiple options, determines where they appear on the product page." 2256 | options_container: String 2257 | "A ProductPrices object, indicating the price of an item." 2258 | price: ProductPrices 2259 | "An array of ProductLinks objects." 2260 | product_links: [ProductLinksInterface] 2261 | "Related Products" 2262 | related_products: [ProductInterface] 2263 | "A short description of the product. Its use depends on the theme." 2264 | short_description: ComplexTextValue 2265 | "A number or code assigned to a product to identify the product, options, price, and manufacturer." 2266 | sku: String 2267 | "The relative path to the small image, which is used on catalog pages." 2268 | small_image: ProductImage 2269 | "The beginning date that a product has a special price." 2270 | special_from_date: String 2271 | "The discounted price of the product." 2272 | special_price: Float 2273 | "The end date that a product has a special price." 2274 | special_to_date: String 2275 | "Stock status of the product" 2276 | stock_status: ProductStockStatus 2277 | "The file name of a swatch image" 2278 | swatch_image: String 2279 | "The relative path to the product's thumbnail image." 2280 | thumbnail: ProductImage 2281 | "The price when tier pricing is in effect and the items purchased threshold has been reached." 2282 | tier_price: Float 2283 | "An array of ProductTierPrices objects." 2284 | tier_prices: [ProductTierPrices] 2285 | "One of simple, virtual, bundle, downloadable, grouped, or configurable." 2286 | type_id: String 2287 | "Timestamp indicating when the product was updated." 2288 | updated_at: String 2289 | "Upsell Products" 2290 | upsell_products: [ProductInterface] 2291 | "The part of the URL that identifies the product" 2292 | url_key: String 2293 | url_path: String 2294 | "URL rewrites list" 2295 | url_rewrites: [UrlRewrite] 2296 | video_file: String 2297 | "An array of websites in which the product is available." 2298 | websites: [Website] 2299 | } 2300 | 2301 | "The type contains information about a website" 2302 | type Website { 2303 | "A code assigned to the website to identify it" 2304 | code: String 2305 | "The default group ID that the website has" 2306 | default_group_id: String 2307 | "The ID number assigned to the website" 2308 | id: Int 2309 | "Specifies if this is the default website" 2310 | is_default: Boolean 2311 | "The website name. Websites use this name to identify it easier." 2312 | name: String 2313 | "The attribute to use for sorting websites" 2314 | sort_order: Int 2315 | } 2316 | 2317 | type WishlistItem { 2318 | "The time when the customer added the item to the wish list" 2319 | added_at: String 2320 | "The customer's comment about this item" 2321 | description: String 2322 | "The wish list item ID" 2323 | id: Int 2324 | product: ProductInterface 2325 | "The quantity of this wish list item" 2326 | qty: Float 2327 | } 2328 | 2329 | type WishlistOutput { 2330 | "An array of items in the customer's wish list" 2331 | items: [WishlistItem] 2332 | "The number of items in the wish list" 2333 | items_count: Int 2334 | "When multiple wish lists are enabled, the name the customer assigns to the wishlist" 2335 | name: String 2336 | "An encrypted code that Magento uses to link to the wish list" 2337 | sharing_code: String 2338 | "The time of the last modification to the wish list" 2339 | updated_at: String 2340 | } 2341 | 2342 | enum CheckoutAgreementMode { 2343 | AUTO 2344 | MANUAL 2345 | } 2346 | 2347 | "The list of countries codes" 2348 | enum CountryCodeEnum { 2349 | #Andorra 2350 | AD 2351 | #United Arab Emirates 2352 | AE 2353 | #Afghanistan 2354 | AF 2355 | #Antigua & Barbuda 2356 | AG 2357 | #Anguilla 2358 | AI 2359 | #Albania 2360 | AL 2361 | #Armenia 2362 | AM 2363 | #Netherlands Antilles 2364 | AN 2365 | #Angola 2366 | AO 2367 | #Antarctica 2368 | AQ 2369 | #Argentina 2370 | AR 2371 | #American Samoa 2372 | AS 2373 | #Austria 2374 | AT 2375 | #Australia 2376 | AU 2377 | #Aruba 2378 | AW 2379 | #Åland Islands 2380 | AX 2381 | #Azerbaijan 2382 | AZ 2383 | #Bosnia & Herzegovina 2384 | BA 2385 | #Barbados 2386 | BB 2387 | #Bangladesh 2388 | BD 2389 | #Belgium 2390 | BE 2391 | #Burkina Faso 2392 | BF 2393 | #Bulgaria 2394 | BG 2395 | #Bahrain 2396 | BH 2397 | #Burundi 2398 | BI 2399 | #Benin 2400 | BJ 2401 | #St. Barthélemy 2402 | BL 2403 | #Bermuda 2404 | BM 2405 | #Brunei 2406 | BN 2407 | #Bolivia 2408 | BO 2409 | #Brazil 2410 | BR 2411 | #Bahamas 2412 | BS 2413 | #Bhutan 2414 | BT 2415 | #Bouvet Island 2416 | BV 2417 | #Botswana 2418 | BW 2419 | #Belarus 2420 | BY 2421 | #Belize 2422 | BZ 2423 | #Canada 2424 | CA 2425 | #Cocos (Keeling) Islands 2426 | CC 2427 | #Congo-Kinshasa 2428 | CD 2429 | #Central African Republic 2430 | CF 2431 | #Congo-Brazzaville 2432 | CG 2433 | #Switzerland 2434 | CH 2435 | #Côte d’Ivoire 2436 | CI 2437 | #Cook Islands 2438 | CK 2439 | #Chile 2440 | CL 2441 | #Cameroon 2442 | CM 2443 | #China 2444 | CN 2445 | #Colombia 2446 | CO 2447 | #Costa Rica 2448 | CR 2449 | #Cuba 2450 | CU 2451 | #Cape Verde 2452 | CV 2453 | #Christmas Island 2454 | CX 2455 | #Cyprus 2456 | CY 2457 | #Czech Republic 2458 | CZ 2459 | #Germany 2460 | DE 2461 | #Djibouti 2462 | DJ 2463 | #Denmark 2464 | DK 2465 | #Dominica 2466 | DM 2467 | #Dominican Republic 2468 | DO 2469 | #Algeria 2470 | DZ 2471 | #Ecuador 2472 | EC 2473 | #Estonia 2474 | EE 2475 | #Egypt 2476 | EG 2477 | #Western Sahara 2478 | EH 2479 | #Eritrea 2480 | ER 2481 | #Spain 2482 | ES 2483 | #Ethiopia 2484 | ET 2485 | #Finland 2486 | FI 2487 | #Fiji 2488 | FJ 2489 | #Falkland Islands 2490 | FK 2491 | #Micronesia 2492 | FM 2493 | #Faroe Islands 2494 | FO 2495 | #France 2496 | FR 2497 | #Gabon 2498 | GA 2499 | #United Kingdom 2500 | GB 2501 | #Grenada 2502 | GD 2503 | #Georgia 2504 | GE 2505 | #French Guiana 2506 | GF 2507 | #Guernsey 2508 | GG 2509 | #Ghana 2510 | GH 2511 | #Gibraltar 2512 | GI 2513 | #Greenland 2514 | GL 2515 | #Gambia 2516 | GM 2517 | #Guinea 2518 | GN 2519 | #Guadeloupe 2520 | GP 2521 | #Equatorial Guinea 2522 | GQ 2523 | #Greece 2524 | GR 2525 | #South Georgia & South Sandwich Islands 2526 | GS 2527 | #Guatemala 2528 | GT 2529 | #Guam 2530 | GU 2531 | #Guinea-Bissau 2532 | GW 2533 | #Guyana 2534 | GY 2535 | #Hong Kong SAR China 2536 | HK 2537 | #Heard & McDonald Islands 2538 | HM 2539 | #Honduras 2540 | HN 2541 | #Croatia 2542 | HR 2543 | #Haiti 2544 | HT 2545 | #Hungary 2546 | HU 2547 | #Indonesia 2548 | ID 2549 | #Ireland 2550 | IE 2551 | #Israel 2552 | IL 2553 | #Isle of Man 2554 | IM 2555 | #India 2556 | IN 2557 | #British Indian Ocean Territory 2558 | IO 2559 | #Iraq 2560 | IQ 2561 | #Iran 2562 | IR 2563 | #Iceland 2564 | IS 2565 | #Italy 2566 | IT 2567 | #Jersey 2568 | JE 2569 | #Jamaica 2570 | JM 2571 | #Jordan 2572 | JO 2573 | #Japan 2574 | JP 2575 | #Kenya 2576 | KE 2577 | #Kyrgyzstan 2578 | KG 2579 | #Cambodia 2580 | KH 2581 | #Kiribati 2582 | KI 2583 | #Comoros 2584 | KM 2585 | #St. Kitts & Nevis 2586 | KN 2587 | #North Korea 2588 | KP 2589 | #South Korea 2590 | KR 2591 | #Kuwait 2592 | KW 2593 | #Cayman Islands 2594 | KY 2595 | #Kazakhstan 2596 | KZ 2597 | #Laos 2598 | LA 2599 | #Lebanon 2600 | LB 2601 | #St. Lucia 2602 | LC 2603 | #Liechtenstein 2604 | LI 2605 | #Sri Lanka 2606 | LK 2607 | #Liberia 2608 | LR 2609 | #Lesotho 2610 | LS 2611 | #Lithuania 2612 | LT 2613 | #Luxembourg 2614 | LU 2615 | #Latvia 2616 | LV 2617 | #Libya 2618 | LY 2619 | #Morocco 2620 | MA 2621 | #Monaco 2622 | MC 2623 | #Moldova 2624 | MD 2625 | #Montenegro 2626 | ME 2627 | #St. Martin 2628 | MF 2629 | #Madagascar 2630 | MG 2631 | #Marshall Islands 2632 | MH 2633 | #Macedonia 2634 | MK 2635 | #Mali 2636 | ML 2637 | #Myanmar (Burma) 2638 | MM 2639 | #Mongolia 2640 | MN 2641 | #Macau SAR China 2642 | MO 2643 | #Northern Mariana Islands 2644 | MP 2645 | #Martinique 2646 | MQ 2647 | #Mauritania 2648 | MR 2649 | #Montserrat 2650 | MS 2651 | #Malta 2652 | MT 2653 | #Mauritius 2654 | MU 2655 | #Maldives 2656 | MV 2657 | #Malawi 2658 | MW 2659 | #Mexico 2660 | MX 2661 | #Malaysia 2662 | MY 2663 | #Mozambique 2664 | MZ 2665 | #Namibia 2666 | NA 2667 | #New Caledonia 2668 | NC 2669 | #Niger 2670 | NE 2671 | #Norfolk Island 2672 | NF 2673 | #Nigeria 2674 | NG 2675 | #Nicaragua 2676 | NI 2677 | #Netherlands 2678 | NL 2679 | #Norway 2680 | NO 2681 | #Nepal 2682 | NP 2683 | #Nauru 2684 | NR 2685 | #Niue 2686 | NU 2687 | #New Zealand 2688 | NZ 2689 | #Oman 2690 | OM 2691 | #Panama 2692 | PA 2693 | #Peru 2694 | PE 2695 | #French Polynesia 2696 | PF 2697 | #Papua New Guinea 2698 | PG 2699 | #Philippines 2700 | PH 2701 | #Pakistan 2702 | PK 2703 | #Poland 2704 | PL 2705 | #St. Pierre & Miquelon 2706 | PM 2707 | #Pitcairn Islands 2708 | PN 2709 | #Palestinian Territories 2710 | PS 2711 | #Portugal 2712 | PT 2713 | #Palau 2714 | PW 2715 | #Paraguay 2716 | PY 2717 | #Qatar 2718 | QA 2719 | #Réunion 2720 | RE 2721 | #Romania 2722 | RO 2723 | #Serbia 2724 | RS 2725 | #Russia 2726 | RU 2727 | #Rwanda 2728 | RW 2729 | #Saudi Arabia 2730 | SA 2731 | #Solomon Islands 2732 | SB 2733 | #Seychelles 2734 | SC 2735 | #Sudan 2736 | SD 2737 | #Sweden 2738 | SE 2739 | #Singapore 2740 | SG 2741 | #St. Helena 2742 | SH 2743 | #Slovenia 2744 | SI 2745 | #Svalbard & Jan Mayen 2746 | SJ 2747 | #Slovakia 2748 | SK 2749 | #Sierra Leone 2750 | SL 2751 | #San Marino 2752 | SM 2753 | #Senegal 2754 | SN 2755 | #Somalia 2756 | SO 2757 | #Suriname 2758 | SR 2759 | #São Tomé & Príncipe 2760 | ST 2761 | #El Salvador 2762 | SV 2763 | #Syria 2764 | SY 2765 | #Swaziland 2766 | SZ 2767 | #Turks & Caicos Islands 2768 | TC 2769 | #Chad 2770 | TD 2771 | #French Southern Territories 2772 | TF 2773 | #Togo 2774 | TG 2775 | #Thailand 2776 | TH 2777 | #Tajikistan 2778 | TJ 2779 | #Tokelau 2780 | TK 2781 | #Timor-Leste 2782 | TL 2783 | #Turkmenistan 2784 | TM 2785 | #Tunisia 2786 | TN 2787 | #Tonga 2788 | TO 2789 | #Turkey 2790 | TR 2791 | #Trinidad & Tobago 2792 | TT 2793 | #Tuvalu 2794 | TV 2795 | #Taiwan 2796 | TW 2797 | #Tanzania 2798 | TZ 2799 | #Ukraine 2800 | UA 2801 | #Uganda 2802 | UG 2803 | #U.S. Outlying Islands 2804 | UM 2805 | #United States 2806 | US 2807 | #Uruguay 2808 | UY 2809 | #Uzbekistan 2810 | UZ 2811 | #Vatican City 2812 | VA 2813 | #St. Vincent & Grenadines 2814 | VC 2815 | #Venezuela 2816 | VE 2817 | #British Virgin Islands 2818 | VG 2819 | #U.S. Virgin Islands 2820 | VI 2821 | #Vietnam 2822 | VN 2823 | #Vanuatu 2824 | VU 2825 | #Wallis & Futuna 2826 | WF 2827 | #Samoa 2828 | WS 2829 | #Yemen 2830 | YE 2831 | #Mayotte 2832 | YT 2833 | #South Africa 2834 | ZA 2835 | #Zambia 2836 | ZM 2837 | #Zimbabwe 2838 | ZW 2839 | } 2840 | 2841 | "The list of available currency codes" 2842 | enum CurrencyEnum { 2843 | AED 2844 | AFN 2845 | ALL 2846 | AMD 2847 | ANG 2848 | AOA 2849 | ARS 2850 | AUD 2851 | AWG 2852 | AZM 2853 | AZN 2854 | BAM 2855 | BBD 2856 | BDT 2857 | BGN 2858 | BHD 2859 | BIF 2860 | BMD 2861 | BND 2862 | BOB 2863 | BRL 2864 | BSD 2865 | BTN 2866 | BUK 2867 | BWP 2868 | BYR 2869 | BZD 2870 | CAD 2871 | CDF 2872 | CHE 2873 | CHF 2874 | CHW 2875 | CLP 2876 | CNY 2877 | COP 2878 | CRC 2879 | CUP 2880 | CVE 2881 | CZK 2882 | DJF 2883 | DKK 2884 | DOP 2885 | DZD 2886 | EEK 2887 | EGP 2888 | ERN 2889 | ETB 2890 | EUR 2891 | FJD 2892 | FKP 2893 | GBP 2894 | GEK 2895 | GEL 2896 | GHS 2897 | GIP 2898 | GMD 2899 | GNF 2900 | GQE 2901 | GTQ 2902 | GYD 2903 | HKD 2904 | HNL 2905 | HRK 2906 | HTG 2907 | HUF 2908 | IDR 2909 | ILS 2910 | INR 2911 | IQD 2912 | IRR 2913 | ISK 2914 | JMD 2915 | JOD 2916 | JPY 2917 | KES 2918 | KGS 2919 | KHR 2920 | KMF 2921 | KPW 2922 | KRW 2923 | KWD 2924 | KYD 2925 | KZT 2926 | LAK 2927 | LBP 2928 | LKR 2929 | LRD 2930 | LSL 2931 | LSM 2932 | LTL 2933 | LVL 2934 | LYD 2935 | MAD 2936 | MDL 2937 | MGA 2938 | MKD 2939 | MMK 2940 | MNT 2941 | MOP 2942 | MRO 2943 | MUR 2944 | MVR 2945 | MWK 2946 | MXN 2947 | MYR 2948 | MZN 2949 | NAD 2950 | NGN 2951 | NIC 2952 | NOK 2953 | NPR 2954 | NZD 2955 | OMR 2956 | PAB 2957 | PEN 2958 | PGK 2959 | PHP 2960 | PKR 2961 | PLN 2962 | PYG 2963 | QAR 2964 | RHD 2965 | ROL 2966 | RON 2967 | RSD 2968 | RUB 2969 | RWF 2970 | SAR 2971 | SBD 2972 | SCR 2973 | SDG 2974 | SEK 2975 | SGD 2976 | SHP 2977 | SKK 2978 | SLL 2979 | SOS 2980 | SRD 2981 | STD 2982 | SVC 2983 | SYP 2984 | SZL 2985 | THB 2986 | TJS 2987 | TMM 2988 | TND 2989 | TOP 2990 | TRL 2991 | TRY 2992 | TTD 2993 | TWD 2994 | TZS 2995 | UAH 2996 | UGX 2997 | USD 2998 | UYU 2999 | UZS 3000 | VEB 3001 | VEF 3002 | VND 3003 | VUV 3004 | WST 3005 | XCD 3006 | XOF 3007 | XPF 3008 | YER 3009 | YTL 3010 | ZAR 3011 | ZMK 3012 | ZWD 3013 | } 3014 | 3015 | enum DownloadableFileTypeEnum { 3016 | FILE 3017 | URL 3018 | } 3019 | 3020 | "Mode for payment: TEST or LIVE. Applies to Payflow Link and Payments Advanced payment methods." 3021 | enum PayflowLinkMode { 3022 | LIVE 3023 | TEST 3024 | } 3025 | 3026 | "The list of available payment token types" 3027 | enum PaymentTokenTypeEnum { 3028 | account 3029 | card 3030 | } 3031 | 3032 | "Note: This enumeration contains values defined in modules other than the Catalog module." 3033 | enum PriceAdjustmentCodesEnum { 3034 | TAX 3035 | WEE 3036 | WEETAX 3037 | } 3038 | 3039 | "This enumeration states whether a price adjustment is included or excluded." 3040 | enum PriceAdjustmentDescriptionEnum { 3041 | EXCLUDED 3042 | INCLUDED 3043 | } 3044 | 3045 | "This enumeration the price type." 3046 | enum PriceTypeEnum { 3047 | DYNAMIC 3048 | FIXED 3049 | PERCENT 3050 | } 3051 | 3052 | "This enumeration defines whether a bundle product's price is displayed as the lowest possible value or as a range." 3053 | enum PriceViewEnum { 3054 | AS_LOW_AS 3055 | PRICE_RANGE 3056 | } 3057 | 3058 | "This enumeration states whether a product stock status is in stock or out of stock" 3059 | enum ProductStockStatus { 3060 | IN_STOCK 3061 | OUT_OF_STOCK 3062 | } 3063 | 3064 | "This enumeration defines whether bundle items must be shipped together." 3065 | enum ShipBundleItemsEnum { 3066 | SEPARATELY 3067 | TOGETHER 3068 | } 3069 | 3070 | "This enumeration indicates whether to return results in ascending or descending order" 3071 | enum SortEnum { 3072 | ASC 3073 | DESC 3074 | } 3075 | 3076 | "This enumeration defines the entity type." 3077 | enum UrlRewriteEntityTypeEnum { 3078 | CATEGORY 3079 | CMS_PAGE 3080 | PRODUCT 3081 | } 3082 | 3083 | input AddConfigurableProductsToCartInput { 3084 | cart_id: String! 3085 | cart_items: [ConfigurableProductCartItemInput]! 3086 | } 3087 | 3088 | input AddSimpleProductsToCartInput { 3089 | cart_id: String! 3090 | cart_items: [SimpleProductCartItemInput]! 3091 | } 3092 | 3093 | input AddVirtualProductsToCartInput { 3094 | cart_id: String! 3095 | cart_items: [VirtualProductCartItemInput]! 3096 | } 3097 | 3098 | input ApplyCouponToCartInput { 3099 | cart_id: String! 3100 | coupon_code: String! 3101 | } 3102 | 3103 | "AttributeInput specifies the attribute_code and entity_type to search" 3104 | input AttributeInput { 3105 | "The unique identifier for an attribute code. This value should be in lowercase letters without spaces." 3106 | attribute_code: String 3107 | "The type of entity that defines the attribute" 3108 | entity_type: String 3109 | } 3110 | 3111 | input AuthorizenetInput { 3112 | "The last four digits of the credit or debit card" 3113 | cc_last_4: Int! 3114 | "Authorize.Net's description of the transaction request" 3115 | opaque_data_descriptor: String! 3116 | "The nonce returned by Authorize.Net" 3117 | opaque_data_value: String! 3118 | } 3119 | 3120 | input BillingAddressInput { 3121 | address: CartAddressInput 3122 | customer_address_id: Int 3123 | use_for_shipping: Boolean 3124 | } 3125 | 3126 | input BraintreeCcVaultInput { 3127 | device_data: String 3128 | public_hash: String! 3129 | } 3130 | 3131 | input BraintreeInput { 3132 | device_data: String 3133 | is_active_payment_token_enabler: Boolean! 3134 | payment_method_nonce: String! 3135 | } 3136 | 3137 | input CartAddressInput { 3138 | city: String! 3139 | company: String 3140 | country_code: String! 3141 | firstname: String! 3142 | lastname: String! 3143 | postcode: String 3144 | region: String 3145 | save_in_address_book: Boolean! 3146 | street: [String]! 3147 | telephone: String! 3148 | } 3149 | 3150 | input CartItemInput { 3151 | quantity: Float! 3152 | sku: String! 3153 | } 3154 | 3155 | input CartItemUpdateInput { 3156 | cart_item_id: Int! 3157 | customizable_options: [CustomizableOptionInput] 3158 | quantity: Float 3159 | } 3160 | 3161 | input ConfigurableProductCartItemInput { 3162 | customizable_options: [CustomizableOptionInput] 3163 | data: CartItemInput! 3164 | "Configurable product SKU." 3165 | parent_sku: String 3166 | variant_sku: String 3167 | } 3168 | 3169 | "Required fields for Payflow Pro and Payments Pro credit card payments" 3170 | input CreditCardDetailsInput { 3171 | "Credit card expiration month" 3172 | cc_exp_month: Int! 3173 | "Credit card expiration year" 3174 | cc_exp_year: Int! 3175 | "Last 4 digits of the credit card" 3176 | cc_last_4: Int! 3177 | "Credit card type" 3178 | cc_type: String! 3179 | } 3180 | 3181 | input CustomerAddressAttributeInput { 3182 | "Attribute code" 3183 | attribute_code: String! 3184 | "Attribute value" 3185 | value: String! 3186 | } 3187 | 3188 | input CustomerAddressInput { 3189 | "The city or town" 3190 | city: String 3191 | "The customer's company" 3192 | company: String 3193 | "The customer's country" 3194 | country_id: CountryCodeEnum 3195 | "Address custom attributes" 3196 | custom_attributes: [CustomerAddressAttributeInput] 3197 | "Indicates whether the address is the default billing address" 3198 | default_billing: Boolean 3199 | "Indicates whether the address is the default shipping address" 3200 | default_shipping: Boolean 3201 | "The fax number" 3202 | fax: String 3203 | "The first name of the person associated with the shipping/billing address" 3204 | firstname: String 3205 | "The family name of the person associated with the shipping/billing address" 3206 | lastname: String 3207 | "The middle name of the person associated with the shipping/billing address" 3208 | middlename: String 3209 | "The customer's ZIP or postal code" 3210 | postcode: String 3211 | "An honorific, such as Dr., Mr., or Mrs." 3212 | prefix: String 3213 | "An object containing the region name, region code, and region ID" 3214 | region: CustomerAddressRegionInput 3215 | "An array of strings that define the street number and name" 3216 | street: [String] 3217 | "A value such as Sr., Jr., or III" 3218 | suffix: String 3219 | "The telephone number" 3220 | telephone: String 3221 | "The customer's Tax/VAT number (for corporate customers)" 3222 | vat_id: String 3223 | } 3224 | 3225 | "CustomerAddressRegionInput defines the customer's state or province" 3226 | input CustomerAddressRegionInput { 3227 | "The state or province name" 3228 | region: String 3229 | "The address region code" 3230 | region_code: String 3231 | "Uniquely identifies the region" 3232 | region_id: Int 3233 | } 3234 | 3235 | input CustomerInput { 3236 | "The customer's date of birth" 3237 | dob: String 3238 | "The customer's email address. Required" 3239 | email: String 3240 | "The customer's first name" 3241 | firstname: String 3242 | "The customer's gender(Male - 1, Female - 2)" 3243 | gender: Int 3244 | "Indicates whether the customer is subscribed to the company's newsletter" 3245 | is_subscribed: Boolean 3246 | "The customer's family name" 3247 | lastname: String 3248 | "The customer's middle name" 3249 | middlename: String 3250 | "The customer's password" 3251 | password: String 3252 | "An honorific, such as Dr., Mr., or Mrs." 3253 | prefix: String 3254 | "A value such as Sr., Jr., or III" 3255 | suffix: String 3256 | "The customer's Tax/VAT number (for corporate customers)" 3257 | taxvat: String 3258 | } 3259 | 3260 | input CustomizableOptionInput { 3261 | id: Int! 3262 | value_string: String! 3263 | } 3264 | 3265 | "FilterTypeInput specifies which action will be performed in a query " 3266 | input FilterTypeInput { 3267 | "Equals" 3268 | eq: String 3269 | finset: [String] 3270 | "From. Must be used with 'to'" 3271 | from: String 3272 | "Greater than" 3273 | gt: String 3274 | "Greater than or equal to" 3275 | gteq: String 3276 | "In. The value can contain a set of comma-separated values" 3277 | in: [String] 3278 | "Like. The specified value can contain % (percent signs) to allow matching of 0 or more characters" 3279 | like: String 3280 | "Less than" 3281 | lt: String 3282 | "Less than or equal to" 3283 | lteq: String 3284 | "More than or equal to" 3285 | moreq: String 3286 | "Not equal to" 3287 | neq: String 3288 | "Not in. The value can contain a set of comma-separated values" 3289 | nin: [String] 3290 | "Not null" 3291 | notnull: String 3292 | "Is null" 3293 | null: String 3294 | "To. Must be used with 'from'" 3295 | to: String 3296 | } 3297 | 3298 | "A set of relative URLs that PayPal will use in response to various actions during the authorization process. Magento prepends the base URL to this value to create a full URL. For example, if the full URL is https://www.example.com/path/to/page.html, the relative URL is path/to/page.html. Use this input for Payments Pro Hosted Solution payment method." 3299 | input HostedProInput { 3300 | "The relative URL of the page that PayPal will redirect to when the buyer cancels the transaction in order to choose a different payment method. If the full URL to this page is https://www.example.com/paypal/action/cancel.html, the relative URL is paypal/action/cancel.html." 3301 | cancel_url: String! 3302 | "The relative URL of the final confirmation page that PayPal will redirect to upon payment success. If the full URL to this page is https://www.example.com/paypal/action/return.html, the relative URL is paypal/action/return.html." 3303 | return_url: String! 3304 | } 3305 | 3306 | "The required input to request the secure URL for Payments Pro Hosted Solution payment." 3307 | input HostedProUrlInput { 3308 | "The unique ID that identifies the customer's cart" 3309 | cart_id: String! 3310 | } 3311 | 3312 | "Required input for Payflow Express Checkout payments" 3313 | input PayflowExpressInput { 3314 | "The unique ID of the PayPal user" 3315 | payer_id: String! 3316 | "The token returned by the createPaypalExpressToken mutation" 3317 | token: String! 3318 | } 3319 | 3320 | "A set of relative URLs that PayPal will use in response to various actions during the authorization process. Magento prepends the base URL to this value to create a full URL. For example, if the full URL is https://www.example.com/path/to/page.html, the relative URL is path/to/page.html. Use this input for Payflow Link and Payments Advanced payment methods." 3321 | input PayflowLinkInput { 3322 | "The relative URL of the page that PayPal will redirect to when the buyer cancels the transaction in order to choose a different payment method. If the full URL to this page is https://www.example.com/paypal/action/cancel.html, the relative URL is paypal/action/cancel.html." 3323 | cancel_url: String! 3324 | "The relative URL of the transaction error page that PayPal will redirect to upon payment error. If the full URL to this page is https://www.example.com/paypal/action/error.html, the relative URL is paypal/action/error.html." 3325 | error_url: String! 3326 | "The relative URL of the order confirmation page that PayPal will redirect to when the payment is successful and additional confirmation is not needed. If the full URL to this page is https://www.example.com/paypal/action/return.html, the relative URL is paypal/action/return.html." 3327 | return_url: String! 3328 | } 3329 | 3330 | "Input required to fetch payment token information for Payflow Link and Payments Advanced payment methods." 3331 | input PayflowLinkTokenInput { 3332 | "The unique ID that identifies the customer's cart" 3333 | cart_id: String! 3334 | } 3335 | 3336 | "Required input for Payflow Pro and Payments Pro payment methods." 3337 | input PayflowProInput { 3338 | "Required input for credit card related information" 3339 | cc_details: CreditCardDetailsInput! 3340 | } 3341 | 3342 | "Input required to complete payment. Applies to Payflow Pro and Payments Pro payment methods." 3343 | input PayflowProResponseInput { 3344 | cart_id: String! 3345 | paypal_payload: String! 3346 | } 3347 | 3348 | "Input required to fetch payment token information for Payflow Pro and Payments Pro payment methods." 3349 | input PayflowProTokenInput { 3350 | "The unique ID that identifies the customer's cart" 3351 | cart_id: String! 3352 | "A set of relative URLs that PayPal uses for callback." 3353 | urls: PayflowProUrlInput! 3354 | } 3355 | 3356 | "A set of relative URLs that PayPal will use in response to various actions during the authorization process. Magento prepends the base URL to this value to create a full URL. For example, if the full URL is https://www.example.com/path/to/page.html, the relative URL is path/to/page.html. Use this input for Payflow Pro and Payment Pro payment methods." 3357 | input PayflowProUrlInput { 3358 | "The relative URL of the page that PayPal will redirect to when the buyer cancels the transaction in order to choose a different payment method. If the full URL to this page is https://www.example.com/paypal/action/cancel.html, the relative URL is paypal/action/cancel.html." 3359 | cancel_url: String! 3360 | "The relative URL of the transaction error page that PayPal will redirect to upon payment error. If the full URL to this page is https://www.example.com/paypal/action/error.html, the relative URL is paypal/action/error.html." 3361 | error_url: String! 3362 | "The relative URL of the final confirmation page that PayPal will redirect to upon payment success. If the full URL to this page is https://www.example.com/paypal/action/return.html, the relative URL is paypal/action/return.html." 3363 | return_url: String! 3364 | } 3365 | 3366 | input PaymentMethodInput { 3367 | "Defines the required attributes for Authorize.Net payments" 3368 | authorizenet_acceptjs: AuthorizenetInput 3369 | braintree: BraintreeInput 3370 | braintree_cc_vault: BraintreeCcVaultInput 3371 | "Payment method code" 3372 | code: String! 3373 | "Required input for PayPal Hosted pro payments" 3374 | hosted_pro: HostedProInput 3375 | "Required input for Payflow Express Checkout payments" 3376 | payflow_express: PayflowExpressInput 3377 | "Required input for PayPal Payflow Link and Payments Advanced payments" 3378 | payflow_link: PayflowLinkInput 3379 | "Required input type for PayPal Payflow Pro and Payment Pro payments" 3380 | payflowpro: PayflowProInput 3381 | "Required input for Express Checkout and Payments Standard payments" 3382 | paypal_express: PaypalExpressInput 3383 | "Purchase order number" 3384 | purchase_order_number: String 3385 | } 3386 | 3387 | "Required input for Express Checkout and Payments Standard payments" 3388 | input PaypalExpressInput { 3389 | "The unique ID of the PayPal user" 3390 | payer_id: String! 3391 | "The token returned by the createPaypalExpressToken mutation" 3392 | token: String! 3393 | } 3394 | 3395 | "Defines the attributes required to receive a payment token for Express Checkout and Payments Standard payment methods." 3396 | input PaypalExpressTokenInput { 3397 | "The unique ID that identifies the customer's cart" 3398 | cart_id: String! 3399 | "Payment method code" 3400 | code: String! 3401 | "Indicates whether the buyer selected the quick checkout button. The default value is false" 3402 | express_button: Boolean 3403 | "A set of relative URLs that PayPal uses in response to various actions during the authorization process" 3404 | urls: PaypalExpressUrlsInput! 3405 | "Indicates whether the buyer clicked the PayPal credit button. The default value is false" 3406 | use_paypal_credit: Boolean 3407 | } 3408 | 3409 | "A set of relative URLs that PayPal will use in response to various actions during the authorization process. Magento prepends the base URL to this value to create a full URL. For example, if the full URL is https://www.example.com/path/to/page.html, the relative URL is path/to/page.html. Use this input for Express Checkout and Payments Standard payment methods." 3410 | input PaypalExpressUrlsInput { 3411 | "The relative URL of the page that PayPal will redirect to when the buyer cancels the transaction in order to choose a different payment method. If the full URL to this page is https://www.example.com/paypal/action/cancel.html, the relative URL is paypal/action/cancel.html." 3412 | cancel_url: String! 3413 | "The relative URL of the page that PayPal will redirect to when the payment has been put on hold for additional review. This condition mostly applies to ACH transactions, and is not applicable to most PayPal solutions. If the full URL to this page is https://www.example.com/paypal/action/success_pending.html, the relative URL is paypal/action/success_pending.html. " 3414 | pending_url: String 3415 | "The relative URL of the final confirmation page that PayPal will redirect to upon payment success. If the full URL to this page is https://www.example.com/paypal/action/return.html, the relative URL is paypal/action/return.html." 3416 | return_url: String! 3417 | "The relative URL of the order confirmation page that PayPal will redirect to when the payment is successful and additional confirmation is not needed. Not applicable to most PayPal solutions. If the full URL to this page is https://www.example.com/paypal/action/success.html, the relative URL is paypal/action/success.html." 3418 | success_url: String 3419 | } 3420 | 3421 | input PlaceOrderInput { 3422 | cart_id: String! 3423 | } 3424 | 3425 | "ProductFilterInput defines the filters to be used in the search. A filter contains at least one attribute, a comparison operator, and the value that is being searched for." 3426 | input ProductFilterInput { 3427 | "Category ID the product belongs to." 3428 | category_id: FilterTypeInput 3429 | "The product's country of origin." 3430 | country_of_manufacture: FilterTypeInput 3431 | "Timestamp indicating when the product was created." 3432 | created_at: FilterTypeInput 3433 | "The name of a custom layout." 3434 | custom_layout: FilterTypeInput 3435 | "XML code that is applied as a layout update to the product page." 3436 | custom_layout_update: FilterTypeInput 3437 | "Detailed information about the product. The value can include simple HTML tags." 3438 | description: FilterTypeInput 3439 | "Indicates whether a gift message is available." 3440 | gift_message_available: FilterTypeInput 3441 | "Indicates whether additional attributes have been created for the product." 3442 | has_options: FilterTypeInput 3443 | "The relative path to the main image on the product page." 3444 | image: FilterTypeInput 3445 | "The label assigned to a product image." 3446 | image_label: FilterTypeInput 3447 | "A number representing the product's manufacturer." 3448 | manufacturer: FilterTypeInput 3449 | "The numeric maximal price of the product. Do not include the currency code." 3450 | max_price: FilterTypeInput 3451 | "A brief overview of the product for search results listings, maximum 255 characters." 3452 | meta_description: FilterTypeInput 3453 | "A comma-separated list of keywords that are visible only to search engines." 3454 | meta_keyword: FilterTypeInput 3455 | "A string that is displayed in the title bar and tab of the browser and in search results lists." 3456 | meta_title: FilterTypeInput 3457 | "The numeric minimal price of the product. Do not include the currency code." 3458 | min_price: FilterTypeInput 3459 | "The product name. Customers use this name to identify the product." 3460 | name: FilterTypeInput 3461 | "The beginning date for new product listings, and determines if the product is featured as a new product." 3462 | news_from_date: FilterTypeInput 3463 | "The end date for new product listings." 3464 | news_to_date: FilterTypeInput 3465 | "If the product has multiple options, determines where they appear on the product page." 3466 | options_container: FilterTypeInput 3467 | "The keyword required to perform a logical OR comparison." 3468 | or: ProductFilterInput 3469 | "The price of an item." 3470 | price: FilterTypeInput 3471 | "Indicates whether the product has required options." 3472 | required_options: FilterTypeInput 3473 | "A short description of the product. Its use depends on the theme." 3474 | short_description: FilterTypeInput 3475 | "A number or code assigned to a product to identify the product, options, price, and manufacturer." 3476 | sku: FilterTypeInput 3477 | "The relative path to the small image, which is used on catalog pages." 3478 | small_image: FilterTypeInput 3479 | "The label assigned to a product's small image." 3480 | small_image_label: FilterTypeInput 3481 | "The beginning date that a product has a special price." 3482 | special_from_date: FilterTypeInput 3483 | "The discounted price of the product. Do not include the currency code." 3484 | special_price: FilterTypeInput 3485 | "The end date that a product has a special price." 3486 | special_to_date: FilterTypeInput 3487 | "The file name of a swatch image" 3488 | swatch_image: FilterTypeInput 3489 | "The relative path to the product's thumbnail image." 3490 | thumbnail: FilterTypeInput 3491 | "The label assigned to a product's thumbnail image." 3492 | thumbnail_label: FilterTypeInput 3493 | "The price when tier pricing is in effect and the items purchased threshold has been reached." 3494 | tier_price: FilterTypeInput 3495 | "Timestamp indicating when the product was updated." 3496 | updated_at: FilterTypeInput 3497 | "The part of the URL that identifies the product" 3498 | url_key: FilterTypeInput 3499 | url_path: FilterTypeInput 3500 | "The weight of the item, in units defined by the store." 3501 | weight: FilterTypeInput 3502 | } 3503 | 3504 | "ProductSortInput specifies the attribute to use for sorting search results and indicates whether the results are sorted in ascending or descending order." 3505 | input ProductSortInput { 3506 | "The product's country of origin." 3507 | country_of_manufacture: SortEnum 3508 | "Timestamp indicating when the product was created." 3509 | created_at: SortEnum 3510 | "The name of a custom layout." 3511 | custom_layout: SortEnum 3512 | "XML code that is applied as a layout update to the product page." 3513 | custom_layout_update: SortEnum 3514 | "Detailed information about the product. The value can include simple HTML tags." 3515 | description: SortEnum 3516 | "Indicates whether a gift message is available." 3517 | gift_message_available: SortEnum 3518 | "Indicates whether additional attributes have been created for the product." 3519 | has_options: SortEnum 3520 | "The relative path to the main image on the product page." 3521 | image: SortEnum 3522 | "The label assigned to a product image." 3523 | image_label: SortEnum 3524 | "A number representing the product's manufacturer." 3525 | manufacturer: SortEnum 3526 | "A brief overview of the product for search results listings, maximum 255 characters." 3527 | meta_description: SortEnum 3528 | "A comma-separated list of keywords that are visible only to search engines." 3529 | meta_keyword: SortEnum 3530 | "A string that is displayed in the title bar and tab of the browser and in search results lists." 3531 | meta_title: SortEnum 3532 | "The product name. Customers use this name to identify the product." 3533 | name: SortEnum 3534 | "The beginning date for new product listings, and determines if the product is featured as a new product." 3535 | news_from_date: SortEnum 3536 | "The end date for new product listings." 3537 | news_to_date: SortEnum 3538 | "If the product has multiple options, determines where they appear on the product page." 3539 | options_container: SortEnum 3540 | "The price of the item." 3541 | price: SortEnum 3542 | "Indicates whether the product has required options." 3543 | required_options: SortEnum 3544 | "A short description of the product. Its use depends on the theme." 3545 | short_description: SortEnum 3546 | "A number or code assigned to a product to identify the product, options, price, and manufacturer." 3547 | sku: SortEnum 3548 | "The relative path to the small image, which is used on catalog pages." 3549 | small_image: SortEnum 3550 | "The label assigned to a product's small image." 3551 | small_image_label: SortEnum 3552 | "The beginning date that a product has a special price." 3553 | special_from_date: SortEnum 3554 | "The discounted price of the product." 3555 | special_price: SortEnum 3556 | "The end date that a product has a special price." 3557 | special_to_date: SortEnum 3558 | "The file name of a swatch image" 3559 | swatch_image: SortEnum 3560 | "The relative path to the product's thumbnail image." 3561 | thumbnail: SortEnum 3562 | "The label assigned to a product's thumbnail image." 3563 | thumbnail_label: SortEnum 3564 | "The price when tier pricing is in effect and the items purchased threshold has been reached." 3565 | tier_price: SortEnum 3566 | "Timestamp indicating when the product was updated." 3567 | updated_at: SortEnum 3568 | "The part of the URL that identifies the product" 3569 | url_key: SortEnum 3570 | url_path: SortEnum 3571 | "The weight of the item, in units defined by the store." 3572 | weight: SortEnum 3573 | } 3574 | 3575 | input RemoveCouponFromCartInput { 3576 | cart_id: String! 3577 | } 3578 | 3579 | input RemoveItemFromCartInput { 3580 | cart_id: String! 3581 | cart_item_id: Int! 3582 | } 3583 | 3584 | input SendEmailToFriendInput { 3585 | product_id: Int! 3586 | recipients: [SendEmailToFriendRecipientInput]! 3587 | sender: SendEmailToFriendSenderInput! 3588 | } 3589 | 3590 | input SendEmailToFriendRecipientInput { 3591 | email: String! 3592 | name: String! 3593 | } 3594 | 3595 | input SendEmailToFriendSenderInput { 3596 | email: String! 3597 | message: String! 3598 | name: String! 3599 | } 3600 | 3601 | input SetBillingAddressOnCartInput { 3602 | billing_address: BillingAddressInput! 3603 | cart_id: String! 3604 | } 3605 | 3606 | input SetGuestEmailOnCartInput { 3607 | cart_id: String! 3608 | email: String! 3609 | } 3610 | 3611 | input SetPaymentMethodAndPlaceOrderInput { 3612 | cart_id: String! 3613 | payment_method: PaymentMethodInput! 3614 | } 3615 | 3616 | input SetPaymentMethodOnCartInput { 3617 | cart_id: String! 3618 | payment_method: PaymentMethodInput! 3619 | } 3620 | 3621 | input SetShippingAddressesOnCartInput { 3622 | cart_id: String! 3623 | shipping_addresses: [ShippingAddressInput]! 3624 | } 3625 | 3626 | input SetShippingMethodsOnCartInput { 3627 | cart_id: String! 3628 | shipping_methods: [ShippingMethodInput]! 3629 | } 3630 | 3631 | input ShippingAddressInput { 3632 | address: CartAddressInput 3633 | customer_address_id: Int 3634 | } 3635 | 3636 | input ShippingMethodInput { 3637 | carrier_code: String! 3638 | method_code: String! 3639 | } 3640 | 3641 | input SimpleProductCartItemInput { 3642 | customizable_options: [CustomizableOptionInput] 3643 | data: CartItemInput! 3644 | } 3645 | 3646 | input UpdateCartItemsInput { 3647 | cart_id: String! 3648 | cart_items: [CartItemUpdateInput]! 3649 | } 3650 | 3651 | input VirtualProductCartItemInput { 3652 | customizable_options: [CustomizableOptionInput] 3653 | data: CartItemInput! 3654 | } 3655 | 3656 | input createEmptyCartInput { 3657 | cart_id: String 3658 | } 3659 | --------------------------------------------------------------------------------