diff --git a/.github/linters/metadata.schema.yml b/.github/linters/metadata.schema.yml index c3d86d9f..a3d58552 100644 --- a/.github/linters/metadata.schema.yml +++ b/.github/linters/metadata.schema.yml @@ -19,15 +19,19 @@ properties: - Cloud - Configuration - Cron + - Data Import + - Data Export - Events - Extensibility - Extensions - GraphQL - Integration - Inventory + - Merchandising - Payments - Performance - Personalization + - Product discovery - Recommendations - Reporting - REST @@ -37,7 +41,8 @@ properties: - Storefront - Tools - Upgrade + - Troubleshooting required: - title - - description \ No newline at end of file + - description diff --git a/.github/workflows/stage.yml b/.github/workflows/stage.yml index 3580f2c1..46b454e6 100644 --- a/.github/workflows/stage.yml +++ b/.github/workflows/stage.yml @@ -7,6 +7,7 @@ - ccdm-early-access jobs: set-state: + if: ${{ github.ref == 'refs/heads/ccdm-early-access' }} runs-on: ubuntu-latest outputs: clean_cache: ${{ contains(github.event.inputs.clean, 'yes') }} diff --git a/.gitignore b/.gitignore index a2384d33..b959090f 100644 --- a/.gitignore +++ b/.gitignore @@ -47,4 +47,4 @@ tmp/ yalc.lock # other -tmp/* +tmp/* \ No newline at end of file diff --git a/.remarkrc.mjs b/.remarkrc.mjs deleted file mode 100644 index b83e300e..00000000 --- a/.remarkrc.mjs +++ /dev/null @@ -1,34 +0,0 @@ -import remarkHeadingId from 'remark-heading-id'; -import remarkValidateLinks from 'remark-validate-links'; -import remarkFrontmatter from 'remark-frontmatter'; -import remarkLintFrontmatterSchema from 'remark-lint-frontmatter-schema'; -import remarkLintNoDeadUrls from 'remark-lint-no-dead-urls'; - -const remarkConfig = { - plugins: [ - remarkHeadingId, - remarkValidateLinks, - remarkFrontmatter, - [ - remarkLintFrontmatterSchema, - { - schemas: { - /* One schema for many files */ - './.github/linters/metadata.schema.yml': [ - /* Support glob patterns ———v */ - './src/pages/**/*.md', - ], - }, - }, - ], - [ - remarkLintNoDeadUrls, - { - skipUrlPatterns: [ - // 'https://www.php.net' - ] - } - ] - ], -}; -export default remarkConfig; diff --git a/.remarkrc.yaml b/.remarkrc.yaml new file mode 100644 index 00000000..d4c66a57 --- /dev/null +++ b/.remarkrc.yaml @@ -0,0 +1,8 @@ +plugins: + - remark-heading-id + - remark-validate-links + - remark-frontmatter + - - remark-lint-frontmatter-schema + - schemas: + './.github/linters/metadata.schema.yml': + - './src/pages/**/*.md' \ No newline at end of file diff --git a/.remarkrc.yml b/.remarkrc.yml new file mode 100644 index 00000000..8c7b4a66 --- /dev/null +++ b/.remarkrc.yml @@ -0,0 +1,8 @@ +plugins: + - remark-heading-id + - remark-validate-links + - remark-frontmatter + - - remark-lint-frontmatter-schema + - schemas: + './.github/linters/metadata.schema.yml': + - './src/pages/**/*.md' diff --git a/README.md b/README.md index 0eeb9d1d..61bcaab6 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,27 @@ To build the site locally: yarn dev ``` -**Tip:** If you encounter unexpected failures or delays, try to clean up the gatsby and yarn caches with the command: `yarn clean && yarn cache clean` for troubleshooting. +## Components + +To achieve specific user experience goals for Commerce documentation, this repo overrides the original [`Edition`](https://github.com/adobe/aio-theme/blob/main/packages/gatsby-theme-aio/src/components/Edition/index.js) component from the upstream [`aio-theme`](https://github.com/adobe/aio-theme/) repo that we use as a dependency. + +### Edition + +The custom `Edition` component in this repo displays a badge indicating whether a feature or functionality is available in specific Adobe Commerce environments. It has been customized to align with the badges that we use in Experience League docs. + +#### Usage + +```yaml +# Page-level (metadata) +edition: saas # For SaaS-only features +edition: paas # For PaaS-only features +``` + +```md + + + +``` ## Resources diff --git a/gatsby-browser.js b/gatsby-browser.js new file mode 100644 index 00000000..39c84549 --- /dev/null +++ b/gatsby-browser.js @@ -0,0 +1,70 @@ +/* + * Copyright 2020 Adobe. All rights reserved. + * This file is licensed to you under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +import React from 'react'; +import { MDXProvider } from '@mdx-js/react'; +import { Edition } from './src/@adobe/gatsby-theme-aio/components/Edition'; + +// Define the components that will be available in MDX files +const components = { + // Register the Edition component for inline use + Edition +}; + +// Wrap the root element with the MDXProvider +export const wrapRootElement = ({ element }) => { + return {element}; +}; + +const isBrowser = typeof window !== "undefined"; + +export const onClientEntry = () => { + // set adobe analytics window object + if (isBrowser) { + window._satellite = window._satellite || {}; + window.alloy_all = window.alloy_all || {}; + window.alloy_all.data = window.alloy_all.data || {}; + window.alloy_all.data._adobe_corpnew = window.alloy_all.data._adobe_corpnew || {}; + window.alloy_all.data._adobe_corpnew.web = window.alloy_all.data._adobe_corpnew.web || {}; + window.alloy_all.data._adobe_corpnew.web.webPageDetails = window.alloy_all.data._adobe_corpnew.web.webPageDetails || {}; + } +}; + +export const onRouteUpdate = ({ location, prevLocation }) => { + if (isBrowser) { + function watchAndFireAnalytics() { + // eslint-disable-next-line no-undef + if (typeof window._satellite !== 'undefined' && typeof window._satellite.track === 'function') { + // eslint-disable-next-line no-undef + _satellite.track('state', + { + xdm: {}, + data: { + _adobe_corpnew: { + web: { + webPageDetails: { + customPageName: location.href + } + } + } + } + } + ); + + clearInterval(intervalId); + } + } + + // watch if analytics is online then track page + const intervalId = setInterval(watchAndFireAnalytics, 1000); + } +} diff --git a/gatsby-ssr.js b/gatsby-ssr.js index 39c2f059..31b3bfcb 100644 --- a/gatsby-ssr.js +++ b/gatsby-ssr.js @@ -1,5 +1,5 @@ /* - * Copyright 2021 Adobe. All rights reserved. + * Copyright 2020 Adobe. All rights reserved. * This file is licensed to you under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may obtain a copy * of the License at http://www.apache.org/licenses/LICENSE-2.0 @@ -11,10 +11,16 @@ */ import React from 'react'; -import {withPrefix} from 'gatsby'; +import { MDXProvider } from '@mdx-js/react'; +import { Edition } from './src/@adobe/gatsby-theme-aio/components/Edition'; -export const onRenderBody = ({setHeadComponents}) => { - setHeadComponents([ - - ]); -}; \ No newline at end of file +// Define the components that will be available in MDX files +const components = { + // Register the Edition component for inline use + Edition +}; + +// Wrap the root element with the MDXProvider +export const wrapRootElement = ({ element }) => { + return {element}; +}; diff --git a/package.json b/package.json index debe0561..312837b5 100644 --- a/package.json +++ b/package.json @@ -7,18 +7,17 @@ "url": "https://github.com/AdobeDocs/commerce-services" }, "dependencies": { - "@adobe/gatsby-theme-aio": "4.14.19", + "@adobe/gatsby-theme-aio": "4.15.1", "gatsby": "4.22.0", "react": "^17.0.0", - "react-dom": "^17.0.0", - "spectaql": "^3.0.2" + "react-dom": "^17.0.0" }, "devDependencies": { + "browserslist": "latest", "remark-cli": "^12.0.1", "remark-frontmatter": "^5.0.0", "remark-heading-id": "^1.0.1", "remark-lint-frontmatter-schema": "^3.15.4", - "remark-lint-no-dead-urls": "^1.1.0", "remark-validate-links": "^13.0.1" }, "scripts": { @@ -29,12 +28,13 @@ "build": "NODE_OPTIONS='--max-old-space-size=8192' gatsby build", "serve": "NODE_OPTIONS='--max-old-space-size=8192' gatsby serve", "clean": "gatsby clean", - "test": "remark src/pages --quiet --frail", + "test": "remark src/pages --frail", "build:admin-api": "spectaql --target-file index.html --config spectaql/config-admin.yml", - "dev:admin-api": "spectaql --development-mode-live --config spectaql/config-admin.yml", + "dev:admin-api": "spectaql --target-file index.html --config spectaql/config-admin.yml --development-mode", "build:storefront-api": "spectaql --target-file index.html --config spectaql/config-storefront.yml", - "dev:storefront-api": "spectaql --development-mode-live --config spectaql/config-storefront.yml", - "build:graphql": "yarn run build:admin-api && yarn run build:storefront-api" + "dev:storefront-api": "spectaql --target-file index.html --config spectaql/config-storefront.yml --development-mode", + "build:graphql": "yarn build:admin-api && yarn build:storefront-api", + "lint": "docker run --rm -e RUN_LOCAL=true --env-file .github/super-linter.env -v \"$PWD\":/tmp/lint github/super-linter:slim-v5" }, "packageManager": "yarn@3.2.4" } diff --git a/spectaql/config-storefront.yml b/spectaql/config-storefront.yml index d592dac6..d3954d78 100644 --- a/spectaql/config-storefront.yml +++ b/spectaql/config-storefront.yml @@ -422,12 +422,12 @@ info: ############################################## description: | - Use the storefront GraphQL API to access rich view-model (read-only) catalog data to build product-related storefront experiences. - For more information about the API, see the developer documentation. - title: Storefront API + Use the Merchandising GraphQL API to access rich view-model (read-only) catalog data to build product-related storefront experiences. + For more information about the API, see the developer documentation. + title: Merchandising GraphQL API # This is non-standard and optional. If omitted, will use "title". Also, only relevant # when building non-embedded. - x-htmlTitle: Storefront API + x-htmlTitle: Merchandising GraphQL API # termsOfService: 'https://yoursite.com/terms' # contact: # name: YourSite Support diff --git a/spectaql/metadata-storefront.json b/spectaql/metadata-storefront.json index 7b76c15f..76e7956e 100644 --- a/spectaql/metadata-storefront.json +++ b/spectaql/metadata-storefront.json @@ -1,5 +1,13 @@ { + "INTERFACE": { + "CategoryViewInterface": { + "documentation": { "undocumented": true } + } + }, "OBJECT": { + "CategoryView": { + "documentation": { "undocumented": true } + }, "Query": { "fields": { "categories": { diff --git a/src/@adobe/gatsby-theme-aio/components/Edition/index.js b/src/@adobe/gatsby-theme-aio/components/Edition/index.js new file mode 100644 index 00000000..95f779fa --- /dev/null +++ b/src/@adobe/gatsby-theme-aio/components/Edition/index.js @@ -0,0 +1,71 @@ +/* + * Copyright 2021 Adobe. All rights reserved. + * This file is licensed to you under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under + * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS + * OF ANY KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ + +import React from 'react'; +import PropTypes from 'prop-types'; +import '@spectrum-css/badge'; +import '@spectrum-css/link'; +import '@spectrum-css/tooltip'; + +let editionText = ''; +let editionColor = ''; +let editionTooltip = ''; +const EDITIONS_LINK = 'https://experienceleague.adobe.com/en/docs/commerce/user-guides/product-solutions'; + +const Edition = ({ ...props }) => { + switch (props.name) { + case 'paas': + editionText = 'PaaS only'; + editionColor = 'spectrum-Badge--informative'; + editionTooltip = 'Applies to Adobe Commerce on Cloud (Adobe-managed PaaS infrastructure) and on-premises projects only.'; + break; + case 'saas': + editionText = 'SaaS only'; + editionColor = 'spectrum-Badge--positive'; + editionTooltip = 'Applies to Adobe Commerce as a Cloud Service and Adobe Commerce Optimizer projects (Adobe-managed SaaS infrastructure).'; + break; + default: + editionText = 'Create an Edition tag'; + editionColor = 'spectrum-Badge--yellow'; + editionTooltip = ''; + } + + return ( + + + {editionText} + + + ); +}; + +Edition.propTypes = { + name: PropTypes.string +}; + +export { Edition }; diff --git a/src/_includes/authentication/get-new-bearer-token.md b/src/_includes/authentication/get-new-bearer-token.md index b3afeca1..7ef7b1e8 100644 --- a/src/_includes/authentication/get-new-bearer-token.md +++ b/src/_includes/authentication/get-new-bearer-token.md @@ -15,4 +15,8 @@ Replace the following placeholders with your credentials: - ``: The client ID generated for your Adobe developer project - ``: The client secret generated for your Adobe developer project -You can get these credentials from the Adobe Developer Console project details page. If you don't have access to the developer console, contact your system administrator to get the credentials. +You can get these credentials from the Adobe Developer Console project details page. If you don't have access to the developer console, contact your system administrator for assistance. + + + +For information on managing, refreshing, and revoking bearer tokens, see the [User Authentication Implementation Guide](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/) in the *Adobe Developer Console documentation*. diff --git a/src/_includes/authentication/get-tenant-id.md b/src/_includes/authentication/get-tenant-id.md index dd75e273..80d65ec7 100644 --- a/src/_includes/authentication/get-tenant-id.md +++ b/src/_includes/authentication/get-tenant-id.md @@ -1,4 +1,4 @@ -Find your tenant ID in the access URLs for your Commerce Optimizer project in Cloud Manager. +From Cloud Manager, you can find your tenant ID in the instance detailLs for your Commerce Optimizer project. 1. Log in to your [Adobe Experience Cloud](https://experience.adobe.com/) account. @@ -6,10 +6,14 @@ Find your tenant ID in the access URLs for your Commerce Optimizer project in Cl The Commerce Cloud Manager displays a list of instances that are available in your Adobe IMS organization. -1. To view the access URLs including the base URL for the REST and GraphQL APIs, click the information icon next to the instance name. +1. To get the tenant ID, click the information icon next to the Adobe Commerce Optimizer instance name. - ![Access URLs for Commerce Optimizer UI, REST, and GraphQL APIs](../../pages/_images/aco-instance-tenant-id.png){zoomable="yes"} + ![Access URLs for Commerce Optimizer UI, REST, and GraphQL APIs](../../pages/_images/reporting/aco-instance-details.png) - + The instance details page opens, displaying the tenant ID and other instance information. The tenant ID is displayed in the `Instance ID` field. - If you don't have access to the Commerce Cloud Manager, contact your system administrator. +You can also find the tenant ID from the access URL for the Adobe Commerce Optimizer application interface, the value is in the path, for example `/in:XDevkG9W6UbwgQmPn995r3/`. + + + +If you don't have access to the Commerce Cloud Manager, contact your system administrator. diff --git a/src/_includes/redocly-intro.md b/src/_includes/redocly-intro.md new file mode 100644 index 00000000..2df1ee90 --- /dev/null +++ b/src/_includes/redocly-intro.md @@ -0,0 +1 @@ +The schemas documented here are autogenerated from Adobe Commerce. diff --git a/src/data/navigation/header.js b/src/data/navigation/header.js index 9b159e44..a0167a89 100644 --- a/src/data/navigation/header.js +++ b/src/data/navigation/header.js @@ -1,55 +1,44 @@ module.exports = [ - { - title: "Commerce Data Services", - path: "/", - }, - { - title: "Merchandising Services powered by Channels and Policies", - menu: [ - { - title: "Overview", - path: "/composable-catalog/" - }, - { - title: "Catalog data ingestion", - path: "/composable-catalog/data-ingestion/" - }, -/* Commenting out the Channel and Policies API section during the early access period. Customers will -use the Commerce Optimizer UI to configure channels and policies. - { - title: "Channels and Policies", - path: "/composable-catalog/admin/" - }, -*/ - { - title: "Storefront", - path: "/composable-catalog/storefront-services/" - }, - ] - }, - { - title: "Storefront APIs", - path: "/graphql/" - }, - { - title: "Events and SDKs", - menu: [ - { - title: "Storefront Events SDK", - path: "/shared-services/storefront-events/" - }, - { - title: "Product Recommendations SDK", - path: "/product-recommendations/" - }, - { - title: "Live Search Events", - path: "/live-search/" - }, - ] - }, - { - title: "Reporting", - path: "/reporting/" - } - ]; + { + title: "Merchandising Services", + path: "/", + }, + { + title: "Developer Guide", + path: "/composable-catalog/" + }, + { + title: "API Reference", + menu: [ + { + title: "Catalog data ingestion REST API", + path: "/composable-catalog/data-ingestion/api-reference.md" + }, + { + title: "Merchandising GraphQL API", + path: "/composable-catalog/storefront-services/api-reference.md" + }, + ] + }, + { + title: "Events and SDKs", + menu: [ + { + title: "Storefront Events SDK", + path: "/shared-services/storefront-events/" + }, + { + title: "Product Recommendations SDK", + path: "/product-recommendations/" + }, + { + title: "Live Search Events", + path: "/live-search/" + }, + ] + }, + { + title: "Reporting", + path: "/reporting/" + } +]; diff --git a/src/data/navigation/sections/composable-catalog.js b/src/data/navigation/sections/composable-catalog.js index 5b4b84c1..c7406b52 100644 --- a/src/data/navigation/sections/composable-catalog.js +++ b/src/data/navigation/sections/composable-catalog.js @@ -1,62 +1,57 @@ module.exports = [ { - title: "Merchandising Services powered by Channels and Policies", + title: "Merchandising Services", path: "/composable-catalog/", pages: [ - { title: "Set up and manage catalogs", - path: "/composable-catalog/manage-catalogs.md" + { + title: "Ingest product and price data", + path: "/composable-catalog/data-ingestion/", + header: "true", + pages: [ + { + title: "Authentication", + path: "/composable-catalog/data-ingestion/authentication.md" + }, + { + title: "Get started", + path: "/composable-catalog/data-ingestion/using-the-api.md" + }, + { + title: "API Reference", + path: "/composable-catalog/data-ingestion/api-reference" + }, + ] + }, + { + title: "Retrieve catalog data", + path: "/composable-catalog/storefront-services/", + header: "true", + pages: [ + { + title: "Get started", + path: "/composable-catalog/storefront-services/using-the-api.md" + }, + { + title: "Use cases", + path: "/composable-catalog/storefront-services/use-cases.md" + }, + { + title: "Limitations", + path: "/composable-catalog/storefront-services/limitations.md" + }, + { + title: "Monitor and troubleshoot", + path: "/composable-catalog/storefront-services/troubleshooting.md" + }, + { + title: "API Reference", + path: "/composable-catalog/storefront-services/api-reference.md" + }, + ] }, { title: "Tutorial", path: "/composable-catalog/ccdm-use-case.md" }, - { - title: "Catalog data ingestion API", - path: "/composable-catalog/data-ingestion/", - pages: [ - { - title: "Using the API", - path: "/composable-catalog/data-ingestion/using-the-api.md" - }, - { - title: "API Reference", - path: "/composable-catalog/data-ingestion/api-reference.md" - }, - ] - }, -/* Commenting out the Channel and Policies API section during the early access period. Customers will -use the Commerce Optimizer UI to configure channels and policies. - - { - title: "Channels and Policies API", - path: "composable-catalog/admin/", - header: "true", - pages: [ - { - title: "Using the API", - path: "/composable-catalog/admin/using-the-api.md" - }, - { - title: "API Reference", - path: "/composable-catalog/admin/api-reference.md" - }, - ] - }, -*/ - { - title: "Storefront API", - path: "composable-catalog/storefront-services/", - header: "true", - pages: [ - { - title: "Using the API", - path: "/composable-catalog/storefront-services/using-the-api.md" - }, - { - title: "API Reference", - path: "/composable-catalog/storefront-services/api-reference.md" - }, - ] - }, ] - }, + } ]; \ No newline at end of file diff --git a/src/data/navigation/sections/graphql.js b/src/data/navigation/sections/graphql.js deleted file mode 100644 index a3d3a798..00000000 --- a/src/data/navigation/sections/graphql.js +++ /dev/null @@ -1,56 +0,0 @@ -module.exports = [ - { - title: "Introduction", - path: "/graphql/", - }, - { - title: "Catalog Service", - path: "/graphql/catalog-service", - pages:[ - { - title: "categories query", - path: "/graphql/catalog-service/categories.md", - }, - { - title: "products query", - path: "/graphql/catalog-service/products.md" - }, - { - title: "productSearch query", - path: "/graphql/live-search/product-search.md", - }, - { - title: "refineProduct query", - path: "/graphql/catalog-service/refine-product.md" - }, - { - title: "variants query", - path: "/graphql/catalog-service/product-variants.md" - } - ] - }, - { - title: "Live Search", - path: "/graphql/live-search", - pages: [ - { - title: "attributeMetadata query", - path: "/graphql/live-search/attribute-metadata.md" - }, - { - title: "productSearch query", - path: "/graphql/live-search/product-search.md" - } - ] - }, - { - title: "Product Recommendations", - path: "/graphql/recommendations/", - pages: [ - { - title: "recommendations query", - path: "graphql/recommendations/recommendations.md" - } - ] - }, -]; diff --git a/src/data/navigation/sections/index.js b/src/data/navigation/sections/index.js index 120e38c1..1c822c41 100644 --- a/src/data/navigation/sections/index.js +++ b/src/data/navigation/sections/index.js @@ -1,9 +1,9 @@ +const composable_catalog = require("./composable-catalog"); const live_search = require("./live_search"); const product_recommendations = require("./product_recommendations"); +const shared_services = require("./shared_services"); const reporting = require("./reporting"); -const shared_services = require("./shared_services"); -const graphql = require("./graphql"); -const composable_catalog = require("./composable-catalog"); -module.exports = [...live_search,...product_recommendations,...graphql,...shared_services, ...reporting,...composable_catalog]; +module.exports = [...composable_catalog,...live_search,...product_recommendations,...shared_services,...reporting]; + diff --git a/src/data/navigation/sections/reporting.js b/src/data/navigation/sections/reporting.js index ad2ddcc3..6133fd5b 100644 --- a/src/data/navigation/sections/reporting.js +++ b/src/data/navigation/sections/reporting.js @@ -2,17 +2,19 @@ module.exports = [ { title: "Adobe Commerce Reporting API", path: "/reporting/", - }, - { - title: "Export API", - path: "/reporting/export-api/", - }, - { - title: "Import API", - path: "/reporting/import-api/", - }, - { - title: "Libraries", - path: "/reporting/libraries/", + pages: [ + { + title: "Export API", + path: "/reporting/export-api/", + }, + { + title: "Import API", + path: "/reporting/import-api/", + }, + { + title: "Libraries", + path: "/reporting/libraries/", + }, + ], }, ]; \ No newline at end of file diff --git a/src/openapi/.redocly.yaml b/src/openapi/.redocly.yaml index 49f69292..f3190981 100644 --- a/src/openapi/.redocly.yaml +++ b/src/openapi/.redocly.yaml @@ -23,4 +23,4 @@ theme: ctrlFHijack: true scrollYOffset: 64 disableSidebar: true - disableDeepLinks: false + disableDeepLinks: false \ No newline at end of file diff --git a/src/openapi/README.md b/src/openapi/README.md index c69fa73b..96d9f549 100644 --- a/src/openapi/README.md +++ b/src/openapi/README.md @@ -1,9 +1,9 @@ -# Data Ingestion REST API Reference documenation +# Data Ingestion REST API Reference documentation The Data Ingestion API Reference is embedded in the [Data Ingestion API reference topic](https://github.com/AdobeDocs/commerce-services/edit/ccdm-early-access/src/pages/composable-catalog/data-ingestion/api-reference.md) using the `RedoclyAPIBlock` component from the Adobe I/O theme. The component configuration includes: - **Schema path**—The `src` variable provides the path to the schema file used to generate the API reference. The schema, `data-ingestion-schema-v1.yaml` is maintained by engineering in this documentation repository. If the schema is moved, update the path value. - + - **Redocly options**—Configuration options that control the functionality of the generated API reference. For details, see [RedoclyAPIBlock](https://github.com/adobe/aio-theme?tab=readme-ov-file#redoclyapiblock). **NOTE:** If you generate the schema locally, configuration options are provided in the `.redocly.yaml` file. For details, see *[Configure Redoc](https://redocly.com/docs/redoc/config)* in the Redoc documentation. diff --git a/src/openapi/data-ingestion-schema-v1.yaml b/src/openapi/data-ingestion-schema-v1.yaml index fe2d25f0..cd942416 100644 --- a/src/openapi/data-ingestion-schema-v1.yaml +++ b/src/openapi/data-ingestion-schema-v1.yaml @@ -2519,4 +2519,4 @@ components: description: | Too many requests. Indicates that a client has exceeded the rate limit of 300 requests per minute. Check the `retry-after` header to get the time (in seconds) to wait before sending the next request. - type: string + type: string \ No newline at end of file diff --git a/src/pages/_images/aco-instance-tenant-id.png b/src/pages/_images/aco-instance-tenant-id.png deleted file mode 100644 index 7855d365..00000000 Binary files a/src/pages/_images/aco-instance-tenant-id.png and /dev/null differ diff --git a/src/pages/_images/merchandising/merchandising-data-flow.png b/src/pages/_images/merchandising/merchandising-data-flow.png new file mode 100644 index 00000000..dd0f1dfd Binary files /dev/null and b/src/pages/_images/merchandising/merchandising-data-flow.png differ diff --git a/src/pages/_images/pipeline-illustration.png b/src/pages/_images/pipeline-illustration.png new file mode 100644 index 00000000..54a75f2f Binary files /dev/null and b/src/pages/_images/pipeline-illustration.png differ diff --git a/src/pages/_images/reporting/aco-instance-details.png b/src/pages/_images/reporting/aco-instance-details.png new file mode 100644 index 00000000..c747bd40 Binary files /dev/null and b/src/pages/_images/reporting/aco-instance-details.png differ diff --git a/src/pages/composable-catalog/admin/api-reference.md b/src/pages/composable-catalog/admin/api-reference.md index e129e0b5..b31b5f85 100644 --- a/src/pages/composable-catalog/admin/api-reference.md +++ b/src/pages/composable-catalog/admin/api-reference.md @@ -1,6 +1,5 @@ --- -title: API Reference -edition: ee +title: Admin GraphQL API Reference description: Learn about the Admin GraphQL APIs to create and manage catalogs and configure settings and rules for product search and recommendations capabilities. keywords: - GraphQL diff --git a/src/pages/composable-catalog/admin/index.md b/src/pages/composable-catalog/admin/index.md index 271487c9..158bdde4 100644 --- a/src/pages/composable-catalog/admin/index.md +++ b/src/pages/composable-catalog/admin/index.md @@ -1,6 +1,6 @@ --- -title: Channels and Policies APIs -edition: ee +title: Catalog Views and Policies APIs +edition: saas description: Use the Channels and Policies API to set up the channels, policies, and scopes for commerce catalogs. keywords: - GraphQL @@ -11,4 +11,4 @@ keywords: # Channels and Policies API -Developers creating ecommerce sites to sell to various businesses can use the Catalog Management Admin APIs to setup, configure, and manage catalogs and catalog tools for product search and recommendations. The Channels and Policies API is implemented as a GraphQL (Graph Query Language) endpoint to manage the channels and policies used to setup and manage catalogs. +Developers creating ecommerce sites to sell to various businesses can use the Catalog Management Admin APIs to setup, configure, and manage catalogs and catalog tools for product search and recommendations. The Catalog Views and Policies API is implemented as a GraphQL (Graph Query Language) endpoint to manage the channels and policies used to setup and manage catalogs. diff --git a/src/pages/composable-catalog/admin/using-the-api.md b/src/pages/composable-catalog/admin/using-the-api.md index 15c94d69..a765707c 100644 --- a/src/pages/composable-catalog/admin/using-the-api.md +++ b/src/pages/composable-catalog/admin/using-the-api.md @@ -1,7 +1,7 @@ --- -title: Using the Channels and Policies API -edition: ee -description: Get information about using GraphQL queries and mutations to manage channels, policies, and configuration for search and recommendations capabilities. +title: Using the Catalog Views and Policies API +edition: saas +description: Get information about using GraphQL queries and mutations to manage catalog views, policies, and configuration for search and recommendations capabilities. keywords: - GraphQL - Services @@ -9,11 +9,11 @@ keywords: - Performance --- -# Using the Channels and Policies API +# Using the Catalog Views and Policies API ## Base URL -Use the following base URL for all Channels and Policies API requests. +Use the following base URL for all Catalog Views and Policies API requests. `https://na1-sandbox.api.commerce.adobe.com//admin/graphql` diff --git a/src/pages/composable-catalog/ccdm-use-case.md b/src/pages/composable-catalog/ccdm-use-case.md index c90fa50c..95ef1730 100644 --- a/src/pages/composable-catalog/ccdm-use-case.md +++ b/src/pages/composable-catalog/ccdm-use-case.md @@ -1,6 +1,5 @@ --- title: Create a composable catalog for your storefront -edition: ee description: Tutorial to create a composable catalog that supports a single base catalog which can deliver catalog projections based on geographic locations and brand. keywords: - GraphQL @@ -37,12 +36,12 @@ This use case demonstrates an end-to-end workflow for using Merchandising Servic - `Aurora Prism battery` belongs to `Aurora` and is aimed to be sold in `USA`. - `Bolt Atlas battery` belongs to `Bolt` and is aimed to be sold in `UK`. - The values for brand and location are product attributes of each SKU. - - The product specification does not include any `View` or `Policy` values. When retrieving products using the Storefront API, View and Policy values are passed in using API headers. + - The product specification does not include any `View` or `Policy` values. When retrieving products using Merchandising API, View and Policy values are passed in using API headers. -- Storefront APIs +- Merchandising APIs - A catalog service API endpoint is used to represent how data will be retrieved using Merchandising Services concepts. - Pay close attention to the API headers. The Merchandising Services concepts for filtering products using catalog views and policies are implemented through the API headers. - - Two Storefront API calls are represented: + - Two Merchandising API calls are represented: - API Call one: Returns a SKU for `Aurora` and `USA` combination. - API Call two: Returns a SKU for `Bolt` and `UK` combination. @@ -259,55 +258,6 @@ curl --request POST \ ]" ``` -curl --request POST \ - --url https://na1-sandbox.api.commerce.adobe.com/{tenantId}/v1/catalog/products/metadata \ - --header "Authorization: Bearer {access token}" \ - --header "Content-Type: application/json" \ - --data "[ - { - "code": "brand", - "source": { - "locale": "en-US" - }, - "label": "Brand", - "dataType": "TEXT", - "visibleIn": [ - "CATALOG", - "SEARCH" - ], - "filterable": true, - "sortable": false, - "searchable": true, - "searchWeight": 55, - "searchTypes": [ - "AUTOCOMPLETE", - "CONTAINS", - "STARTS_WITH" - ] - }, - { - "code": "country", - "source": { - "locale": "en-US" - }, - "label": "Country", - "dataType": "TEXT", - "visibleIn": [ - "CATALOG", - "SEARCH" - ], - "filterable": true, - "sortable": false, - "searchable": true, - "searchWeight": 55, - "searchTypes": [ - "AUTOCOMPLETE", - "CONTAINS", - "STARTS_WITH" - ] - } -]" - **Response** ```shell @@ -685,9 +635,9 @@ In this step, create the following policies and catalog view for Zenith Automoti ## Step 3. Retrieve SKUs -Use the Storefront GraphQL API [productSearch](https://developer-stage.adobe.com/commerce/services/graphql-api/storefront-api/index.html#query-productSearch) query to retrieve the SKUs you created. +Use the Merchandising GraphQL API [productSearch](https://developer-stage.adobe.com/commerce/services/graphql-api/storefront-api/index.html#query-productSearch) query to retrieve the SKUs you created. -Send GraphQL requests for Storefront APIs to the following base URL: +Send GraphQL requests for Merchandising APIs to the following base URL: `http://na1-sandbox.api.commerce.adobe.com/{tenantId}/graphql` @@ -695,7 +645,7 @@ Send GraphQL requests for Storefront APIs to the following base URL: Retrieve the SKU you created for `Aurora` where location is `USA`. Use the search phrase `Zenith Automotive Vehicles and Parts`, and specify a page size to limit results. -The brand and location (`AC-Policy-Brand` and `AC-Policy-Country`) are passed in using [Storefront API headers](https://developer-stage.adobe.com/commerce/services/composable-catalog/storefront-services/using-the-api/#header). +The brand and location (`AC-Policy-Brand` and `AC-Policy-Country`) are passed in using [Merchandising API headers](https://developer-stage.adobe.com/commerce/services/composable-catalog/storefront-services/using-the-api/#header). Use the following headers in the request: @@ -864,7 +814,7 @@ The response returns the product details for a single SKU, `Aurora Prism battery Retrieve the SKU you created for `Bolt` where location is `UK`. Use the search phrase `Zenith Automotive Vehicles and Parts`, and specify a page size to limit results. -The brand and location (`AC-Policy-Brand` and `AC-Policy-Country`) are passed in using the [Storefront API headers](https://developer-stage.adobe.com/commerce/services/composable-catalog/storefront-services/using-the-api/#header). +The brand and location (`AC-Policy-Brand` and `AC-Policy-Country`) are passed in using the [Merchandising API headers](https://developer-stage.adobe.com/commerce/services/composable-catalog/storefront-services/using-the-api/#header). Use the following headers in the request: diff --git a/src/pages/composable-catalog/data-ingestion/api-reference.md b/src/pages/composable-catalog/data-ingestion/api-reference.md index 521b996f..d663c07d 100644 --- a/src/pages/composable-catalog/data-ingestion/api-reference.md +++ b/src/pages/composable-catalog/data-ingestion/api-reference.md @@ -1,6 +1,6 @@ --- title: Data Ingestion API Reference (REST) -description: Test the Redoc API block +description: Learn about the Data Ingestion Rest API for Adobe Commerce Optimizer. layout: none --- diff --git a/src/pages/composable-catalog/data-ingestion/authentication.md b/src/pages/composable-catalog/data-ingestion/authentication.md new file mode 100644 index 00000000..ae60f278 --- /dev/null +++ b/src/pages/composable-catalog/data-ingestion/authentication.md @@ -0,0 +1,41 @@ +--- +title: REST authentication +description: Learn about REST API authentication with Adobe Commerce Optimizer. +edition: saas +noIndex: true +--- + +# REST authentication + +Adobe Commerce Optimizer uses Adobe's Identity Management Service (IMS) with OAuth 2.0 for secure API access. This system supports both user-based workflows and automated integrations. + +This guide covers direct API access using bearer tokens generated from your Adobe developer project. Tokens expire after 24 hours and can be refreshed using your project credentials. + + + +For more information about IMS user authentication for other use cases, see the [User Authentication Implementation Guide](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/implementation/) in the *Adobe Developer Console documentation*. + +## Obtain IMS credentials + +For direct access to the Data Ingestion API, you must authenticate using a bearer token. +`Authorization: Bearer {access token}` + +This token is generated from the credentials of an Adobe developer project that is configured for API access. +The token is valid for 24 hours. When it expires, use the Adobe developer project credentials to [generate a new one](#generate-a-new-access-token). + +

+ +
+ Get credentials and bearer access tokens + +import IMSAuth from '/src/_includes/authentication/initial-auth-for-api-access.md' + + + +
+ +## Generate a new access token + +import GetNewToken from '/src/_includes/authentication/get-new-bearer-token.md' + + diff --git a/src/pages/composable-catalog/data-ingestion/index.md b/src/pages/composable-catalog/data-ingestion/index.md index 7f0ce953..d5db0d19 100644 --- a/src/pages/composable-catalog/data-ingestion/index.md +++ b/src/pages/composable-catalog/data-ingestion/index.md @@ -1,6 +1,6 @@ --- title: Data Ingestion API -edition: ee +edition: saas description: Learn how to use the Data Ingestion GraphQL API to add and manage product data using the composable catalog data model. keywords: - REST @@ -31,7 +31,7 @@ Metadata is required to index product data for discovery. Consequently, it must You can also define custom metadata for additional product attributes. For example, you can define a `brand` attribute to allow product discovery and filtering by brand name. -For details, see [Metadata APIs](https://developer-stage.adobe.com/commerce/services/composable-catalog/data-ingestion/api-reference/#tag/Metadata) in the API reference. +For details, see Metadata API in the *Data Ingestion API Reference*. ## Products @@ -46,9 +46,9 @@ Each product type has its own set of attributes and configurations to help you m **Product variants** are a specific version of a product that differs from other versions based on certain attributes like size, color, or material. These variants are typically part of a configurable product, allowing customers to choose from different options on a single product page. -For example, if you're selling a t-shirt, the product variants might include different sizes (small, medium, large) and colors (red, blue, green). Each combination of size and color represents a unique product variant +For example, if you're selling a t-shirt, the product variants might include different sizes (small, medium, large) and colors (red, blue, green). Each combination of size and color represents a unique product variant. -For details, see [Product APIs](https://developer-stage.adobe.com/commerce/services/composable-catalog/data-ingestion/api-reference/#tag/Products) in the API reference. +For details, see Products API in the *Data Ingestion API reference*. ## Price books and prices @@ -58,4 +58,4 @@ In Merchandising Services, a product SKU and its price are decoupled. This decou **Prices** are the monetary values assigned to products within a price book. To create prices for each product SKU, specify the associated price books and define the pricing schedule for each price book. -For details, see [Price book](https://developer-stage.adobe.com/commerce/services/composable-catalog/data-ingestion/api-reference/#tag/Price-Books) and [Prices](https://developer-stage.adobe.com/commerce/services/composable-catalog/data-ingestion/api-reference/#tag/Price-Books) in the API reference. +For details, see Price Books and Prices in the *Data Ingestion API Reference*. diff --git a/src/pages/composable-catalog/data-ingestion/using-the-api.md b/src/pages/composable-catalog/data-ingestion/using-the-api.md index ed989b4b..72f9d9f4 100644 --- a/src/pages/composable-catalog/data-ingestion/using-the-api.md +++ b/src/pages/composable-catalog/data-ingestion/using-the-api.md @@ -1,6 +1,6 @@ --- -title: Using the data ingestion API -edition: ee +title: Get Started with the Data Ingestion API +edition: saas description: Get information about using the data ingestion API to create and manage product, price book, and price data for you commerce catalog. keywords: - REST @@ -9,10 +9,14 @@ keywords: - Performance --- -# Using the data ingestion API +# Get started with the data ingestion API Use the data ingestion API to create and manage product data for your ecommerce catalog. Data includes products, product attribute metadata, prices books, and prices. +## Data Ingestion API overview + +The Data Ingestion API is a RESTful API that allows you to manage product and price data for commerce applications using Adobe Commerce Optimizer. It is designed for backend applications to send data directly to Commerce Optimizer for use with storefront services. All product and price data is stored in a single base catalog that can be filtered and configured to create custom catalogs using Adobe Commerce Optimizer. This approach reduces processing time and improves catalog performance, especially for merchants with large or complex product assortments. + ## Base URL Send all Data Ingestion API requests to the following base URL: @@ -40,41 +44,15 @@ import GetTenantId from '/src/_includes/authentication/get-tenant-id.md' -## Authentication - -Every API request must include a bearer token in the request header: - -`Authorization: Bearer {access token}` - -The bearer token is generated using the credentials from the Adobe developer project for the API integration. The token is valid for 24 hours. When it expires, use the Adobe developer project credentials to [generate a new one](#generate-a-new-access-token). - -

- -
- Get credentials and bearer access tokens - -import IMSAuth from '/src/_includes/authentication/initial-auth-for-api-access.md' - - - -
- -### Generate a new access token - -import GetNewToken from '/src/_includes/authentication/get-new-bearer-token.md' - - - ## Header parameters Include the following headers in REST API requests. | Header name | Required | Description | |--------------|----------|-------------| -| `AC-Environment-Id` | Yes | Specify the [tenant ID](#base-url) for the Commerce cloud instance. | `Content-Encoding` | No | Use this header only if the payload is compressed with gzip. Accepted value: `gzip`. | | `Content-Type` | Yes | Media type of the resource. Accepted value: `application/json`. | -| `Authorization: Bearer {access token}` | Yes | Bearer access token generated using credentials from the Adobe developer project for the API integration. | +| `Authorization: Bearer {access token}` | Yes | Bearer access token generated using credentials from the Adobe developer project for the API integration. See [Authentication](authentication.md). | ## Request template @@ -91,11 +69,153 @@ curl --request POST \ | Placeholder name | Description | |------------------|----------------------------------------------------------------------------------------------------------------| | `endpoint` | Endpoint for specific Data Ingestion API, for example: `/v1/catalog/products/prices` | -| `accessToken` | Bearer token generated from IMS credentials. See [Authentication](#authentication). | +| `accessToken` | Bearer token generated from IMS credentials. See [Authentication](authentication.md). | | `apiPayload` | API payload see examples in the [tutorial](../ccdm-use-case.md) | For sample requests, see the [tutorial](../ccdm-use-case.md). +## Make your first request + +To get started with the Data Ingestion API, follow these steps to make your first request. + +1. Generate an access token for the `Authorization: Bearer {access-token}` header. + +2. Submit your first request + - Use the [curl](https://curl.se/) command line tool to submit a request to the Data Ingestion API. + - Use the following endpoint to create the required product metadata for a catalog source (`locale`): + + ```shell + curl -X POST \ + 'https://catalog-service-qa.adobe.io/attributes/metadata' \ + -H 'Content-Type: application/json' \ + -H 'x-api-key: YOUR_API_KEY' \ + -H 'x-tenant-id: YOUR_TENANT_ID' \ + -d '[ + { + "code": "sku", + "source": { + "locale": "en" + }, + "label": "Product Name", + "dataType": "TEXT", + "visibleIn": [ + "PRODUCT_DETAIL", + "PRODUCT_LISTING", + "SEARCH_RESULTS", + "PRODUCT_COMPARE" + ], + "filterable": true, + "sortable": false, + "searchable": true, + "searchWeight": 1, + "searchTypes": [ + "AUTOCOMPLETE" + ] + }, + { + "code": "name", + "source": { + "locale": "en" + }, + "label": "Product Name", + "dataType": "TEXT", + "visibleIn": [ + "PRODUCT_DETAIL", + "PRODUCT_LISTING", + "SEARCH_RESULTS", + "PRODUCT_COMPARE" + ], + "filterable": false, + "sortable": true, + "searchable": true, + "searchWeight": 1, + "searchTypes": [ + "AUTOCOMPLETE" + ] + }, + { + "code": "description", + "source": { + "locale": "en" + }, + "label": "Product Description", + "dataType": "TEXT", + "visibleIn": [ + "PRODUCT_DETAIL" + ], + "filterable": false, + "sortable": false, + "searchable": false, + "searchWeight": 1, + "searchTypes": [ + "AUTOCOMPLETE" + ] + }, + { + "code": "shortDescription", + "source": { + "locale": "en" + }, + "label": "Product Short Description", + "dataType": "TEXT", + "visibleIn": [ + "PRODUCT_DETAIL" + ], + "filterable": false, + "sortable": false, + "searchable": true, + "searchWeight": 1, + "searchTypes": [ + "AUTOCOMPLETE" + ] + }, + { + "code": "price", + "source": { + "locale": "en" + }, + "label": "Price", + "dataType": "DECIMAL", + "visibleIn": [ + "PRODUCT_DETAIL", + "PRODUCT_LISTING", + "SEARCH_RESULTS", + "PRODUCT_COMPARE" + ], + "filterable": true, + "sortable": true, + "searchable": false, + "searchWeight": 1, + "searchTypes": [] + } + ]' + ``` + +3. Verify the response + - If the request is successful, you receive a `201 Created` response with the metadata for the product attributes. + - If the request fails, you receive an error message with details about the issue. + +### Next steps + +After you successfully make your first request, you can continue to use the Data Ingestion API to manage product and price data for your commerce catalog. The next steps include: + +- Create product metadata to define the attributes and behavior of your products. +- Create products to add items to your catalog. +- Create price books to manage pricing for different customer segments, regions, or sales channels. +- Create prices to set the monetary values for your products within the price books. + +You can also explore the [API reference](https://developer-stage.adobe.com/commerce/services/composable-catalog/data-ingestion/api-reference/) for detailed information about each endpoint and its parameters. + +## Create integrations with SDK + +The Adobe Commerce Optimizer (ACO) SDK provides an easy integration point with the Adobe Commerce Optimizer Data Ingestion API. With the ACO SDK, the SDK helps you manage the full integration with catalog ingestion APIs and IMS authentication methods. To download the SDK and learn how to use it, see the [Adobe Commerce Optimizer GitHub repository](https://github.com/adobe-commerce/aco-ts-sdk). + ## Limitations -See [Limits and boundaries](https://experienceleague.adobe.com/en/docs/commerce/optimizer/boundaries-limits) in the *Adobe Commerce Optimizer Guide*. +The Data Ingestion API has a rate limit of 300 requests per minute. + +For additional information about limits and boundaries, see the [Limits and boundaries](https://experienceleague.adobe.com/docs/commerce-optimizer/boundaries-limits.html) section in the *Adobe Commerce Optimizer Guide*. + +>[!NOTE] +> +>This guide covers direct API access using bearer tokens. For user authentication workflows, see the [User Authentication Guide](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/implementation/). diff --git a/src/pages/composable-catalog/index.md b/src/pages/composable-catalog/index.md index 9709dfd7..b75e832a 100644 --- a/src/pages/composable-catalog/index.md +++ b/src/pages/composable-catalog/index.md @@ -1,6 +1,6 @@ --- title: Merchandising Services Developer Guide -edition: ee +edition: saas description: Use the Merchandising Services powered by Channels and Polices to implement large, complex catalogs and develop highly performant storefront experiences. keywords: - GraphQL @@ -13,30 +13,34 @@ keywords: - Storefront --- -# Merchandising Services API Developer Guide +# Merchandising Services Developer Guide This guide provides API reference and usage information for developers and commerce site administrators involved in storefront development, maintenance, and operations. -Developers can use Merchandising Services powered by Channels and Policies APIs to implement large, complex catalogs, and develop highly performant storefront experiences. Merchandising Services provides a data model that separates product data from product context, allowing businesses to compose custom catalogs for different business models, such as B2B, B2C, and D2C and to manage the catalogs in a way that aligns with their go-to-market strategies. +Developers can use Adobe Commerce Optimizer Merchandising Services to implement large, complex catalogs, and develop highly performant storefront experiences. Merchandising Services provides a data model that separates product data from product context, allowing businesses to compose custom catalogs for different business models, such as B2B, B2C, and D2C and to manage the catalogs in a way that aligns with their go-to-market strategies. ![Merchandising Services product data and context](../_images/merchandising/merchandising-svcs-parts.png) - **Product data** provides the details about the products to be sold-sku, attributes, metadata, and assets data, and prices for each item. -- **Product context** defines the business context for the products including distribution channels (catalog views), data access policies for catalog syndication, and catalog source (`locale`). +- **Product context** defines the business context for the products including catalog views, data access policies for catalog syndication, and catalog source (`locale`). Developers can use these components together to compose and deliver custom catalogs quickly, without duplicating or refactoring the base catalog data. -For additional architecture and implementation details, see [Merchandising Services powered by Catalog Views and Policies](https://experienceleague.adobe.com/en/docs/commerce/merchandising-services/overview) in Experience League. +For additional architecture and implementation details, see the [Adobe Commerce Optimizer Guide](https://experienceleague.adobe.com/docs/commerce/optimizer/overview.html) in Experience League. -## API resources +## Resources -Merchandising Services includes the following APIs to manage product data and product context independently to compose custom catalogs for storefront experiences: +Adobe Commerce Optimizer Merchandising Services provides the following APIs: -**[Data Ingestion API](data-ingestion/index.md)**—REST API to add and manage product and pricing data for merchandising across multiple business channels and locales. Data includes products, product attribute metadata, price books, and prices. Data can be added to the Merchandising services data pipeline directly using the API or ingested from third-party systems. +**[Data Ingestion API](data-ingestion/index.md)**—REST API to add and manage product and pricing data for merchandising across multiple business channels and locales. Data includes products, product attribute metadata, price books, and prices. The API expects data in JSON format, which can be added to the Merchandising services data pipeline directly using the API or ingested from third-party systems. -**Catalog Views and Policies API**—GraphQL API that powers the catalog management capabilities available through Adobe Commerce Optimizer. From the UI, you can create distribution channels, locales, and policies to set up and deliver custom, composable catalogs with minimal development effort. For details, see the [Adobe Commerce Optimizer Guide](https://experienceleague.adobe.com/en/docs/commerce/optimizer/overview). +**Catalog Views and Policies**—From the UI, you can create catalog views that represent distribution channels for product sales, catalog source (locales), and policies to set up and deliver custom, composable catalogs with minimal development effort. For details, see the [Adobe Commerce Optimizer Guide](https://experienceleague.adobe.com/en/docs/commerce/optimizer/overview). -**[Storefront API](storefront-services/index.md)**—GraphQL API to access rich view-model (read-only) catalog data to build product-related storefront experiences. The Storefront API is designed to be used by frontend applications to access catalog data. +**[Merchandising API](storefront-services/index.md)**—GraphQL API to access rich view-model (read-only) catalog data to build product-related storefront experiences. The Merchandising API is designed to be used by frontend applications to access catalog data. + +*Example Integration*: Use the Merchandising API to query catalog data by sending a GraphQL query to filter products by attributes, such as category or brand, or retrieve localized pricing for a specific region. For example, a query can be sent to fetch products within a specific category and display their localized prices on a storefront page, enabling tailored and region-specific storefront experiences. + +*Example Integration*: Use the Merchandising API to query catalog data by sending a GraphQL query to retrieve product details, including name, price, and availability, for rendering on a storefront page. This enables dynamic and personalized storefront experiences. diff --git a/src/pages/composable-catalog/manage-catalogs.md b/src/pages/composable-catalog/manage-catalogs.md index ca72e695..9c95a2e3 100644 --- a/src/pages/composable-catalog/manage-catalogs.md +++ b/src/pages/composable-catalog/manage-catalogs.md @@ -1,6 +1,5 @@ --- title: Set up and manage catalogs -edition: ee description: Learn how to use catalog views, policies, and catalog source resources to define where products are sold and who they are sold to. keywords: - GraphQL @@ -15,7 +14,7 @@ An ecommerce product catalog benefits from reflecting the company's business str Using the catalog view, policy, and catalog source resources available with the Merchandising Services Catalog Views and Policies API, you can create catalog variations instantly to adapt to these scenarios without requiring extensive development work. -* **Catalog Views**—Represent the product assortment that a business wants to a particular distribution channel. A catalog view is the highest-level abstraction which encapsulates catalog sources and policies. +* **Catalog Views**—Represent the product assortment that a business wants to sell to a particular distribution channel. A catalog view is the highest-level abstraction which encapsulates catalog sources and policies. Example: Dealers for the automotive industry. Subsidiaries for multi-brand conglomerates. Manufacturing location for suppliers. diff --git a/src/pages/composable-catalog/storefront-services/api-reference.md b/src/pages/composable-catalog/storefront-services/api-reference.md index 802b0aa7..016fd37f 100644 --- a/src/pages/composable-catalog/storefront-services/api-reference.md +++ b/src/pages/composable-catalog/storefront-services/api-reference.md @@ -1,6 +1,6 @@ --- -title: Storefront API Reference -edition: ee +title: Merchandising API Reference +edition: saas description: Get information about the storefront APIs to retrieve product and catalog data to create storefront experiences. keywords: - GraphQL diff --git a/src/pages/composable-catalog/storefront-services/index.md b/src/pages/composable-catalog/storefront-services/index.md index b188fd12..1c1e590f 100644 --- a/src/pages/composable-catalog/storefront-services/index.md +++ b/src/pages/composable-catalog/storefront-services/index.md @@ -1,16 +1,103 @@ --- -title: Storefront APIs -edition: ee -description: Use the storefront APIs to create commerce storefront browse and discovery experiences using catalog data stored in the backend. - +title: Retrieve catalog data +edition: saas +description: Build dynamic commerce storefronts with the Merchandising GraphQL API. Access real-time catalog, product discovery, and recommendations data. keywords: - GraphQL - Services - Storefront + - Merchandising + - Search + - Recommendations + - Security --- -# Storefront API +# Retrieve catalog data with the Merchandising API + +The Merchandising GraphQL API enables developers to build rich, dynamic storefront experiences by providing efficient access to catalog data from Adobe Commerce Optimizer. This API is designed for frontend applications that need to retrieve product information, pricing, search results, and recommendations in real-time. + +The Merchandising API is part of Adobe Commerce Optimizer's composable commerce architecture, which separates product data from business context. This separation allows you to: + +- **Build flexible storefronts** that can adapt to different business models (B2B, B2C, D2C) +- **Deliver personalized experiences** based on customer segments, regions, and channels +- **Scale efficiently** with optimized GraphQL queries that fetch only the data you need +- **Maintain performance** with built-in caching and CDN integration + +### Key Benefits + +- **Real-time data access** to product catalogs, pricing, and inventory +- **Flexible querying** with GraphQL for efficient data retrieval +- **Multi-channel support** for different storefront types and devices +- **Localization ready** with built-in support for multiple locales and currencies +- **Performance optimized** with intelligent caching and query optimization + +### When to Use the Merchandising API + +The Merchandising API is ideal for: + +- Real-time access to product catalog data +- GraphQL-based querying for efficient data retrieval +- Multi-channel commerce support (B2B, B2C, D2C) +- Personalized product recommendations +- Advanced search and filtering capabilities +- Composable commerce architecture +- Building dynamic storefronts that require up-to-date product information +- Integrating with Adobe Commerce Optimizer for product and pricing data + +## Architecture + +The Merchandising API sits between your storefront applications and the Adobe Commerce Optimizer data layer: + +![Merchandising Services API](../../_images/merchandising/merchandising-data-flow.png) + +This diagram illustrates the flow of data between the storefront, the Merchandising API, and the Adobe Commerce Optimizer backend: + +1. **Storefront Request**: Your application sends GraphQL queries to the Merchandising API +2. **Context Processing**: The API applies catalog views, policies, and catalog source locale filters based on the request headers +3. **Data Retrieval**: Optimized queries fetch relevant product and pricing data +4. **Response**: Structured data is returned to your application for rendering + +Product catalog updates delivered directly through data ingestion API requests, or a third-party app integration are synchronized to Adobe Commerce Optimizer, ensuring that the Merchandising API always serves the latest data. + +## Integration Options + +### Adobe Edge Delivery Services + +If your storefront uses Adobe Edge Delivery Services, integration is configured through the storefront configuration and Commerce drop-in components. See the [Adobe Commerce Storefront documentation](https://experienceleague.adobe.com/developer/commerce/storefront/get-started/) for detailed configuration instructions. + +### Third-Party Integrations + +For custom storefronts built with frameworks like React, Vue.js, Angular, or any other technology: + +- **Direct API Integration**: Use GraphQL clients to connect directly to the [Merchandising API](using-the-api.md) from your frontend application +- **GraphQL Client Libraries**: Use libraries like Apollo Client, Relay, or urql for efficient GraphQL data fetching +- **Adobe Developer App Builder**: Use [Adobe Developer App Builder](https://experienceleague.adobe.com/en/docs/commerce-learn/tutorials/adobe-developer-app-builder/introduction-to-app-builder) to create custom applications that leverage the Merchandising API +- **Headless CMS**: Integrate with headless CMS platforms for content management + +## Security + +### Authentication + +- **API Key Protection**: Never expose API keys in client-side code +- **HTTPS**: Always use HTTPS for production environments +- **Request Validation**: Validate all user inputs before sending to the API + +### Data Access + +- **Catalog Views**: Use catalog views to control data access based on business context +- **Policies**: Implement policies to filter data based on customer segments +- **Locale Filtering**: Use locale headers to ensure appropriate data is returned +- **Price Books**: Use price book headers to manage pricing data returned across different customer segments and regions + +## Next Steps + +See the [Get Started with the Merchandising API](using-the-api.md) section for instructions on how to set up your environment and start using the API. + +## Related Documentation -Frontend developers can use the storefront APIs to create commerce storefront experiences using the catalog data configured on the backend. The storefront APIs are implemented as a GraphQL (Graph Query Language) endpoint. +- **[Data Ingestion API](../data-ingestion/index.md)**: Ingest and manage product and pricing data +- **Catalog Management**: Set up catalog views and policies in Adobe Commerce Optimizer +- **Merchandising API Reference**: Merchandising API Reference +- **[GraphQL Queries](use-cases.md#available-queries)**: Available queries -For details about the Storefront API, see the [Storefront API Reference](api-reference.md). +For additional support and community resources, visit the [Adobe Commerce Developer Portal](https://developer.adobe.com/commerce/). diff --git a/src/pages/composable-catalog/storefront-services/limitations.md b/src/pages/composable-catalog/storefront-services/limitations.md new file mode 100644 index 00000000..79f30947 --- /dev/null +++ b/src/pages/composable-catalog/storefront-services/limitations.md @@ -0,0 +1,52 @@ +--- +title: Limitations and considerations +edition: saas +description: Learn about the limitations and considerations when using the Merchandising API to retrieve catalog data from Adobe Commerce Optimizer. +keywords: + - GraphQL + - Services + - Backend Development + - Performance +--- + +# Limitations and considerations + +The Merchandising API provides powerful capabilities for accessing catalog data, but there are important limitations and considerations to keep in mind when using it. This section outlines the key constraints and best practices to ensure optimal performance and reliability. + +### API Limits + +- **Rate Limiting**: Requests are subject to rate limits based on your subscription tier +- **Query Complexity**: Complex queries may have timeout restrictions +- **Response Size**: Large result sets may be paginated or truncated +- **Concurrent Requests**: Limit concurrent requests to avoid throttling + +For details about these limits, see [Boundaries and Limits](https://experienceleague.adobe.com/en/docs/commerce/optimizer/boundaries-limits) in the *Adobe Commerce Optimizer Guide*. + +### Data Constraints + +- **Read-Only Access**: The API provides read-only access to catalog data +- **Data Freshness**: For details about catalog data synchronization, see [Boundaries and Limits](https://experienceleague.adobe.com/en/docs/commerce/optimizer/boundaries-limits) in the *Adobe Commerce Optimizer Guide*. +- **Locale Requirements**: All queries require a specific locale to be set in the headers +- **Catalog View Dependencies**: Data access depends on configured catalog views + +### Technical Limitations + +- **GraphQL Only**: The API only supports GraphQL queries +- **HTTPS Only**: Production requests must use HTTPS +- **Browser CORS**: Consider CORS policies for browser-based applications + +## Performance Considerations + +### Query Optimization + +- **Field Selection**: Only request the fields you need to minimize response size +- **Pagination**: Use proper pagination for large result sets +- **Caching**: Implement client-side caching for frequently accessed data +- **Batch Requests**: Combine multiple queries when possible + +### Best Practices + +- **Error Handling**: Implement comprehensive error handling for network issues +- **Loading States**: Provide user feedback during data loading +- **Rate Limiting**: Respect API rate limits and implement retry logic +- **Mobile Optimization**: Ensure queries work efficiently on mobile devices diff --git a/src/pages/composable-catalog/storefront-services/troubleshooting.md b/src/pages/composable-catalog/storefront-services/troubleshooting.md new file mode 100644 index 00000000..3c46a7e9 --- /dev/null +++ b/src/pages/composable-catalog/storefront-services/troubleshooting.md @@ -0,0 +1,27 @@ +--- +title: Monitor and Troubleshoot +edition: saas +description: Troubleshoot common issues with the Merchandising GraphQL API. Learn how to debug authentication errors, missing data, performance issues, and more. +keywords: + - GraphQL + - Services + - Backend Development + - Troubleshooting +--- + +# Monitor and troubleshoot + +When building dynamic storefronts with the Merchandising GraphQL API, it's essential to ensure that your implementation runs smoothly and efficiently. This section provides guidance on how to monitor and troubleshoot common issues you may encounter while using the Merchandising API. + +## Common Issues + +- **Authentication Errors**: Verify that the tenant ID used in the endpoint URL to ensure it matches the tenant ID in your Adobe Commerce Optimizer instance. +- **Missing Data**: Ensure products are properly ingested via the Data Ingestion API. You can check the synchronization status for product data from the [Data Sync page](https://experienceleague-review.corp.adobe.com/docs/commerce/optimizer/setup/data-sync.html) in Adobe Commerce Optimizer. +- **Performance Issues**: Optimize queries and implement caching. +- **Rate Limiting**: Monitor API usage and implement proper throttling. + +## Debugging + +- **Query Validation**: In your staging environment, use GraphQL introspection to validate queries. +- **Response Analysis**: Check response structure and error messages. +- **Header Verification**: Ensure all required headers are included. diff --git a/src/pages/composable-catalog/storefront-services/use-cases.md b/src/pages/composable-catalog/storefront-services/use-cases.md new file mode 100644 index 00000000..0d2aad25 --- /dev/null +++ b/src/pages/composable-catalog/storefront-services/use-cases.md @@ -0,0 +1,112 @@ +--- +title: Use cases for the Merchandising API +edition: saas +description: Learn about the limitations and considerations when using the Merchandising API to retrieve catalog data from Adobe Commerce Optimizer. +keywords: + - GraphQL + - Services + - Backend Development + - Performance +--- + +# Use cases for the Merchandising API + +The Merchandising API supports various e-commerce scenarios. The catalog data delivered by the API is filtered based on the request headers and the catalog view, catalog source, policy, and price book configuration in Adobe Commerce Optimizer. This allows you to create tailored storefront experiences for different customer segments, channels, and regions. + +### E-commerce Storefronts + +- **Product Catalogs**: Display product listings with filtering and sorting +- **Search Functionality**: Implement product search with autocomplete +- **Product Details**: Show comprehensive product information and variants + +### Multi-channel Commerce + +- **B2B Portals**: Customize catalogs for business customers +- **Marketplace Integration**: Power third-party marketplace listings +- **Mobile Apps**: Provide consistent data across mobile platforms +- **Headless Commerce**: Support decoupled frontend architectures + +### Personalization + +- **Customer Segmentation**: Deliver targeted product recommendations +- **Regional Pricing**: Display locale-specific pricing and availability +- **Dynamic Content**: Adapt product displays based on user behavior +- **A/B Testing**: Support experimentation with different product presentations + +## Available Queries + +The Merchandising API provides several GraphQL queries designed for different use cases. + +| Query | Description | Use Case | +|-------|-------------|----------| +| `products` | Retrieve detailed information about specific products by SKU | Product detail pages, product comparison | +| `productSearch` | Search products with filters, sorting, and pagination | Search results, category pages, product listings | +| `refineProduct` | Get variant-specific information for configurable products | Product option selection, variant switching | +| `variants` | Retrieve all variants of a configurable product | Product detail pages, variant galleries | +| `recommendations` | Retrieve personalized product recommendations | Related products, cross-sells, and upsells | + +### Query Examples + +#### Product Search + +```graphql +query ProductSearch($search: String!, $pageSize: Int = 20) { + productSearch(search: $search, pageSize: $pageSize) { + items { + id + sku + name + price { + regularPrice { + amount { + value + currency + } + } + } + images { + url + label + roles + } + } + totalCount + pageInfo { + currentPage + totalPages + } + } +} +``` + +#### Product Details + +```graphql +query ProductDetails($skus: [String!]!) { + products(skus: $skus) { + id + sku + name + description + price { + regularPrice { + amount { + value + currency + } + } + } + attributes { + code + value + } + images { + url + label + roles + } + } +} +``` + +For detailed examples of each query, see the Merchandising API Reference. diff --git a/src/pages/composable-catalog/storefront-services/using-the-api.md b/src/pages/composable-catalog/storefront-services/using-the-api.md index 895be44f..dddb6c3d 100644 --- a/src/pages/composable-catalog/storefront-services/using-the-api.md +++ b/src/pages/composable-catalog/storefront-services/using-the-api.md @@ -1,7 +1,7 @@ --- -title: Using the storefront API -edition: ee -description: Learn how to use the storefront APIs to manage and deliver product data to commerce storefronts or applications in the context of Merchandising Services. +title: Get Started with the Merchandising API +edition: saas +description: Learn how to use the Merchandising GraphQL API to access real-time catalog, product discovery, and recommendations data from Adobe Commerce Optimizer. keywords: - GraphQL - Services @@ -9,13 +9,29 @@ keywords: - Performance --- -# Using the storefront API +# Get started with the Merchandising API -Use the Storefront API to retrieve product data from your Commerce catalogs and display it in Commerce frontend experiences. Data includes products, product attribute metadata, prices books, and prices. +Use the Merchandising API to retrieve product data from your Commerce catalogs and display it in Commerce frontend experiences. Data includes products, product attribute metadata, prices books, and prices. -## Base URL +## Prerequisites -Send all Storefront API requests to this base URL: +Before using the Merchandising API, ensure you have: + +- **Adobe Commerce Optimizer Access**: Active subscription and the tenant ID associated with your Adobe Commerce Optimizer instance +- **Catalog Data**: Products and pricing data ingested via the [Data Ingestion API](../data-ingestion/index.md) +- **Catalog Views**: Configured views and policies in Adobe Commerce Optimizer +- **Authentication Setup**: Proper headers configured for API requests +- **GraphQL Client**: A tool or library to make GraphQL requests (e.g., Postman, Apollo Client, or cURL) +- **Familiarity with GraphQL**: Basic understanding of GraphQL queries and mutations +- **Development Environment**: Set up for testing API requests (e.g., local development server or staging environment) + +## Merchandising API overview + +The Merchandising API is a GraphQL API that allows you to access real-time catalog, product discovery, and recommendations data from Adobe Commerce Optimizer. It is designed for backend applications to retrieve product data for use in frontend experiences. All product and price data is stored in a single base catalog that can be filtered and configured to create custom catalogs using Adobe Commerce Optimizer. This approach reduces processing time and improves catalog performance, especially for merchants with large or complex product assortments. + +### Base URL + +Send all Merchandising API requests to this base URL: ```text https://na1-sandbox.api.commerce.adobe.com//graphql @@ -40,24 +56,22 @@ import GetTenantId from '/src/_includes/authentication/get-tenant-id.md' -## Authentication - -Authentication is not required for the Storefront API. +### Authentication -## Headers +Authentication is not required for the Merchandising API. -When making requests to the storefront API, you must include specific HTTP headers to ensure proper authentication and data retrieval. These headers provide necessary information, such as the channel ID, locale, and optional policy and price book headers that tailor the API response to your needs. +### Headers -Include the following headers in GraphQL requests as needed. +When making requests to the storefront API, you must include required HTTP headers that provide necessary information, such as the catalog view ID, catalog source locale. Additionally, you can include optional policy and price book headers that tailor the API response to your needs. | Header name| Description | --- | --- |`AC-View-ID` | Required. The ID for the catalog view that products will be sold through. For example, in the automotive industry, the catalog view could be dealers. In the manufacturing industry, the view could be a manufacturing location for suppliers. You can view the list of available catalog view and associated ids from the [Adobe Commerce Optimizer UI](https://experienceleague.adobe.com/en/docs/commerce/optimizer/catalog/channels).| `AC-Policy-{*}` | Optional. The trigger name configured for a policy that sets data access filters to restrict product access based on request attributes and context. Examples include POS physical stores, marketplaces, or advertisement pipelines like Google, Meta, or Instagram. You can view the list of available policies and associated ids from the [Adobe Commerce Optimizer UI](https://experienceleague.adobe.com/en/docs/commerce/optimizer/catalog/policies).You can specify multiple policy headers per request. Example: `AC-Policy-Country`. -`AC-Price-Book-ID` | Optional. Defines how prices are calculated for a specific channel. Use if the merchant uses price books to calculate pricing. Merchandising Services provides a default price book `main` with currency in US dollars. -`AC-Source-Locale`: | Required. The catalog source locale (language or geography) to filter products for display or update, for example `en_US`. Use the [channels query](https://developer-stage.adobe.com/commerce/services/graphql-api/admin-api/index.html#query-channels) to retrieve the locale IDs available for each channel. +`AC-Price-Book-ID` | Optional. Defines how prices are calculated for a specific catalog view. Use if the merchant uses price books to calculate pricing. Merchandising Services provides a default price book `main` with currency in US dollars. +`AC-Source-Locale`: | Required. The catalog source locale (language or geography) to filter products for display or update, for example `en_US`. Use the [channels query](https://developer-stage.adobe.com/commerce/services/graphql-api/admin-api/index.html#query-channels) to retrieve the locale IDs available for each catalog view. -## Request template +### Request template Use the following template to submit requests using [curl](https://curl.se/). Use required and optional headers as needed. Replace placeholders with required values. @@ -65,7 +79,7 @@ Use the following template to submit requests using [curl](https://curl.se/). Us curl --request POST \ -- url https://na1-sandbox.api.commerce.adobe.com//graphql \ --header --header 'AC-Environment-ID: ' \ ---header 'AC-View-ID: ' \ +--header 'AC-View-ID: ' \ --header 'AC-Policy-: ' \ --header 'AC-Price-Book-ID-' \ --header 'AC-Source-Locale: ' \ @@ -74,15 +88,52 @@ curl --request POST \ | Placeholder name | Description | |------------------|-----------------------------------------------------------------------------------------------------------------| -| `channelID` | The ID for the channel products will be sold through. Use the channels query to retrieve available IDs.| +| `catalogviewID` | The ID for the catalog view products will be sold through.| | `tenantId` | is the unique identifier for your organization's specific instance within the Adobe Experience Cloud.| -| `policyName: policyValue` | Optional. The policy trigger name and value that sets data access filters to restrict product access based on request attributes. Use the policies query to retrieve available policies. | +| `policyName: policyValue` | Optional. The policy trigger name and value that sets data access filters to restrict product access based on request attributes. | | `pricebookID` | Optional. The price book ID used to retrieve the pricing schedule for a SKU. | -| localeValue | The catalog source locale (language or geography) to filter products for display or update. | | -| apiPayload | API payload. See examples in the tutorial. | +| `localeValue` | The catalog source locale (language or geography) to filter products for display or update. | | +| `apiPayload` | API payload. See examples in the tutorial. | + +Get the values for catalog view, policy, catalog source locale, and price book data from the [Adobe Commerce Optimizer UI](https://experienceleague.adobe.com/en/docs/commerce/optimizer/overview#quick-tour). + +## Make your first request + +To get started with the Merchandising API, follow these steps to make your first request: + +1. Get values for the tenant ID and required headers. + + - `tenantId`: Your unique tenant ID for Adobe Commerce Optimizer + - `AC-View-ID`: Catalog view ID from Adobe Commerce Optimizer + - `AC-Source-Locale`: Locale for data filtering (for example, `en-US`, `en-GB`) + +2. Make your first query. + + Use the following example to search for products using the `productSearch` query, replacing the variable with your own values based on the catalog data and the configuration or your Adobe Commerce Optimizer instance This query retrieves a list of products based on a search term, including their IDs, SKUs, names, and prices. + + ```bash + curl -X POST \ + 'https://na1-sandbox.api.commerce.adobe.com/{{tenant-id}}/graphql' \ + -H 'Content-Type: application/json' \ + -H 'AC-View-ID: {{your-catalog-view-id}}' \ + -H 'AC-Source-Locale: en-US' \ + -d '{ + "query": "query ProductSearch($search: String!) { productSearch(search: $search, pageSize: 10) { items { id sku name price { regularPrice { amount { value currency } } } } totalCount } }", + "variables": { + "search": "" + } + }' + ``` + + For sample requests and examples using the API, see the Merchandising API Reference. + +## Test with the GraphQL Playground -For sample requests and examples using the API, see the [API Reference](api-reference.md) and the [tutorial](../ccdm-use-case.md). +For interactive testing and exploration, use the Adobe Commerce Optimizer API Playground. -## Limitations +## Related documentation -See [Limits and boundaries](https://experienceleague.adobe.com/en/docs/commerce/optimizer/boundaries-limits) in the *Adobe Commerce Optimizer Guide*. +- **[Adobe Commerce Optimizer Guide](https://experienceleague.adobe.com/en/docs/commerce/optimizer/overview.html)**: Review comprehensive documentation for Adobe Commerce Optimizer. +- **[Adobe Commerce Storefront Guide](https://experienceleague.adobe.com/docs/commerce-storefront.html)**: Get help integrating Adobe Commerce Optimizer with an Adobe Commerce storefront on Adobe Edge Delivery Services. +- **[Adobe Developer App Builder for Commerce](https://experienceleague.adobe.com/en/docs/commerce-learn/tutorials/adobe-developer-app-builder/introduction-to-app-builder)**: Get documentation for building custom applications to integrate with Adobe Commerce solutions. +- **[Adobe Commerce Knowledge Base](https://experienceleague.adobe.com/docs/commerce-knowledge-base.html)**: Search the Adobe Commerce knowledge base for self-service solutions diff --git a/src/pages/graphql/catalog-service/categories.md b/src/pages/graphql/catalog-service/categories.md deleted file mode 100644 index 086f66c5..00000000 --- a/src/pages/graphql/catalog-service/categories.md +++ /dev/null @@ -1,217 +0,0 @@ ---- -title: categories query | GraphQL Developer Guide -edition: ee -description: Describes how to construct and use the Catalog Service categories query. -keywords: - - GraphQL - - Services ---- - -# categories query - -The `categories` query returns category data. If the `subtree` input object is specified, the query returns details about subcategories. - -## Syntax - -```graphql -type Query { - categories(ids: [String!], roles: [String!], subtree: Subtree): [CategoryView] -} -``` - -Where `subtree` is: - -```graphql -input Subtree { - startLevel: Int!, - depth: Int! -} -``` - -If using the `subtree` input, only one category `id` can be specified in the query. -The `subtree` object allows you to specify how many levels of subcategories to return. Some sites may have a high number of subcategories, and returning the entire category tree could cause performance issues. It is recommended to keep `depth` to a maximum of 3 for the same reason. - -## Endpoints - -import StorefrontAPIEndpoints from '/src/_includes/graphql/endpoints.md' - - - -## Required headers - -Specify the following HTTP headers to run this query. - -import Headers from '/src/_includes/graphql/catalog-service/headers.md' - - - -### Find the customer group code - -import CustomerGroupCode from '/src/_includes/graphql/customer-group-code.md' - - - -## Example usage - -The following query returns a category tree. - - - -**Request:** - -```graphql -categories(ids: ["11"], roles: ["show_in_menu", "active"], subtree: { - "depth": 3, - "startLevel": 1 -}) { - name - id - level - roles - path - urlPath - urlKey - parentId - children - } -``` - -**Response:** - -```json -[ - { - "name":"Bottoms", - "id":"13", - "level":3, - "roles":[ - "active", - "show_in_menu" - ], - "path":"1/2/11/13", - "urlPath":"men/bottoms-men", - "urlKey":"bottoms-men", - "parentId":"11", - "children":[ - "18", - "19" - ] - }, - { - "name":"Tops", - "id":"12", - "level":3, - "roles":[ - "active", - "show_in_menu" - ], - "path":"1/2/11/12", - "urlPath":"men/tops-men", - "urlKey":"tops-men", - "parentId":"11", - "children":[ - "14", - "15", - "16", - "17" - ] - }, - { - "name":"Jackets", - "id":"14", - "level":4, - "roles":[ - "active", - "show_in_menu" - ], - "path":"1/2/11/12/14", - "urlPath":"men/tops-men/jackets-men", - "urlKey":"jackets-men", - "parentId":"12", - "children":[ - ] - }, - { - "name":"Pants", - "id":"18", - "level":4, - "roles":[ - "active", - "show_in_menu" - ], - "path":"1/2/11/13/18", - "urlPath":"men/bottoms-men/pants-men", - "urlKey":"pants-men", - "parentId":"13", - "children":[ - ] - }, - { - "name":"Tanks", - "id":"17", - "level":4, - "roles":[ - "active", - "show_in_menu" - ], - "path":"1/2/11/12/17", - "urlPath":"men/tops-men/tanks-men", - "urlKey":"tanks-men", - "parentId":"12", - "children":[ - ] - }, - { - "name":"Hoodies & Sweatshirts", - "id":"15", - "level":4, - "roles":[ - "active", - "show_in_menu" - ], - "path":"1/2/11/12/15", - "urlPath":"men/tops-men/hoodies-and-sweatshirts-men", - "urlKey":"hoodies-and-sweatshirts-men", - "parentId":"12", - "children":[ - ] - }, - { - "name":"Shorts", - "id":"19", - "level":4, - "roles":[ - "active", - "show_in_menu" - ], - "path":"1/2/11/13/19", - "urlPath":"men/bottoms-men/shorts-men", - "urlKey":"shorts-men", - "parentId":"13", - "children":[ - - ] - } -] -``` - -## Input fields - -Field | Data type | Description ---- | --- | --- -`ids` | [String!] | Array of category IDs to return. If using `subtree`, must contain only one ID. -`roles` | [String!]! | The list of category roles to be queried. -`subtree` | [[subtree](#subtree-input)] | Defines how many subcategories to return. - -### subtree input - -Field | Data type | Description ---- | --- | --- -`startLevel` | [Int!] |The level in the category tree where the search should begin. Minimum of 1. -`depth` | [Int!]! | The number of subtrees to return. Values over 3 may impact performance. - -## Output fields - -import Output from '/src/_includes/graphql/catalog-service/categories.md' - - diff --git a/src/pages/graphql/catalog-service/index.md b/src/pages/graphql/catalog-service/index.md deleted file mode 100644 index a79aea42..00000000 --- a/src/pages/graphql/catalog-service/index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Catalog Service for Adobe Commerce -edition: ee -description: Learn how Catalog Service implements GraphQL. -keywords: - - GraphQL - - Services ---- - -# Catalog Service for Adobe Commerce - -The Catalog Service for Adobe Commerce extension contributes to a services-only GraphQL schema that contains queries that return specialized catalog data that is not available in the [core GraphQL schema](https://developer.adobe.com/commerce/webapi/graphql/schema/). The queries in this schema allow Commerce merchants to quickly and fully render product-related content on the storefront, including product detail pages and product list pages. - -Catalog Service provides the following queries: - -* [`categories`](categories.md) -* [`products`](products.md) -* [`refineProduct`](refine-product.md) -* [`variants`](product-variants.md) - -It also extends the Live Search [`productSearch`](../live-search/product-search.md#catalog-service) query to return product view data. - -You can optionally implement [API Mesh for Adobe Developer App Builder](https://developer.adobe.com/graphql-mesh-gateway/) to integrate the two Adobe Commerce GraphQL systems with private and third-party APIs and other software interfaces using Adobe Developer. The mesh can be configured to ensure calls routed to each endpoint contain the correct authorization information in the headers. - -The [Catalog Service Guide](https://experienceleague.adobe.com/docs/commerce/catalog-service/overview.html) describes the architecture and implementation of this product. diff --git a/src/pages/graphql/catalog-service/product-variants.md b/src/pages/graphql/catalog-service/product-variants.md deleted file mode 100644 index 871bb4fa..00000000 --- a/src/pages/graphql/catalog-service/product-variants.md +++ /dev/null @@ -1,636 +0,0 @@ ---- -title: variants query -edition: ee -description: "Describes how to construct and use the Catalog Service `variants` query to retrieve details about the variants available for a product." -keywords: - - GraphQL - - Services ---- - -# variants query - -The `variants` query returns details about all variations of a product. - -The `variants` query is useful for showing variant images on product detail (PDP) or product listing (PLP) pages without submitting multiple API requests. - -Query results are paginated with a default, maximum pagination size of 100. The query supports [cursor-based pagination](https://graphql.org/learn/pagination/#pagination-and-edges) as follows: - -- The initial query returns a cursor value marking the last item in the current page. -- If all results are returned, the `cursor` value is `null`. -- If more results are available, use the `cursor` value returned in subsequent queries to fetch additional results. For an example, see [Paginate product variant results](#return-all-variants-using-pagination). - -## Syntax - -```graphql -variants(sku: String!, optionIds: [String!], pageSize: Int, cursor: String): [ProductViewVariantResults] -``` - -## Endpoints - -import StorefrontAPIEndpoints from '/src/_includes/graphql/endpoints.md' - - - -## Required headers - -You must specify the following HTTP headers to run this query. - -import Docs from '/src/_includes/graphql/catalog-service/headers.md' - - - -### Find the customer group code - -import CustomerGroupCode from '/src/_includes/graphql/customer-group-code.md' - - - -## Example usage - -The `variants` query requires one or more SKU values as input. Optionally, you can specify `optionIDs` and pagination controls. Specify `optionIDs` to retrieve variants based on product options such as size or color. See [Input fields](#input-fields). - -## Return all variants using pagination - -The following query returns the SKU, name, and available image information for all variants of the MH07 product. Setting the query pagination to `10` fetches the first ten results. - - - -**Request:** - -```graphql -query { - variants(sku: "MH07", pageSize: 10) { - variants { - selections - product { - sku - name - images(roles: []) { - url - label - roles - } - } - } - cursor - } -} -``` - -**Response:** - -```json -{ - "data": { - "variants": { - "variants": [ - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzU4", - "Y29uZmlndXJhYmxlLzE4Ni8xODM=" - ], - "product": { - "sku": "MH07-31-Black", - "name": "Hero Hoodie28-31-Black", - "images": [] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzU5", - "Y29uZmlndXJhYmxlLzE4Ni8xODM=" - ], - "product": { - "sku": "MH07-31-Blue", - "name": "Hero Hoodie28-31-Blue", - "images": [] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzE4Ni8xODM=", - "Y29uZmlndXJhYmxlLzkzLzYx" - ], - "product": { - "sku": "MH07-31-Gray", - "name": "Hero Hoodie28-31-Gray", - "images": [] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzYy", - "Y29uZmlndXJhYmxlLzE4Ni8xODM=" - ], - "product": { - "sku": "MH07-31-Green", - "name": "Hero Hoodie28-31-Green", - "images": [] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzU4", - "Y29uZmlndXJhYmxlLzE4Ni8xODY=" - ], - "product": { - "sku": "MH07-34-Black", - "name": "Hero Hoodie28-34-Black", - "images": [] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzE4Ni8xODY=", - "Y29uZmlndXJhYmxlLzkzLzU5" - ], - "product": { - "sku": "MH07-34-Blue", - "name": "Hero Hoodie28-34-Blue", - "images": [] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzYx", - "Y29uZmlndXJhYmxlLzE4Ni8xODY=" - ], - "product": { - "sku": "MH07-34-Gray", - "name": "Hero Hoodie28-34-Gray", - "images": [] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzE4Ni8xODY=", - "Y29uZmlndXJhYmxlLzkzLzYy" - ], - "product": { - "sku": "MH07-34-Green", - "name": "Hero Hoodie28-34-Green", - "images": [] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzU4", - "Y29uZmlndXJhYmxlLzE4Ni8xNzg=" - ], - "product": { - "sku": "MH07-L-Black", - "name": "Hero Hoodie-L-Black", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-black_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - } - ] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzE4Ni8xNzg=", - "Y29uZmlndXJhYmxlLzkzLzU5" - ], - "product": { - "sku": "MH07-L-Blue", - "name": "Hero Hoodie28-L-Blue", - "images": [] - } - } - ], - "cursor": "TUgwNy1MLUJsdWU6Ojo6OjoxMA==" - } - } -} -``` - -#### Return results by `cursor` position - -Using the cursor value from the previous response (`TUgwNy1MLUJsdWU6Ojo6OjoxMA==`) as input, run the same query to fetch the next set of results. When the last variant item is returned, the cursor value is `null`. - - - -**Request:** - -```graphql -query { - variants(sku: "MH07", pageSize: 10 cursor: "TUgwNy1MLUJsdWU6Ojo6OjoxMA==") { - variants { - selections - product { - sku - name - images(roles: []) { - url - label - roles - } - } - } - cursor - } -} -``` - -**Response:** - -```json -{ - "data": { - "variants": { - "variants": [ - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzYx", - "Y29uZmlndXJhYmxlLzE4Ni8xNzg=" - ], - "product": { - "sku": "MH07-L-Gray", - "name": "Hero Hoodie-L-Gray", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - }, - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_alt1_2.jpg", - "label": "", - "roles": [] - }, - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_back_2.jpg", - "label": "", - "roles": [] - } - ] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzYy", - "Y29uZmlndXJhYmxlLzE4Ni8xNzg=" - ], - "product": { - "sku": "MH07-L-Green", - "name": "Hero Hoodie-L-Green", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-green_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - } - ] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzU4", - "Y29uZmlndXJhYmxlLzE4Ni8xNzc=" - ], - "product": { - "sku": "MH07-M-Black", - "name": "Hero Hoodie-M-Black", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-black_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - } - ] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzU5", - "Y29uZmlndXJhYmxlLzE4Ni8xNzc=" - ], - "product": { - "sku": "MH07-M-Blue", - "name": "Hero Hoodie28-M-Blue", - "images": [] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzYx", - "Y29uZmlndXJhYmxlLzE4Ni8xNzc=" - ], - "product": { - "sku": "MH07-M-Gray", - "name": "Hero Hoodie-M-Gray", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - }, - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_alt1_2.jpg", - "label": "", - "roles": [] - }, - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_back_2.jpg", - "label": "", - "roles": [] - } - ] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzYy", - "Y29uZmlndXJhYmxlLzE4Ni8xNzc=" - ], - "product": { - "sku": "MH07-M-Green", - "name": "Hero Hoodie-M-Green", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-green_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - } - ] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzU4", - "Y29uZmlndXJhYmxlLzE4Ni8xNzY=" - ], - "product": { - "sku": "MH07-S-Black", - "name": "Hero Hoodie-S-Black", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-black_main_1.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - } - ] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzU5", - "Y29uZmlndXJhYmxlLzE4Ni8xNzY=" - ], - "product": { - "sku": "MH07-S-Blue", - "name": "Hero Hoodie28-S-Blue", - "images": [] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzYx", - "Y29uZmlndXJhYmxlLzE4Ni8xNzY=", - "Y29uZmlndXJhYmxlLzkzLzUwOA==" - ], - "product": { - "sku": "MH07-S-Gray", - "name": "Hero Hoodie-S-Gray", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - }, - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_alt1_2.jpg", - "label": "", - "roles": [] - }, - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_back_2.jpg", - "label": "", - "roles": [] - } - ] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzE4Ni8xNzY=", - "Y29uZmlndXJhYmxlLzkzLzYy" - ], - "product": { - "sku": "MH07-S-Green", - "name": "Hero Hoodie-S-Green", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-green_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - } - ] - } - } - ], - "cursor": "TUgwNy1TLUdyZWVuOjo6Ojo6MTA=" - } - } -} -``` - -## Return variants by `optionId` - -This query returns the SKU, name, and images for all size large variants of product MH07. The `optionIDs` input parameter value is sourced from the [Return details about a complex product](products.md#return-details-about-a-complex-product) example in the products query. - - - -**Request:** - -```graphql -query { - variants(sku: "MH07", optionIds: "Y29uZmlndXJhYmxlLzE4Ni8xNzg=") { - variants { - selections - product { - sku - name - images(roles: []) { - url - label - roles - } - } - } - cursor - } -} - -``` - -**Response** - -```json -{ - "data": { - "variants": { - "variants": [ - { - "selections": [ - "Y29uZmlndXJhYmxlLzE4Ni8xNzg=", - "Y29uZmlndXJhYmxlLzkzLzU4" - ], - "product": { - "sku": "MH07-L-Black", - "name": "Hero Hoodie-L-Black", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-black_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - } - ] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzE4Ni8xNzg=", - "Y29uZmlndXJhYmxlLzkzLzU5" - ], - "product": { - "sku": "MH07-L-Blue", - "name": "Hero Hoodie28-L-Blue", - "images": [] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzE4Ni8xNzg=", - "Y29uZmlndXJhYmxlLzkzLzYx" - ], - "product": { - "sku": "MH07-L-Gray", - "name": "Hero Hoodie-L-Gray", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - }, - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_alt1_2.jpg", - "label": "", - "roles": [] - }, - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_back_2.jpg", - "label": "", - "roles": [] - } - ] - } - }, - { - "selections": [ - "Y29uZmlndXJhYmxlLzkzLzYy", - "Y29uZmlndXJhYmxlLzE4Ni8xNzg=" - ], - "product": { - "sku": "MH07-L-Green", - "name": "Hero Hoodie-L-Green", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-green_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - } - ] - } - } - ], - "cursor": null - } - } -} -``` - -## Input fields - -You must specify a SKU value for the query. - -Field | Data type | Description ---- | --- | --- -`cursor` | String | Manages pagination of variant results. Include the `cursor` value returned in the results from a previous `variants` query to fetch the next set of results. See [Return results by cursor position](#return-results-by-cursor-position).(#return-results-by-cursor-position).(#return-results-by-cursor-position) example. -`optionIds` | [String!] | A list of IDs assigned to the product options the shopper has selected, such as specific colors and sizes. -`pageSize` | Int | Specifies the maximum number of results to return. Default: 100. -`sku` | String! | The SKU of a complex product. - -## Output fields - -This query returns one `ProductViewVariantResults` object that contains the `cursor` field and a list of `ProductViewVariant` objects, one for each variant associated with the product SKU. - -| Field | Data Type | Description | -|---------------|------------------------|-------------------------------------------------| -| `cursor` | `String` | Returns the cursor for the last item in the current page of results. Use this cursor in the `variants` query to fetch the next set of results. If there are no more results, the cursor value is `null`. | -| `variants` | `[ProductViewVariant]!`| List of product variants. | - -### ProductViewVariant type - -| Field | Data Type | Description | -|---------------|------------------------|-------------------------------------------------| -| `product` | [`ProductView`](#productview-interface) | Provides information about the product corresponding to the variant. The information returned by the `variants` query depends on which `[ProductView]` fields are included as `product` input values.| -| `selections` | `[String!]` | List of option id values that define the variant. For example, the id value for color and size options for a clothing product. | -| `variants` | `[ProductViewVariant]!`| List of product variants. | - -### ProductView interface - -import Docs2 from '/src/_includes/graphql/catalog-service/product-view.md' - - diff --git a/src/pages/graphql/catalog-service/products.md b/src/pages/graphql/catalog-service/products.md deleted file mode 100644 index ce94855f..00000000 --- a/src/pages/graphql/catalog-service/products.md +++ /dev/null @@ -1,848 +0,0 @@ ---- -title: products query -edition: ee -description: Describes how to construct and use the Catalog Service products query. -keywords: - - GraphQL - - Services ---- - -# products query - -The Catalog Service for Adobe Commerce `products` query returns details about the SKUs specified as input. Although this query has the same name as the [`products` query](https://developer.adobe.com/commerce/webapi/graphql/schema/products/queries/products/) that is provided with core Adobe Commerce and Magento Open Source, there are some differences. - -The Catalog Service query requires one or more SKU values as input. The query is primarily designed to retrieve information to render the following types of content: - -* Product detail pages - You can provide full details about the product identified by the specified SKU. - -* Product compare pages - You can retrieve selected information about multiple products, such as the name, price and image. - - - -Use the Live Search [`productSearch` query](../live-search/product-search.md) to return product listing page content. - -The `ProductView` output object is significantly different than the core `products` query `Products` output object. Key differences include: - -* Products are either simple or complex. Simple, virtual, downloadable, and gift card products map to `SimpleProductView`. All other product types map to `ComplexProductView`. - - * Simple products have defined prices. - * Complex products have price ranges. Since complex products are comprised of multiple simple products, they have access to simple product prices. - -* Both simple and complex products can have merchant-defined input options that allow shoppers to customize a product by adding text, date, an image, or a file, for example adding text for engraving. These options can have an associated markup that is applied to the product price. These options are exposed in a top-level `inputOptions` container `[ProductViewInputOption]`. - -* Merchant-defined attributes are exposed in a top-level `attributes` container `[ProductViewAttribute]` and indicate their storefront roles. Roles include Show on PDP, Show on PLP, and Show on Search Results. - -* Images are also accessible as a top-level container and can be filtered by their role. An image can have an `image`, `small_image`, or `thumbnail` role. - -## Syntax - -```graphql -products (skus [String]) [ProductView] -``` - -## Endpoints - -import StorefrontAPIEndpoints from '/src/_includes/graphql/endpoints.md' - - - -## Required headers - -You must specify the following HTTP headers to run this query. - -import Docs from '/src/_includes/graphql/catalog-service/headers.md' - - - -### Find the customer group code - -import CustomerGroupCode from '/src/_includes/graphql/customer-group-code.md' - - - -## Example usage - -The [Commerce API playground](https://experienceleague.adobe.com/developer/commerce/storefront/playgrounds/commerce-services/) provides a sample `products` query that you can run against a live instance of Adobe Commerce with Luma sample data. Note that the responses may vary, depending on the configuration of the Commerce instance. - -### Return details about a simple product - -The following query returns details about a simple product. - - - -**Request:** - -```graphql -query { - - products(skus: ["24-UG07"]) { - __typename - id - sku - name - description - shortDescription - addToCartAllowed - url - images(roles: []) { - url - label - roles - } - attributes(roles: []) { - name - label - value - roles - } - inputOptions { - id - title - required - type - markupAmount - suffix - sortOrder - range { - from - to - } - imageSize { - width - height - } - fileExtensions - } - ... on SimpleProductView { - price { - final { - amount { - value - currency - } - } - regular { - amount { - value - currency - } - } - roles - } - } - links { - product { - sku - - } - linkTypes - } - } -} -``` - -**Response:** - -```json -{ - "data": { - "products": [ - { - "__typename": "SimpleProductView", - "id": "TWpRdFZVY3dOdwBaR1ZtWVhWc2RBAFlqVTFPRFEyTVdRdE4yWXhaaTAwTWpOaExXRTRabVV0TVRnd1pXRTVOV0V3TWpGaQBiV0ZwYmw5M1pXSnphWFJsWDNOMGIzSmwAWW1GelpRAFRVRkhVMVJITURBMU5UZ3dNakF3", - "sku": "24-UG07", - "name": "Dual Handle Cardio Ball", - "description": "

Make the most of your limited workout window with our Dual-Handle Cardio Ball. The 15-lb ball maximizes the effort-impact to your abdominal, upper arm and lower-body muscles. It features a handle on each side for a firm, secure grip.

\r\n
    \r\n
  • Durable plastic shell with sand fill.\r\n
  • Two handles.\r\n
  • 15 lbs.\r\n
", - "shortDescription": "", - "addToCartAllowed": true, - "url": "http://example.com/dual-handle-cardio-ball.html", - "images": [ - { - "url": "http://example.com/media/catalog/product/u/g/ug07-bk-0.jpg", - "label": "Image", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - }, - { - "url": "http://example.com/media/catalog/product/u/g/ug07-bk-0_alt1.jpg", - "label": "Image", - "roles": [] - } - ], - "attributes": [ - { - "name": "activity", - "label": "Activity", - "value": [ - "Athletic", - "Sports", - "Gym" - ], - "roles": [ - "visible_in_pdp", - "visible_in_compare_list", - "visible_in_search" - ] - }, - { - "name": "category_gear", - "label": "Category", - "value": [ - "Cardio", - "Exercise" - ], - "roles": [ - "visible_in_pdp", - "visible_in_search" - ] - }, - { - "name": "color", - "label": "Color", - "value": "Black", - "roles": [ - "visible_in_pdp", - "visible_in_plp" - ] - }, - { - "name": "eco_collection", - "label": "Eco Collection", - "value": "no", - "roles": [ - "visible_in_pdp" - ] - }, - { - "name": "erin_recommends", - "label": "Erin Recommends", - "value": "yes", - "roles": [ - "visible_in_pdp" - ] - }, - { - "name": "gender", - "label": "Gender", - "value": [ - "Men", - "Women", - "Unisex" - ], - "roles": [ - "visible_in_pdp", - "visible_in_search" - ] - }, - { - "name": "material", - "label": "Material", - "value": "Plastic", - "roles": [ - "visible_in_pdp", - "visible_in_search" - ] - }, - { - "name": "new", - "label": "New", - "value": "no", - "roles": [ - "visible_in_pdp" - ] - }, - { - "name": "performance_fabric", - "label": "Performance Fabric", - "value": "no", - "roles": [ - "visible_in_pdp" - ] - }, - { - "name": "sale", - "label": "Sale", - "value": "yes", - "roles": [ - "visible_in_pdp" - ] - } - ], - "inputOptions": [ - { - "required": false, - "id": "Y3VzdG9tLW9wdGlvbi8xOQ==", - "title": "Customizable Option - area", - "type": "area", - "range": { - "from": 0.0, - "to": 255.0 - }, - "fileExtensions": "", - "sortOrder": 1, - "suffix": "test-e2e-configurable-smoke138330433-opt-area", - "markupAmount": 126.0 - }, - { - "required": false, - "id": "Y3VzdG9tLW9wdGlvbi8yMA==", - "title": "Customizable Option - field", - "type": "field", - "range": { - "from": 0.0, - "to": 255.0 - }, - "fileExtensions": "", - "sortOrder": 2, - "suffix": "test-e2e-configurable-smoke138330433-opt-field", - "markupAmount": 126.0 - }, - { - "required": false, - "id": "Y3VzdG9tLW9wdGlvbi8yMQ==", - "title": "Customizable Option - file", - "type": "file", - "range": { - "from": 0.0, - "to": 0.0 - }, - "fileExtensions": "jpg, png", - "sortOrder": 3, - "suffix": "test-e2e-configurable-smoke138330433-opt-file", - "markupAmount": 126.0 - }, - { - "required": false, - "id": "Y3VzdG9tLW9wdGlvbi8yMg==", - "title": "Customizable Option - date", - "type": "date", - "range": { - "from": 0.0, - "to": 0.0 - }, - "fileExtensions": "", - "sortOrder": 4, - "suffix": "test-e2e-configurable-smoke138330433-opt-date", - "markupAmount": 126.0 - }, - ], - "price": { - "final": { - "amount": { - "value": 12, - "currency": "USD" - } - }, - "regular": { - "amount": { - "value": 12, - "currency": "USD" - } - }, - "roles": [ - "visible" - ] - }, - "links": [ - { - "product": { - "sku": "24-UG06" - }, - "linkTypes": [ - "related" - ] - }, - { - "product": { - "sku": "MH07" - }, - "linkTypes": [ - "related" - ] - }, - { - "product": { - "sku": "24-WG088" - }, - "linkTypes": [ - "crosssell" - ] - }, - { - "product": { - "sku": "24-WG085_Group" - }, - "linkTypes": [ - "related" - ] - }, - { - "product": { - "sku": "24-UG02" - }, - "linkTypes": [ - "related" - ] - } - ] - } - ] - } -} -``` - -### Return details about a complex product - -The following query returns details about a complex product. - - - -**Request:** - -```graphql -query { - - products(skus: ["MH07"]) { - __typename - id - sku - name - description - shortDescription - addToCartAllowed - url - images(roles: []) { - url - label - roles - } - attributes(roles: []) { - name - label - value - roles - } - ... on ComplexProductView { - inputOptions { - id - title - required - type - markupAmount - suffix - sortOrder - range { - from - to - } - imageSize { - width - height - } - fileExtensions - } - options { - id - title - required - values { - id - title - ... on ProductViewOptionValueProduct { - title, - quantity, - isDefault, - product { - sku - shortDescription - name - links { - product { - sku - } - linkTypes - } - price { - final { - amount { - value - currency - } - } - regular { - amount { - value - currency - } - } - roles - } - } - } - } - } - priceRange { - maximum { - final { - amount { - value - currency - } - } - regular { - amount { - value - currency - } - } - roles - } - minimum { - final { - amount { - value - currency - } - } - regular { - amount { - value - currency - } - } - roles - } - } - } - } - } -``` - -**Response:** - -```json -{ - "data": { - "products": [ - { - "__typename": "ComplexProductView", - "id": "VFVnd053AFpHVm1ZWFZzZEEAWWpVMU9EUTJNV1F0TjJZeFppMDBNak5oTFdFNFptVXRNVGd3WldFNU5XRXdNakZpAGJXRnBibDkzWldKemFYUmxYM04wYjNKbABZbUZ6WlEAVFVGSFUxUkhNREExTlRnd01qQXc", - "sku": "MH07", - "name": "Hero Hoodie", - "description": "

Gray and black color blocking sets you apart as the Hero Hoodie keeps you warm on the bus, campus or cold mean streets. Slanted outsize front pockets keep your style real . . . convenient.

\r\n

• Full-zip gray and black hoodie.
• Ribbed hem.
• Standard fit.
• Drawcord hood cinch.
• Water-resistant coating.

", - "shortDescription": "", - "addToCartAllowed": true, - "url": "http://example.com/hero-hoodie.html", - "images": [ - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_main_2.jpg", - "label": "", - "roles": [ - "image", - "small_image", - "thumbnail" - ] - }, - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_alt1_2.jpg", - "label": "", - "roles": [] - }, - { - "url": "http://example.com/media/catalog/product/m/h/mh07-gray_back_2.jpg", - "label": "", - "roles": [] - } - ], - "inputOptions": [ - { - "required": false, - "id": "Y3VzdG9tLW9wdGlvbi8xOQ==", - "title": "Customizable Option - area", - "type": "area", - "range": { - "from": 0.0, - "to": 255.0 - }, - "fileExtensions": "", - "sortOrder": 1, - "suffix": "test-e2e-configurable-smoke138330433-opt-area", - "markupAmount": 126.0 - }, - { - "required": false, - "id": "Y3VzdG9tLW9wdGlvbi8yMA==", - "title": "Customizable Option - field", - "type": "field", - "range": { - "from": 0.0, - "to": 255.0 - }, - "fileExtensions": "", - "sortOrder": 2, - "suffix": "test-e2e-configurable-smoke138330433-opt-field", - "markupAmount": 126.0 - }, - { - "required": false, - "id": "Y3VzdG9tLW9wdGlvbi8yMQ==", - "title": "Customizable Option - file", - "type": "file", - "range": { - "from": 0.0, - "to": 0.0 - }, - "fileExtensions": "jpg, png", - "sortOrder": 3, - "suffix": "test-e2e-configurable-smoke138330433-opt-file", - "markupAmount": 126.0 - }, - { - "required": false, - "id": "Y3VzdG9tLW9wdGlvbi8yMg==", - "title": "Customizable Option - date", - "type": "date", - "range": { - "from": 0.0, - "to": 0.0 - }, - "fileExtensions": "", - "sortOrder": 4, - "suffix": "test-e2e-configurable-smoke138330433-opt-date", - "markupAmount": 126.0 - }, - { - "required": false, - "id": "Y3VzdG9tLW9wdGlvbi8yMw==", - "title": "Customizable Option - date_time", - "type": "date_time", - "range": { - "from": 0.0, - "to": 0.0 - }, - "fileExtensions": "", - "sortOrder": 5, - "suffix": "test-e2e-configurable-smoke138330433-opt-date_time", - "markupAmount": 126.0 - }, - { - "required": false, - "id": "Y3VzdG9tLW9wdGlvbi8yNA==", - "title": "Customizable Option - time", - "type": "time", - "range": { - "from": 0.0, - "to": 0.0 - }, - "fileExtensions": "", - "sortOrder": 6, - "suffix": "test-e2e-configurable-smoke138330433-opt-time", - "markupAmount": 126.0 - } - ], - "attributes": [ - { - "name": "climate", - "label": "Climate", - "value": "Spring", - "roles": [ - "visible_in_pdp", - "visible_in_search" - ] - }, - { - "name": "eco_collection", - "label": "Eco Collection", - "value": "no", - "roles": [ - "visible_in_pdp" - ] - }, - { - "name": "erin_recommends", - "label": "Erin Recommends", - "value": "no", - "roles": [ - "visible_in_pdp" - ] - }, - { - "name": "material", - "label": "Material", - "value": [ - "Fleece", - "Hemp", - "Polyester" - ], - "roles": [ - "visible_in_pdp", - "visible_in_search" - ] - }, - { - "name": "new", - "label": "New", - "value": "yes", - "roles": [ - "visible_in_pdp" - ] - }, - { - "name": "pattern", - "label": "Pattern", - "value": "Color-Blocked", - "roles": [ - "visible_in_pdp", - "visible_in_search" - ] - }, - { - "name": "performance_fabric", - "label": "Performance Fabric", - "value": "no", - "roles": [ - "visible_in_pdp" - ] - }, - { - "name": "sale", - "label": "Sale", - "value": "no", - "roles": [ - "visible_in_pdp" - ] - } - ], - "links": [ - { - "product": { - "sku": "24-UG07" - }, - "linkTypes": [ - "crosssell" - ] - }, - { - "product": { - "sku": "24-UG06" - }, - "linkTypes": [ - "related", - "crosssell" - ] - }, - { - "product": { - "sku": "24-WG088" - }, - "linkTypes": [ - "crosssell" - ] - }, - { - "product": { - "sku": "24-WG080" - }, - "linkTypes": [ - "crosssell" - ] - } - ], - "options": [ - { - "id": "size", - "title": "Size", - "required": false, - "values": [ - { - "id": "Y29uZmlndXJhYmxlLzE1OS8xNjY=", - "title": "XS" - }, - { - "id": "Y29uZmlndXJhYmxlLzE1OS8xNjc=", - "title": "S" - }, - { - "id": "Y29uZmlndXJhYmxlLzE1OS8xNjg=", - "title": "M" - }, - { - "id": "Y29uZmlndXJhYmxlLzE1OS8xNjk=", - "title": "L" - }, - { - "id": "Y29uZmlndXJhYmxlLzE1OS8xNzA=", - "title": "XL" - } - ] - }, - { - "id": "color", - "title": "Color", - "required": false, - "values": [ - { - "id": "Y29uZmlndXJhYmxlLzkzLzQ5", - "title": "Black" - }, - { - "id": "Y29uZmlndXJhYmxlLzkzLzUy", - "title": "Gray" - }, - { - "id": "Y29uZmlndXJhYmxlLzkzLzUz", - "title": "Green" - } - ] - } - ], - "priceRange": { - "maximum": { - "final": { - "amount": { - "value": 54, - "currency": "USD" - } - }, - "regular": { - "amount": { - "value": 54, - "currency": "USD" - } - }, - "roles": [ - "visible" - ] - }, - "minimum": { - "final": { - "amount": { - "value": 54, - "currency": "USD" - } - }, - "regular": { - "amount": { - "value": 54, - "currency": "USD" - } - }, - "roles": [ - "visible" - ] - } - } - } - ] - } -} -``` - -## Output fields - -import Docs2 from '/src/_includes/graphql/catalog-service/product-view.md' - - diff --git a/src/pages/graphql/catalog-service/refine-product.md b/src/pages/graphql/catalog-service/refine-product.md deleted file mode 100644 index 1183ec57..00000000 --- a/src/pages/graphql/catalog-service/refine-product.md +++ /dev/null @@ -1,292 +0,0 @@ ---- -title: refineProduct query | GraphQL Developer Guide -edition: ee -description: Describes how to construct and use the Catalog Service refineProduct query. -keywords: - - GraphQL - - Services ---- - -# refineProduct query - -The `refineProduct` query narrows the results of a `products` query that was run against a complex product. Before you run the `refineProduct` query, you must run the `products` query and construct the response so that it returns a list of `options` within a `ComplexProductView` inline fragment. When a shopper selects a product option (such as size or color) on the storefront, run the `refineProduct` query, specifying the SKU and selected option value IDs as input. Depending on the number of product options the complex product has, you might need to run the `refineProduct` query multiple times, until the shopper has selected a specific variant. - -You should construct the response of your query so that it contains both the `ComplexProductView` and `SimpleProductView` inline fragments. If the shopper has not selected all of the required options, the query will return the IDs of unselected options and the minimum and maximum price of the product, based on the selected options and possible remaining options. If the shopper has selected all the required options, the query returns details about a simple product, which includes a set price. - -## Syntax - -```graphql -refineProduct(sku: String!, optionIds: [String!]!): ProductView -``` - -## Endpoints - -import StorefrontAPIEndpoints from '/src/_includes/graphql/endpoints.md' - - - -## Required headers - -You must specify the following HTTP headers to run this query. - -import Docs from '/src/_includes/graphql/catalog-service/headers.md' - - - -### Find the customer group code - -import CustomerGroupCode from '/src/_includes/graphql/customer-group-code.md' - - - -## Example usage - -### Return details about a partially selected complex product - -The following query returns details about the color options available for a medium-sized variant of product `MH12`. The value of the `optionIDs` input parameter is taken from the `products` query's [Return details about a complex product](products.md#return-details-about-a-complex-product) example. - - - -**Request:** - -```graphql -query { - refineProduct(optionIds: ["Y29uZmlndXJhYmxlLzE4Ni8xNzc="], sku: "MH12") { - __typename - id - sku - name - url - ... on SimpleProductView { - price { - final { - amount { - value - } - } - regular { - amount { - value - } - } - } - } - ... on ComplexProductView { - options { - id - title - required - values { - id - title - - } - } - priceRange { - maximum { - final { - amount { - value - } - } - regular { - amount { - value - } - } - } - minimum { - final { - amount { - value - } - } - regular { - amount { - value - } - } - } - } - } - } -} -``` - -**Response:** - -```json -{ - "data": { - "refineProduct": { - "__typename": "ComplexProductView", - "id": "VFVneE1nAFpHVm1ZWFZzZEEATXpSbE1qYzBNR0V0TnpRM015MDBZemc1TFRnM016QXROVGMwTURObVkyVXlOMkZsAGJXRnBibDkzWldKemFYUmxYM04wYjNKbABZbUZ6WlEAVFVGSFUxUkhNREExTlRjNU1ETTQ", - "sku": "MH12", - "name": "Ajax Full-Zip Sweatshirt 2", - "url": "http://example.com/ajax-full-zip-sweatshirt.html", - "options": [ - { - "id": "color", - "title": "Color", - "required": false, - "values": [ - { - "id": "Y29uZmlndXJhYmxlLzkzLzU5", - "title": "Blue" - }, - { - "id": "Y29uZmlndXJhYmxlLzkzLzY3", - "title": "Red" - }, - { - "id": "Y29uZmlndXJhYmxlLzkzLzYy", - "title": "Green" - } - ] - } - ], - "priceRange": { - "maximum": { - "final": { - "amount": { - "value": 69 - } - }, - "regular": { - "amount": { - "value": 69 - } - } - }, - "minimum": { - "final": { - "amount": { - "value": 69 - } - }, - "regular": { - "amount": { - "value": 69 - } - } - } - } - } - } -} -``` - -### Return details about a fully selected complex product - -In the following query, the shopper has selected options for both size and color. The response contains details about the corresponding simple product. - - - -**Request:** - -```graphql -query { - refineProduct(optionIds: ["Y29uZmlndXJhYmxlLzE4Ni8xNzc=", "Y29uZmlndXJhYmxlLzkzLzU5"], sku: "MH12") { - __typename - id - sku - name - url - ... on SimpleProductView { - price { - final { - amount { - value - } - } - regular { - amount { - value - } - } - } - } - ... on ComplexProductView { - options { - id - title - required - values { - id - title - - } - } - priceRange { - maximum { - final { - amount { - value - } - } - regular { - amount { - value - } - } - } - minimum { - final { - amount { - value - } - } - regular { - amount { - value - } - } - } - } - } - } -} -``` - -**Response:** - -```json -{ - "data": { - "refineProduct": { - "__typename": "SimpleProductView", - "id": "VFVneE1pMU5MVUpzZFdVAFpHVm1ZWFZzZEEATXpSbE1qYzBNR0V0TnpRM015MDBZemc1TFRnM016QXROVGMwTURObVkyVXlOMkZsAGJXRnBibDkzWldKemFYUmxYM04wYjNKbABZbUZ6WlEAVFVGSFUxUkhNREExTlRjNU1ETTQ", - "sku": "MH12-M-Blue", - "name": "Ajax Full-Zip Sweatshirt -M-Blue", - "url": "http://example.com/catalog/product/view/id/235/s/ajax-full-zip-sweatshirt-m-blue/", - "price": { - "final": { - "amount": { - "value": 69 - } - }, - "regular": { - "amount": { - "value": 69 - } - } - } - } - } -} -``` - -## Input fields - -You must specify a SKU value and at least one option ID as input. - -Field | Data type | Description ---- | --- | --- -`optionIds` | [String!]! | A list of IDs assigned to the product options the shopper has selected, such specific colors and sizes. -`sku` | String! | The SKU of a complex product. - -## Output fields - -import Docs2 from '/src/_includes/graphql/catalog-service/product-view.md' - - diff --git a/src/pages/graphql/index.md b/src/pages/graphql/index.md deleted file mode 100644 index c492086b..00000000 --- a/src/pages/graphql/index.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Storefront Services GraphQL Overview -edition: ee -description: Learn about the GraphQL capabilities of Live Search, Catalog Service, and Product Recommendations ---- - -# Storefront Services GraphQL overview - -Catalog Service, Live Search, and Product Recommendations services contribute to the Storefront Services schema, which operates independently from the [core Adobe Commerce schema](https://developer.adobe.com/commerce/webapi/graphql/). Each of these services defines one or more queries. Mutations are not currently supported in this schema. - -The endpoints for all Storefront Service queries are: - -- Testing: `https://catalog-service-sandbox.adobe.io/graphql` -- Production: `https://catalog-service.adobe.io/graphql` - -You must also specify multiple HTTP headers, including an API key, with each call. Refer to the documentation for each query for details about the required headers. - -You can optionally use [API Mesh for Adobe Developer App Builder](https://developer.adobe.com/graphql-mesh-gateway/gateway/) to integrate the core Commerce schema, the Storefront Services schema, and third-party APIs. API Mesh requires an [Adobe I/O Runtime](https://developer.adobe.com/app-builder/docs/guides/runtime_guides/) account. diff --git a/src/pages/graphql/live-search/attribute-metadata.md b/src/pages/graphql/live-search/attribute-metadata.md deleted file mode 100644 index 9cf51867..00000000 --- a/src/pages/graphql/live-search/attribute-metadata.md +++ /dev/null @@ -1,176 +0,0 @@ ---- -title: attributeMetadata query -edition: ee -description: Describes how to construct and use the Live Search attributeMetadata query. -keywords: - - GraphQL - - Services - - Search ---- - -# attributeMetadata query - -The `attributeMetadata` query returns a list of product attribute codes that can be used for sorting or filtering in a [`productSearch` query](./product-search.md). The query response can include the attribute name, display label, and a Boolean value that indicates if the attribute has a numeric value. - -## Syntax - -`attributeMetadata: AttributeMetadataResponse!` - -## Endpoints - -import StorefrontAPIEndpoints from '/src/_includes/graphql/endpoints.md' - - - -## Required headers - -You must specify the following HTTP headers to run this query. - -import Docs from '/src/_includes/graphql/live-search-headers.md' - - - -## Example usage - -The following query returns details about all product attributes that can be used to define the sorting order or as a filter in a `productSearch` query. - -**Request:** - -```graphql -{ - attributeMetadata{ - sortable { - attribute - label - numeric - } - filterableInSearch { - attribute - label - numeric - } - } -} -``` - -**Response:** - -```json -{ - "extensions": { - "request-id": "5Kd6pzYc02PlHIbbmNDTff3VaXF0EnYf" - }, - "data": { - "attributeMetadata": { - "sortable": [ - { - "attribute": "name", - "label": "Product Name", - "numeric": false - }, - { - "attribute": "price", - "label": "Price", - "numeric": true - }, - { - "attribute": "position", - "label": "position", - "numeric": true - } - ], - "filterableInSearch": [ - { - "attribute": "categoryIds", - "label": "categoryIds", - "numeric": false - }, - { - "attribute": "collar", - "label": "Collar", - "numeric": false - }, - { - "attribute": "visibility", - "label": "visibility", - "numeric": false - }, - { - "attribute": "activity", - "label": "Activity", - "numeric": false - }, - { - "attribute": "gender", - "label": "Gender", - "numeric": false - }, - { - "attribute": "size", - "label": "Size", - "numeric": false - }, - { - "attribute": "price", - "label": "price", - "numeric": true - }, - { - "attribute": "sleeve", - "label": "Sleeve", - "numeric": false - }, - { - "attribute": "eco_collection", - "label": "Eco Collection", - "numeric": false - }, - { - "attribute": "categories", - "label": "categories", - "numeric": false - }, - { - "attribute": "climate", - "label": "Climate", - "numeric": false - }, - { - "attribute": "sku", - "label": "sku", - "numeric": false - } - ] - } - } -} -``` - -## Output fields - -The `AttributeMetadataResponse` return object can contain the following fields: - -Field | Data Type | Description ---- | --- | --- -`filterableInSearch` | [FilterableInSearchAttribute](#filterableinsearchattribute-data-type) | An array of product attributes that can be used for filtering in a `productSearch` query -`sortable` | [SortableAttribute](#sortableattribute-data-type) | An array of product attributes that can be used for sorting in a `productSearch` query - -### FilterableInSearchAttribute data type - -The `FilterableInSearchAttribute` data type can contain the following fields: - -Field | Data Type | Description ---- | --- | --- -`attribute` | String! | The unique identifier for an attribute code. This value should be in lowercase letters and without spaces -`label` | String | The display name assigned to the attribute -`numeric` | Boolean | Indicates whether this attribute has a numeric value, such as a price or integer - -### SortableAttribute data type - -The `SortableAttribute` data type can contain the following fields: - -Field | Data Type | Description ---- | --- | --- -`attribute` | String! | The unique identifier for an attribute code. This value should be in lowercase letters and without spaces -`label` | String | The display name assigned to the attribute -`numeric` | Boolean | Indicates whether this attribute has a numeric value, such as a price or integer diff --git a/src/pages/graphql/live-search/index.md b/src/pages/graphql/live-search/index.md deleted file mode 100644 index 9eefcdda..00000000 --- a/src/pages/graphql/live-search/index.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Live Search -edition: ee -description: Learn how Live Search implements GraphQL. -keywords: - - GraphQL - - Services - - Search ---- - -# Live Search - -Live Search is a set of standalone packages for Adobe Commerce that replaces the standard search capabilities. It provides GraphQL functionality that is currently separate from the built-in GraphQL functionality provided in Adobe Commerce and Magento Open Source. Live Search GraphQL requires connecting to a different endpoint and specifying a different set of HTTP headers. - -You can connect to the Live Search GraphQL endpoint to test sample queries using an Integrated Development Environment (IDE) in two ways: - -- Through the GraphQL Playground IDE embedded in the Commerce Admin. The embedded IDE manages the endpoint URL and required HTTP headers. To access this IDE, go to **Marketing** > SEO & Search > **Live Search**. - -- Through a standalone version of GraphQL Playground, or any other IDE, such as GraphiQL or Postman. In these applications you must specify the endpoint URL and provide a set of HTTP headers for each call. - -For instructions on how to install and implement this product, see [Introduction to Live Search](https://experienceleague.adobe.com/docs/commerce/live-search/overview.html). - -## Error Codes - -The Live Search queries can return the following error codes when a query encounters an error. - -|**Error Code**|**Description**| -|---|---| -|1000 |Catches any other error that is not recognized by the service.| -|1001 |`index_not_found_exception`
Live Search exception message.| -|1002 |`search_phase_execution_exception`
Live Search exception message.| -|1003 |`mapper_parsing_exception`
Live Search exception message.| -|1004 |`invalid_argument_exception`
The request has an invalid argument.| diff --git a/src/pages/graphql/live-search/product-search.md b/src/pages/graphql/live-search/product-search.md deleted file mode 100644 index 2461d9ec..00000000 --- a/src/pages/graphql/live-search/product-search.md +++ /dev/null @@ -1,1436 +0,0 @@ ---- -title: productSearch query -edition: ee -description: Describes how to construct and use the productSearch query in both Live Search and Catalog Service. -keywords: - - GraphQL - - Services - - Search ---- - -# productSearch query - -This article discusses the `productSearch` query that is available in the Live Search and Catalog Service extension. While similar in structure and functionality, there are differences in what they output. - -See [Boundaries and Limits](https://experienceleague.adobe.com/en/docs/commerce/live-search/boundaries-limits) for the latest recommendations for creating performant queries. - -## Syntax - -```graphql -productSearch( - phrase: String! - context: [QueryContextInput!] - current_page: Int = 1 - page_size: Int = 20 - sort: [ProductSearchSortInput!] - filter: [SearchClauseInput!] -): ProductSearchResponse! -``` - -## Construct a productSearch query - -Live Search uses the `productSearch` query to search for products instead of the `products` query, which is provided with Adobe Commerce and Magento Open Source. Although the two queries are functionally similar, they have different input requirements. The `products` query returns information that is relevant for layered navigation, while the `productSearch` query returns faceting data and other features that are specific to Live Search. - - - -The Catalog Service `productSearch` query uses Live Search to return details about the SKUs specified as input. [Learn more](#catalog-service). - -The `productSearch` query accepts the following fields as input: - -- `phrase` - The string of text to search for. This field is required but an empty string may be used if only filtering by `category` or `categoryPath`. -- `context` - (Live Search only) Query context that allows customized search results to be returned based on the customer group passed. This is used to get the view history of a SKU. -- `current_page` and `page_size`- These optional fields allow the search results to be broken down into smaller groups so that a limited number of items are returned at a time. The default value of `page_size` is `20`, and the default value for `current_page` is `1`. In the response, counting starts at page one. -- `sort` - An object that defines one or more product attributes to use to sort the search results. The default sortable product attributes in Luma are `price`, `name`, and `position`. A product's position is assigned within a category. -- `filter` - An object that defines one or more product attributes or categories used to narrow the search results. In the Luma theme, the `sku`, `price`, and `size` attributes are among the product attributes that can be used to filter query results. - - - -The initial release does not allow for different merchandising strategies per customer group. - -### phrase - -The `phrase` field contains the text that a shopper enters on the storefront. Live Search applies all configured rules, synonyms, and other configuration settings to determine the search results. All `productSearch` queries must contain the `phrase` field. If the query filters on a category or category path, the value of the `phrase` field can be an empty string. - -The following example sets `pants` as the phrase to search for: - -```graphql -phrase: "pants" -``` - - - -Use the [`attributeMetadata` query](./attribute-metadata.md) to return a list of product attributes that can be used to define a filter. - -### context - - - -The `context` object is only applicable to Live Search. - -The `context` object passes both the customer group code and user view history to the query. If no value is passed, the "Not Logged In" group is used. - - ```graphql - context: { - customerGroup: "b6589fc6ab0dc82cf12099d1c2d40ab994e8410c", - userViewHistory: [ - { - sku: "sku-01", - dateTime: "2022-10-13T20:53:21.338Z" - }, - { - sku: "sku-02", - dateTime: "2022-10-13T20:53:21.338Z" - } - ] -} -``` - -### current_page - -The `currentPage` field specifies which page of results to return. If no value is specified, the first page is returned. - -The system returns an error if you specify a value that is greater than the number of available pages. - -The following example sets the current page to 5: - -```graphql -current_page: 5 -``` - -### page_size - -When you run a query, you do not know in advance how many items the query will return. The query could return a few items, or it could return hundreds. The `page_size` field determines how many items to return at one time. If you use the default value of 20, and the query returns 97 items, the results are stored in four pages containing 20 items each, and one page containing 17 items. - -The following example sets the page size to 10: - -```graphql -page_size: 10 -``` - -### sort - -The `sort` field allows you to specify one or more product attributes to be used to sort the results. If you specify more than one attribute, Live Search sorts by the first field listed. If any items have the same value, those items are sorted by the secondary field. The value for each field can be set to either `ASC` or `DESC`. - -The following example causes the query to filter first by `price`, and then by `name`: - -```graphql -sort: [ - { - attribute: "price" - direction: DESC - } - { - attribute: "name" - direction: DESC - } -] -``` - -### Filtering - -The `filter` attribute is the part of the query that uses product attributes as facets or categories that are defined in the Admin. For example, to filter results by color, a color facet must be defined in Live Search, based on the existing `color` attribute. - -#### Filtering by attributes - -An attribute filter consists of a product `attribute`, a comparison operator, and the value that is being searched for. Together, they help narrow down the search results, based on shopper input. For example, if you want to set up a filter for jackets based on size, you could set the product attribute to `size`. To filter on medium-sized jackets only, set the `eq` field to `M`. To filter on both medium- and large-sized jackets, set the `in` field to `["M", "L"]`. If an attribute is numeric, you can filter on it as a price range, such as between $50 and $100. To filter on a price range, set the `attribute` to `price`, and assign the `range` field with `from` and `to` values as `50` and `100`, respectively. - -You can define multiple filters in the same call. The following example filters on the price and size: - -```graphql -filter: [ - { - attribute: "price" - range: { - from: 50 - to: 100 - } - }, - { - attribute: "size" - in: ["M", "L"] - } -] -``` - -An attribute must be set to `filterableInSearch: true` if it is passed in as part of the filter. Otherwise, a "500 error" is returned. - -Only facets specified in Live Search are returned. - - - -Use the [`attributeMetadata` query](./attribute-metadata.md) to return a list of product attributes that can be used to define a filter. - -#### Filtering using search capability - - - -This feature is in beta. For installation information, see the [Live Search guide](https://experienceleague.adobe.com/en/docs/commerce/live-search/install#install-the-live-search-beta) in the merchant documentation. - -This beta supports three new capabilities: - -- **Layered search** - Search within another search context - With this capability, you can undertake up to two layers of search for your search queries. For example: - - - **Layer 1 search** - Search for "motor" on "product_attribute_1". - - **Layer 2 search** - Search for "part number 123" on "product_attribute_2". This example searches for "part number 123" within the results for "motor". - - Layered search is available for both `startsWith` search indexation and `contains` search indexation as described below: - -- **startsWith search indexation** - Search using `startsWith` indexation. This new capability allows: - - - Searching for products where the attribute value starts with a particular string. - - Configuring an "ends with" search so shoppers can search for products where the attribute value ends with a particular string. To enable an "ends with" search, the product attribute needs to be ingested in reverse and the API call should also be a reversed string. - -- **contains search indexation** -Search an attribute using contains indexation. This new capability allows: - - - Searching for a query within a larger string. For example, if a shopper searches for the product number "PE-123" in the string "HAPE-123". - - - Note: This search type is different from the existing [phrase search](https://developer.adobe.com/commerce/services/graphql/live-search/product-search/#phrase), which performs an autocomplete search. For example, if your product attribute value is "outdoor pants", a phrase search returns a response for "out pan", but does not return a response for "oor ants". A contains search, however, does return a response for "oor ants". - -Refer to the following examples to learn how to implement these new search capabilities in your Live Search API. - -##### startsWith condition example - -The following example shows how you can search the "manufacturer" product attribute using a `startsWith` value of "Sieme". - -```graphql -filter: [ - { - attribute: "manufacturer", - startsWith: "Sieme" - } -] -``` - -##### contains condition example - -The following example shows how you can search the "manufacturer" product attribute using a `contains` value of "auto". The result of this query would match manufacturers named "ABC Auto Company" and "ABCauto" for example. - -```graphql -filter: [ - { - attribute: "manufacturer", - contains: "auto" - } -] -``` - -##### endsWith filter example - -To search an attribute value using `endsWith`, you must reverse the attribute value when you ingest the data. Then, you can use the `startsWith` condition on the specific attribute. In the following example, the part number is actually: `PN-5763`. - -```graphql -filter: [ - { - attribute: "part_number_reverse", - startsWith: "3675-NP" - } -] -``` - -**Example queries** - -The following example shows how to search within search results using "motor" as the search phrase and filtering on "manufacturer" that "startsWith" the term "Sieme": - -```graphql -productSearch( - phrase: "motor", - filter: [ - { - attribute: "manufacturer", - startsWith: "Sieme" - } - ] -) -``` - -The following example shows how to search within search results using "motor" as the search phrase and filtering on "part_number" that "startsWith" the term "PE-123": - -```graphql -productSearch( - phrase: "motor", - filter: [ - { - attribute: "part_number", - startsWith: "PE-123" - } - ] -) -``` - -The following example shows how to search within search results using "motor" as the search phrase and filtering on "manufacturer" that "endsWith" the term "PE-123": - -```graphql -productSearch( - phrase: "motor", - filter: [ - { - attribute: "reverse_part_number", - startsWith: "321-EP" - } - ] -) -``` - -The following example shows how to search within search results using "motor" as the search phrase and filtering on "description" that "contains" the phrase "warranty included": - -```graphql -productSearch( - phrase: "motor", - filter: [ - { - attribute: "description", - contains: "warranty included" - } - ] -) -``` - -The following example shows how to search a particular attribute for `startsWith` but not search within the search result: - -```graphql -productSearch( - phrase: "", - filter: [ - { - attribute: "part_number", - startsWith: "PE-123" - } - ] -) -``` - -##### Limitations - -The beta has the following limitations: - -- You can specify a maximum of six attributes to be enabled for **Contains** and six attributes to be enabled for **Starts with**. -- Each aggregation returns a maximum of 1000 facets. -- `startsWith` and `contains` both require a minimum of two characters in the search. -- `startsWith` allows a maximum of 10 characters for search. -- `contains` allows a maximum of 10 characters for search in the API query and up to the first 50 characters are indexed for a true `contains` search. However, if more than 10 characters are passed in, the search results are returned for an autocomplete search result and not a true `contains` search. In this situation, the autocomplete search is enabled on the entire attribute string and not just the first 50 characters. -- You can paginate a maximum of 10,000 products for any `productSearch` query. -- These new search capabilities are not available in PLP widgets or the Live Search adapter extension. - -For additional Live Search boundaries and limits, see [boundaries and limits](https://experienceleague.adobe.com/en/docs/commerce/live-search/boundaries-limits) in the Live Search merchant guide. - -#### Filtering by categories - -Results can be filtered by categories defined in the Admin with the `categories` and `categoryPath` filters. They are slightly different in the type of facets returned: - -`categories` is preferred when selecting from a category filter. Filtering on `categories` with "women/bottoms-women" and the phrase `pants`, the category facets returned are "promotions/pants-all", "women/bottoms-women/pants-women", and similar. - -`categoryPath` is preferred when browsing by category. `categoryPath` returns the immediate subcategories of the category path being filtered. Filtering on `categoryPath` with "women/bottoms-women", the category facets returned are its children such as "women/bottoms-women/pants-women" and "women/bottoms-women/shorts-women". - -A `phrase` attribute is required but it may be an empty string if you are filtering by `category` or `categoryPath`. - -Pinned categories are always returned, regardless of the filtered category. - - - -For search merchandising rules to apply correctly, the `productSearch` query should sort by relevance or pass no sort variables at all. For category merchandising rules to apply correctly, the `productSearch` query should sort by `position`, filter on `categoryPath` for browsing a category page (otherwise, no category rules will be applied), and `phrase` should be "empty". - -#### categoryPath - -This example shows how to filter returned facets when browsing a category page. - -`categoryPath` performs strict filtering, meaning that the facets returned are limited to the immediate children of the current category page. - -The following snippet corresponds to a shopper selecting **Women** > **Bottoms**. - -```graphql -filter:[ - { - attribute:"categoryPath", - eq: "women/bottoms-women" - } - ] -``` - -#### categories - -`categories` can be used as a filter in a query when a category facet is selected in the layered navigation. -This does not result in strict filtering when used by itself. - -```graphql -filter: [ - { - attribute:"categories", - in: "women/bottoms-women" - }, - { - attribute: "visibility", - in: ["Catalog", "Catalog, Search"] - }, -] -``` - -Category filters can be used together. Here, the shopper navigates to "Womens -> Bottoms" and filters on "pants". This query returns both "Pants" and "Shorts" as facets in the layered navigation. - -```graphql -filter: [ - { - attribute: "visibility", - in: ["Catalog", "Catalog, Search"] - }, - { - attribute:"categoryPath", - eq: ["women/bottoms-women"] - }, - { - attribute:"categories", - in: ["women/bottoms-women/pants-women"] - } -] -``` - -## Define query output - -The response to the `productSearch` query can contain details about each product returned and information about the ordering of the results. - -### Facets - -[Facets](https://experienceleague.adobe.com/docs/commerce/live-search/live-search-admin/facets/facets.html) provide a method of high-performance filtering that uses multiple dimensions of attribute values as search criteria. Faceted search is similar, but considerably more advanced than the native layered navigation functionality. - -The `facets` object contains details about each facet that affects the search results. By default, Live Search provides static facets for the `categories` and `price` product attributes that are pinned to the top of the Filters list in the storefront. The merchant can also pin other attributes to this list. - -Dynamic facets appear only when relevant, and the selection changes according to the products returned. In the storefront Filters list, dynamic facets appear in alphabetic order after any pinned facets. To streamline search results, facets are set to `dynamic` by default. - -Intelligent dynamic facets measure the frequency that an attribute appears in the results list and its prevalence throughout the catalog. Live Search uses this information to determine the order of returned products. This makes it possible to return two types of dynamic facets: Those that are most significant, followed by those that are most popular. - -The `buckets` subobject divides the data into manageable groups. For the `price` and similar numeric attributes, each bucket defines a price range and counts the items within that price range. Meanwhile, the buckets associated with the `categories` attribute list details about each category a product is a member of. The contents of dynamic facet buckets vary. - -The following snippet returns all information about the applicable facets for a search: - -```graphql -facets { - attribute - title - type - buckets { - title - ... on RangeBucket { - title - to - from - count - } - ... on ScalarBucket { - title - id - count - } - ... on StatsBucket { - title - min - max - } - } -} -``` - -### Items list - -The `items` object primarily provides details about each item returned. The structure of this object varies between Catalog Service and Live Search. For Catalog Service, specify a `ProductSearchItem.productView` object. For Live Search, specify a `ProductSearchItem.product` object - -#### ProductSearchItem.product (Live Search) - -The following snippet returns relevant information about each item when Catalog Service is not installed or used: - -```graphql -items { - product { - name - sku - price_range { - maximum_price { - final_price { - value - currency - } - } - minimum_price { - final_price { - value - currency - } - } - } - } -} -``` - -#### ProductSearchItem.productView (Catalog Service) - -If [Catalog Service](https://experienceleague.adobe.com/docs/commerce/catalog-service/guide-overview.html) is installed, you can optionally use the `productView` field instead of the `product` field to return product details. Catalog Service uses [Catalog Sync](https://experienceleague.adobe.com/docs/commerce/user-guides/data-services/catalog-sync.html) to manage product data, resulting in query responses with less latency than is possible with the `ProductInterface`. With Catalog Service, the structure of the pricing information varies, depending on whether the product is designated as a `SimpleProduct` (simple, downloadable, gift card) or as a `ComplexProduct` (configurable, grouped, or bundle). - -The following Catalog Service snippet returns relevant information about each item: - -```graphql -items { - productView { - name - sku - ... on SimpleProductView { - price { - final { - amount { - value - currency - } - } - regular { - amount { - value - currency - } - } - } - } - ... on ComplexProductView { - options { - id - title - required - values { - id - title - } - } - priceRange { - maximum { - final { - amount { - value - currency - } - } - regular { - amount { - value - currency - } - } - } - minimum { - final { - amount { - value - currency - } - } - regular { - amount { - value - currency - } - } - } - } - } - } -} -``` - -The `items` object can also optionally return highlighted text that shows the matching search terms. - -### Other fields and objects - -The query response can also contain the following top-level fields and objects: - -- `page_info` - An object that lists the `page_size` and `current_page` input arguments and the total number of pages available. -- `suggestions` - An array of strings that include the names of products and categories that exist in the catalog that are similar to the search query. -- `total_count` - The number of products returned. - -## Endpoints - -import StorefrontAPIEndpoints from '/src/_includes/graphql/endpoints.md' - - - -## Required headers - -You must specify the following HTTP headers to run this query. - -Header name| Description ---- | ----- -`Magento-Customer-Group` | (**Catalog Service Only**) Specify the [customer group code](#find-the-customer-group-code) for the API request. -`Magento-Environment-Id` | This value is displayed at **Stores** > **Configuration** > **Services** > **Magento Services** > **SaaS Environment** or can be obtained by running the `bin/magento config:show services_connector/services_id/environment_id` command. -`Magento-Store-Code` | The code assigned to the store associated with the active store view. For example, `main_website_store`. -`Magento-Store-View-Code` | The code assigned to the active store view. For example, `default`. -`Magento-Website-Code` | The code assigned to the website associated with the active store view. For example, `base`. -`X-Api-Key` | For Live Search queries, set this value to `search_gql`. For Catalog Service queries, set this value to the [unique API key](https://experienceleague.adobe.com/en/docs/commerce/user-guides/integration-services/saas#genapikey) generated for your Commerce environment. - -### Find the customer group code - -import CustomerGroupCode from '/src/_includes/graphql/customer-group-code.md' - - - -## Example usage - -In the following sections provide examples for using Live Search and Catalog Service. - -### Live Search - -This is an example of using Live Search to retrieve and filter results. The query uses the core `ProductInterface` to access product information. As a result, the query has a longer response time than using [Catalog Service](https://experienceleague.adobe.com/docs/commerce/catalog-service/guide-overview.html) to retrieve this information. - -For an example of using Live Search with Catalog Service, see [Catalog Service productSearch query](#catalog-service). Other than returning the `productView` object, all other attributes are the same. - -In the example below, there is no search `phrase` passed and results are filtered on the "women/bottoms-women" category. In the response, two categories are returned: - -```json -{ - "title": "women/bottoms-women/shorts-women", - "__typename": "ScalarBucket", - "id": "28", - "count": 12 -}, -{ - "title": "women/bottoms-women/pants-women", - "__typename": "ScalarBucket", - "id": "27", - "count": 13 -} -``` - -If the `phrase` "pants" is added, only one category is returned and "shorts" are not returned by the query: - -```json -{ - "title": "women/bottoms-women/pants-women", - "__typename": "ScalarBucket", - "id": "27", - "count": 13 -} -``` - -**Request:** - -```graphql -{ - productSearch( - phrase: "" - sort: [ - { attribute: "price", direction: DESC } - { attribute: "name", direction: DESC } - ] - filter: [ - { attribute: "categoryPath", in: ["women/bottoms-women"] } - ] - page_size: 9 - ) { - total_count - page_info { - current_page - page_size - total_pages - } - facets { - attribute - title - type - buckets { - title - __typename - ... on RangeBucket { - title - to - from - count - } - ... on ScalarBucket { - title - id - count - } - ... on StatsBucket { - title - min - max - } - } - } - items { - product { - name - sku - } - } - suggestions - } -} -``` - -**Response:** - -
-Response - -```json -"data": { - "productSearch": { - "total_count": 25, - "page_info": { - "current_page": 1, - "page_size": 9, - "total_pages": 3 - }, - "facets": [ - { - "attribute": "categories", - "title": "Categories", - "type": "PINNED", - "buckets": [ - { - "title": "women/bottoms-women/shorts-women", - "__typename": "ScalarBucket", - "id": "28", - "count": 12 - }, - { - "title": "women/bottoms-women/pants-women", - "__typename": "ScalarBucket", - "id": "27", - "count": 13 - } - ] - }, - { - "attribute": "price", - "title": "Price", - "type": "PINNED", - "buckets": [ - { - "title": "0.0-25.0", - "__typename": "RangeBucket", - "to": 25, - "from": 0, - "count": 1 - }, - { - "title": "25.0-50.0", - "__typename": "RangeBucket", - "to": 50, - "from": 25, - "count": 20 - }, - { - "title": "50.0-75.0", - "__typename": "RangeBucket", - "to": 75, - "from": 50, - "count": 4 - } - ] - }, - { - "attribute": "material", - "title": "Material", - "type": "POPULAR", - "buckets": [ - { - "title": "Organic Cotton", - "__typename": "ScalarBucket", - "id": "Organic Cotton", - "count": 13 - }, - { - "title": "Spandex", - "__typename": "ScalarBucket", - "id": "Spandex", - "count": 11 - }, - { - "title": "Polyester", - "__typename": "ScalarBucket", - "id": "Polyester", - "count": 7 - }, - { - "title": "Cotton", - "__typename": "ScalarBucket", - "id": "Cotton", - "count": 4 - }, - { - "title": "LumaTech™", - "__typename": "ScalarBucket", - "id": "LumaTech™", - "count": 5 - }, - { - "title": "CoolTech™", - "__typename": "ScalarBucket", - "id": "CoolTech™", - "count": 4 - }, - { - "title": "Mesh", - "__typename": "ScalarBucket", - "id": "Mesh", - "count": 3 - }, - { - "title": "Cocona® performance fabric", - "__typename": "ScalarBucket", - "id": "Cocona® performance fabric", - "count": 4 - } - ] - }, - { - "attribute": "new", - "title": "New", - "type": "POPULAR", - "buckets": [ - { - "title": "no", - "__typename": "ScalarBucket", - "id": "no", - "count": 21 - }, - { - "title": "yes", - "__typename": "ScalarBucket", - "id": "yes", - "count": 4 - } - ] - }, - { - "attribute": "color", - "title": "Color", - "type": "POPULAR", - "buckets": [ - { - "title": "Blue", - "__typename": "ScalarBucket", - "id": "Blue", - "count": 14 - }, - { - "title": "Black", - "__typename": "ScalarBucket", - "id": "Black", - "count": 12 - }, - { - "title": "Orange", - "__typename": "ScalarBucket", - "id": "Orange", - "count": 9 - }, - { - "title": "Green", - "__typename": "ScalarBucket", - "id": "Green", - "count": 8 - }, - { - "title": "Purple", - "__typename": "ScalarBucket", - "id": "Purple", - "count": 8 - }, - { - "title": "Gray", - "__typename": "ScalarBucket", - "id": "Gray", - "count": 8 - }, - { - "title": "Red", - "__typename": "ScalarBucket", - "id": "Red", - "count": 7 - }, - { - "title": "White", - "__typename": "ScalarBucket", - "id": "White", - "count": 5 - } - ] - }, - { - "attribute": "eco_collection", - "title": "Eco Collection", - "type": "POPULAR", - "buckets": [ - { - "title": "no", - "__typename": "ScalarBucket", - "id": "no", - "count": 18 - }, - { - "title": "yes", - "__typename": "ScalarBucket", - "id": "yes", - "count": 7 - } - ] - }, - { - "attribute": "climate", - "title": "Climate", - "type": "POPULAR", - "buckets": [ - { - "title": "Indoor", - "__typename": "ScalarBucket", - "id": "Indoor", - "count": 20 - }, - { - "title": "Hot", - "__typename": "ScalarBucket", - "id": "Hot", - "count": 16 - }, - { - "title": "Mild", - "__typename": "ScalarBucket", - "id": "Mild", - "count": 17 - }, - { - "title": "Warm", - "__typename": "ScalarBucket", - "id": "Warm", - "count": 15 - }, - { - "title": "All-Weather", - "__typename": "ScalarBucket", - "id": "All-Weather", - "count": 10 - }, - { - "title": "Spring", - "__typename": "ScalarBucket", - "id": "Spring", - "count": 7 - }, - { - "title": "Cool", - "__typename": "ScalarBucket", - "id": "Cool", - "count": 3 - } - ] - }, - { - "attribute": "size", - "title": "Size", - "type": "POPULAR", - "buckets": [ - { - "title": "28", - "__typename": "ScalarBucket", - "id": "28", - "count": 25 - }, - { - "title": "29", - "__typename": "ScalarBucket", - "id": "29", - "count": 25 - }, - { - "title": "30", - "__typename": "ScalarBucket", - "id": "30", - "count": 7 - }, - { - "title": "31", - "__typename": "ScalarBucket", - "id": "31", - "count": 7 - }, - { - "title": "32", - "__typename": "ScalarBucket", - "id": "32", - "count": 7 - } - ] - }, - { - "attribute": "activity", - "title": "Activity", - "type": "POPULAR", - "buckets": [] - }, - { - "attribute": "custom_price", - "title": "Custom Price", - "type": "POPULAR", - "buckets": [] - } - ], - "items": [ - { - "product": { - "name": "Sahara Leggings", - "sku": "WP05" - } - }, - { - "product": { - "name": "Cora Parachute Pant", - "sku": "WP04" - } - }, - { - "product": { - "name": "Deirdre Relaxed-Fit Capri", - "sku": "WP12" - } - }, - { - "product": { - "name": "Gwen Drawstring Bike Short", - "sku": "WSH03" - } - }, - { - "product": { - "name": "Ina Compression Short", - "sku": "WSH11" - } - }, - { - "product": { - "name": "Diana Tights", - "sku": "WP06" - } - }, - { - "product": { - "name": "Erika Running Short", - "sku": "WSH12" - } - }, - { - "product": { - "name": "Artemis Running Short", - "sku": "WSH04" - } - }, - { - "product": { - "name": "Sybil Running Short", - "sku": "WSH08" - } - } - ], - "suggestions": [] - } -} -``` - -
- -### Catalog Service - -In the following example, the query returns information on the same products as the Live Search [`productSearch` items list](#items-list) example. However, it has been constructed to return item information inside the Catalog Service `productView` object instead of the core `product` object. Note that the pricing information varies, depending on the product type. For the sake of brevity, facet information is not shown. - -**Request:** - -```graphql -{ - productSearch( - phrase: "bag" - sort: [ - { - attribute: "price" - direction: DESC }] - page_size: 9 - ) { - page_info { - current_page - page_size - total_pages - } - items { - productView { - name - sku - ... on SimpleProductView { - price { - final { - amount { - value - currency - } - } - regular { - amount { - value - currency - } - } - } - } - ... on ComplexProductView { - options { - id - title - required - values { - id - title - } - } - priceRange { - maximum { - final { - amount { - value - currency - } - } - regular { - amount { - value - currency - } - } - } - minimum { - final { - amount { - value - currency - } - } - regular { - amount { - value - currency - } - } - } - } - } - } - } - } -} -``` - -
-Response - -```json -{ - "data": { - "productSearch": { - "page_info": { - "current_page": 1, - "page_size": 9, - "total_pages": 3 - }, - "items": [ - { - "productView": { - "name": "Impulse Duffle", - "sku": "24-UB02", - "price": { - "final": { - "amount": { - "value": 74, - "currency": "USD" - } - }, - "regular": { - "amount": { - "value": 74, - "currency": "USD" - } - } - } - } - }, - { - "productView": { - "name": "Fusion Backpack 567890", - "sku": "24-MB02", - "price": { - "final": { - "amount": { - "value": 59, - "currency": "USD" - } - }, - "regular": { - "amount": { - "value": 59, - "currency": "USD" - } - } - } - } - }, - { - "productView": { - "name": "Rival Field Messenger", - "sku": "24-MB06", - "price": { - "final": { - "amount": { - "value": 45, - "currency": "USD" - } - }, - "regular": { - "amount": { - "value": 45, - "currency": "USD" - } - } - } - } - }, - { - "productView": { - "name": "Push It Messenger Bag", - "sku": "24-WB04", - "price": { - "final": { - "amount": { - "value": 45, - "currency": "USD" - } - }, - "regular": { - "amount": { - "value": 45, - "currency": "USD" - } - } - } - } - }, - { - "productView": { - "name": "Overnight Duffle", - "sku": "24-WB07", - "price": { - "final": { - "amount": { - "value": 45, - "currency": "USD" - } - }, - "regular": { - "amount": { - "value": 45, - "currency": "USD" - } - } - } - } - }, - { - "productView": { - "name": "Wayfarer Messenger Bag 987", - "sku": "24-MB05", - "price": { - "final": { - "amount": { - "value": 44, - "currency": "USD" - } - }, - "regular": { - "amount": { - "value": 44, - "currency": "USD" - } - } - } - } - }, - { - "productView": { - "name": "Driven Backpack", - "sku": "24-WB03", - "price": { - "final": { - "amount": { - "value": 36, - "currency": "USD" - } - }, - "regular": { - "amount": { - "value": 36, - "currency": "USD" - } - } - } - } - } - ] - } - } -} -``` - -
- -## Input fields - -The `productSearch` query accepts the following fields as input: - -Field | Data Type | Description ---- | --- | --- -`context` | [[QueryContextInput!]](#querycontextinput-data-type) | Query context that allows customized search results to be returned based on the context passed -`current_page` | Int | Specifies which page of results to return. Default value: 1 -`filter` | [[SearchClauseInput!]](#searchclauseinput-data-type) | Identifies which attributes to search for and return -`page_size` | Int | Specifies the maximum number of results to return at once. Default value: 20 -`phrase` | String! | The text to filter on. Can be an empty string. -`sort` | [[ProductSearchSortInput!]](#productsearchsortinput-data-type) | Specifies which attribute to sort on, and whether to return the results in ascending or descending order - -### SearchClauseInput data type - -The `SearchClauseInput` object can contain the following fields: - -Field | Data Type | Description ---- | --- | --- -`attribute` | String! | The attribute code of a product attribute -`eq` | String | A string value to filter on -`in` | [String] | An array of string values to filter on -`range` | [SearchRangeInput](#searchrangeinput-data-type) | A range of numeric values to filter on -`contains` | String | A string that searches for products containing specific attribute values -`startsWith` | String | A string that searches for products where the attribute value starts with a particular string - -### SearchRangeInput data type - -The `SearchRangeInput` object can contain the following fields: - -Field | Data Type | Description ---- | --- | --- -`from` | Float | The minimum value to filter on. If not specified, the value of `0` is applied -`to` | Float | The maximum value to filter on - -### ProductSearchSortInput data type - -The `ProductSearchSortInput` object can contain the following fields. - -Field | Data Type | Description ---- | --- | --- -`attribute` | String! | The attribute code of a product attribute -`direction` | SortEnum! | ASC (ascending) or DESC (descending) - -### QueryContextInput data type - -The `QueryContextInput` object can contain the following fields. - -Field | Data Type | Description ---- | --- | --- -`customerGroup` | String! | The customer group code. For storefront clients, this value is available in the `dataservices_customer_group` cookie. -`userViewHistory` | [ViewHistoryInput!](#viewhistoryinput-data-type) | List of SKUs with timestamps. Used in "Recommended for you" ranking. - -### ViewHistoryInput data type - -The `ViewHistoryInput` object can contain the following fields. - -Field | Data Type | Description ---- | --- | --- -`dateTime` | String! | Timestamps when the SKU was viewed -`sku` | String! | The SKU of the view history being requested - -## Output fields - -The `productSearchResponse` return object can contain the following fields: - -### Common fields - -Field | Data Type | Description ---- | --- | --- -`facets` | [[Aggregation]](#aggregation-data-type) | Provides details about the static and dynamic facets relevant to the search -`items` | [[ProductSearchItem]](#productsearchitem-data-type) | An array of products returned by the query -`page_info` | [SearchResultPageInfo](#searchresultpageinfo-data-type) | Contains information for rendering pages of search results -`related_terms` | [String] | Reserved for future use -`suggestions` | [String] | An array of product URL keys that are similar to the search query. A maximum of five items are returned -`total_count` | Int | The total number of items returned - -#### Aggregation data type - -Field | Data Type | Description ---- | --- | --- -`attribute` | String! | The attribute code of the filter item -`buckets` | [[Bucket]!](#bucket-data-type) | A container that divides the data into manageable groups. For example, attributes that can have numeric values might have buckets that define price ranges -`title` | String! | The filter name displayed in layered navigation -`type` | AggregationType | Identifies the data type as one of the following: `INTELLIGENT`, `PINNED`, or `POPULAR` - -#### Bucket data type - -The `Bucket` object defines one field, `title`. However, the object has three implementations that can be used to provide greater detail. - -Field | Data Type | Description ---- | --- | --- -`title` | String! | A human-readable name of a bucket - -#### RangeBucket implementation - -Implement `RangeBucket` on numeric product fields. - -Field | Data Type | Description ---- | --- | --- -`count` | Int! | The number of items in the bucket -`from` | Float! | The minimum amount in a price range -`title` | String! | The display text defining the price range -`to` | Float | The maximum amount in a price range - -#### ScalarBucket implementation - -Implement `ScalarBucket` on string and other scalar product fields. - -Field | Data Type | Description ---- | --- | --- -`count` | Int! | The number of items in the bucket -`id` | ID! | An identifier that can be used for filtering and may contain non-human readable data -`title` | String! | The display text that defines the scalar value - -#### StatsBucket implementation - -Implement `StatsBucket` to retrieve statistics across multiple buckets. - -Field | Data Type | Description ---- | --- | --- -`max` | Float! | The maximum value -`min` | Float! | The minimum value -`title` | String! | The display text defining the bucket - -#### ProductSearchItem data type - -The `ProductSearchItem` data type can contain the following fields: - -Field | Data Type | Description ---- | --- | --- -`appliedQueryRule` | AppliedQueryRule | The query rule type that was applied to this product, if any (in preview mode only, returns null otherwise). Possible values: `BOOST`, `BURY`, and `PIN` - -#### SearchResultPageInfo data type - -The `SearchResultPageInfo` data type can contain the following fields: - -Field | Data Type | Description ---- | --- | --- -`current_page` | Int | Specifies which page of results to return -`page_size` | Int | Specifies the maximum number of items to return -`total_pages` | Int | Specifies the total number of pages returned - -### Live Search fields - -Live Search contains information about the product within the [ProductInterface!](https://developer.adobe.com/commerce/webapi/graphql/schema/products/interfaces/attributes/) attribute. - -### Catalog Service fields - -import Docs2 from '/src/_includes/graphql/catalog-service/product-view.md' - - diff --git a/src/pages/graphql/recommendations/index.md b/src/pages/graphql/recommendations/index.md deleted file mode 100644 index 54d2de49..00000000 --- a/src/pages/graphql/recommendations/index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Product Recommendations -description: Learn how Product Recommendations implements GraphQL. -edition: ee -keywords: - - GraphQL - - Services ---- - -# Product Recommendations - -Product Recommendations is a service that suggests products based on the browsing patterns of other shoppers. Product recommendations are surfaced on the storefront as units with labels, such as "Customers who viewed this product also viewed" or "Customers who bought this product also bought". You can create, manage, and deploy recommendations across your store views directly from the Adobe Commerce Admin. - -The `recommendations` query returns recommended products based on the provided SKU. - -Read more in the [Introduction to Product Recommendations](https://experienceleague.adobe.com/docs/commerce/product-recommendations/overview.html). diff --git a/src/pages/graphql/recommendations/recommendations.md b/src/pages/graphql/recommendations/recommendations.md deleted file mode 100644 index 29b93b00..00000000 --- a/src/pages/graphql/recommendations/recommendations.md +++ /dev/null @@ -1,226 +0,0 @@ ---- -title: recommendations query | GraphQL Developer Guide -edition: ee -description: Describes how to construct and use the Product Recommendations recommendations query. -keywords: - - GraphQL - - Services ---- - -# recommendations query - -The `recommendations` query returns information about product recommendation blocks for a given SKU. - -Merchants must have both Product Recommendations and Catalog Service (v2.2.0+) installed to get complete data through the storefront gateway. - - - -The `recommendations` query does not support the `alternateEnvironmentId` attribute. - -The [Commerce API playground](https://experienceleague.adobe.com/developer/commerce/storefront/playgrounds/commerce-services/) provides a sample `recommendations` query that you can run against a live instance of Adobe Commerce with Luma sample data. Note that the responses may vary, depending on the configuration of the Commerce instance. - -## Required headers - -You must specify the following HTTP headers to run this query. - -import Docs from '/src/_includes/graphql/catalog-service/headers.md' - - - -### Find the customer group code - -import CustomerGroupCode from '/src/_includes/graphql/customer-group-code.md' - - - -## Syntax - -```graphql -recommendations( - currentSku: String, - userPurchaseHistory: [PurchaseHistory], - userViewHistory: [ViewHistory], - cartSkus: [String], - category: String, - pageType: PageType -): Recommendations -``` - -## Example usage - -The following query returns product recommendations for SKU `MP01`. - -**Request:** - -```graphql -{ -recommendations(currentSku: "MP01", pageType: Product) { - totalResults - results { - unitId - unitName - totalProducts - pageType - typeId - storefrontLabel - displayOrder - productsView { - sku - rank - score - queryType - categories - visibility - } - } -} -} -``` - -**Response:** - -```json -"data": { - "recommendations": { - "totalResults": 1, - "results": [ - { - "unitId": "6401de2a-7499-4648-847c-b1d62f6ee947", - "unitName": "PDMLT", - "totalProducts": 5, - "pageType": "Product", - "typeId": "more-like-this", - "storefrontLabel": "PDMLT", - "displayOrder": 2, - "productsView": [ - { - "sku": "MP08", - "rank": 1, - "score": 80.98603, - "queryType": "primary", - "categories": [ - "collections/yoga-new", - "men/bottoms-men", - "men/bottoms-men/pants-men", - "promotions/pants-all", - "sale" - ], - "visibility": "Catalog, Search" - }, - { - "sku": "WP05", - "rank": 2, - "score": 47.418564, - "queryType": "primary", - "categories": [ - "women/bottoms-women", - "women/bottoms-women/pants-women", - "promotions/pants-all", - "collections/erin-recommends" - ], - "visibility": "Catalog, Search" - }, - { - "sku": "WP04", - "rank": 3, - "score": 46.906868, - "queryType": "primary", - "categories": [ - "women/bottoms-women", - "women/bottoms-women/pants-women", - "promotions/pants-all" - ], - "visibility": "Catalog, Search" - }, - { - "sku": "WP02", - "rank": 4, - "score": 44.674534, - "queryType": "primary", - "categories": [ - "women/bottoms-women", - "women/bottoms-women/pants-women", - "promotions/pants-all", - "collections/performance-fabrics" - ], - "visibility": "Catalog, Search" - }, - { - "sku": "WP01", - "rank": 5, - "score": 41.731136, - "queryType": "primary", - "categories": [ - "women/bottoms-women", - "women/bottoms-women/pants-women", - "promotions/pants-all", - "collections/performance-fabrics" - ], - "visibility": "Catalog, Search" - } - ] - } - ] - } -} -``` - -## Input fields - -Field | Data type | Description ---- | --- | --- -`cartSKUs` | [String] | SKUs of the products in the cart. -`category` | String | The category currently being viewed. -`currentSKU` | String | SKU of the product currently being viewed on the product detail page. -`pageType` | PageType | An enum indicating the type of page on which recommendations are requested. Possible values are Cart, Category, Checkout, CMS, PageBuilder and Product. -`userPurchaseHistory` | [PurchaseHistory] | User purchase history with timestamp. -`userViewHistory` | [ViewHistory] | User view history with timestamp. - -### PurchasedHistory - -Field | Data type | Description ---- | --- | --- -`date` | DateTime | Date of purchase -`items` | [String]! | A list of items purchased - -### ViewHistory - -Field | Data type | Description ---- | --- | --- -`date` | DateTime | The time the items were viewed -`sku` | [String]! | A list of SKUs viewed - -## Output fields - -The `Recommendations` object contains details about recommended products for a given SKU. It contains the following attributes. - -Attribute | Data Type | Description ---- | --- | --- -`results` | [RecommendationUnit] | Array of recommendation units for recommended products -`totalResults` | Int | Total number of recommendation units for returned recommendation - -### RecommendationUnit attributes - -Attribute | Data Type | Description ---- | --- | --- -`displayOrder` | Int | Order in which recommendation units are displayed -`pageType` | String | Page Type -`productsView` | [ProductView] | List of product view -`storefrontLabel` | String | Storefront label to be displayed on the storefront -`totalProducts` | Int | Total number of products returned for a recommendation -`typeId` | String | Type of recommendation -`unitId` | String | Id of the preconfigured unit -`unitName` | String | Name of the preconfigured unit - -### ProductView interface - -The `ProductView` return object is an interface that can contain the following fields. It is implemented by the `SimpleProductView` and `ComplexProductView` types. Both these types contain the same set of fields as `ProductView`. - -Attribute | Data Type | Description ---- | --- | --- -`categories` | [String] | List of categories to which the product belongs -`rank` | Int | Rank given to a product -`queryType` | String | Indicates if the product was retrieved from the primary or backup query -`score` | Float | Score indicating relevance of the product to the recommendation type -`sku` | String! | The product SKU -`visibility` | String | Visibility setting of the product diff --git a/src/pages/index.md b/src/pages/index.md index 1dc30584..fe82e21a 100644 --- a/src/pages/index.md +++ b/src/pages/index.md @@ -1,6 +1,7 @@ --- -title: Merchandising Services powered by Catalog Views and Policies +title: Merchandising Services description: Learn about the APIs and tools available to manage and use commerce catalog and event data programmatically. +edition: saas keywords: - GraphQL - REST @@ -10,11 +11,11 @@ hideBreadcrumbNav: true -![Data Services](_images/home-bg.jpeg) +![Merchandising Services](_images/pipeline-illustration.png) -# Commerce Data Services +# Merchandising Services -A collection of APIs and tools to integrate with third-party services, manage catalog data, and build headless ecommerce applications. +Use the Merchandising APIs and SDK to manage commerce catalog data and configuration and use it to create scalable, performant storefront experiences. @@ -24,56 +25,25 @@ A collection of APIs and tools to integrate with third-party services, manage ca * [Commerce Optimizer Guide](https://experienceleague.adobe.com/en/docs/commerce/optimizer/overview) * [Commerce Merchant Documentation](https://experienceleague.adobe.com/docs/commerce-admin/user-guides/home.html) * [Commerce Storefront Documentation](https://experienceleague.adobe.com/developer/commerce/storefront/) -* [Getting Started with Adobe Commerce web APIs](https://developer.adobe.com/commerce/webapi/get-started/) * [GraphQL Developer Guide](https://developer.adobe.com/commerce/webapi/graphql/) -## Overview - -Learn how to use Commerce APIs and SDKs to integrate with third-party software and build headless applications. - -## Discover - -Use Commerce APIs and SDKs to manage commerce catalog data and configuration and use it to create scalable, performant storefront experiences. - - + -## Merchandising Services powered by Catalog Views and Policies +## Catalog Data APIs -[Catalog data ingestion](composable-catalog/data-ingestion/) +[Data Ingestion API](composable-catalog/data-ingestion/) Set up large, complex catalog assortments by ingesting commerce catalog data from backend systems into a centralized datastore. -Catalog Views and Policies - -Set up and manage catalog views and policies to create catalog variations for different distribution channels and customer segments. -See the [Commerce Optimizer Guide](https://experienceleague.adobe.com/en/docs/commerce/optimizer/overview) for details. - - - -[Catalog Service APIs](composable-catalog/storefront-services) +[Merchandising API](composable-catalog/storefront-services/) Retrieve catalog data product, price, search, and recommendations data from Merchandising Services and use it to create storefront experiences. - -## SaaS Catalog Services - -[Catalog Service API](graphql/catalog-service/) - -Retrieve catalog data product-related content to frontend applications. - - - -[Live Search API](graphql/live-search/) - -Retrieve and filter search results using product faceting and other data. - - - -[Product Recommendations API](graphql/recommendations/) + -Retrieve recommended products based on a provided SKU. +## SDKs and Reporting diff --git a/src/pages/live-search/index.md b/src/pages/live-search/index.md index b21b548d..a57c8c91 100644 --- a/src/pages/live-search/index.md +++ b/src/pages/live-search/index.md @@ -1,7 +1,6 @@ --- title: Live Search Events | Commerce Services -description: Lists events in the Adobe Commerce Event SDK that are applicable to Live Search. -edition: ee +description: Lists events in the Adobe Commerce Event SDK that are applicable to Live Search. keywords: - Search - Services @@ -21,5 +20,5 @@ The [_Adobe Commerce Event SDK_](../shared-services/storefront-events/sdk/) prov ## Related information -* [Introduction to Live Search](https://experienceleague.adobe.com/docs/commerce/live-search/overview.html?lang=en) -* [GraphQL queries](../graphql/index.md) +* [Introduction to Live Search](https://experienceleague.adobe.com/docs/commerce-merchant-services/live-search/overview.html?lang=en) +* [GraphQL queries](https://developer.adobe.com/commerce/webapi/graphql/schema/live-search/) diff --git a/src/pages/product-recommendations/index.md b/src/pages/product-recommendations/index.md index 724bfbdd..b80580c7 100644 --- a/src/pages/product-recommendations/index.md +++ b/src/pages/product-recommendations/index.md @@ -1,7 +1,6 @@ --- title: Product Recommendations SDK description: Learn how to use the Product Recommendations SDK with Adobe Commerce to fetch recommendations programmatically in the browser. -edition: ee keywords: - Recommendations - Services @@ -13,8 +12,6 @@ If you need to programmatically access product recommendations for your storefro ## Installing -### Product Recommendations JavaScript SDK - This SDK can be pulled down from a CDN or installed as a module from NPM. #### CDN diff --git a/src/pages/shared-services/storefront-events/collector/index.md b/src/pages/shared-services/storefront-events/collector/index.md index e0cf9b95..099968aa 100644 --- a/src/pages/shared-services/storefront-events/collector/index.md +++ b/src/pages/shared-services/storefront-events/collector/index.md @@ -1,7 +1,6 @@ --- title: Adobe Commerce Event Collector | Commerce Services description: Learn how to listen for (and handle) Adobe Commerce storefront events emitted by the events SDK. -edition: ee keywords: - Events - Services diff --git a/src/pages/shared-services/storefront-events/sdk/context.md b/src/pages/shared-services/storefront-events/sdk/context.md index 585cb3a9..816bcb91 100644 --- a/src/pages/shared-services/storefront-events/sdk/context.md +++ b/src/pages/shared-services/storefront-events/sdk/context.md @@ -1,7 +1,6 @@ --- title: Context for storefront events | Commerce Services description: Learn how to programmatically get and set context for Adobe Commerce storefront events. -edition: ee keywords: - Events - Services diff --git a/src/pages/shared-services/storefront-events/sdk/index.md b/src/pages/shared-services/storefront-events/sdk/index.md index ed05f000..fcf38928 100644 --- a/src/pages/shared-services/storefront-events/sdk/index.md +++ b/src/pages/shared-services/storefront-events/sdk/index.md @@ -1,7 +1,6 @@ --- title: Adobe Commerce Events SDK | Commerce Services description: Learn how to programmatically publish and subscribe to Adobe Commerce storefront events. -edition: ee keywords: - Events - Services diff --git a/src/pages/shared-services/storefront-events/sdk/publish.md b/src/pages/shared-services/storefront-events/sdk/publish.md index 47630109..fd95bb08 100644 --- a/src/pages/shared-services/storefront-events/sdk/publish.md +++ b/src/pages/shared-services/storefront-events/sdk/publish.md @@ -1,7 +1,6 @@ --- title: Publish storefront events | Commerce Services description: Learn how to programmatically publish Adobe Commerce storefront events. -edition: ee keywords: - Events - Services diff --git a/src/pages/shared-services/storefront-events/sdk/subscribe.md b/src/pages/shared-services/storefront-events/sdk/subscribe.md index 681741d0..d3910634 100644 --- a/src/pages/shared-services/storefront-events/sdk/subscribe.md +++ b/src/pages/shared-services/storefront-events/sdk/subscribe.md @@ -1,7 +1,6 @@ --- title: Subscribe to storefront events | Commerce Services description: Learn how to programmatically subscribe to Adobe Commerce storefront events. -edition: ee keywords: - Events - Services diff --git a/src/pages/shared-services/storefront-events/sdk/unsubscribe.md b/src/pages/shared-services/storefront-events/sdk/unsubscribe.md index 7d5d642a..1f86eb70 100644 --- a/src/pages/shared-services/storefront-events/sdk/unsubscribe.md +++ b/src/pages/shared-services/storefront-events/sdk/unsubscribe.md @@ -1,7 +1,6 @@ --- title: Unsubscribe from storefront events | Commerce Services description: Learn how to programmatically unsubscribe from Adobe Commerce storefront events. -edition: ee keywords: - Events - Services diff --git a/static/graphql-api/admin-api/index.html b/static/graphql-api/admin-api/index.html index 5e1ce39e..1b9e60b9 100644 --- a/static/graphql-api/admin-api/index.html +++ b/static/graphql-api/admin-api/index.html @@ -131,6 +131,8 @@
Description
  • name: Channel name.
  • scopes: List of locale scopes identifiers.
  • policyIds: List of policy identifiers.
  • +
  • allowedPriceBookIds: List of price book identifiers allowed within the channel.
  • +
  • defaultPriceBookId: Default price book identifier for the channel.
  • createdAt: Timestamp when the channel was created.
  • updatedAt: Timestamp when the channel data was last updated.
  • policies: List of Policy objects associated with the current channel.
  • @@ -157,7 +159,7 @@
    Description

    Available Action Filters fields to query for:

    • attribute: Name of the attribute to filter by.
    • -
    • value: Value to query for.
    • +
    • values: Values to query for.
    • enabled: Indicates if the filter is enabled or not (true | false).
    • valueSource: Any of "TRIGGER" , "STATIC".
    • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".
    • @@ -202,6 +204,8 @@
      Description
      channel(channelId: "3945d84e-93d7-4dc0-b304-b6f48d91226d") { channelId name + allowedPriceBookIds + defaultPriceBookId scopes { locale } @@ -214,6 +218,10 @@
      Description
      "channel": { "channelId": "3945d84e-93d7-4dc0-b304-b6f48d91226d", "name": "Brand A", + "allowedPriceBookIds": [ + "PBA" + ], + "defaultPriceBookId": "PBA", "scopes": [ { "locale": "locale1" }, { "locale": "locale2" } @@ -232,6 +240,8 @@
      Description
      channel(channelId: "3945d84e-93d7-4dc0-b304-b6f48d91226d") { channelId name + allowedPriceBookIds + defaultPriceBookId policies { policyId name @@ -246,6 +256,10 @@
      Description
      "channel": { "channelId": "3945d84e-93d7-4dc0-b304-b6f48d91226d", "name": "Brand A", + "allowedPriceBookIds": [ + "PBA" + ], + "defaultPriceBookId": "PBA", "policies": [ { "policyId": "105de4d4-8f95-4382-bf09-bac063af068d", @@ -299,8 +313,10 @@
      Query
      query channel($channelId: String!) {
         channel(channelId: $channelId) {
      +    allowedPriceBookIds
           channelId
           createdAt
      +    defaultPriceBookId
           name
           policies {
             ...PolicyResponseFragment
      @@ -332,13 +348,15 @@ 
      Response
      {
         "data": {
           "channel": {
      +      "allowedPriceBookIds": ["abc123"],
             "channelId": "xyz789",
             "createdAt": "xyz789",
      -      "name": "xyz789",
      +      "defaultPriceBookId": "abc123",
      +      "name": "abc123",
             "policies": [PolicyResponse],
      -      "policyIds": ["abc123"],
      +      "policyIds": ["xyz789"],
             "scopes": [ChannelScopeResponse],
      -      "updatedAt": "abc123"
      +      "updatedAt": "xyz789"
           }
         }
       }
      @@ -368,6 +386,8 @@ 
      Description
    • name: Channel name.
    • scopes: List of locale scopes identifiers.
    • policyIds: List of policy identifiers.
    • +
    • allowedPriceBookIds: List of price book identifiers allowed within the channel.
    • +
    • defaultPriceBookId: Default price book identifier for the channel.
    • createdAt: Timestamp when the channel was created.
    • updatedAt: Timestamp when the channel data was last updated.
    • policies: List of Policy objects associated with the current channel.
    • @@ -394,7 +414,7 @@
      Description

      Available Action Filters fields to query for:

      • attribute: Name of the attribute to filter by.
      • -
      • value: Value to query for.
      • +
      • values: Values to query for.
      • enabled: Indicates if the filter is enabled or not (true | false).
      • valueSource: Any of "TRIGGER" , "STATIC".
      • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".
      • @@ -407,6 +427,8 @@
        Description
        channels { channelId name + allowedPriceBookIds + defaultPriceBookId scopes { locale } @@ -420,6 +442,11 @@
        Description
        { "channelId": "b3361730-03d5-4cff-a09d-a05c5f930fa7", "name": "Brand B", + "allowedPriceBookIds": [ + "PBA", + "PBB" + ], + "defaultPriceBookId": "PBB", "scopes": [ { "locale": "locale3" }, { "locale": "locale4" } @@ -428,6 +455,11 @@
        Description
        { "channelId": "3945d84e-93d7-4dc0-b304-b6f48d91226d", "name": "Brand A", + "allowedPriceBookIds": [ + "PBA", + "PBB" + ], + "defaultPriceBookId": "PBA", "scopes": [ { "locale": "locale1" }, { "locale": "locale2" } @@ -447,6 +479,8 @@
        Description
        channels { channelId name + allowedPriceBookIds + defaultPriceBookId policies { policyId name @@ -454,7 +488,7 @@
        Description
        actions { filters { attribute - value + values enabled valueSource } @@ -470,6 +504,11 @@
        Description
        { "channelId": "b3361730-03d5-4cff-a09d-a05c5f930fa7", "name": "Brand B", + "allowedPriceBookIds": [ + "PBA", + "PBB" + ], + "defaultPriceBookId": "PBB", "policies": [ { "policyId": "105de4d4-8f95-4382-bf09-bac063af068d", @@ -480,7 +519,7 @@
        Description
        "filters": [ { "attribute": "my_attribute", - "value": "2", + "values": ["2"], "enabled": true, "valueSource": "STATIC" } @@ -493,6 +532,11 @@
        Description
        { "channelId": "3945d84e-93d7-4dc0-b304-b6f48d91226d", "name": "Brand A", + "allowedPriceBookIds": [ + "PBA", + "PBB" + ], + "defaultPriceBookId": "PBA", "policies": [] } ] @@ -521,8 +565,10 @@
        Query
        query channels {
           channels {
        +    allowedPriceBookIds
             channelId
             createdAt
        +    defaultPriceBookId
             name
             policies {
               ...PolicyResponseFragment
        @@ -546,9 +592,11 @@ 
        Response
        "data": { "channels": [ { + "allowedPriceBookIds": ["abc123"], "channelId": "abc123", - "createdAt": "abc123", - "name": "abc123", + "createdAt": "xyz789", + "defaultPriceBookId": "abc123", + "name": "xyz789", "policies": [PolicyResponse], "policyIds": ["abc123"], "scopes": [ChannelScopeResponse], @@ -599,7 +647,7 @@
        Description

        Available Action Filters fields to query for:

        • attribute: Name of the attribute to filter by.
        • -
        • value: Value to query for.
        • +
        • values: Values to query for.
        • enabled: Indicates if the filter is enabled or not (true | false).
        • valueSource: Any of "TRIGGER" , "STATIC".
        • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".
        • @@ -616,7 +664,7 @@
          Description
          actions { filters { attribute - value + values enabled valueSource } @@ -637,7 +685,7 @@
          Description
          "filters": [ { "attribute": "my_attribute", - "value": "2", + "values": ["2"], "enabled": true, "valueSource": "STATIC" } @@ -695,10 +743,10 @@
          Response
          "policies": [ { "actions": [ActionResponse], - "createdAt": "abc123", + "createdAt": "xyz789", "mandatory": true, - "name": "abc123", - "policyId": "xyz789", + "name": "xyz789", + "policyId": "abc123", "updatedAt": "xyz789" } ] @@ -750,7 +798,7 @@
          Description

          Available Action Filters fields to query for:

          • attribute: Name of the attribute to filter by.
          • -
          • value: Value to query for.
          • +
          • values: Values to query for.
          • enabled: Indicates if the filter is enabled or not (true | false).
          • valueSource: Any of "TRIGGER" , "STATIC".
          • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".
          • @@ -889,7 +937,7 @@
            Query
            Variables
            -
            {"policyId": "xyz789"}
            +                  
            {"policyId": "abc123"}
             
            @@ -903,9 +951,9 @@
            Response
            "policy": { "actions": [ActionResponse], "createdAt": "xyz789", - "mandatory": false, - "name": "xyz789", - "policyId": "abc123", + "mandatory": true, + "name": "abc123", + "policyId": "xyz789", "updatedAt": "abc123" } } @@ -986,40 +1034,59 @@
            Description
          • name: Name of the channel. Optional
          • scopes: List of locale scopes identifiers. If provided, it cannot be empty.
          • policyIds: List of policy identifiers. If provided, it cannot be empty.
          • +
          • allowedPriceBookIds: List of price book identifiers. Optional
          • +
          • defaultPriceBookId: Default price book identifier for the channel. Optional.

        Example

        mutation {
        -    batchChannel(channels: [
        +    batchChannel(channels: [
                 {
        -            channelId: "844ed921",
        -            name: "Channel Web/Online & Offline",
        -            scopes: [
        +            channelId: "844ed921",
        +            name: "Channel Web/Online & Offline",
        +            allowedPriceBookIds: [
        +                "PBA",
        +                "PBB"
        +            ],
        +            defaultPriceBookId: "PBA",
        +            scopes: [
                         { locale : "en_US" },
                         { locale : "en_UK" },
                         { locale : "es_ES" }
                     ]
                 },
                 {
        -            name: "Offline Channel",
        -            scopes: [
        +            name: "Offline Channel",
        +            allowedPriceBookIds: [
        +                "PBA",
        +                "PBB"
        +            ],
        +            defaultPriceBookId: "PBB",
        +            scopes: [
                         { locale : "en_UK" },
                         { locale : "fr_FR" }
                     ],
        -            "policyIds": [
        +            policyIds : [
        +                "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
        +                "a3f4e403-a720-4b27-a266-d69099ae2421"
        +            ],
        +            allowedPriceBookIds : [
                         "c1bcfed9-4096-4068-aab5-d88f6f39cfad",
                         "a3f4e403-a720-4b27-a266-d69099ae2421"
                     ]
                 }
        -    ]) {
        +    ]) {
                 channels {
                     channelId
                     name
        +            allowedPriceBookIds
        +            defaultPriceBookId
                     scopes {
                       locale
                     }
                     policyIds
        +            allowedPriceBookIds
                     createdAt
                     updatedAt
                 }
        @@ -1035,6 +1102,7 @@ 
        Description
        { "channelId": "e3cbe432-71a2-47cb-938f-29af8be940ab", "name": "Channel Web/Online & Offline", + "defaultPriceBookId": "PBA", "scopes": [ { "locale": "en_US" }, { "locale": "en_UK" }, @@ -1044,12 +1112,17 @@
        Description
        "c1bcfed9-4096-4068-aab5-d88f6f39cfad", "a3f4e403-a720-4b27-a266-d69099ae2421" ], + "allowedPriceBookIds": [ + "c1bcfed9-4096-4068-aab5-d88f6f39cfad", + "a3f4e403-a720-4b27-a266-d69099ae2421" + ], "createdAt": "2024-11-08T14:55:37.938", "updatedAt": "2024-11-12T11:13:22.554967" }, { "channelId": "f485f368-3a5a-497b-a13e-4fff8c66df09", "name": "Offline Channel", + "defaultPriceBookId": "PBB", "scopes": [ { "locale": "en_UK" }, { "locale": "fr_FR" } @@ -1058,6 +1131,10 @@
        Description
        "c1bcfed9-4096-4068-aab5-d88f6f39cfad", "a3f4e403-a720-4b27-a266-d69099ae2421" ], + "allowedPriceBookIds": [ + "c1bcfed9-4096-4068-aab5-d88f6f39cfad", + "a3f4e403-a720-4b27-a266-d69099ae2421" + ], "createdAt": "2024-11-12T11:13:22.562566", "updatedAt": "2024-11-12T11:13:22.562566" } @@ -1137,7 +1214,7 @@
        Response
        "data": { "batchChannel": { "channels": [ChannelResponse], - "errors": ["xyz789"] + "errors": ["abc123"] } } } @@ -1184,7 +1261,7 @@
        Description

        Action Filters fields:

        • attribute: Name of the attribute to filter by.
        • -
        • value: Value to query for.
        • +
        • values: Values to query for.
        • enabled: Indicates if the filter is enabled or not (true | false).
        • valueSource: Any of "TRIGGER" , "STATIC".
        • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".
        • @@ -1208,7 +1285,7 @@
          Description
          actions: [{ filters: [{ attribute: "my_attribute" - value: "AC-Policy-POL1" + values: ["AC-Policy-POL1"] enabled: false actionFilterOperator: EQUALS valueSource: TRIGGER @@ -1358,6 +1435,8 @@
          Description
        • name: Name of the channel. Mandatory. Needs to be unique.
        • scopes: List of locale scopes identifiers. At least one locale object should be provided.
        • policyIds: List of policy identifiers. These should be already created and available. At least one policy identifier should be provided.
        • +
        • allowedPriceBookIds: List of price book identifiers allowed within the channel. Optional.
        • +
        • defaultPriceBookId: Default price book identifier for the channel. Optional.
      @@ -1376,7 +1455,12 @@
      Description
      policyIds : [ "6f8b5a55-b97c-481a-94f3-5a813821c787", "63992079-52b5-49b2-a739-312a079c19b7", - ] + ], + allowedPriceBookIds : [ + "c1bcfed9-4096-4068-aab5-d88f6f39cfad", + "a3f4e403-a720-4b27-a266-d69099ae2421" + ], + defaultPriceBookId: "PBA" } ) { channelId @@ -1385,6 +1469,8 @@
      Description
      locale }
      policyIds + allowedPriceBookIds + defaultPriceBookId createdAt updatedAt } @@ -1404,6 +1490,11 @@
      Description
      "6f8b5a55-b97c-481a-94f3-5a813821c787", "63992079-52b5-49b2-a739-312a079c19b7", ], + allowedPriceBookIds : [ + "c1bcfed9-4096-4068-aab5-d88f6f39cfad", + "a3f4e403-a720-4b27-a266-d69099ae2421" + ], + "defaultPriceBookId": "PBA", "createdAt": "2024-11-08T14:57:24.541128", "updatedAt": "2024-11-08T14:57:24.541128" } @@ -1427,7 +1518,12 @@
      Description
      policyIds : [ "6f8b5a55-b97c-481a-94f3-5a813821c787", "63992079-52b5-49b2-a739-312a079c19b7", + ], + allowedPriceBookIds : [ + "c1bcfed9-4096-4068-aab5-d88f6f39cfad", + "a3f4e403-a720-4b27-a266-d69099ae2421" ] + defaultPriceBookId: "PBA" } ) { channelId @@ -1436,6 +1532,8 @@
      Description
      locale }
      policyIds + allowedPriceBookIds + defaultPriceBookId createdAt updatedAt policies { @@ -1449,7 +1547,7 @@
      Description
      filters { attribute actionFilterOperator - value + values enabled valueSource } @@ -1475,6 +1573,11 @@
      Description
      "6f8b5a55-b97c-481a-94f3-5a813821c787", "63992079-52b5-49b2-a739-312a079c19b7" ], + allowedPriceBookIds : [ + "c1bcfed9-4096-4068-aab5-d88f6f39cfad", + "a3f4e403-a720-4b27-a266-d69099ae2421" + ], + "defaultPriceBookId": "PBA", "createdAt": "2024-11-20T17:53:53.613", "updatedAt": "2024-11-20T17:53:53.613", "policies": [ @@ -1493,7 +1596,7 @@
      Description
      { "attribute": "my_attribute", "actionFilterOperator": "EQUALS", - "value": "AC-Policy-POL1", + "values": ["AC-Policy-POL1"], "enabled": true, "valueSource": "TRIGGER" } @@ -1519,7 +1622,7 @@
      Description
      { "attribute": "my_attribute", "actionFilterOperator": "EQUALS", - "value": "AC-Policy-POL1", + "values": ["AC-Policy-POL1"], "enabled": false, "valueSource": "STATIC" } @@ -1577,8 +1680,10 @@
      Query
      mutation createChannel($channelRequest: CreateChannelRequest!) {
         createChannel(channelRequest: $channelRequest) {
      +    allowedPriceBookIds
           channelId
           createdAt
      +    defaultPriceBookId
           name
           policies {
             ...PolicyResponseFragment
      @@ -1610,13 +1715,15 @@ 
      Response
      {
         "data": {
           "createChannel": {
      -      "channelId": "xyz789",
      +      "allowedPriceBookIds": ["xyz789"],
      +      "channelId": "abc123",
             "createdAt": "abc123",
      +      "defaultPriceBookId": "abc123",
             "name": "xyz789",
             "policies": [PolicyResponse],
      -      "policyIds": ["xyz789"],
      +      "policyIds": ["abc123"],
             "scopes": [ChannelScopeResponse],
      -      "updatedAt": "xyz789"
      +      "updatedAt": "abc123"
           }
         }
       }
      @@ -1664,7 +1771,7 @@ 
      Description

      Action Filters fields:

      • attribute: Name of the attribute to filter by.
      • -
      • value: Value to query for.
      • +
      • values: Values to query for.
      • enabled: Indicates if the filter is enabled or not (true | false).
      • valueSource: Any of "TRIGGER" , "STATIC".
      • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".
      • @@ -1686,7 +1793,7 @@
        Description
        { attribute: "my_attribute", actionFilterOperator: EQUALS, - value: "AC-Policy-POL01", + values: ["AC-Policy-POL01"], enabled: true, valueSource: TRIGGER } @@ -1706,7 +1813,7 @@
        Description
        filters { attribute actionFilterOperator - value + values enabled valueSource } @@ -1735,7 +1842,7 @@
        Description
        { "attribute": "my_attribute", "actionFilterOperator": "EQUALS", - "value": "AC-Policy-POL01", + "values": ["AC-Policy-POL01"], "enabled": true, "valueSource": "TRIGGER" } @@ -1822,7 +1929,7 @@
        Response
        "createPolicy": { "actions": [ActionResponse], "createdAt": "xyz789", - "mandatory": false, + "mandatory": true, "name": "xyz789", "policyId": "abc123", "updatedAt": "abc123" @@ -1948,7 +2055,7 @@
        Query
        Variables
        -
        {"channelId": "xyz789"}
        +                  
        {"channelId": "abc123"}
         
        @@ -1957,7 +2064,7 @@
        Variables
        Response
        -
        {"data": {"deleteChannel": "abc123"}}
        +                  
        {"data": {"deleteChannel": "xyz789"}}
         
        @@ -2075,7 +2182,7 @@
        Query
        Variables
        -
        {"policyId": "xyz789"}
        +                  
        {"policyId": "abc123"}
         
        @@ -2084,7 +2191,7 @@
        Variables
        Response
        -
        {"data": {"deletePolicy": "abc123"}}
        +                  
        {"data": {"deletePolicy": "xyz789"}}
         
        @@ -2114,6 +2221,8 @@
        Description
      • name: Name of the channel. Optional.
      • scopes: List of locale scopes identifiers. Optional.
      • policyIds: List of policy identifiers. Optional
      • +
      • allowedPriceBookIds: List of price book identifiers. Optional
      • +
      • defaultPriceBookId: Default price book identifier for the channel. Optional.
    @@ -2134,6 +2243,8 @@
    Description
    }) { channelId name + allowedPriceBookIds + defaultPriceBookId createdAt updatedAt } @@ -2145,6 +2256,11 @@
    Description
    "updateChannel": { "channelId": "1e3c0bc2-d2c8-4eff-aa7b-aa83a824825a", "name": "Channel Web/Online/Mortar&Bricks", + "allowedPriceBookIds": [ + "PBA", + "PBB" + ], + "defaultPriceBookId": "PBA", "createdAt": "2024-11-08T14:57:24.541", "updatedAt": "2024-11-08T15:22:34.168738" } @@ -2193,8 +2309,10 @@
    Query
    mutation updateChannel($channelRequest: UpdateChannelRequest!) {
       updateChannel(channelRequest: $channelRequest) {
    +    allowedPriceBookIds
         channelId
         createdAt
    +    defaultPriceBookId
         name
         policies {
           ...PolicyResponseFragment
    @@ -2226,13 +2344,15 @@ 
    Response
    {
       "data": {
         "updateChannel": {
    +      "allowedPriceBookIds": ["xyz789"],
           "channelId": "xyz789",
    -      "createdAt": "abc123",
    -      "name": "abc123",
    +      "createdAt": "xyz789",
    +      "defaultPriceBookId": "abc123",
    +      "name": "xyz789",
           "policies": [PolicyResponse],
    -      "policyIds": ["abc123"],
    +      "policyIds": ["xyz789"],
           "scopes": [ChannelScopeResponse],
    -      "updatedAt": "xyz789"
    +      "updatedAt": "abc123"
         }
       }
     }
    @@ -2279,7 +2399,7 @@ 
    Description

    Action Filters fields:

    • attribute: Name of the attribute to filter by.
    • -
    • value: Value to query for.
    • +
    • values: Values to query for.
    • enabled: Indicates if the filter is enabled or not (true | false).
    • valueSource: Any of "TRIGGER" , "STATIC".
    • actionFilterOperator: Any of "EQUALS", "GREATER_THAN_EQUAL", "LESS_THAN_EQUAL".
    • @@ -2364,7 +2484,7 @@
      Description
      filters: [{ attribute: "my_attribute", actionFilterOperator: EQUALS, - value: "AC-Policy-POL1", + values: ["AC-Policy-POL1"], enabled: true, valueSource: TRIGGER }] @@ -2380,7 +2500,7 @@
      Description
      filters { attribute actionFilterOperator - value + values enabled valueSource } @@ -2404,7 +2524,7 @@
      Description
      "filters": [{ "attribute": "my_attribute", "actionFilterOperator": "EQUALS", - "value": "AC-Policy-POL1", + "values": ["AC-Policy-POL1"], "enabled": true, "valueSource": "TRIGGER" }] @@ -2488,11 +2608,11 @@
      Response
      "data": { "updatePolicy": { "actions": [ActionResponse], - "createdAt": "xyz789", - "mandatory": false, - "name": "abc123", + "createdAt": "abc123", + "mandatory": true, + "name": "xyz789", "policyId": "xyz789", - "updatedAt": "abc123" + "updatedAt": "xyz789" } } } @@ -2537,6 +2657,13 @@
      Values
      + + +

      IN

      + + + +

      LESS_THAN_EQUAL

      @@ -2603,9 +2730,10 @@
      Fields
      - value - String! + value - String + + Filter attribute value. Deprecated. Use values instead. No longer supported - Filter attribute value. Required. @@ -2619,6 +2747,12 @@
      Fields
    + + + values - [String!] + + Filter attribute values. + @@ -2631,9 +2765,10 @@
    Example
    {
       "actionFilterOperator": "EQUALS",
       "attribute": "abc123",
    -  "enabled": true,
    -  "value": "xyz789",
    -  "valueSource": "STATIC"
    +  "enabled": false,
    +  "value": "abc123",
    +  "valueSource": "STATIC",
    +  "values": ["abc123"]
     }
     
    @@ -2680,15 +2815,21 @@
    Fields
    Indicates if the filter is enabled or not (true | false). - value - String + value - String + + Filter attribute value. Deprecated. Use values instead. No longer supported - Filter attribute value. valueSource - ActionFilterValueSource Indicates the type of action filter. + + values - [String] + + Filter attribute values. + @@ -2703,7 +2844,8 @@
    Example
    "attribute": "xyz789", "enabled": true, "value": "xyz789", - "valueSource": "STATIC" + "valueSource": "STATIC", + "values": ["abc123"] }
    @@ -2965,7 +3107,7 @@
    Example
    {
    -  "errors": ["xyz789"],
    +  "errors": ["abc123"],
       "policies": [PolicyResponse]
     }
     
    @@ -3014,6 +3156,11 @@
    Fields
    + + allowedPriceBookIds - [String!] + + List of price book identifiers allowed within the channel. If the list is empty, all price books will be allowed. The default value is empty. + channelId - String! @@ -3024,6 +3171,11 @@
    Fields
    Timestamp of when the channel was created, in ISO 8601 format (e.g., 2024-07-25T16:10:11.701669). + + defaultPriceBookId - String + + Default price book identifier for the channel. + name - String! @@ -3059,11 +3211,13 @@
    Example
    {
    -  "channelId": "abc123",
    -  "createdAt": "abc123",
    +  "allowedPriceBookIds": ["xyz789"],
    +  "channelId": "xyz789",
    +  "createdAt": "xyz789",
    +  "defaultPriceBookId": "abc123",
       "name": "abc123",
       "policies": [PolicyResponse],
    -  "policyIds": ["xyz789"],
    +  "policyIds": ["abc123"],
       "scopes": [ChannelScopeResponse],
       "updatedAt": "abc123"
     }
    @@ -3108,7 +3262,7 @@ 
    Fields
    Example
    -
    {"locale": "xyz789"}
    +                  
    {"locale": "abc123"}
     
    @@ -3179,6 +3333,18 @@
    Fields
    + + + allowedPriceBookIds - [String!] + + List of price book identifiers allowed within the channel. If the list is empty, all price books will be allowed. The default value is empty. + + + + defaultPriceBookId - String + + Default price book identifier for the channel. + name - String! @@ -3207,6 +3373,8 @@
    Example
    {
    +  "allowedPriceBookIds": ["abc123"],
    +  "defaultPriceBookId": "abc123",
       "name": "xyz789",
       "policyIds": ["abc123"],
       "scopes": [ChannelScopeRequest]
    @@ -3269,7 +3437,7 @@ 
    Example
    {
       "actions": [ActionRequest],
    -  "mandatory": true,
    +  "mandatory": false,
       "name": "abc123"
     }
     
    @@ -3342,11 +3510,11 @@
    Example
    {
       "actions": [ActionResponse],
    -  "createdAt": "abc123",
    +  "createdAt": "xyz789",
       "mandatory": true,
       "name": "abc123",
       "policyId": "xyz789",
    -  "updatedAt": "xyz789"
    +  "updatedAt": "abc123"
     }
     
    @@ -3512,7 +3680,7 @@
    Example
    {
    -  "name": "xyz789",
    +  "name": "abc123",
       "transportType": "HTTP_HEADER"
     }
     
    @@ -3596,12 +3764,24 @@
    Fields
    + + + allowedPriceBookIds - [String!] + + List of price book identifiers allowed within the channel. Providing an empty list removes all allowed price book restrictions within the channel. + channelId - String Channel identifier. Required only if used for an update operation. It can be omitted if used in a batch insert operation. + + + defaultPriceBookId - String + + Default price book identifier for the channel. + name - String @@ -3630,7 +3810,9 @@
    Example
    {
    -  "channelId": "xyz789",
    +  "allowedPriceBookIds": ["abc123"],
    +  "channelId": "abc123",
    +  "defaultPriceBookId": "xyz789",
       "name": "xyz789",
       "policyIds": ["xyz789"],
       "scopes": [ChannelScopeRequest]
    @@ -3699,8 +3881,8 @@ 
    Example
    {
       "actions": [ActionRequest],
    -  "mandatory": false,
    -  "name": "xyz789",
    +  "mandatory": true,
    +  "name": "abc123",
       "policyId": "xyz789"
     }
     
    diff --git a/static/graphql-api/merchandising-api/index.html b/static/graphql-api/merchandising-api/index.html new file mode 100644 index 00000000..f166cd53 --- /dev/null +++ b/static/graphql-api/merchandising-api/index.html @@ -0,0 +1,10445 @@ + + +
    +
    + +
    +
    + +
    +
    +

    Merchandising GraphQL API

    +
    +
    +
    +

    Use the Merchandising GraphQL API to access rich view-model (read-only) catalog data to build + product-related storefront experiences. For more information about the API, see the developer documentation.

    +
    +
    +
    +
    API Endpoints
    +
    https://<your store>/graphql
    +
    +
    +
    Headers
    +
    # Your API token from the dashboard. Must be included in all API calls.
    +Authorization: Bearer <YOUR_TOKEN_HERE>
    +
    +
    +
    +
    +

    Queries

    +
    +

    + attributeMetadata +

    +
    +
    +
    +
    Description
    +

    Return a list of product attribute codes that can be used for sorting or filtering in a + productSearch query +

    +
    +
    +
    +
    +
    +
    +
    Response
    +

    Returns an AttributeMetadataResponse! +

    +
    +
    +
    +

    Example

    +
    +
    Query
    + + + + + +
    query attributeMetadata {
    +  attributeMetadata {
    +    filterableInSearch {
    +      ...FilterableInSearchAttributeFragment
    +    }
    +    sortable {
    +      ...SortableAttributeFragment
    +    }
    +  }
    +}
    +
    + + + +
    +
    +
    Response
    + + + + + +
    {
    +  "data": {
    +    "attributeMetadata": {
    +      "filterableInSearch": [FilterableInSearchAttribute],
    +      "sortable": [SortableAttribute]
    +    }
    +  }
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Queries +
    +

    + productSearch +

    +
    +
    +
    +
    Description
    +

    Search products using Live Search

    +
    +
    +
    +
    +
    +
    +
    Response
    +

    Returns a ProductSearchResponse! +

    +
    +
    +
    Arguments
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    + context - QueryContextInput + The query context
    + current_page - Int + Specifies which page of results to return. The default value is 1. Default = 1 +
    + filter - [SearchClauseInput!] + Identifies product attributes and conditions to filter on
    + page_size - Int + The maximum number of results to return at once. Default = 20
    + phrase - String! + Phrase to search for in product catalog
    + sort - [ProductSearchSortInput!] + Attributes and direction to sort on
    +
    +
    +
    +

    Example

    +
    +
    Query
    + + + + + +
    query productSearch(
    +  $context: QueryContextInput,
    +  $current_page: Int,
    +  $filter: [SearchClauseInput!],
    +  $page_size: Int,
    +  $phrase: String!,
    +  $sort: [ProductSearchSortInput!]
    +) {
    +  productSearch(
    +    context: $context,
    +    current_page: $current_page,
    +    filter: $filter,
    +    page_size: $page_size,
    +    phrase: $phrase,
    +    sort: $sort
    +  ) {
    +    facets {
    +      ...AggregationFragment
    +    }
    +    items {
    +      ...ProductSearchItemFragment
    +    }
    +    page_info {
    +      ...SearchResultPageInfoFragment
    +    }
    +    related_terms
    +    suggestions
    +    total_count
    +  }
    +}
    +
    + + + +
    +
    +
    Variables
    + + + + + +
    {
    +  "context": QueryContextInput,
    +  "current_page": 1,
    +  "filter": [SearchClauseInput],
    +  "page_size": 20,
    +  "phrase": "xyz789",
    +  "sort": [ProductSearchSortInput]
    +}
    +
    + + + +
    +
    +
    Response
    + + + + + +
    {
    +  "data": {
    +    "productSearch": {
    +      "facets": [Aggregation],
    +      "items": [ProductSearchItem],
    +      "page_info": SearchResultPageInfo,
    +      "related_terms": ["xyz789"],
    +      "suggestions": ["xyz789"],
    +      "total_count": 987
    +    }
    +  }
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Queries +
    +

    + products +

    +
    +
    +
    +
    Description
    +

    Search for products that match the specified SKU values.

    +
    +
    +
    +
    +
    +
    +
    Response
    +

    Returns [ProductView] +

    +
    +
    +
    Arguments
    + + + + + + + + + + + + + +
    NameDescription
    + skus - [String] + +
    +
    +
    +
    +

    Example

    +
    +
    Query
    + + + + + +
    query products($skus: [String]) {
    +  products(skus: $skus) {
    +    addToCartAllowed
    +    inStock
    +    lowStock
    +    attributes {
    +      ...ProductViewAttributeFragment
    +    }
    +    description
    +    id
    +    images {
    +      ...ProductViewImageFragment
    +    }
    +    videos {
    +      ...ProductViewVideoFragment
    +    }
    +    lastModifiedAt
    +    metaDescription
    +    metaKeyword
    +    metaTitle
    +    name
    +    shortDescription
    +    inputOptions {
    +      ...ProductViewInputOptionFragment
    +    }
    +    sku
    +    externalId
    +    url
    +    urlKey
    +    links {
    +      ...ProductViewLinkFragment
    +    }
    +    categories
    +    queryType
    +    rank
    +    score
    +    visibility
    +  }
    +}
    +
    + + + +
    +
    +
    Variables
    + + + + + +
    {"skus": ["abc123"]}
    +
    + + + +
    +
    +
    Response
    + + + + + +
    {
    +  "data": {
    +    "products": [
    +      {
    +        "addToCartAllowed": true,
    +        "inStock": true,
    +        "lowStock": true,
    +        "attributes": [ProductViewAttribute],
    +        "description": "xyz789",
    +        "id": "4",
    +        "images": [ProductViewImage],
    +        "videos": [ProductViewVideo],
    +        "lastModifiedAt": "2007-12-03T10:15:30Z",
    +        "metaDescription": "abc123",
    +        "metaKeyword": "xyz789",
    +        "metaTitle": "xyz789",
    +        "name": "xyz789",
    +        "shortDescription": "xyz789",
    +        "inputOptions": [ProductViewInputOption],
    +        "sku": "abc123",
    +        "externalId": "abc123",
    +        "url": "xyz789",
    +        "urlKey": "abc123",
    +        "links": [ProductViewLink],
    +        "categories": ["xyz789"],
    +        "queryType": "xyz789",
    +        "rank": 987,
    +        "score": 987.65,
    +        "visibility": "xyz789"
    +      }
    +    ]
    +  }
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Queries +
    +

    + recommendations +

    +
    +
    +
    +
    Description
    +

    Get Recommendations

    +
    +
    +
    +
    +
    +
    +
    Response
    +

    Returns a Recommendations +

    +
    +
    +
    Arguments
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    + cartSkus - [String] + SKUs of products in the cart
    + category - String + Category currently being viewed
    + currentSku - String + SKU of the product currently being viewed on PDP
    + pageType - PageType + Type of page on which recommendations are requested
    + userPurchaseHistory - [PurchaseHistory] + User purchase history with timestamp
    + userViewHistory - [ViewHistory] + User view history with timestamp
    +
    +
    +
    +

    Example

    +
    +
    Query
    + + + + + +
    query recommendations(
    +  $cartSkus: [String],
    +  $category: String,
    +  $currentSku: String,
    +  $pageType: PageType,
    +  $userPurchaseHistory: [PurchaseHistory],
    +  $userViewHistory: [ViewHistory]
    +) {
    +  recommendations(
    +    cartSkus: $cartSkus,
    +    category: $category,
    +    currentSku: $currentSku,
    +    pageType: $pageType,
    +    userPurchaseHistory: $userPurchaseHistory,
    +    userViewHistory: $userViewHistory
    +  ) {
    +    results {
    +      ...RecommendationUnitFragment
    +    }
    +    totalResults
    +  }
    +}
    +
    + + + +
    +
    +
    Variables
    + + + + + +
    {
    +  "cartSkus": ["xyz789"],
    +  "category": "xyz789",
    +  "currentSku": "xyz789",
    +  "pageType": "CMS",
    +  "userPurchaseHistory": [PurchaseHistory],
    +  "userViewHistory": [ViewHistory]
    +}
    +
    + + + +
    +
    +
    Response
    + + + + + +
    {
    +  "data": {
    +    "recommendations": {
    +      "results": [RecommendationUnit],
    +      "totalResults": 123
    +    }
    +  }
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Queries +
    +

    + refineProduct +

    +
    +
    +
    +
    Response
    +

    Returns a ProductView +

    +
    +
    +
    Arguments
    + + + + + + + + + + + + + + + + + +
    NameDescription
    + optionIds - [String!]! + +
    + sku - String! + +
    +
    +
    +
    +

    Example

    +
    +
    Query
    + + + + + +
    query refineProduct(
    +  $optionIds: [String!]!,
    +  $sku: String!
    +) {
    +  refineProduct(
    +    optionIds: $optionIds,
    +    sku: $sku
    +  ) {
    +    addToCartAllowed
    +    inStock
    +    lowStock
    +    attributes {
    +      ...ProductViewAttributeFragment
    +    }
    +    description
    +    id
    +    images {
    +      ...ProductViewImageFragment
    +    }
    +    videos {
    +      ...ProductViewVideoFragment
    +    }
    +    lastModifiedAt
    +    metaDescription
    +    metaKeyword
    +    metaTitle
    +    name
    +    shortDescription
    +    inputOptions {
    +      ...ProductViewInputOptionFragment
    +    }
    +    sku
    +    externalId
    +    url
    +    urlKey
    +    links {
    +      ...ProductViewLinkFragment
    +    }
    +    categories
    +    queryType
    +    rank
    +    score
    +    visibility
    +  }
    +}
    +
    + + + +
    +
    +
    Variables
    + + + + + +
    {
    +  "optionIds": ["xyz789"],
    +  "sku": "xyz789"
    +}
    +
    + + + +
    +
    +
    Response
    + + + + + +
    {
    +  "data": {
    +    "refineProduct": {
    +      "addToCartAllowed": true,
    +      "inStock": true,
    +      "lowStock": true,
    +      "attributes": [ProductViewAttribute],
    +      "description": "xyz789",
    +      "id": "4",
    +      "images": [ProductViewImage],
    +      "videos": [ProductViewVideo],
    +      "lastModifiedAt": "2007-12-03T10:15:30Z",
    +      "metaDescription": "abc123",
    +      "metaKeyword": "abc123",
    +      "metaTitle": "abc123",
    +      "name": "abc123",
    +      "shortDescription": "xyz789",
    +      "inputOptions": [ProductViewInputOption],
    +      "sku": "xyz789",
    +      "externalId": "abc123",
    +      "url": "abc123",
    +      "urlKey": "abc123",
    +      "links": [ProductViewLink],
    +      "categories": ["xyz789"],
    +      "queryType": "abc123",
    +      "rank": 123,
    +      "score": 987.65,
    +      "visibility": "xyz789"
    +    }
    +  }
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Queries +
    +

    + variants +

    +
    +
    +
    +
    Response
    +

    Returns a ProductViewVariantResults +

    +
    +
    +
    Arguments
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    + sku - String! + +
    + optionIds - [String!] + +
    + pageSize - Int + +
    + cursor - String + +
    +
    +
    +
    +

    Example

    +
    +
    Query
    + + + + + +
    query variants(
    +  $sku: String!,
    +  $optionIds: [String!],
    +  $pageSize: Int,
    +  $cursor: String
    +) {
    +  variants(
    +    sku: $sku,
    +    optionIds: $optionIds,
    +    pageSize: $pageSize,
    +    cursor: $cursor
    +  ) {
    +    variants {
    +      ...ProductViewVariantFragment
    +    }
    +    cursor
    +  }
    +}
    +
    + + + +
    +
    +
    Variables
    + + + + + +
    {
    +  "sku": "abc123",
    +  "optionIds": ["abc123"],
    +  "pageSize": 987,
    +  "cursor": "xyz789"
    +}
    +
    + + + +
    +
    +
    Response
    + + + + + +
    {
    +  "data": {
    +    "variants": {
    +      "variants": [ProductViewVariant],
    +      "cursor": "abc123"
    +    }
    +  }
    +}
    +
    + + + +
    +
    + back to top +
    +
    +

    Types

    +
    +

    Aggregation

    +
    +
    +
    +
    Description
    +

    A bucket that contains information for each filterable option

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    attribute - String! + The attribute code of the filter item
    buckets - [Bucket]! + A container that divides the data into manageable groups. For example, attributes that can + have numeric values might have buckets that define price ranges
    title - String! + The filter name displayed in layered navigation
    type - AggregationType + Identifies the data type of the aggregation
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "attribute": "xyz789",
    +  "buckets": [Bucket],
    +  "title": "abc123",
    +  "type": "INTELLIGENT"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    AggregationType

    +
    +
    +
    +
    Description
    +

    Identifies the data type of the aggregation

    +
    +
    +
    Values
    + + + + + + + + + + + + + + + + + + + + + +
    Enum ValueDescription
    +

    INTELLIGENT

    +
    +
    +

    PINNED

    +
    +
    +

    POPULAR

    +
    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    "INTELLIGENT"
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    AppliedQueryRule

    +
    +
    +
    +
    Description
    +

    The rule that was applied to this product

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    action_type - AppliedQueryRuleActionType + An enum that defines the type of rule that was applied
    rule_id - String + The ID assigned to the rule
    rule_name - String + The name of the applied rule
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "action_type": "BOOST",
    +  "rule_id": "abc123",
    +  "rule_name": "abc123"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    AppliedQueryRuleActionType

    +
    +
    +
    +
    Description
    +

    The type of rule that was applied to a product during search (optional)

    +
    +
    +
    Values
    + + + + + + + + + + + + + + + + + + + + + +
    Enum ValueDescription
    +

    BOOST

    +
    +
    +

    BURY

    +
    +
    +

    PIN

    +
    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    "BOOST"
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    AttributeMetadataResponse

    +
    +
    +
    +
    Description
    +

    Contains the output of the attributeMetadata query

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    filterableInSearch - + [FilterableInSearchAttribute!] + An array of product attributes that can be used for filtering in a productSearch + query
    sortable - [SortableAttribute!] + An array of product attributes that can be used for sorting in a productSearch + query
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "filterableInSearch": [FilterableInSearchAttribute],
    +  "sortable": [SortableAttribute]
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    Boolean

    +
    +
    +
    +
    Description
    +

    The Boolean scalar type represents true or false.

    +
    +
    +
    +
    +
    Example
    + + + + + +
    true
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    Bucket

    +
    +
    +
    +
    Description
    +

    An interface for bucket contents

    +
    +
    +
    Fields
    + + + + + + + + + + + + + +
    Field NameDescription
    title - String! + A human-readable name of a bucket
    +
    +
    +
    Possible Types
    + + + + + + + + + + + + + + + + + +
    Bucket Types
    +

    RangeBucket

    +
    +

    ScalarBucket

    +
    +

    StatsBucket

    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"title": "abc123"}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    BundleProduct

    +
    +
    +
    +
    Description
    +

    Defines features of a bundle product

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    add_to_cart_allowed - + Boolean + Boolean indicating whether a product can be added to cart. Field reserved for future use. + Currently, will default to true
    attribute_set_id - Int + The attribute set assigned to the product
    canonical_url - String + Relative canonical URL
    created_at - String + Timestamp indicating when the product was created
    custom_attributes - + [CustomAttribute] + An array of custom product attributes
    description - ComplexTextValue + Detailed information about the product. The value can include simple HTML tags
    gift_message_available - + String + Indicates whether a gift message is available
    id - Int + id Magento 2.4 has not yet deprecated the + ProductInterface.id field +
    image - ProductImage + The relative path to the main image on the product page
    media_gallery - [MediaGalleryInterface] + An array of Media Gallery objects
    meta_description - String + A brief overview of the product for search results listings, maximum 255 characters
    meta_keyword - String + A comma-separated list of keywords that are visible only to search engines
    meta_title - String + A string that is displayed in the title bar and tab of the browser and in search results + lists
    name - String + The product name. Customers use this name to identify the product
    new_from_date - String + The beginning date for new product listings, and determines if the product is featured as a + new product
    new_to_date - String + The end date for new product listings
    price_range - PriceRange! + A PriceRange object, indicating the range of prices for the product
    short_description - + ComplexTextValue + A short description of the product. Its use depends on the theme
    sku - String + A number or code assigned to a product to identify the product, options, price, and + manufacturer
    small_image - ProductImage + The relative path to the small image, which is used on catalog pages
    thumbnail - ProductImage + The relative path to the product's thumbnail image
    uid - ID! + The unique ID for a ProductInterface object
    updated_at - String + Timestamp indicating when the product was updated
    weight - Float + The weight of the item, in units defined by the store
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "add_to_cart_allowed": true,
    +  "attribute_set_id": 987,
    +  "canonical_url": "abc123",
    +  "created_at": "xyz789",
    +  "custom_attributes": [CustomAttribute],
    +  "description": ComplexTextValue,
    +  "gift_message_available": "xyz789",
    +  "id": 987,
    +  "image": ProductImage,
    +  "media_gallery": [MediaGalleryInterface],
    +  "meta_description": "abc123",
    +  "meta_keyword": "xyz789",
    +  "meta_title": "xyz789",
    +  "name": "xyz789",
    +  "new_from_date": "xyz789",
    +  "new_to_date": "xyz789",
    +  "price_range": PriceRange,
    +  "short_description": ComplexTextValue,
    +  "sku": "xyz789",
    +  "small_image": ProductImage,
    +  "thumbnail": ProductImage,
    +  "uid": "4",
    +  "updated_at": "xyz789",
    +  "weight": 987.65
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ComplexProductView

    +
    +
    +
    +
    Description
    +

    Represents all product types, except simple products. Complex product prices are returned as a price + range, because price values can vary based on selected options.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    addToCartAllowed - Boolean + A flag stating if the product can be added to cart
    inStock - Boolean + A flag stating if the product is in stock
    lowStock - Boolean + A flag stating if the product stock is low
    attributes - [ProductViewAttribute] + A list of merchant-defined attributes designated for the storefront.
    +
    +
    Arguments
    +
    +
    +
    roles - + [String] +
    +
    +
    +
    +
    description - String + The detailed description of the product.
    id - ID! + The product ID, generated as a composite key, unique per locale.
    images - [ProductViewImage] + A list of images defined for the product.
    +
    +
    Arguments
    +
    +
    +
    roles - + [String] +
    +
    +
    +
    +
    videos - [ProductViewVideo] + A list of videos defined for the product.
    lastModifiedAt - DateTime + Date and time when the product was last updated.
    metaDescription - String + A brief overview of the product for search results listings.
    metaKeyword - String + A comma-separated list of keywords that are visible only to search engines.
    metaTitle - String + A string that is displayed in the title bar and tab of the browser and in search results + lists.
    name - String + Product name.
    inputOptions - [ProductViewInputOption] + A list of input options.
    options - [ProductViewOption] + A list of selectable options.
    priceRange - ProductViewPriceRange + A range of possible prices for a complex product.
    shortDescription - String + A summary of the product.
    sku - String + Product SKU.
    externalId - String + External Id
    url - String + Canonical URL of the product.
    urlKey - String + The URL key of the product.
    links - [ProductViewLink] + A list of product links
    +
    +
    Arguments
    +
    +
    +
    linkTypes + - [String!] +
    +
    +
    +
    +
    categories - + [String] + List of categories to which the product belongs This field + is deprecated and will be removed after Sep 1, 2025. +
    queryType - + String + Indicates if the product was retrieved from the primary or the backup query This field is deprecated and will be removed after Sep 1, + 2025. +
    rank - Int + Rank given to a product This field is deprecated and will be + removed after Sep 1, 2025. +
    score - Float + Score indicating relevance of the product to the recommendation type This field is deprecated and will be removed after Sep 1, + 2025. +
    visibility - + String + Visibility setting of the product This field is deprecated + and will be removed after Sep 1, 2025. +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "addToCartAllowed": true,
    +  "inStock": true,
    +  "lowStock": true,
    +  "attributes": [ProductViewAttribute],
    +  "description": "abc123",
    +  "id": "4",
    +  "images": [ProductViewImage],
    +  "videos": [ProductViewVideo],
    +  "lastModifiedAt": "2007-12-03T10:15:30Z",
    +  "metaDescription": "abc123",
    +  "metaKeyword": "xyz789",
    +  "metaTitle": "xyz789",
    +  "name": "xyz789",
    +  "inputOptions": [ProductViewInputOption],
    +  "options": [ProductViewOption],
    +  "priceRange": ProductViewPriceRange,
    +  "shortDescription": "abc123",
    +  "sku": "xyz789",
    +  "externalId": "abc123",
    +  "url": "xyz789",
    +  "urlKey": "xyz789",
    +  "links": [ProductViewLink],
    +  "categories": ["abc123"],
    +  "queryType": "abc123",
    +  "rank": 123,
    +  "score": 123.45,
    +  "visibility": "abc123"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ComplexTextValue

    +
    +
    +
    +
    Description
    +

    Text that can contain HTML tags

    +
    +
    +
    Fields
    + + + + + + + + + + + + + +
    Field NameDescription
    html - String! + Text that can contain HTML tags
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"html": "xyz789"}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ConfigurableProduct

    +
    +
    +
    +
    Description
    +

    Basic features of a configurable product and its simple product variants

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    add_to_cart_allowed - + Boolean + Boolean indicating whether a product can be added to cart. Field reserved for future use. + Currently, will default to true
    attribute_set_id - Int + The attribute set assigned to the product
    canonical_url - String + A relative canonical URL
    created_at - String + Timestamp indicating when the product was created
    custom_attributes - + [CustomAttribute] + An array of custom product attributes
    description - ComplexTextValue + Detailed information about the product. The value can include simple HTML tags
    gift_message_available - + String + Indicates whether a gift message is available
    id - Int + id Magento 2.4 has not yet deprecated the + ProductInterface.id field +
    image - ProductImage + The relative path to the main image on the product page
    media_gallery - [MediaGalleryInterface] + An array of Media Gallery objects
    meta_description - String + A brief overview of the product for search results listings, maximum 255 characters
    meta_keyword - String + A comma-separated list of keywords that are visible only to search engines
    meta_title - String + A string that is displayed in the title bar and tab of the browser and in search results + lists
    name - String + The product name. Customers use this name to identify the product
    new_from_date - String + The beginning date for new product listings, and determines if the product is featured as a + new product
    new_to_date - String + The end date for new product listings
    price_range - PriceRange! + A PriceRange object, indicating the range of prices for the product
    short_description - + ComplexTextValue + A short description of the product. Its use depends on the theme
    sku - String + A number or code assigned to a product to identify the product, options, price, and + manufacturer
    small_image - ProductImage + The relative path to the small image, which is used on catalog pages
    thumbnail - ProductImage + The relative path to the product's thumbnail image
    uid - ID! + The unique ID for a ProductInterface object
    updated_at - String + Timestamp indicating when the product was updated
    weight - Float + The weight of the item, in units defined by the store
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "add_to_cart_allowed": true,
    +  "attribute_set_id": 123,
    +  "canonical_url": "xyz789",
    +  "created_at": "xyz789",
    +  "custom_attributes": [CustomAttribute],
    +  "description": ComplexTextValue,
    +  "gift_message_available": "abc123",
    +  "id": 987,
    +  "image": ProductImage,
    +  "media_gallery": [MediaGalleryInterface],
    +  "meta_description": "abc123",
    +  "meta_keyword": "xyz789",
    +  "meta_title": "abc123",
    +  "name": "xyz789",
    +  "new_from_date": "xyz789",
    +  "new_to_date": "abc123",
    +  "price_range": PriceRange,
    +  "short_description": ComplexTextValue,
    +  "sku": "abc123",
    +  "small_image": ProductImage,
    +  "thumbnail": ProductImage,
    +  "uid": 4,
    +  "updated_at": "xyz789",
    +  "weight": 987.65
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    CurrencyEnum

    +
    +
    +
    +
    Values
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Enum ValueDescription
    +

    NONE

    +
    +
    +

    AED

    +
    +
    +

    AFN

    +
    +
    +

    ALL

    +
    +
    +

    AMD

    +
    +
    +

    ANG

    +
    +
    +

    AOA

    +
    +
    +

    ARS

    +
    +
    +

    AUD

    +
    +
    +

    AWG

    +
    +
    +

    AZM

    +
    +
    +

    AZN

    +
    +
    +

    BAM

    +
    +
    +

    BBD

    +
    +
    +

    BDT

    +
    +
    +

    BGN

    +
    +
    +

    BHD

    +
    +
    +

    BIF

    +
    +
    +

    BMD

    +
    +
    +

    BND

    +
    +
    +

    BOB

    +
    +
    +

    BRL

    +
    +
    +

    BSD

    +
    +
    +

    BTN

    +
    +
    +

    BUK

    +
    +
    +

    BWP

    +
    +
    +

    BYN

    +
    +
    +

    BZD

    +
    +
    +

    CAD

    +
    +
    +

    CDF

    +
    +
    +

    CHE

    +
    +
    +

    CHF

    +
    +
    +

    CHW

    +
    +
    +

    CLP

    +
    +
    +

    CNY

    +
    +
    +

    COP

    +
    +
    +

    CRC

    +
    +
    +

    CUP

    +
    +
    +

    CVE

    +
    +
    +

    CZK

    +
    +
    +

    DJF

    +
    +
    +

    DKK

    +
    +
    +

    DOP

    +
    +
    +

    DZD

    +
    +
    +

    EEK

    +
    +
    +

    EGP

    +
    +
    +

    ERN

    +
    +
    +

    ETB

    +
    +
    +

    EUR

    +
    +
    +

    FJD

    +
    +
    +

    FKP

    +
    +
    +

    GBP

    +
    +
    +

    GEK

    +
    +
    +

    GEL

    +
    +
    +

    GHS

    +
    +
    +

    GIP

    +
    +
    +

    GMD

    +
    +
    +

    GNF

    +
    +
    +

    GQE

    +
    +
    +

    GTQ

    +
    +
    +

    GYD

    +
    +
    +

    HKD

    +
    +
    +

    HNL

    +
    +
    +

    HRK

    +
    +
    +

    HTG

    +
    +
    +

    HUF

    +
    +
    +

    IDR

    +
    +
    +

    ILS

    +
    +
    +

    INR

    +
    +
    +

    IQD

    +
    +
    +

    IRR

    +
    +
    +

    ISK

    +
    +
    +

    JMD

    +
    +
    +

    JOD

    +
    +
    +

    JPY

    +
    +
    +

    KES

    +
    +
    +

    KGS

    +
    +
    +

    KHR

    +
    +
    +

    KMF

    +
    +
    +

    KPW

    +
    +
    +

    KRW

    +
    +
    +

    KWD

    +
    +
    +

    KYD

    +
    +
    +

    KZT

    +
    +
    +

    LAK

    +
    +
    +

    LBP

    +
    +
    +

    LKR

    +
    +
    +

    LRD

    +
    +
    +

    LSL

    +
    +
    +

    LSM

    +
    +
    +

    LTL

    +
    +
    +

    LVL

    +
    +
    +

    LYD

    +
    +
    +

    MAD

    +
    +
    +

    MDL

    +
    +
    +

    MGA

    +
    +
    +

    MKD

    +
    +
    +

    MMK

    +
    +
    +

    MNT

    +
    +
    +

    MOP

    +
    +
    +

    MRO

    +
    +
    +

    MUR

    +
    +
    +

    MVR

    +
    +
    +

    MWK

    +
    +
    +

    MXN

    +
    +
    +

    MYR

    +
    +
    +

    MZN

    +
    +
    +

    NAD

    +
    +
    +

    NGN

    +
    +
    +

    NIC

    +
    +
    +

    NOK

    +
    +
    +

    NPR

    +
    +
    +

    NZD

    +
    +
    +

    OMR

    +
    +
    +

    PAB

    +
    +
    +

    PEN

    +
    +
    +

    PGK

    +
    +
    +

    PHP

    +
    +
    +

    PKR

    +
    +
    +

    PLN

    +
    +
    +

    PYG

    +
    +
    +

    QAR

    +
    +
    +

    RHD

    +
    +
    +

    ROL

    +
    +
    +

    RON

    +
    +
    +

    RSD

    +
    +
    +

    RUB

    +
    +
    +

    RWF

    +
    +
    +

    SAR

    +
    +
    +

    SBD

    +
    +
    +

    SCR

    +
    +
    +

    SDG

    +
    +
    +

    SEK

    +
    +
    +

    SGD

    +
    +
    +

    SHP

    +
    +
    +

    SKK

    +
    +
    +

    SLL

    +
    +
    +

    SOS

    +
    +
    +

    SRD

    +
    +
    +

    STD

    +
    +
    +

    SVC

    +
    +
    +

    SYP

    +
    +
    +

    SZL

    +
    +
    +

    THB

    +
    +
    +

    TJS

    +
    +
    +

    TMM

    +
    +
    +

    TND

    +
    +
    +

    TOP

    +
    +
    +

    TRL

    +
    +
    +

    TRY

    +
    +
    +

    TTD

    +
    +
    +

    TWD

    +
    +
    +

    TZS

    +
    +
    +

    UAH

    +
    +
    +

    UGX

    +
    +
    +

    USD

    +
    +
    +

    UYU

    +
    +
    +

    UZS

    +
    +
    +

    VEB

    +
    +
    +

    VEF

    +
    +
    +

    VND

    +
    +
    +

    VUV

    +
    +
    +

    WST

    +
    +
    +

    XCD

    +
    +
    +

    XOF

    +
    +
    +

    XPF

    +
    +
    +

    YER

    +
    +
    +

    ZAR

    +
    +
    +

    ZMK

    +
    +
    +

    ZWD

    +
    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    "NONE"
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    CustomAttribute

    +
    +
    +
    +
    Description
    +

    A product attribute defined by the merchant

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    code - String! + The unique identifier for an attribute code
    value - String! + The value assigned to the custom attribute
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "code": "xyz789",
    +  "value": "xyz789"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    DateTime

    +
    +
    +
    +
    Description
    +

    An RFC-3339 compliant DateTime Scalar

    +
    +
    +
    +
    +
    Example
    + + + + + +
    "2007-12-03T10:15:30Z"
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    DownloadableProduct

    +
    +
    +
    +
    Description
    +

    A product that the shopper downloads

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    add_to_cart_allowed - + Boolean + Boolean indicating whether a product can be added to cart. Field reserved for future use. + Currently, will default to true
    attribute_set_id - Int + The attribute set assigned to the product
    canonical_url - String + A relative canonical URL
    created_at - String + Timestamp indicating when the product was created
    custom_attributes - + [CustomAttribute] + An array of custom product attributes
    description - ComplexTextValue + Detailed information about the product. The value can include simple HTML tags
    gift_message_available - + String + Indicates whether a gift message is available.
    id - Int + id Magento 2.4 has not yet deprecated the + ProductInterface.id field +
    image - ProductImage + The relative path to the main image on the product page
    media_gallery - [MediaGalleryInterface] + An array of Media Gallery objects.
    meta_description - String + A brief overview of the product for search results listings, maximum 255 characters
    meta_keyword - String + A comma-separated list of keywords that are visible only to search engines
    meta_title - String + A string that is displayed in the title bar and tab of the browser and in search results + lists
    name - String + The product name. Customers use this name to identify the product
    new_from_date - String + The beginning date for new product listings, and determines if the product is featured as a + new product
    new_to_date - String + The end date for new product listings
    price_range - PriceRange! + A PriceRange object, indicating the range of prices for the product
    short_description - + ComplexTextValue + A short description of the product. Its use depends on the theme
    sku - String + A number or code assigned to a product to identify the product, options, price, and + manufacturer
    small_image - ProductImage + The relative path to the small image, which is used on catalog pages
    thumbnail - ProductImage + The relative path to the product's thumbnail image
    uid - ID! + The unique ID for a ProductInterface object
    updated_at - String + Timestamp indicating when the product was updated
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "add_to_cart_allowed": true,
    +  "attribute_set_id": 987,
    +  "canonical_url": "xyz789",
    +  "created_at": "xyz789",
    +  "custom_attributes": [CustomAttribute],
    +  "description": ComplexTextValue,
    +  "gift_message_available": "xyz789",
    +  "id": 987,
    +  "image": ProductImage,
    +  "media_gallery": [MediaGalleryInterface],
    +  "meta_description": "xyz789",
    +  "meta_keyword": "xyz789",
    +  "meta_title": "xyz789",
    +  "name": "abc123",
    +  "new_from_date": "xyz789",
    +  "new_to_date": "xyz789",
    +  "price_range": PriceRange,
    +  "short_description": ComplexTextValue,
    +  "sku": "abc123",
    +  "small_image": ProductImage,
    +  "thumbnail": ProductImage,
    +  "uid": 4,
    +  "updated_at": "xyz789"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    FilterableInSearchAttribute

    +
    +
    +
    +
    Description
    +

    Contains product attributes that can be used for filtering in a productSearch query

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    attribute - String! + The unique identifier for an attribute code. This value should be in lowercase letters and + without spaces
    frontendInput - String + Indicates how field rendered on storefront
    label - String + The display name assigned to the attribute
    numeric - Boolean + Indicates whether this attribute has a numeric value, such as a price or integer
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "attribute": "abc123",
    +  "frontendInput": "xyz789",
    +  "label": "xyz789",
    +  "numeric": false
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    FixedProductTax

    +
    +
    +
    +
    Description
    +

    A single FPT that can be applied to a product price

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    amount - Money + Amount of the FPT as a money object
    label - String + The label assigned to the FPT to be displayed on the frontend
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "amount": Money,
    +  "label": "xyz789"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    Float

    +
    +
    +
    +
    Description
    +

    The Float scalar type represents signed double-precision fractional values as specified + by IEEE 754.

    +
    +
    +
    +
    +
    Example
    + + + + + +
    987.65
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    GiftCardProduct

    +
    +
    +
    +
    Description
    +

    Defines properties of a gift card, including the minimum and maximum values and an array that + contains the current and past values on the specific gift card

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    add_to_cart_allowed - + Boolean + Boolean indicating whether a product can be added to cart. Field reserved for future use. + Currently, will default to true
    attribute_set_id - Int + The attribute set assigned to the product
    canonical_url - String + Relative canonical URL
    created_at - String + Timestamp indicating when the product was created
    custom_attributes - + [CustomAttribute] + An array of custom product attributes
    description - ComplexTextValue + Detailed information about the product. The value can include simple HTML tags
    gift_message_available - + String + Indicates whether a gift message is available
    id - Int + id Magento 2.4 has not yet deprecated the + ProductInterface.id field +
    image - ProductImage + The relative path to the main image on the product page
    media_gallery - [MediaGalleryInterface] + An array of Media Gallery objects
    meta_description - String + A brief overview of the product for search results listings, maximum 255 characters
    meta_keyword - String + A comma-separated list of keywords that are visible only to search engines
    meta_title - String + A string that is displayed in the title bar and tab of the browser and in search results + lists
    name - String + The product name. Customers use this name to identify the product
    new_from_date - String + The beginning date for new product listings, and determines if the product is featured as a + new product
    new_to_date - String + The end date for new product listings
    price_range - PriceRange! + A PriceRange object, indicating the range of prices for the product
    short_description - + ComplexTextValue + A short description of the product. Its use depends on the theme
    sku - String + A number or code assigned to a product to identify the product, options, price, and + manufacturer
    small_image - ProductImage + The relative path to the small image, which is used on catalog pages
    thumbnail - ProductImage + The relative path to the product's thumbnail image
    uid - ID! + The unique ID for a ProductInterface object
    updated_at - String + Timestamp indicating when the product was updated
    weight - Float + The weight of the item, in units defined by the store
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "add_to_cart_allowed": true,
    +  "attribute_set_id": 987,
    +  "canonical_url": "abc123",
    +  "created_at": "xyz789",
    +  "custom_attributes": [CustomAttribute],
    +  "description": ComplexTextValue,
    +  "gift_message_available": "abc123",
    +  "id": 123,
    +  "image": ProductImage,
    +  "media_gallery": [MediaGalleryInterface],
    +  "meta_description": "xyz789",
    +  "meta_keyword": "xyz789",
    +  "meta_title": "abc123",
    +  "name": "abc123",
    +  "new_from_date": "xyz789",
    +  "new_to_date": "xyz789",
    +  "price_range": PriceRange,
    +  "short_description": ComplexTextValue,
    +  "sku": "abc123",
    +  "small_image": ProductImage,
    +  "thumbnail": ProductImage,
    +  "uid": 4,
    +  "updated_at": "xyz789",
    +  "weight": 123.45
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    GroupedProduct

    +
    +
    +
    +
    Description
    +

    Consists of simple standalone products that are presented as a group

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    add_to_cart_allowed - + Boolean + Boolean indicating whether a product can be added to cart. Field reserved for future use. + Currently, will default to true
    attribute_set_id - Int + The attribute set assigned to the product
    canonical_url - String + Relative canonical URL
    created_at - String + Timestamp indicating when the product was created
    custom_attributes - + [CustomAttribute] + An array of custom product attributes
    description - ComplexTextValue + Detailed information about the product. The value can include simple HTML tags
    gift_message_available - + String + Indicates whether a gift message is available
    id - Int + id Magento 2.4 has not yet deprecated the + ProductInterface.id field +
    image - ProductImage + The relative path to the main image on the product page
    media_gallery - [MediaGalleryInterface] + An array of Media Gallery objects
    meta_description - String + A brief overview of the product for search results listings, maximum 255 characters
    meta_keyword - String + A comma-separated list of keywords that are visible only to search engines
    meta_title - String + A string that is displayed in the title bar and tab of the browser and in search results + lists
    name - String + The product name. Customers use this name to identify the product
    new_from_date - String + The beginning date for new product listings, and determines if the product is featured as a + new product
    new_to_date - String + The end date for new product listings
    price_range - PriceRange! + A PriceRange object, indicating the range of prices for the product
    short_description - + ComplexTextValue + A short description of the product. Its use depends on the theme
    sku - String + A number or code assigned to a product to identify the product, options, price, and + manufacturer
    small_image - ProductImage + The relative path to the small image, which is used on catalog pages
    thumbnail - ProductImage + The relative path to the product's thumbnail image
    uid - ID! + The unique ID for a ProductInterface object
    updated_at - String + Timestamp indicating when the product was updated
    weight - Float + The weight of the item, in units defined by the store
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "add_to_cart_allowed": false,
    +  "attribute_set_id": 123,
    +  "canonical_url": "abc123",
    +  "created_at": "xyz789",
    +  "custom_attributes": [CustomAttribute],
    +  "description": ComplexTextValue,
    +  "gift_message_available": "abc123",
    +  "id": 123,
    +  "image": ProductImage,
    +  "media_gallery": [MediaGalleryInterface],
    +  "meta_description": "xyz789",
    +  "meta_keyword": "abc123",
    +  "meta_title": "abc123",
    +  "name": "abc123",
    +  "new_from_date": "abc123",
    +  "new_to_date": "abc123",
    +  "price_range": PriceRange,
    +  "short_description": ComplexTextValue,
    +  "sku": "xyz789",
    +  "small_image": ProductImage,
    +  "thumbnail": ProductImage,
    +  "uid": 4,
    +  "updated_at": "xyz789",
    +  "weight": 987.65
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    Highlight

    +
    +
    +
    +
    Description
    +

    An object that provides highlighted text for matched words

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    attribute - String! + The product attribute that contains a match for the search phrase
    matched_words - [String]! + An array of strings
    value - String! + The matched text, enclosed within emphasis tags
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "attribute": "abc123",
    +  "matched_words": ["xyz789"],
    +  "value": "xyz789"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ID

    +
    +
    +
    +
    Description
    +

    The ID scalar type represents a unique identifier, often used to refetch an object or as + key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be + human-readable. When expected as an input type, any string (such as "4") or + integer (such as 4) input value will be accepted as an ID.

    +
    +
    +
    +
    +
    Example
    + + + + + +
    4
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    Int

    +
    +
    +
    +
    Description
    +

    The Int scalar type represents non-fractional signed whole numeric values. Int can + represent values between -(2^31) and 2^31 - 1.

    +
    +
    +
    +
    +
    Example
    + + + + + +
    123
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    JSON

    +
    +
    +
    +
    Description
    +

    A JSON scalar

    +
    +
    +
    +
    +
    Example
    + + + + + +
    {}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    MediaGalleryInterface

    +
    +
    +
    +
    Description
    +

    Contains basic information about a product image or video

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    disabled - Boolean + Whether the image is hidden from PDP gallery
    label - String + The label of the product image or video
    position - Int + The media item's position after it has been sorted
    url - String + The URL of the product image or video
    +
    +
    +
    Possible Types
    + + + + + + + + + + + +
    MediaGalleryInterface Types
    +

    ProductImage

    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "disabled": false,
    +  "label": "abc123",
    +  "position": 987,
    +  "url": "xyz789"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    Money

    +
    +
    +
    +
    Description
    +

    A monetary value, including a numeric value and a currency code

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    currency - CurrencyEnum + A three-letter currency code, such as USD or EUR
    value - Float + A number expressing a monetary value
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"currency": "NONE", "value": 123.45}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    PageType

    +
    +
    +
    +
    Description
    +

    Type of page on which recommendations are requested

    +
    +
    +
    Values
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Enum ValueDescription
    +

    CMS

    +
    +
    +

    Cart

    +
    +
    +

    Category

    +
    +
    +

    Checkout

    +
    +
    +

    PageBuilder

    +
    +
    +

    Product

    +
    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    "CMS"
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    PhysicalProductInterface

    +
    +
    +
    +
    Description
    +

    Contains attributes specific to tangible products

    +
    +
    +
    Fields
    + + + + + + + + + + + + + +
    Field NameDescription
    weight - Float + The weight of the item, in units defined by the store
    +
    +
    +
    Possible Types
    + + + + + + + + + + + + + + + + + + + + + + + +
    PhysicalProductInterface Types
    +

    BundleProduct

    +
    +

    ConfigurableProduct

    +
    +

    GiftCardProduct

    +
    +

    GroupedProduct

    +
    +

    SimpleProduct

    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"weight": 987.65}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    Price

    +
    +
    +
    +
    Description
    +

    Defines the price of a simple product or a part of a price range for a complex product. It can + include a list of price adjustments.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    adjustments - [PriceAdjustment] + A list of price adjustments.
    amount - ProductViewMoney + Contains the monetary value and currency code of a product.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "adjustments": [PriceAdjustment],
    +  "amount": ProductViewMoney
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    PriceAdjustment

    +
    +
    +
    +
    Description
    +

    Specifies the amount and type of price adjustment.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    amount - Float + The amount of the price adjustment.
    code - String + Identifies the type of price adjustment.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"amount": 123.45, "code": "abc123"}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    PriceRange

    +
    +
    +
    +
    Description
    +

    Price range for a product. If the product has a single price, the minimum and maximum price will be + the same

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    maximum_price - ProductPrice + The highest possible price for the product
    minimum_price - ProductPrice! + The lowest possible price for the product
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "maximum_price": ProductPrice,
    +  "minimum_price": ProductPrice
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductDiscount

    +
    +
    +
    +
    Description
    +

    A discount applied to a product price

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    amount_off - Float + The actual value of the discount
    percent_off - Float + The discount expressed a percentage
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"amount_off": 987.65, "percent_off": 987.65}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductImage

    +
    +
    +
    +
    Description
    +

    Product image information. Contains the image URL and label

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    disabled - Boolean + Whether the image is hidden from PDP gallery
    label - String + The label of the product image or video
    position - Int + The media item's position after it has been sorted
    url - String + The URL of the product image or video
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "disabled": true,
    +  "label": "abc123",
    +  "position": 123,
    +  "url": "abc123"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductInterface

    +
    +
    +
    +
    Description
    +

    Contains attributes that are common to all types of products

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    add_to_cart_allowed - + Boolean + Boolean indicating whether a product can be added to cart. Field reserved for future use. + Currently, will default to true
    attribute_set_id - Int + The attribute set assigned to the product
    canonical_url - String + A relative canonical URL
    created_at - String + Timestamp indicating when the product was created
    custom_attributes - + [CustomAttribute] + An array of custom product attributes
    description - ComplexTextValue + Detailed information about the product. The value can include simple HTML tags
    gift_message_available - + String + Indicates whether a gift message is available
    id - Int + id Magento 2.4 has not yet deprecated the + ProductInterface.id field +
    image - ProductImage + The relative path to the main image on the product page
    media_gallery - [MediaGalleryInterface] + An array of Media Gallery objects
    meta_description - String + A brief overview of the product for search results listings, maximum 255 characters
    meta_keyword - String + A comma-separated list of keywords that are visible only to search engines
    meta_title - String + A string that is displayed in the title bar and tab of the browser and in search results + lists
    name - String + The product name. Customers use this name to identify the product
    new_from_date - String + The beginning date for new product listings, and determines if the product is featured as a + new product
    new_to_date - String + The end date for new product listings
    price_range - PriceRange! + A PriceRange object, indicating the range of prices for the product
    short_description - + ComplexTextValue + A short description of the product. Its use depends on the theme
    sku - String + A number or code assigned to a product to identify the product, options, price, and + manufacturer
    small_image - ProductImage + The relative path to the small image, which is used on catalog pages
    thumbnail - ProductImage + The relative path to the product's thumbnail image
    uid - ID! + The unique ID for a ProductInterface object
    updated_at - String + Timestamp indicating when the product was updated
    +
    +
    +
    Possible Types
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ProductInterface Types
    +

    BundleProduct

    +
    +

    ConfigurableProduct

    +
    +

    DownloadableProduct

    +
    +

    GiftCardProduct

    +
    +

    GroupedProduct

    +
    +

    SimpleProduct

    +
    +

    VirtualProduct

    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "add_to_cart_allowed": true,
    +  "attribute_set_id": 123,
    +  "canonical_url": "abc123",
    +  "created_at": "xyz789",
    +  "custom_attributes": [CustomAttribute],
    +  "description": ComplexTextValue,
    +  "gift_message_available": "abc123",
    +  "id": 123,
    +  "image": ProductImage,
    +  "media_gallery": [MediaGalleryInterface],
    +  "meta_description": "xyz789",
    +  "meta_keyword": "xyz789",
    +  "meta_title": "xyz789",
    +  "name": "abc123",
    +  "new_from_date": "abc123",
    +  "new_to_date": "xyz789",
    +  "price_range": PriceRange,
    +  "short_description": ComplexTextValue,
    +  "sku": "abc123",
    +  "small_image": ProductImage,
    +  "thumbnail": ProductImage,
    +  "uid": "4",
    +  "updated_at": "abc123"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductPrice

    +
    +
    +
    +
    Description
    +

    Product price

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    discount - ProductDiscount + The price discount. Represents the difference between the regular and final price
    final_price - Money! + The final price of the product after discounts applied
    fixed_product_taxes - + [FixedProductTax] + The multiple FPTs that can be applied to a product price
    regular_price - Money! + The regular price of the product
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "discount": ProductDiscount,
    +  "final_price": Money,
    +  "fixed_product_taxes": [FixedProductTax],
    +  "regular_price": Money
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductSearchItem

    +
    +
    +
    +
    Description
    +

    A single product returned by the query

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    applied_query_rule - + AppliedQueryRule + The query rule type that was applied to this product, if any (in preview mode only, returns + null otherwise)
    highlights - [Highlight] + An object that provides highlighted text for matched words
    product - ProductInterface! + Contains details about the product
    productView - ProductView + Contains a product view
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "applied_query_rule": AppliedQueryRule,
    +  "highlights": [Highlight],
    +  "product": ProductInterface,
    +  "productView": ProductView
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductSearchResponse

    +
    +
    +
    +
    Description
    +

    Contains the output of a productSearch query

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    facets - [Aggregation] + Details about the static and dynamic facets relevant to the search
    items - [ProductSearchItem] + An array of products returned by the query
    page_info - SearchResultPageInfo + Information for rendering pages of search results
    related_terms - [String] + An array of strings that might include merchant-defined synonyms
    suggestions - [String] + An array of strings that include the names of products and categories that exist in the + catalog that are similar to the search query
    total_count - Int + The total number of products returned that matched the query
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "facets": [Aggregation],
    +  "items": [ProductSearchItem],
    +  "page_info": SearchResultPageInfo,
    +  "related_terms": ["abc123"],
    +  "suggestions": ["abc123"],
    +  "total_count": 987
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductSearchSortInput

    +
    +
    +
    +
    Description
    +

    The product attribute to sort on

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Input FieldDescription
    + attribute - String! + The attribute code of a product attribute
    + direction - SortEnum! + ASC (ascending) or DESC (descending)
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"attribute": "xyz789", "direction": "ASC"}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductView

    +
    +
    +
    +
    Description
    +

    Defines the product fields available to the SimpleProductView and ComplexProductView types.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    addToCartAllowed - Boolean + A flag stating if the product can be added to cart
    inStock - Boolean + A flag stating if the product is in stock
    lowStock - Boolean + A flag stating if the product stock is low
    attributes - [ProductViewAttribute] + A list of merchant-defined attributes designated for the storefront.
    +
    +
    Arguments
    +
    +
    +
    roles - + [String] +
    +
    +
    +
    +
    description - String + The detailed description of the product.
    id - ID! + The product ID, generated as a composite key, unique per locale.
    images - [ProductViewImage] + A list of images defined for the product.
    +
    +
    Arguments
    +
    +
    +
    roles - + [String] +
    +
    +
    +
    +
    videos - [ProductViewVideo] + A list of videos defined for the product.
    lastModifiedAt - DateTime + Date and time when the product was last updated.
    metaDescription - String + A brief overview of the product for search results listings.
    metaKeyword - String + A comma-separated list of keywords that are visible only to search engines.
    metaTitle - String + A string that is displayed in the title bar and tab of the browser and in search results + lists.
    name - String + Product name.
    shortDescription - String + A summary of the product.
    inputOptions - [ProductViewInputOption] + A list of input options.
    sku - String + Product SKU.
    externalId - String + External Id
    url - String + Canonical URL of the product.
    urlKey - String + The URL key of the product.
    links - [ProductViewLink] + A list of product links.
    +
    +
    Arguments
    +
    +
    +
    linkTypes + - [String!] +
    +
    +
    +
    +
    categories - + [String] + List of categories to which the product belongs This field + is deprecated and will be removed after Feb 1, 2024. +
    queryType - String + Indicates if the product was retrieved from the primary or the backup query
    rank - Int + Rank given to a product This field is deprecated and will be + removed after Feb 1, 2024. +
    score - Float + Score indicating relevance of the product to the recommendation type This field is deprecated and will be removed after Feb 1, + 2024. +
    visibility - String + Visibility setting of the product
    +
    +
    +
    Possible Types
    + + + + + + + + + + + + + + +
    ProductView Types
    +

    ComplexProductView

    +
    +

    SimpleProductView

    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "addToCartAllowed": true,
    +  "inStock": true,
    +  "lowStock": true,
    +  "attributes": [ProductViewAttribute],
    +  "description": "xyz789",
    +  "id": 4,
    +  "images": [ProductViewImage],
    +  "videos": [ProductViewVideo],
    +  "lastModifiedAt": "2007-12-03T10:15:30Z",
    +  "metaDescription": "abc123",
    +  "metaKeyword": "xyz789",
    +  "metaTitle": "abc123",
    +  "name": "xyz789",
    +  "shortDescription": "abc123",
    +  "inputOptions": [ProductViewInputOption],
    +  "sku": "abc123",
    +  "externalId": "abc123",
    +  "url": "abc123",
    +  "urlKey": "xyz789",
    +  "links": [ProductViewLink],
    +  "categories": ["xyz789"],
    +  "queryType": "abc123",
    +  "rank": 123,
    +  "score": 123.45,
    +  "visibility": "abc123"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewAttribute

    +
    +
    +
    +
    Description
    +

    A container for customer-defined attributes that are displayed the storefront.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    label - String + Label of the attribute.
    name - String! + Name of an attribute code.
    roles - [String] + Roles designated for an attribute on the storefront, such as "Show on PLP", "Show in PDP", or + "Show in Search".
    value - JSON + Attribute value, arbitrary of type.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "label": "abc123",
    +  "name": "xyz789",
    +  "roles": ["abc123"],
    +  "value": {}
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewCurrency

    +
    +
    +
    +
    Description
    +

    The list of supported currency codes.

    +
    +
    +
    Values
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Enum ValueDescription
    +

    AED

    +
    +
    +

    AFN

    +
    +
    +

    ALL

    +
    +
    +

    AMD

    +
    +
    +

    ANG

    +
    +
    +

    AOA

    +
    +
    +

    ARS

    +
    +
    +

    AUD

    +
    +
    +

    AWG

    +
    +
    +

    AZM

    +
    +
    +

    AZN

    +
    +
    +

    BAM

    +
    +
    +

    BBD

    +
    +
    +

    BDT

    +
    +
    +

    BGN

    +
    +
    +

    BHD

    +
    +
    +

    BIF

    +
    +
    +

    BMD

    +
    +
    +

    BND

    +
    +
    +

    BOB

    +
    +
    +

    BRL

    +
    +
    +

    BSD

    +
    +
    +

    BTN

    +
    +
    +

    BUK

    +
    +
    +

    BWP

    +
    +
    +

    BYN

    +
    +
    +

    BZD

    +
    +
    +

    CAD

    +
    +
    +

    CDF

    +
    +
    +

    CHE

    +
    +
    +

    CHF

    +
    +
    +

    CHW

    +
    +
    +

    CLP

    +
    +
    +

    CNY

    +
    +
    +

    COP

    +
    +
    +

    CRC

    +
    +
    +

    CUP

    +
    +
    +

    CVE

    +
    +
    +

    CZK

    +
    +
    +

    DJF

    +
    +
    +

    DKK

    +
    +
    +

    DOP

    +
    +
    +

    DZD

    +
    +
    +

    EEK

    +
    +
    +

    EGP

    +
    +
    +

    ERN

    +
    +
    +

    ETB

    +
    +
    +

    EUR

    +
    +
    +

    FJD

    +
    +
    +

    FKP

    +
    +
    +

    GBP

    +
    +
    +

    GEK

    +
    +
    +

    GEL

    +
    +
    +

    GHS

    +
    +
    +

    GIP

    +
    +
    +

    GMD

    +
    +
    +

    GNF

    +
    +
    +

    GQE

    +
    +
    +

    GTQ

    +
    +
    +

    GYD

    +
    +
    +

    HKD

    +
    +
    +

    HNL

    +
    +
    +

    HRK

    +
    +
    +

    HTG

    +
    +
    +

    HUF

    +
    +
    +

    IDR

    +
    +
    +

    ILS

    +
    +
    +

    INR

    +
    +
    +

    IQD

    +
    +
    +

    IRR

    +
    +
    +

    ISK

    +
    +
    +

    JMD

    +
    +
    +

    JOD

    +
    +
    +

    JPY

    +
    +
    +

    KES

    +
    +
    +

    KGS

    +
    +
    +

    KHR

    +
    +
    +

    KMF

    +
    +
    +

    KPW

    +
    +
    +

    KRW

    +
    +
    +

    KWD

    +
    +
    +

    KYD

    +
    +
    +

    KZT

    +
    +
    +

    LAK

    +
    +
    +

    LBP

    +
    +
    +

    LKR

    +
    +
    +

    LRD

    +
    +
    +

    LSL

    +
    +
    +

    LSM

    +
    +
    +

    LTL

    +
    +
    +

    LVL

    +
    +
    +

    LYD

    +
    +
    +

    MAD

    +
    +
    +

    MDL

    +
    +
    +

    MGA

    +
    +
    +

    MKD

    +
    +
    +

    MMK

    +
    +
    +

    MNT

    +
    +
    +

    MOP

    +
    +
    +

    MRO

    +
    +
    +

    MUR

    +
    +
    +

    MVR

    +
    +
    +

    MWK

    +
    +
    +

    MXN

    +
    +
    +

    MYR

    +
    +
    +

    MZN

    +
    +
    +

    NAD

    +
    +
    +

    NGN

    +
    +
    +

    NIC

    +
    +
    +

    NOK

    +
    +
    +

    NPR

    +
    +
    +

    NZD

    +
    +
    +

    OMR

    +
    +
    +

    PAB

    +
    +
    +

    PEN

    +
    +
    +

    PGK

    +
    +
    +

    PHP

    +
    +
    +

    PKR

    +
    +
    +

    PLN

    +
    +
    +

    PYG

    +
    +
    +

    QAR

    +
    +
    +

    RHD

    +
    +
    +

    ROL

    +
    +
    +

    RON

    +
    +
    +

    RSD

    +
    +
    +

    RUB

    +
    +
    +

    RWF

    +
    +
    +

    SAR

    +
    +
    +

    SBD

    +
    +
    +

    SCR

    +
    +
    +

    SDG

    +
    +
    +

    SEK

    +
    +
    +

    SGD

    +
    +
    +

    SHP

    +
    +
    +

    SKK

    +
    +
    +

    SLL

    +
    +
    +

    SOS

    +
    +
    +

    SRD

    +
    +
    +

    STD

    +
    +
    +

    SVC

    +
    +
    +

    SYP

    +
    +
    +

    SZL

    +
    +
    +

    THB

    +
    +
    +

    TJS

    +
    +
    +

    TMM

    +
    +
    +

    TND

    +
    +
    +

    TOP

    +
    +
    +

    TRL

    +
    +
    +

    TRY

    +
    +
    +

    TTD

    +
    +
    +

    TWD

    +
    +
    +

    TZS

    +
    +
    +

    UAH

    +
    +
    +

    UGX

    +
    +
    +

    USD

    +
    +
    +

    UYU

    +
    +
    +

    UZS

    +
    +
    +

    VEB

    +
    +
    +

    VEF

    +
    +
    +

    VND

    +
    +
    +

    VUV

    +
    +
    +

    WST

    +
    +
    +

    XCD

    +
    +
    +

    XOF

    +
    +
    +

    XPF

    +
    +
    +

    YER

    +
    +
    +

    ZAR

    +
    +
    +

    ZMK

    +
    +
    +

    ZWD

    +
    +
    +

    NONE

    +
    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    "AED"
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewImage

    +
    +
    +
    +
    Description
    +

    Contains details about a product image.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    label - String + The display label of the product image.
    roles - [String] + A list that describes how the image is used. Can be image, small_image, or thumbnail.
    url - String! + The URL to the product image.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "label": "xyz789",
    +  "roles": ["xyz789"],
    +  "url": "xyz789"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewInputOption

    +
    +
    +
    +
    Description
    +

    Product options provide a way to configure products by making selections of particular option values. + Selecting one or many options will point to a simple product.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    id - ID + The ID of an option value
    title - String + The display name of the option value
    required - Boolean + Wether this option is required or not
    type - String + The type of data entry
    markupAmount - Float + Price markup or markdown
    suffix - String + SKU suffix to add to the product
    sortOrder - Int + Sort order
    range - ProductViewInputOptionRange + +
    imageSize - ProductViewInputOptionImageSize + +
    fileExtensions - String + +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "id": 4,
    +  "title": "abc123",
    +  "required": false,
    +  "type": "xyz789",
    +  "markupAmount": 987.65,
    +  "suffix": "xyz789",
    +  "sortOrder": 987,
    +  "range": ProductViewInputOptionRange,
    +  "imageSize": ProductViewInputOptionImageSize,
    +  "fileExtensions": "abc123"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewInputOptionImageSize

    +
    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    width - Int + +
    height - Int + +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"width": 987, "height": 987}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewInputOptionRange

    +
    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    from - Float + +
    to - Float + +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"from": 123.45, "to": 123.45}
    +
    + + + +
    +
    + back to top +
    +
    + +
    +
    + Types +
    +

    ProductViewMoney

    +
    +
    +
    +
    Description
    +

    Defines a monetary value, including a numeric value and a currency code.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    currency - ProductViewCurrency + A three-letter currency code, such as USD or EUR.
    value - Float + A number expressing a monetary value.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"currency": "AED", "value": 123.45}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewOption

    +
    +
    +
    +
    Description
    +

    Product options provide a way to configure products by making selections of particular option values. + Selecting one or many options will point to a simple product.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    id - ID + The ID of the option.
    multi - Boolean + Indicates whether the option allows multiple choices.
    required - Boolean + Indicates whether the option must be selected.
    title - String + The display name of the option.
    values - [ProductViewOptionValue!] + List of available option values.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "id": "4",
    +  "multi": false,
    +  "required": false,
    +  "title": "xyz789",
    +  "values": [ProductViewOptionValue]
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewOptionValue

    +
    +
    +
    +
    Description
    +

    Defines the product fields available to the ProductViewOptionValueProduct and + ProductViewOptionValueConfiguration types.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    id - ID + The ID of an option value.
    title - String + The display name of the option value.
    inStock - Boolean + Indicates if the option is in stock.
    +
    +
    +
    Possible Types
    + + + + + + + + + + + + + + + + + +
    ProductViewOptionValue Types
    +

    ProductViewOptionValueConfiguration +

    +
    +

    ProductViewOptionValueProduct +

    +
    +

    ProductViewOptionValueSwatch +

    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "id": "4",
    +  "title": "xyz789",
    +  "inStock": false
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewOptionValueConfiguration

    +
    +
    +
    +
    Description
    +

    An implementation of ProductViewOptionValue for configuration values.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    id - ID + The ID of an option value.
    title - String + The display name of the option value.
    inStock - Boolean + Indicates if the option is in stock.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "id": 4,
    +  "title": "abc123",
    +  "inStock": false
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewOptionValueProduct

    +
    +
    +
    +
    Description
    +

    An implementation of ProductViewOptionValue that adds details about a simple product.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    id - ID + The ID of an option value.
    isDefault - Boolean + States if the option value is default or not.
    product - SimpleProductView + Details about a simple product.
    quantity - Float + Default quantity of an option value.
    title - String + The display name of the option value.
    inStock - Boolean + Indicates if the option is in stock.
    enabled - Boolean + Indicates if the associated product is enabled.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "id": 4,
    +  "isDefault": true,
    +  "product": SimpleProductView,
    +  "quantity": 987.65,
    +  "title": "xyz789",
    +  "inStock": true,
    +  "enabled": true
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewOptionValueSwatch

    +
    +
    +
    +
    Description
    +

    An implementation of ProductViewOptionValueSwatch for swatches.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    id - ID + The ID of an option value.
    title - String + The display name of the option value.
    type - SwatchType + Indicates the type of the swatch.
    value - String + The value of the swatch depending on the type of the swatch.
    inStock - Boolean + Indicates if the option is in stock.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "id": 4,
    +  "title": "abc123",
    +  "type": "TEXT",
    +  "value": "abc123",
    +  "inStock": false
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewPrice

    +
    +
    +
    +
    Description
    +

    Base product price view, inherent for simple products.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    final - Price + Price value after discounts, excluding personalized promotions.
    regular - Price + Base product price specified by the merchant.
    roles - [String] + Price roles, stating if the price should be visible or hidden.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "final": Price,
    +  "regular": Price,
    +  "roles": ["xyz789"]
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewPriceRange

    +
    +
    +
    +
    Description
    +

    The minimum and maximum price of a complex product.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    maximum - ProductViewPrice + Maximum price.
    minimum - ProductViewPrice + Minimum price.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "maximum": ProductViewPrice,
    +  "minimum": ProductViewPrice
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewVariant

    +
    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    selections - [String!] + List of option values that make up the variant.
    product - ProductView + Product corresponding to the variant.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "selections": ["xyz789"],
    +  "product": ProductView
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewVariantResults

    +
    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    variants - [ProductViewVariant]! + List of product variants.
    cursor - String + Pagination cursor
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "variants": [ProductViewVariant],
    +  "cursor": "xyz789"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ProductViewVideo

    +
    +
    +
    +
    Description
    +

    Contains details about a product video

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    preview - ProductViewImage + Preview image for the video
    url - String! + The URL to the product video.
    description - String + Description of the product video.
    title - String + The title of the product video.
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "preview": ProductViewImage,
    +  "url": "abc123",
    +  "description": "xyz789",
    +  "title": "xyz789"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    PurchaseHistory

    +
    +
    +
    +
    Description
    +

    User purchase history

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Input FieldDescription
    + date - DateTime + +
    + items - [String]! + +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "date": "2007-12-03T10:15:30Z",
    +  "items": ["xyz789"]
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    QueryContextInput

    +
    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Input FieldDescription
    + customerGroup - String! + The customer group code. Field reserved for future use. Currently, passing this field will + have no impact on search results, that is, the search results will be for "Not logged in" + customer
    + userViewHistory - [ViewHistoryInput!] + User view history with timestamp
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "customerGroup": "abc123",
    +  "userViewHistory": [ViewHistoryInput]
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    RangeBucket

    +
    +
    +
    +
    Description
    +

    For use on numeric product fields

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    count - Int! + The number of items in the bucket
    from - Float! + The minimum amount in a price range
    title - String! + The display text defining the price range
    to - Float + The maximum amount in a price range
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "count": 123,
    +  "from": 123.45,
    +  "title": "xyz789",
    +  "to": 987.65
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    RecommendationUnit

    +
    +
    +
    +
    Description
    +

    Recommendation Unit containing product and other details

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    displayOrder - Int + Order in which recommendation units are displayed
    pageType - String + Page type
    productsView - [ProductView] + List of product view
    storefrontLabel - String + Storefront label to be displayed on the storefront
    totalProducts - Int + Total products returned in recommedations
    typeId - String + Type of recommendation
    unitId - String + Id of the preconfigured unit
    unitName - String + Name of the preconfigured unit
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "displayOrder": 123,
    +  "pageType": "xyz789",
    +  "productsView": [ProductView],
    +  "storefrontLabel": "xyz789",
    +  "totalProducts": 123,
    +  "typeId": "abc123",
    +  "unitId": "xyz789",
    +  "unitName": "abc123"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    Recommendations

    +
    +
    +
    +
    Description
    +

    Recommendations response

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Field NameDescription
    results - [RecommendationUnit] + List of rec units with products recommended
    totalResults - Int + total number of rec units for which recommendations are returned
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"results": [RecommendationUnit], "totalResults": 987}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ScalarBucket

    +
    +
    +
    +
    Description
    +

    For use on string and other scalar product fields

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    count - Int! + The number of items in the bucket
    id - ID! + An identifier that can be used for filtering. It may contain non-human readable data
    title - String! + The display text for the scalar value
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"count": 123, "id": 4, "title": "xyz789"}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    SearchClauseInput

    +
    +
    +
    +
    Description
    +

    A product attribute to filter on

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Input FieldDescription
    + attribute - String! + The attribute code of a product attribute
    + eq - String + A string value to filter on
    + in - [String] + An array of string values to filter on
    + range - SearchRangeInput + A range of numeric values to filter on
    + startsWith - String + Attribute value should start with the specified string
    + contains - String + Attribute value should contain the specified string
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "attribute": "xyz789",
    +  "eq": "abc123",
    +  "in": ["abc123"],
    +  "range": SearchRangeInput,
    +  "startsWith": "abc123",
    +  "contains": "xyz789"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    SearchRangeInput

    +
    +
    +
    +
    Description
    +

    A range of numeric values for use in a search

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Input FieldDescription
    + from - Float + The minimum value to filter on. If not specified, the value of 0 is applied +
    + to - Float + The maximum value to filter on
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"from": 987.65, "to": 987.65}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    SearchResultPageInfo

    +
    +
    +
    +
    Description
    +

    Provides navigation for the query response

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    current_page - Int + Specifies which page of results to return
    page_size - Int + Specifies the maximum number of items to return
    total_pages - Int + Specifies the total number of pages returned
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {"current_page": 987, "page_size": 987, "total_pages": 123}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    SimpleProduct

    +
    +
    +
    +
    Description
    +

    A simple product is tangible and is usually sold in single units or in fixed quantities

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    add_to_cart_allowed - + Boolean + Boolean indicating whether a product can be added to cart. Field reserved for future use. + Currently, will default to true
    attribute_set_id - Int + The attribute set assigned to the product
    canonical_url - String + A relative canonical URL
    created_at - String + Timestamp indicating when the product was created
    custom_attributes - + [CustomAttribute] + +
    description - ComplexTextValue + Detailed information about the product. The value can include simple HTML tags
    gift_message_available - + String + Indicates whether a gift message is available
    id - Int + id Magento 2.4 has not yet deprecated the + ProductInterface.id field +
    image - ProductImage + The relative path to the main image on the product page
    media_gallery - [MediaGalleryInterface] + An array of Media Gallery objects
    meta_description - String + A brief overview of the product for search results listings, maximum 255 characters
    meta_keyword - String + A comma-separated list of keywords that are visible only to search engines
    meta_title - String + A string that is displayed in the title bar and tab of the browser and in search results + lists
    name - String + The product name. Customers use this name to identify the product
    new_from_date - String + The beginning date for new product listings, and determines if the product is featured as a + new product
    new_to_date - String + The end date for new product listings
    price_range - PriceRange! + A PriceRange object, indicating the range of prices for the product
    short_description - + ComplexTextValue + A short description of the product. Its use depends on the theme
    sku - String + A number or code assigned to a product to identify the product, options, price, and + manufacturer
    small_image - ProductImage + The relative path to the small image, which is used on catalog pages
    thumbnail - ProductImage + The relative path to the product's thumbnail image
    uid - ID! + The unique ID for a ProductInterface object
    updated_at - String + Timestamp indicating when the product was updated
    weight - Float + The weight of the item, in units defined by the store
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "add_to_cart_allowed": false,
    +  "attribute_set_id": 987,
    +  "canonical_url": "abc123",
    +  "created_at": "xyz789",
    +  "custom_attributes": [CustomAttribute],
    +  "description": ComplexTextValue,
    +  "gift_message_available": "abc123",
    +  "id": 123,
    +  "image": ProductImage,
    +  "media_gallery": [MediaGalleryInterface],
    +  "meta_description": "xyz789",
    +  "meta_keyword": "xyz789",
    +  "meta_title": "abc123",
    +  "name": "abc123",
    +  "new_from_date": "abc123",
    +  "new_to_date": "abc123",
    +  "price_range": PriceRange,
    +  "short_description": ComplexTextValue,
    +  "sku": "abc123",
    +  "small_image": ProductImage,
    +  "thumbnail": ProductImage,
    +  "uid": 4,
    +  "updated_at": "xyz789",
    +  "weight": 987.65
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    SimpleProductView

    +
    +
    +
    +
    Description
    +

    Represents simple products. Simple product prices do not contain price ranges.

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    addToCartAllowed - Boolean + A flag stating if the product can be added to cart
    inStock - Boolean + A flag stating if the product is in stock
    lowStock - Boolean + A flag stating if the product stock is low
    attributes - [ProductViewAttribute] + A list of merchant-defined attributes designated for the storefront.
    +
    +
    Arguments
    +
    +
    +
    roles - + [String] +
    +
    +
    +
    +
    description - String + The detailed description of the product.
    id - ID! + The product ID, generated as a composite key, unique per locale.
    images - [ProductViewImage] + A list of images defined for the product.
    +
    +
    Arguments
    +
    +
    +
    roles - + [String] +
    +
    +
    +
    +
    videos - [ProductViewVideo] + A list of videos defined for the product.
    inputOptions - [ProductViewInputOption] + A list of input options.
    lastModifiedAt - DateTime + Date and time when the product was last updated.
    metaDescription - String + A brief overview of the product for search results listings.
    metaKeyword - String + A comma-separated list of keywords that are visible only to search engines.
    metaTitle - String + A string that is displayed in the title bar and tab of the browser and in search results + lists.
    name - String + Product name.
    price - ProductViewPrice + Base product price view.
    shortDescription - String + A summary of the product.
    sku - String + Product SKU.
    externalId - String + External Id
    url - String + Canonical URL of the product.
    urlKey - String + The URL key of the product.
    links - [ProductViewLink] + A list of product links
    +
    +
    Arguments
    +
    +
    +
    linkTypes + - [String!] +
    +
    +
    +
    +
    categories - + [String] + List of categories to which the product belongs This field + is deprecated and will be removed after Feb 1, 2024. +
    queryType - String + Indicates if the product was retrieved from the primary or the backup query
    rank - Int + Rank given to a product This field is deprecated and will be + removed after Feb 1, 2024. +
    score - Float + Score indicating relevance of the product to the recommendation type This field is deprecated and will be removed after Feb 1, + 2024. +
    visibility - String + Visibility setting of the product
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "addToCartAllowed": false,
    +  "inStock": false,
    +  "lowStock": true,
    +  "attributes": [ProductViewAttribute],
    +  "description": "xyz789",
    +  "id": 4,
    +  "images": [ProductViewImage],
    +  "videos": [ProductViewVideo],
    +  "inputOptions": [ProductViewInputOption],
    +  "lastModifiedAt": "2007-12-03T10:15:30Z",
    +  "metaDescription": "abc123",
    +  "metaKeyword": "abc123",
    +  "metaTitle": "xyz789",
    +  "name": "abc123",
    +  "price": ProductViewPrice,
    +  "shortDescription": "abc123",
    +  "sku": "xyz789",
    +  "externalId": "xyz789",
    +  "url": "abc123",
    +  "urlKey": "xyz789",
    +  "links": [ProductViewLink],
    +  "categories": ["xyz789"],
    +  "queryType": "abc123",
    +  "rank": 123,
    +  "score": 123.45,
    +  "visibility": "abc123"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    SortEnum

    +
    +
    +
    +
    Description
    +

    This enumeration indicates whether to return results in ascending or descending order

    +
    +
    +
    Values
    + + + + + + + + + + + + + + + + + +
    Enum ValueDescription
    +

    ASC

    +
    +
    +

    DESC

    +
    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    "ASC"
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    SortableAttribute

    +
    +
    +
    +
    Description
    +

    Contains product attributes that be used for sorting in a productSearch query

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    attribute - String! + The unique identifier for an attribute code. This value should be in lowercase letters and + without space
    frontendInput - String + Indicates how field rendered on storefront
    label - String + The display name assigned to the attribute
    numeric - Boolean + Indicates whether this attribute has a numeric value, such as a price or integer
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "attribute": "xyz789",
    +  "frontendInput": "xyz789",
    +  "label": "xyz789",
    +  "numeric": true
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    StatsBucket

    +
    +
    +
    +
    Description
    +

    For retrieving statistics across multiple buckets

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    max - Float! + The maximum value
    min - Float! + The minimum value
    title - String! + The display text for the bucket
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "max": 987.65,
    +  "min": 123.45,
    +  "title": "xyz789"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    String

    +
    +
    +
    +
    Description
    +

    The String scalar type represents textual data, represented as UTF-8 character + sequences. The String type is most often used by GraphQL to represent free-form human-readable text. +

    +
    +
    +
    +
    +
    Example
    + + + + + +
    "abc123"
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    SwatchType

    +
    +
    +
    +
    Values
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Enum ValueDescription
    +

    TEXT

    +
    +
    +

    IMAGE

    +
    +
    +

    COLOR_HEX

    +
    +
    +

    CUSTOM

    +
    +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    "TEXT"
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ViewHistory

    +
    +
    +
    +
    Description
    +

    User view history

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Input FieldDescription
    + date - DateTime + +
    + sku - String! + +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "date": "2007-12-03T10:15:30Z",
    +  "sku": "abc123"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    ViewHistoryInput

    +
    +
    +
    +
    Description
    +

    User view history

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + +
    Input FieldDescription
    + dateTime - DateTime + +
    + sku - String! + +
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "dateTime": "2007-12-03T10:15:30Z",
    +  "sku": "xyz789"
    +}
    +
    + + + +
    +
    + back to top +
    +
    +
    +
    + Types +
    +

    VirtualProduct

    +
    +
    +
    +
    Description
    +

    A non-tangible product that does not require shipping and is not kept in inventory

    +
    +
    +
    Fields
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field NameDescription
    add_to_cart_allowed - + Boolean + Boolean indicating whether a product can be added to cart. Field reserved for future use. + Currently, will default to true
    attribute_set_id - Int + The attribute set assigned to the product
    canonical_url - String + Relative canonical URL
    created_at - String + Timestamp indicating when the product was created
    custom_attributes - + [CustomAttribute] + An array of custom product attributes
    description - ComplexTextValue + Detailed information about the product. The value can include simple HTML tags
    gift_message_available - + String + Indicates whether a gift message is available
    id - Int + id Magento 2.4 has not yet deprecated the + ProductInterface.id field +
    image - ProductImage + The relative path to the main image on the product page
    media_gallery - [MediaGalleryInterface] + An array of Media Gallery objects
    meta_description - String + A brief overview of the product for search results listings, maximum 255 characters
    meta_keyword - String + A comma-separated list of keywords that are visible only to search engines
    meta_title - String + A string that is displayed in the title bar and tab of the browser and in search results + lists
    name - String + The product name. Customers use this name to identify the product
    new_from_date - String + The beginning date for new product listings, and determines if the product is featured as a + new product
    new_to_date - String + The end date for new product listings
    price_range - PriceRange! + A PriceRange object, indicating the range of prices for the product
    short_description - + ComplexTextValue + A short description of the product. Its use depends on the theme
    sku - String + A number or code assigned to a product to identify the product, options, price, and + manufacturer
    small_image - ProductImage + The relative path to the small image, which is used on catalog pages
    thumbnail - ProductImage + The relative path to the product's thumbnail image
    uid - ID! + The unique ID for a ProductInterface object
    updated_at - String + Timestamp indicating when the product was updated
    +
    +
    +
    +
    +
    Example
    + + + + + +
    {
    +  "add_to_cart_allowed": true,
    +  "attribute_set_id": 987,
    +  "canonical_url": "abc123",
    +  "created_at": "abc123",
    +  "custom_attributes": [CustomAttribute],
    +  "description": ComplexTextValue,
    +  "gift_message_available": "xyz789",
    +  "id": 123,
    +  "image": ProductImage,
    +  "media_gallery": [MediaGalleryInterface],
    +  "meta_description": "xyz789",
    +  "meta_keyword": "abc123",
    +  "meta_title": "xyz789",
    +  "name": "xyz789",
    +  "new_from_date": "xyz789",
    +  "new_to_date": "xyz789",
    +  "price_range": PriceRange,
    +  "short_description": ComplexTextValue,
    +  "sku": "xyz789",
    +  "small_image": ProductImage,
    +  "thumbnail": ProductImage,
    +  "uid": 4,
    +  "updated_at": "abc123"
    +}
    +
    + + + +
    +
    + back to top +
    +
    + +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/static/graphql-api/storefront-api/javascripts/spectaql.min.js b/static/graphql-api/merchandising-api/javascripts/spectaql.min.js similarity index 100% rename from static/graphql-api/storefront-api/javascripts/spectaql.min.js rename to static/graphql-api/merchandising-api/javascripts/spectaql.min.js diff --git a/static/graphql-api/storefront-api/stylesheets/spectaql.min.css b/static/graphql-api/merchandising-api/stylesheets/spectaql.min.css similarity index 100% rename from static/graphql-api/storefront-api/stylesheets/spectaql.min.css rename to static/graphql-api/merchandising-api/stylesheets/spectaql.min.css diff --git a/static/graphql-api/storefront-api/index.html b/static/graphql-api/storefront-api/index.html index 1dc5f534..a54d5cf7 100644 --- a/static/graphql-api/storefront-api/index.html +++ b/static/graphql-api/storefront-api/index.html @@ -49,8 +49,6 @@
  • Boolean
  • Bucket
  • BundleProduct
  • -
  • CategoryView
  • -
  • CategoryViewInterface
  • ComplexProductView
  • ComplexTextValue
  • ConfigurableProduct
  • @@ -131,11 +129,11 @@
    -

    Storefront API

    +

    Merchandising GraphQL API

    -

    Use the storefront GraphQL API to access rich view-model (read-only) catalog data to build product-related storefront experiences. For more information about the API, see the developer documentation.

    +

    Use the Merchandising GraphQL API to access rich view-model (read-only) catalog data to build product-related storefront experiences. For more information about the API, see the developer documentation.

    @@ -332,7 +330,7 @@
    Variables
    "current_page": 1, "filter": [SearchClauseInput], "page_size": 20, - "phrase": "abc123", + "phrase": "xyz789", "sort": [ProductSearchSortInput] }
    @@ -349,9 +347,9 @@
    Response
    "facets": [Aggregation], "items": [ProductSearchItem], "page_info": SearchResultPageInfo, - "related_terms": ["abc123"], + "related_terms": ["xyz789"], "suggestions": ["xyz789"], - "total_count": 123 + "total_count": 987 } } } @@ -474,29 +472,29 @@
    Response
    { "addToCartAllowed": true, "inStock": true, - "lowStock": false, + "lowStock": true, "attributes": [ProductViewAttribute], "description": "xyz789", - "id": 4, + "id": "4", "images": [ProductViewImage], "videos": [ProductViewVideo], "lastModifiedAt": "2007-12-03T10:15:30Z", - "metaDescription": "xyz789", - "metaKeyword": "abc123", + "metaDescription": "abc123", + "metaKeyword": "xyz789", "metaTitle": "xyz789", - "name": "abc123", + "name": "xyz789", "shortDescription": "xyz789", "inputOptions": [ProductViewInputOption], "sku": "abc123", - "externalId": "xyz789", - "url": "abc123", + "externalId": "abc123", + "url": "xyz789", "urlKey": "abc123", "links": [ProductViewLink], "categories": ["xyz789"], "queryType": "xyz789", - "rank": 123, - "score": 123.45, - "visibility": "abc123" + "rank": 987, + "score": 987.65, + "visibility": "xyz789" } ] } @@ -619,7 +617,7 @@
    Variables
    {
       "cartSkus": ["xyz789"],
    -  "category": "abc123",
    +  "category": "xyz789",
       "currentSku": "xyz789",
       "pageType": "CMS",
       "userPurchaseHistory": [PurchaseHistory],
    @@ -637,7 +635,7 @@ 
    Response
    "data": { "recommendations": { "results": [RecommendationUnit], - "totalResults": 987 + "totalResults": 123 } } } @@ -765,27 +763,27 @@
    Response
    {
       "data": {
         "refineProduct": {
    -      "addToCartAllowed": false,
    -      "inStock": false,
    -      "lowStock": false,
    +      "addToCartAllowed": true,
    +      "inStock": true,
    +      "lowStock": true,
           "attributes": [ProductViewAttribute],
           "description": "xyz789",
    -      "id": 4,
    +      "id": "4",
           "images": [ProductViewImage],
           "videos": [ProductViewVideo],
           "lastModifiedAt": "2007-12-03T10:15:30Z",
           "metaDescription": "abc123",
           "metaKeyword": "abc123",
    -      "metaTitle": "xyz789",
    -      "name": "xyz789",
    -      "shortDescription": "abc123",
    +      "metaTitle": "abc123",
    +      "name": "abc123",
    +      "shortDescription": "xyz789",
           "inputOptions": [ProductViewInputOption],
           "sku": "xyz789",
    -      "externalId": "xyz789",
    -      "url": "xyz789",
    -      "urlKey": "xyz789",
    +      "externalId": "abc123",
    +      "url": "abc123",
    +      "urlKey": "abc123",
           "links": [ProductViewLink],
    -      "categories": ["abc123"],
    +      "categories": ["xyz789"],
           "queryType": "abc123",
           "rank": 123,
           "score": 987.65,
    @@ -891,9 +889,9 @@ 
    Variables
    {
       "sku": "abc123",
    -  "optionIds": ["xyz789"],
    -  "pageSize": 123,
    -  "cursor": "abc123"
    +  "optionIds": ["abc123"],
    +  "pageSize": 987,
    +  "cursor": "xyz789"
     }
     
    @@ -907,7 +905,7 @@
    Response
    "data": { "variants": { "variants": [ProductViewVariant], - "cursor": "xyz789" + "cursor": "abc123" } } } @@ -1088,8 +1086,8 @@
    Example
    {
       "action_type": "BOOST",
    -  "rule_id": "xyz789",
    -  "rule_name": "xyz789"
    +  "rule_id": "abc123",
    +  "rule_name": "abc123"
     }
     
    @@ -1224,6 +1222,15 @@
    Description
    +
    +
    Example
    + + +
    true
    +
    + + +
    back to top @@ -1266,11 +1273,6 @@
    Possible Types
    - - -

    CategoryView

    - -

    RangeBucket

    @@ -1456,21 +1458,21 @@
    Example
    {
    -  "add_to_cart_allowed": false,
    +  "add_to_cart_allowed": true,
       "attribute_set_id": 987,
       "canonical_url": "abc123",
       "created_at": "xyz789",
       "custom_attributes": [CustomAttribute],
       "description": ComplexTextValue,
       "gift_message_available": "xyz789",
    -  "id": 123,
    +  "id": 987,
       "image": ProductImage,
       "media_gallery": [MediaGalleryInterface],
       "meta_description": "abc123",
       "meta_keyword": "xyz789",
    -  "meta_title": "abc123",
    -  "name": "abc123",
    -  "new_from_date": "abc123",
    +  "meta_title": "xyz789",
    +  "name": "xyz789",
    +  "new_from_date": "xyz789",
       "new_to_date": "xyz789",
       "price_range": PriceRange,
       "short_description": ComplexTextValue,
    @@ -1478,256 +1480,9 @@ 
    Example
    "small_image": ProductImage, "thumbnail": ProductImage, "uid": "4", - "updated_at": "abc123", + "updated_at": "xyz789", "weight": 987.65 } -
    - - - - - back to top - - -
    -
    - Types -
    -

    CategoryView

    -
    -
    -
    -
    Description
    -

    Category view bucket for federation

    -
    -
    -
    Fields
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Field NameDescription
    availableSortBy - [String] - -
    children - [String!] - -
    defaultSortBy - String - -
    id - ID! - -
    level - Int - -
    name - String - -
    parentId - String! - -
    path - String - -
    roles - [String!]! - -
    urlKey - String - -
    urlPath - String - -
    count - Int! - -
    title - String! - -
    -
    -
    -
    -
    -
    Example
    - - -
    {
    -  "availableSortBy": ["xyz789"],
    -  "children": ["xyz789"],
    -  "defaultSortBy": "abc123",
    -  "id": 4,
    -  "level": 123,
    -  "name": "xyz789",
    -  "parentId": "xyz789",
    -  "path": "abc123",
    -  "roles": ["xyz789"],
    -  "urlKey": "abc123",
    -  "urlPath": "xyz789",
    -  "count": 123,
    -  "title": "xyz789"
    -}
    -
    - - -
    -
    - back to top -
    -
    -
    -
    - Types -
    -

    CategoryViewInterface

    -
    -
    -
    -
    Fields
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Field NameDescription
    availableSortBy - [String] - -
    defaultSortBy - String - -
    id - ID! - -
    level - Int - -
    name - String - -
    path - String - -
    roles - [String] - -
    urlKey - String - -
    urlPath - String - -
    -
    -
    -
    Possible Types
    - - - - - - - - - - - -
    CategoryViewInterface Types
    -

    CategoryView

    -
    -
    -
    -
    -
    -
    Example
    - - -
    {
    -  "availableSortBy": ["xyz789"],
    -  "defaultSortBy": "xyz789",
    -  "id": 4,
    -  "level": 987,
    -  "name": "xyz789",
    -  "path": "xyz789",
    -  "roles": ["xyz789"],
    -  "urlKey": "abc123",
    -  "urlPath": "abc123"
    -}
     
    @@ -1946,16 +1701,16 @@
    Example
    {
    -  "addToCartAllowed": false,
    +  "addToCartAllowed": true,
       "inStock": true,
       "lowStock": true,
       "attributes": [ProductViewAttribute],
    -  "description": "xyz789",
    +  "description": "abc123",
       "id": "4",
       "images": [ProductViewImage],
       "videos": [ProductViewVideo],
       "lastModifiedAt": "2007-12-03T10:15:30Z",
    -  "metaDescription": "xyz789",
    +  "metaDescription": "abc123",
       "metaKeyword": "xyz789",
       "metaTitle": "xyz789",
       "name": "xyz789",
    @@ -1964,14 +1719,14 @@ 
    Example
    "priceRange": ProductViewPriceRange, "shortDescription": "abc123", "sku": "xyz789", - "externalId": "xyz789", - "url": "abc123", + "externalId": "abc123", + "url": "xyz789", "urlKey": "xyz789", "links": [ProductViewLink], - "categories": ["xyz789"], - "queryType": "xyz789", + "categories": ["abc123"], + "queryType": "abc123", "rank": 123, - "score": 987.65, + "score": 123.45, "visibility": "abc123" }
    @@ -2178,10 +1933,10 @@
    Example
    {
    -  "add_to_cart_allowed": false,
    +  "add_to_cart_allowed": true,
       "attribute_set_id": 123,
       "canonical_url": "xyz789",
    -  "created_at": "abc123",
    +  "created_at": "xyz789",
       "custom_attributes": [CustomAttribute],
       "description": ComplexTextValue,
       "gift_message_available": "abc123",
    @@ -2191,8 +1946,8 @@ 
    Example
    "meta_description": "abc123", "meta_keyword": "xyz789", "meta_title": "abc123", - "name": "abc123", - "new_from_date": "abc123", + "name": "xyz789", + "new_from_date": "xyz789", "new_to_date": "abc123", "price_range": PriceRange, "short_description": ComplexTextValue, @@ -3478,7 +3233,7 @@
    Example
    {
       "code": "xyz789",
    -  "value": "abc123"
    +  "value": "xyz789"
     }
     
    @@ -3663,18 +3418,18 @@
    Example
    {
       "add_to_cart_allowed": true,
       "attribute_set_id": 987,
    -  "canonical_url": "abc123",
    +  "canonical_url": "xyz789",
       "created_at": "xyz789",
       "custom_attributes": [CustomAttribute],
       "description": ComplexTextValue,
    -  "gift_message_available": "abc123",
    +  "gift_message_available": "xyz789",
       "id": 987,
       "image": ProductImage,
       "media_gallery": [MediaGalleryInterface],
       "meta_description": "xyz789",
       "meta_keyword": "xyz789",
    -  "meta_title": "abc123",
    -  "name": "xyz789",
    +  "meta_title": "xyz789",
    +  "name": "abc123",
       "new_from_date": "xyz789",
       "new_to_date": "xyz789",
       "price_range": PriceRange,
    @@ -3682,7 +3437,7 @@ 
    Example
    "sku": "abc123", "small_image": ProductImage, "thumbnail": ProductImage, - "uid": "4", + "uid": 4, "updated_at": "xyz789" }
    @@ -3745,8 +3500,8 @@
    Example
    {
       "attribute": "abc123",
    -  "frontendInput": "abc123",
    -  "label": "abc123",
    +  "frontendInput": "xyz789",
    +  "label": "xyz789",
       "numeric": false
     }
     
    @@ -3988,18 +3743,18 @@
    Example
    {
       "add_to_cart_allowed": true,
    -  "attribute_set_id": 123,
    -  "canonical_url": "xyz789",
    -  "created_at": "abc123",
    +  "attribute_set_id": 987,
    +  "canonical_url": "abc123",
    +  "created_at": "xyz789",
       "custom_attributes": [CustomAttribute],
       "description": ComplexTextValue,
    -  "gift_message_available": "xyz789",
    +  "gift_message_available": "abc123",
       "id": 123,
       "image": ProductImage,
       "media_gallery": [MediaGalleryInterface],
       "meta_description": "xyz789",
       "meta_keyword": "xyz789",
    -  "meta_title": "xyz789",
    +  "meta_title": "abc123",
       "name": "abc123",
       "new_from_date": "xyz789",
       "new_to_date": "xyz789",
    @@ -4008,7 +3763,7 @@ 
    Example
    "sku": "abc123", "small_image": ProductImage, "thumbnail": ProductImage, - "uid": "4", + "uid": 4, "updated_at": "xyz789", "weight": 123.45 } @@ -4172,17 +3927,17 @@
    Example
    {
    -  "add_to_cart_allowed": true,
    -  "attribute_set_id": 987,
    -  "canonical_url": "xyz789",
    -  "created_at": "abc123",
    +  "add_to_cart_allowed": false,
    +  "attribute_set_id": 123,
    +  "canonical_url": "abc123",
    +  "created_at": "xyz789",
       "custom_attributes": [CustomAttribute],
       "description": ComplexTextValue,
       "gift_message_available": "abc123",
       "id": 123,
       "image": ProductImage,
       "media_gallery": [MediaGalleryInterface],
    -  "meta_description": "abc123",
    +  "meta_description": "xyz789",
       "meta_keyword": "abc123",
       "meta_title": "abc123",
       "name": "abc123",
    @@ -4190,12 +3945,12 @@ 
    Example
    "new_to_date": "abc123", "price_range": PriceRange, "short_description": ComplexTextValue, - "sku": "abc123", + "sku": "xyz789", "small_image": ProductImage, "thumbnail": ProductImage, - "uid": "4", - "updated_at": "abc123", - "weight": 123.45 + "uid": 4, + "updated_at": "xyz789", + "weight": 987.65 }
    @@ -4252,8 +4007,8 @@
    Example
    {
       "attribute": "abc123",
    -  "matched_words": ["abc123"],
    -  "value": "abc123"
    +  "matched_words": ["xyz789"],
    +  "value": "xyz789"
     }
     
    @@ -4280,7 +4035,7 @@
    Description
    Example
    -
    "4"
    +                  
    4
     
    @@ -4411,8 +4166,8 @@
    Example
    {
       "disabled": false,
       "label": "abc123",
    -  "position": 123,
    -  "url": "abc123"
    +  "position": 987,
    +  "url": "xyz789"
     }
     
    @@ -4462,7 +4217,7 @@
    Fields
    Example
    -
    {"currency": "NONE", "value": 987.65}
    +                  
    {"currency": "NONE", "value": 123.45}
     
    @@ -4725,7 +4480,7 @@
    Fields
    Example
    -
    {"amount": 987.65, "code": "xyz789"}
    +                  
    {"amount": 123.45, "code": "abc123"}
     
    @@ -4826,7 +4581,7 @@
    Fields
    Example
    -
    {"amount_off": 123.45, "percent_off": 123.45}
    +                  
    {"amount_off": 987.65, "percent_off": 987.65}
     
    @@ -4886,9 +4641,9 @@
    Example
    {
    -  "disabled": false,
    +  "disabled": true,
       "label": "abc123",
    -  "position": 987,
    +  "position": 123,
       "url": "abc123"
     }
     
    @@ -5093,28 +4848,28 @@
    Example
    {
    -  "add_to_cart_allowed": false,
    +  "add_to_cart_allowed": true,
       "attribute_set_id": 123,
       "canonical_url": "abc123",
    -  "created_at": "abc123",
    +  "created_at": "xyz789",
       "custom_attributes": [CustomAttribute],
       "description": ComplexTextValue,
    -  "gift_message_available": "xyz789",
    -  "id": 987,
    +  "gift_message_available": "abc123",
    +  "id": 123,
       "image": ProductImage,
       "media_gallery": [MediaGalleryInterface],
    -  "meta_description": "abc123",
    -  "meta_keyword": "abc123",
    -  "meta_title": "abc123",
    +  "meta_description": "xyz789",
    +  "meta_keyword": "xyz789",
    +  "meta_title": "xyz789",
       "name": "abc123",
    -  "new_from_date": "xyz789",
    +  "new_from_date": "abc123",
       "new_to_date": "xyz789",
       "price_range": PriceRange,
       "short_description": ComplexTextValue,
       "sku": "abc123",
       "small_image": ProductImage,
       "thumbnail": ProductImage,
    -  "uid": 4,
    +  "uid": "4",
       "updated_at": "abc123"
     }
     
    @@ -5317,9 +5072,9 @@
    Example
    "facets": [Aggregation], "items": [ProductSearchItem], "page_info": SearchResultPageInfo, - "related_terms": ["xyz789"], + "related_terms": ["abc123"], "suggestions": ["abc123"], - "total_count": 123 + "total_count": 987 }
    @@ -5600,31 +5355,31 @@
    Example
    {
    -  "addToCartAllowed": false,
    +  "addToCartAllowed": true,
       "inStock": true,
    -  "lowStock": false,
    +  "lowStock": true,
       "attributes": [ProductViewAttribute],
    -  "description": "abc123",
    -  "id": "4",
    +  "description": "xyz789",
    +  "id": 4,
       "images": [ProductViewImage],
       "videos": [ProductViewVideo],
       "lastModifiedAt": "2007-12-03T10:15:30Z",
       "metaDescription": "abc123",
    -  "metaKeyword": "abc123",
    +  "metaKeyword": "xyz789",
       "metaTitle": "abc123",
    -  "name": "abc123",
    +  "name": "xyz789",
       "shortDescription": "abc123",
       "inputOptions": [ProductViewInputOption],
    -  "sku": "xyz789",
    +  "sku": "abc123",
       "externalId": "abc123",
       "url": "abc123",
       "urlKey": "xyz789",
       "links": [ProductViewLink],
       "categories": ["xyz789"],
    -  "queryType": "xyz789",
    -  "rank": 987,
    -  "score": 987.65,
    -  "visibility": "xyz789"
    +  "queryType": "abc123",
    +  "rank": 123,
    +  "score": 123.45,
    +  "visibility": "abc123"
     }
     
    @@ -5687,7 +5442,7 @@
    Example
    {
       "label": "abc123",
       "name": "xyz789",
    -  "roles": ["xyz789"],
    +  "roles": ["abc123"],
       "value": {}
     }
     
    @@ -6974,7 +6729,7 @@
    Example
    {
       "label": "xyz789",
    -  "roles": ["abc123"],
    +  "roles": ["xyz789"],
       "url": "xyz789"
     }
     
    @@ -7071,11 +6826,11 @@
    Example
    {
       "id": 4,
       "title": "abc123",
    -  "required": true,
    -  "type": "abc123",
    +  "required": false,
    +  "type": "xyz789",
       "markupAmount": 987.65,
    -  "suffix": "abc123",
    -  "sortOrder": 123,
    +  "suffix": "xyz789",
    +  "sortOrder": 987,
       "range": ProductViewInputOptionRange,
       "imageSize": ProductViewInputOptionImageSize,
       "fileExtensions": "abc123"
    @@ -7126,7 +6881,7 @@ 
    Fields
    Example
    -
    {"width": 123, "height": 987}
    +                  
    {"width": 987, "height": 987}
     
    @@ -7173,7 +6928,7 @@
    Fields
    Example
    -
    {"from": 987.65, "to": 123.45}
    +                  
    {"from": 123.45, "to": 123.45}
     
    @@ -7339,10 +7094,10 @@
    Example
    {
    -  "id": 4,
    +  "id": "4",
       "multi": false,
    -  "required": true,
    -  "title": "abc123",
    +  "required": false,
    +  "title": "xyz789",
       "values": [ProductViewOptionValue]
     }
     
    @@ -7426,7 +7181,7 @@
    Example
    {
    -  "id": 4,
    +  "id": "4",
       "title": "xyz789",
       "inStock": false
     }
    @@ -7565,7 +7320,7 @@ 
    Example
    "id": 4, "isDefault": true, "product": SimpleProductView, - "quantity": 123.45, + "quantity": 987.65, "title": "xyz789", "inStock": true, "enabled": true @@ -7635,10 +7390,10 @@
    Example
    {
       "id": 4,
    -  "title": "xyz789",
    +  "title": "abc123",
       "type": "TEXT",
       "value": "abc123",
    -  "inStock": true
    +  "inStock": false
     }
     
    @@ -7696,7 +7451,7 @@
    Example
    {
       "final": Price,
       "regular": Price,
    -  "roles": ["abc123"]
    +  "roles": ["xyz789"]
     }
     
    @@ -7795,7 +7550,7 @@
    Example
    {
    -  "selections": ["abc123"],
    +  "selections": ["xyz789"],
       "product": ProductView
     }
     
    @@ -7906,8 +7661,8 @@
    Example
    {
       "preview": ProductViewImage,
    -  "url": "xyz789",
    -  "description": "abc123",
    +  "url": "abc123",
    +  "description": "xyz789",
       "title": "xyz789"
     }
     
    @@ -7964,7 +7719,7 @@
    Example
    {
       "date": "2007-12-03T10:15:30Z",
    -  "items": ["abc123"]
    +  "items": ["xyz789"]
     }
     
    @@ -8013,7 +7768,7 @@
    Example
    {
    -  "customerGroup": "xyz789",
    +  "customerGroup": "abc123",
       "userViewHistory": [ViewHistoryInput]
     }
     
    @@ -8075,10 +7830,10 @@
    Example
    {
    -  "count": 987,
    +  "count": 123,
       "from": 123.45,
    -  "title": "abc123",
    -  "to": 123.45
    +  "title": "xyz789",
    +  "to": 987.65
     }
     
    @@ -8162,11 +7917,11 @@
    Example
    "displayOrder": 123, "pageType": "xyz789", "productsView": [ProductView], - "storefrontLabel": "abc123", - "totalProducts": 987, - "typeId": "xyz789", + "storefrontLabel": "xyz789", + "totalProducts": 123, + "typeId": "abc123", "unitId": "xyz789", - "unitName": "xyz789" + "unitName": "abc123" }
    @@ -8270,7 +8025,7 @@
    Fields
    Example
    -
    {"count": 987, "id": 4, "title": "abc123"}
    +                  
    {"count": 123, "id": 4, "title": "xyz789"}
     
    @@ -8346,12 +8101,12 @@
    Example
    {
    -  "attribute": "abc123",
    +  "attribute": "xyz789",
       "eq": "abc123",
    -  "in": ["xyz789"],
    +  "in": ["abc123"],
       "range": SearchRangeInput,
    -  "startsWith": "xyz789",
    -  "contains": "abc123"
    +  "startsWith": "abc123",
    +  "contains": "xyz789"
     }
     
    @@ -8457,7 +8212,7 @@
    Fields
    Example
    -
    {"current_page": 987, "page_size": 123, "total_pages": 987}
    +                  
    {"current_page": 987, "page_size": 987, "total_pages": 123}
     
    @@ -8625,14 +8380,14 @@
    Example
    "created_at": "xyz789", "custom_attributes": [CustomAttribute], "description": ComplexTextValue, - "gift_message_available": "xyz789", + "gift_message_available": "abc123", "id": 123, "image": ProductImage, "media_gallery": [MediaGalleryInterface], - "meta_description": "abc123", + "meta_description": "xyz789", "meta_keyword": "xyz789", - "meta_title": "xyz789", - "name": "xyz789", + "meta_title": "abc123", + "name": "abc123", "new_from_date": "abc123", "new_to_date": "abc123", "price_range": PriceRange, @@ -8641,8 +8396,8 @@
    Example
    "small_image": ProductImage, "thumbnail": ProductImage, "uid": 4, - "updated_at": "abc123", - "weight": 123.45 + "updated_at": "xyz789", + "weight": 987.65 }
    @@ -8855,29 +8610,29 @@
    Example
    {
    -  "addToCartAllowed": true,
    +  "addToCartAllowed": false,
       "inStock": false,
    -  "lowStock": false,
    +  "lowStock": true,
       "attributes": [ProductViewAttribute],
       "description": "xyz789",
    -  "id": "4",
    +  "id": 4,
       "images": [ProductViewImage],
       "videos": [ProductViewVideo],
       "inputOptions": [ProductViewInputOption],
       "lastModifiedAt": "2007-12-03T10:15:30Z",
    -  "metaDescription": "xyz789",
    +  "metaDescription": "abc123",
       "metaKeyword": "abc123",
    -  "metaTitle": "abc123",
    -  "name": "xyz789",
    +  "metaTitle": "xyz789",
    +  "name": "abc123",
       "price": ProductViewPrice,
    -  "shortDescription": "xyz789",
    -  "sku": "abc123",
    -  "externalId": "abc123",
    +  "shortDescription": "abc123",
    +  "sku": "xyz789",
    +  "externalId": "xyz789",
       "url": "abc123",
    -  "urlKey": "abc123",
    +  "urlKey": "xyz789",
       "links": [ProductViewLink],
       "categories": ["xyz789"],
    -  "queryType": "xyz789",
    +  "queryType": "abc123",
       "rank": 123,
       "score": 123.45,
       "visibility": "abc123"
    @@ -8994,10 +8749,10 @@ 
    Example
    {
    -  "attribute": "abc123",
    +  "attribute": "xyz789",
       "frontendInput": "xyz789",
    -  "label": "abc123",
    -  "numeric": false
    +  "label": "xyz789",
    +  "numeric": true
     }
     
    @@ -9054,8 +8809,8 @@
    Example
    {
       "max": 987.65,
    -  "min": 987.65,
    -  "title": "abc123"
    +  "min": 123.45,
    +  "title": "xyz789"
     }
     
    @@ -9256,7 +9011,7 @@
    Example
    {
       "dateTime": "2007-12-03T10:15:30Z",
    -  "sku": "abc123"
    +  "sku": "xyz789"
     }
     
    @@ -9415,7 +9170,7 @@
    Example
    {
       "add_to_cart_allowed": true,
       "attribute_set_id": 987,
    -  "canonical_url": "xyz789",
    +  "canonical_url": "abc123",
       "created_at": "abc123",
       "custom_attributes": [CustomAttribute],
       "description": ComplexTextValue,
    @@ -9424,11 +9179,11 @@ 
    Example
    "image": ProductImage, "media_gallery": [MediaGalleryInterface], "meta_description": "xyz789", - "meta_keyword": "xyz789", - "meta_title": "abc123", - "name": "abc123", + "meta_keyword": "abc123", + "meta_title": "xyz789", + "name": "xyz789", "new_from_date": "xyz789", - "new_to_date": "abc123", + "new_to_date": "xyz789", "price_range": PriceRange, "short_description": ComplexTextValue, "sku": "xyz789", diff --git a/yarn.lock b/yarn.lock index d41bde9f..a7148ce0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -33,9 +33,9 @@ __metadata: languageName: node linkType: hard -"@adobe/gatsby-theme-aio@npm:4.14.19": - version: 4.14.19 - resolution: "@adobe/gatsby-theme-aio@npm:4.14.19" +"@adobe/gatsby-theme-aio@npm:4.15.1": + version: 4.15.1 + resolution: "@adobe/gatsby-theme-aio@npm:4.15.1" dependencies: "@adobe/focus-ring-polyfill": ^0.1.5 "@adobe/gatsby-source-github-file-contributors": ^0.3.1 @@ -131,7 +131,7 @@ __metadata: gatsby: ^4.22.0 react: ^17.0.2 react-dom: ^17.0.2 - checksum: b8818a223ef3c98e75a1843341946f0987e606fbcd36525c7773712014de18808418cc7c6b7133a1d8c4cad51467bcdbb6ea5084fed5d02645eb5b9032e6a451 + checksum: ecaca48ce1714f23a042da1ac0446b14074520dcd99aea3f89c9c89f9284a1889edfb24d00701302cf69692b51ed61994262dcc7f209d110cc0224c72ffbca70 languageName: node linkType: hard @@ -284,15 +284,6 @@ __metadata: languageName: node linkType: hard -"@anvilco/apollo-server-plugin-introspection-metadata@npm:^2.2.3": - version: 2.2.3 - resolution: "@anvilco/apollo-server-plugin-introspection-metadata@npm:2.2.3" - dependencies: - lodash: ^4.17.21 - checksum: 1720ca45baba6c6405ff6edbe09e3e2492c192923b9486352984e6e67b5bbe323c88b15149cc065d48f18654163988c83acc711654f0454439ce360399fee2b0 - languageName: node - linkType: hard - "@apidevtools/json-schema-ref-parser@npm:11.1.0": version: 11.1.0 resolution: "@apidevtools/json-schema-ref-parser@npm:11.1.0" @@ -363,6 +354,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.26.2": + version: 7.26.2 + resolution: "@babel/code-frame@npm:7.26.2" + dependencies: + "@babel/helper-validator-identifier": ^7.25.9 + js-tokens: ^4.0.0 + picocolors: ^1.0.0 + checksum: db13f5c42d54b76c1480916485e6900748bbcb0014a8aca87f50a091f70ff4e0d0a6db63cade75eb41fcc3d2b6ba0a7f89e343def4f96f00269b41b8ab8dd7b8 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.19.3, @babel/compat-data@npm:^7.19.4": version: 7.19.4 resolution: "@babel/compat-data@npm:7.19.4" @@ -729,6 +731,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 6435ee0849e101681c1849868278b5aee82686ba2c1e27280e5e8aca6233af6810d39f8e4e693d2f2a44a3728a6ccfd66f72d71826a94105b86b731697cdfa99 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": version: 7.19.1 resolution: "@babel/helper-validator-identifier@npm:7.19.1" @@ -743,6 +752,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 5b85918cb1a92a7f3f508ea02699e8d2422fe17ea8e82acd445006c0ef7520fbf48e3dbcdaf7b0a1d571fc3a2715a29719e5226636cb6042e15fe6ed2a590944 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-validator-option@npm:7.18.6" @@ -763,13 +779,12 @@ __metadata: linkType: hard "@babel/helpers@npm:^7.12.5, @babel/helpers@npm:^7.19.0": - version: 7.19.4 - resolution: "@babel/helpers@npm:7.19.4" + version: 7.26.10 + resolution: "@babel/helpers@npm:7.26.10" dependencies: - "@babel/template": ^7.18.10 - "@babel/traverse": ^7.19.4 - "@babel/types": ^7.19.4 - checksum: e2684e9a79d45b95db05c7e14628e8dd1d91ad59433a3afd715bdf19d4683d9e9f84382bcc82316b678aa609ecfc41b07be0b9c49eed07c444f82a6b9e501186 + "@babel/template": ^7.26.9 + "@babel/types": ^7.26.10 + checksum: daa3689024a4fc5e024fea382915c6fb0fde15cf1b2f6093435725c79edccbef7646d4a656b199c046ff5c61846d1b3876d6096b7bf0635823de6aaff2a1e1a4 languageName: node linkType: hard @@ -814,6 +829,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.26.9": + version: 7.26.10 + resolution: "@babel/parser@npm:7.26.10" + dependencies: + "@babel/types": ^7.26.10 + bin: + parser: ./bin/babel-parser.js + checksum: 81f9af962aea55a2973d213dffc6191939df7eba0511ba585d23f0d838931f5fca2efb83ae382e4b9bb486f20ae1b2607cb1b8be49af89e9f011fb4355727f47 + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.18.6" @@ -1850,21 +1876,21 @@ __metadata: linkType: hard "@babel/runtime-corejs3@npm:^7.10.2": - version: 7.19.4 - resolution: "@babel/runtime-corejs3@npm:7.19.4" + version: 7.26.10 + resolution: "@babel/runtime-corejs3@npm:7.26.10" dependencies: - core-js-pure: ^3.25.1 - regenerator-runtime: ^0.13.4 - checksum: 3418534964d0d334da46b21bbe50510630101fd4a5afe632077d261656a715868e3f0f304ac7c9d608dc2aa72cbea49e31a5bc5cb9f7b5cb23ce01cb917acaef + core-js-pure: ^3.30.2 + regenerator-runtime: ^0.14.0 + checksum: 771d986d824fb84503c348d24f71e50c4ff078a2b213412761f0ffc5c83257a2d149caa73db86a70d642fa0e7e57968bbbccc1dd8d0cb21dcca0389d0d39c8bd languageName: node linkType: hard "@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.7, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": - version: 7.19.4 - resolution: "@babel/runtime@npm:7.19.4" + version: 7.26.10 + resolution: "@babel/runtime@npm:7.26.10" dependencies: - regenerator-runtime: ^0.13.4 - checksum: 66b7e3c13e9ee1d2c9397ea89144f29a875edee266a0eb2d9971be51b32fdbafc85808c7a45e011e6681899bb804b4e2ee2aed6dc07108dbbd6b11b6cc2afba6 + regenerator-runtime: ^0.14.0 + checksum: 22d2e0abb86e90de489ab16bb578db6fe2b63a88696db431198b24963749820c723f1982298cdbbea187f7b2b80fb4d98a514faf114ddb2fdc14a4b96277b955 languageName: node linkType: hard @@ -1890,7 +1916,18 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.12.9, @babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.15.4, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.19.0, @babel/traverse@npm:^7.19.1, @babel/traverse@npm:^7.19.3, @babel/traverse@npm:^7.19.4, @babel/traverse@npm:^7.4.5": +"@babel/template@npm:^7.26.9": + version: 7.26.9 + resolution: "@babel/template@npm:7.26.9" + dependencies: + "@babel/code-frame": ^7.26.2 + "@babel/parser": ^7.26.9 + "@babel/types": ^7.26.9 + checksum: 32259298c775e543ab994daff0c758b3d6a184349b146d6497aa46cec5907bc47a6bc09e7295a81a5eccfbd023d4811a9777cb5d698d582d09a87cabf5b576e7 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.12.9, @babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.15.4, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.19.0, @babel/traverse@npm:^7.19.1, @babel/traverse@npm:^7.19.3, @babel/traverse@npm:^7.4.5": version: 7.24.8 resolution: "@babel/traverse@npm:7.24.8" dependencies: @@ -1930,6 +1967,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.26.10, @babel/types@npm:^7.26.9": + version: 7.26.10 + resolution: "@babel/types@npm:7.26.10" + dependencies: + "@babel/helper-string-parser": ^7.25.9 + "@babel/helper-validator-identifier": ^7.25.9 + checksum: 07340068ea3824dcaccf702dfc9628175c9926912ad6efba182d8b07e20953297d0a514f6fb103a61b9d5c555c8b87fc2237ddb06efebe14794eefc921dfa114 + languageName: node + linkType: hard + "@babel/types@npm:^7.8.3": version: 7.21.2 resolution: "@babel/types@npm:7.21.2" @@ -2358,19 +2405,6 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/load-files@npm:^6.3.2": - version: 6.6.1 - resolution: "@graphql-tools/load-files@npm:6.6.1" - dependencies: - globby: 11.1.0 - tslib: ^2.4.0 - unixify: 1.0.0 - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 35d6e8f4d4260a6e4eab7070b49e4876f50e5d88ec5fa88e9903acc08a03a6d91572abd1845869a7d122fcbde08ee8107f6f452de24dc42a86087956893b9ef5 - languageName: node - linkType: hard - "@graphql-tools/load@npm:^7.5.10": version: 7.7.7 resolution: "@graphql-tools/load@npm:7.7.7" @@ -2397,18 +2431,6 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/merge@npm:^8.1.2, @graphql-tools/merge@npm:^8.4.1": - version: 8.4.2 - resolution: "@graphql-tools/merge@npm:8.4.2" - dependencies: - "@graphql-tools/utils": ^9.2.1 - tslib: ^2.4.0 - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 96d57a3e810055a2883bf9d3450e88082da207ffb1406222c9fa954e47bac4a328696785fdb7eec95a030d5f75504f7b4c6484c94f248cee13e6ad25aca70c75 - languageName: node - linkType: hard - "@graphql-tools/optimize@npm:^1.3.0": version: 1.3.1 resolution: "@graphql-tools/optimize@npm:1.3.1" @@ -2447,20 +2469,6 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/schema@npm:^9.0.1": - version: 9.0.19 - resolution: "@graphql-tools/schema@npm:9.0.19" - dependencies: - "@graphql-tools/merge": ^8.4.1 - "@graphql-tools/utils": ^9.2.1 - tslib: ^2.4.0 - value-or-promise: ^1.0.12 - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 1be91f61bf4be0c1c9aa640a6ad5b58328d5434d15e78ba73a47263420939db6741ad6723dece4611257e7e1e56518e116b76513a3014305d3f52d67aafb62fb - languageName: node - linkType: hard - "@graphql-tools/utils@npm:8.12.0, @graphql-tools/utils@npm:^8.8.0": version: 8.12.0 resolution: "@graphql-tools/utils@npm:8.12.0" @@ -2472,27 +2480,6 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/utils@npm:^9.1.1, @graphql-tools/utils@npm:^9.2.1": - version: 9.2.1 - resolution: "@graphql-tools/utils@npm:9.2.1" - dependencies: - "@graphql-typed-document-node/core": ^3.1.1 - tslib: ^2.4.0 - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 94ed12df5f49e5c338322ffd931236a687a3d5c443bf499f9baab5d4fcd9792234111142be8aa506a01ca2e82732996c4e1d8f6159ff9cc7fdc5c97f63e55226 - languageName: node - linkType: hard - -"@graphql-typed-document-node/core@npm:^3.1.1": - version: 3.2.0 - resolution: "@graphql-typed-document-node/core@npm:3.2.0" - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d - languageName: node - linkType: hard - "@hapi/hoek@npm:^9.0.0": version: 9.3.0 resolution: "@hapi/hoek@npm:9.3.0" @@ -3251,13 +3238,6 @@ __metadata: languageName: node linkType: hard -"@leichtgewicht/ip-codec@npm:^2.0.1": - version: 2.0.4 - resolution: "@leichtgewicht/ip-codec@npm:2.0.4" - checksum: 468de1f04d33de6d300892683d7c8aecbf96d1e2c5fe084f95f816e50a054d45b7c1ebfb141a1447d844b86a948733f6eebd92234da8581c84a1ad4de2946a2d - languageName: node - linkType: hard - "@lezer/common@npm:^0.15.0, @lezer/common@npm:^0.15.7": version: 0.15.12 resolution: "@lezer/common@npm:0.15.12" @@ -3599,13 +3579,6 @@ __metadata: languageName: node linkType: hard -"@one-ini/wasm@npm:0.1.1": - version: 0.1.1 - resolution: "@one-ini/wasm@npm:0.1.1" - checksum: 11de17108eae57c797e552e36b259398aede999b4a689d78be6459652edc37f3428472410590a9d328011a8751b771063a5648dd5c4205631c55d1d58e313156 - languageName: node - linkType: hard - "@parcel/bundler-default@npm:2.6.2": version: 2.6.2 resolution: "@parcel/bundler-default@npm:2.6.2" @@ -4004,97 +3977,6 @@ __metadata: languageName: node linkType: hard -"@parcel/watcher-android-arm64@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-android-arm64@npm:2.5.0" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@parcel/watcher-darwin-arm64@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-darwin-arm64@npm:2.5.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@parcel/watcher-darwin-x64@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-darwin-x64@npm:2.5.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@parcel/watcher-freebsd-x64@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-freebsd-x64@npm:2.5.0" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@parcel/watcher-linux-arm-glibc@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-linux-arm-glibc@npm:2.5.0" - conditions: os=linux & cpu=arm & libc=glibc - languageName: node - linkType: hard - -"@parcel/watcher-linux-arm-musl@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-linux-arm-musl@npm:2.5.0" - conditions: os=linux & cpu=arm & libc=musl - languageName: node - linkType: hard - -"@parcel/watcher-linux-arm64-glibc@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.5.0" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@parcel/watcher-linux-arm64-musl@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-linux-arm64-musl@npm:2.5.0" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@parcel/watcher-linux-x64-glibc@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-linux-x64-glibc@npm:2.5.0" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@parcel/watcher-linux-x64-musl@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-linux-x64-musl@npm:2.5.0" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@parcel/watcher-win32-arm64@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-win32-arm64@npm:2.5.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@parcel/watcher-win32-ia32@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-win32-ia32@npm:2.5.0" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@parcel/watcher-win32-x64@npm:2.5.0": - version: 2.5.0 - resolution: "@parcel/watcher-win32-x64@npm:2.5.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@parcel/watcher@npm:^2.0.0": version: 2.0.5 resolution: "@parcel/watcher@npm:2.0.5" @@ -4106,59 +3988,6 @@ __metadata: languageName: node linkType: hard -"@parcel/watcher@npm:^2.4.1": - version: 2.5.0 - resolution: "@parcel/watcher@npm:2.5.0" - dependencies: - "@parcel/watcher-android-arm64": 2.5.0 - "@parcel/watcher-darwin-arm64": 2.5.0 - "@parcel/watcher-darwin-x64": 2.5.0 - "@parcel/watcher-freebsd-x64": 2.5.0 - "@parcel/watcher-linux-arm-glibc": 2.5.0 - "@parcel/watcher-linux-arm-musl": 2.5.0 - "@parcel/watcher-linux-arm64-glibc": 2.5.0 - "@parcel/watcher-linux-arm64-musl": 2.5.0 - "@parcel/watcher-linux-x64-glibc": 2.5.0 - "@parcel/watcher-linux-x64-musl": 2.5.0 - "@parcel/watcher-win32-arm64": 2.5.0 - "@parcel/watcher-win32-ia32": 2.5.0 - "@parcel/watcher-win32-x64": 2.5.0 - detect-libc: ^1.0.3 - is-glob: ^4.0.3 - micromatch: ^4.0.5 - node-addon-api: ^7.0.0 - node-gyp: latest - dependenciesMeta: - "@parcel/watcher-android-arm64": - optional: true - "@parcel/watcher-darwin-arm64": - optional: true - "@parcel/watcher-darwin-x64": - optional: true - "@parcel/watcher-freebsd-x64": - optional: true - "@parcel/watcher-linux-arm-glibc": - optional: true - "@parcel/watcher-linux-arm-musl": - optional: true - "@parcel/watcher-linux-arm64-glibc": - optional: true - "@parcel/watcher-linux-arm64-musl": - optional: true - "@parcel/watcher-linux-x64-glibc": - optional: true - "@parcel/watcher-linux-x64-musl": - optional: true - "@parcel/watcher-win32-arm64": - optional: true - "@parcel/watcher-win32-ia32": - optional: true - "@parcel/watcher-win32-x64": - optional: true - checksum: 253f93c5f443dfbb638df58712df077fe46ff7e01e7c78df0c4ceb001e8f5b31db01eb7ddac3ae4159722c4d1525894cd4ce5be49f5e6c14a3a52cbbf9f41cbf - languageName: node - linkType: hard - "@parcel/workers@npm:2.6.2": version: 2.6.2 resolution: "@parcel/workers@npm:2.6.2" @@ -4742,15 +4571,6 @@ __metadata: languageName: node linkType: hard -"@types/concat-stream@npm:^1.6.0": - version: 1.6.1 - resolution: "@types/concat-stream@npm:1.6.1" - dependencies: - "@types/node": "*" - checksum: 7d211e74331affd3578b5469244f5cef84a93775f38332adb3ef12413559a23862bc682c6873d0a404b01c9d5d5f7d3ae091fe835b435b633eb420e3055b3e56 - languageName: node - linkType: hard - "@types/concat-stream@npm:^2.0.0": version: 2.0.0 resolution: "@types/concat-stream@npm:2.0.0" @@ -4821,15 +4641,6 @@ __metadata: languageName: node linkType: hard -"@types/form-data@npm:0.0.33": - version: 0.0.33 - resolution: "@types/form-data@npm:0.0.33" - dependencies: - "@types/node": "*" - checksum: f0c283fdef2dd7191168a37b9cb2625af3cfbd7f72b5a514f938bea0a135669f79d736186d434b9e81150b47ef1bf20d97b188014a00583556fad6ce59fb9bbf - languageName: node - linkType: hard - "@types/get-port@npm:^3.2.0": version: 3.2.0 resolution: "@types/get-port@npm:3.2.0" @@ -5013,13 +4824,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^10.0.3": - version: 10.17.60 - resolution: "@types/node@npm:10.17.60" - checksum: 2cdb3a77d071ba8513e5e8306fa64bf50e3c3302390feeaeff1fd325dd25c8441369715dfc8e3701011a72fed5958c7dfa94eb9239a81b3c286caa4d97db6eef - languageName: node - linkType: hard - "@types/node@npm:^14.11.8": version: 14.18.32 resolution: "@types/node@npm:14.18.32" @@ -5036,7 +4840,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^8.0.0, @types/node@npm:^8.5.7": +"@types/node@npm:^8.5.7": version: 8.10.66 resolution: "@types/node@npm:8.10.66" checksum: c52039de862654a139abdc6a51de532a69dd80516ac35a959c3b3a2831ecbaaf065b0df5f9db943f5e28b544ebb9a891730d52b52f7a169b86a82bc060210000 @@ -5064,13 +4868,6 @@ __metadata: languageName: node linkType: hard -"@types/qs@npm:^6.2.31": - version: 6.9.17 - resolution: "@types/qs@npm:6.9.17" - checksum: fc3beda0be70e820ddabaa361e8dfec5e09b482b8f6cf1515615479a027dd06cd5ba0ffbd612b654c2605523f45f484c8905a475623d6cd0c4cadcf5d0c517f5 - languageName: node - linkType: hard - "@types/reach__router@npm:^1.3.10": version: 1.3.11 resolution: "@types/reach__router@npm:1.3.11" @@ -5476,7 +5273,7 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:1, abbrev@npm:^1.0.0": +"abbrev@npm:^1.0.0": version: 1.1.1 resolution: "abbrev@npm:1.1.1" checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 @@ -5808,13 +5605,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^2.2.1": - version: 2.2.1 - resolution: "ansi-styles@npm:2.2.1" - checksum: ebc0e00381f2a29000d1dac8466a640ce11943cef3bda3cd0020dc042e31e1058ab59bf6169cd794a54c3a7338a61ebc404b7c91e004092dd20e028c432c9c2c - languageName: node - linkType: hard - "ansi-styles@npm:^3.2.1": version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" @@ -5921,13 +5711,6 @@ __metadata: languageName: node linkType: hard -"array-each@npm:^1.0.1": - version: 1.0.1 - resolution: "array-each@npm:1.0.1" - checksum: eb2393c1200003993d97dab2b280aa01e6ca339b383198e5d250cc8cd31f8012a0c22b66f275401a80e89e21bfab420e0f4c77c295637dea525fe0e152ba2300 - languageName: node - linkType: hard - "array-equal@npm:^1.0.0": version: 1.0.0 resolution: "array-equal@npm:1.0.0" @@ -5962,13 +5745,6 @@ __metadata: languageName: node linkType: hard -"array-slice@npm:^1.0.0": - version: 1.1.0 - resolution: "array-slice@npm:1.1.0" - checksum: 3c8ecc7eefe104c97e2207e1d5644be160924c89e08b1807f3cad77f4a8fb10150fc275ebfab90dc02064d178b010cad31b69c9386769d172da270be5e233c51 - languageName: node - linkType: hard - "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" @@ -6007,7 +5783,7 @@ __metadata: languageName: node linkType: hard -"asap@npm:~2.0.3, asap@npm:~2.0.6": +"asap@npm:~2.0.3": version: 2.0.6 resolution: "asap@npm:2.0.6" checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d @@ -6100,22 +5876,6 @@ __metadata: languageName: node linkType: hard -"async@npm:^2.6.0": - version: 2.6.4 - resolution: "async@npm:2.6.4" - dependencies: - lodash: ^4.17.14 - checksum: a52083fb32e1ebe1d63e5c5624038bb30be68ff07a6c8d7dfe35e47c93fc144bd8652cbec869e0ac07d57dde387aa5f1386be3559cdee799cb1f789678d88e19 - languageName: node - linkType: hard - -"async@npm:^3.2.3, async@npm:^3.2.5, async@npm:~3.2.0": - version: 3.2.6 - resolution: "async@npm:3.2.6" - checksum: ee6eb8cd8a0ab1b58bd2a3ed6c415e93e773573a91d31df9d5ef559baafa9dab37d3b096fa7993e84585cac3697b2af6ddb9086f45d3ac8cae821bb2aab65682 - languageName: node - linkType: hard - "async@npm:^3.2.4": version: 3.2.4 resolution: "async@npm:3.2.4" @@ -6467,11 +6227,11 @@ __metadata: linkType: hard "base-x@npm:^3.0.8": - version: 3.0.9 - resolution: "base-x@npm:3.0.9" + version: 3.0.11 + resolution: "base-x@npm:3.0.11" dependencies: safe-buffer: ^5.0.1 - checksum: 957101d6fd09e1903e846fd8f69fd7e5e3e50254383e61ab667c725866bec54e5ece5ba49ce385128ae48f9ec93a26567d1d5ebb91f4d56ef4a9cc0d5a5481e8 + checksum: c2e3c443fd07cb9b9d3e179a9e9c581daa31881005841fe8d6a834e534505890fedf03465ccf14512da60e3f7be00fe66167806b159ba076d2c03952ae7460c4 languageName: node linkType: hard @@ -6496,22 +6256,6 @@ __metadata: languageName: node linkType: hard -"basic-auth@npm:~2.0.1": - version: 2.0.1 - resolution: "basic-auth@npm:2.0.1" - dependencies: - safe-buffer: 5.1.2 - checksum: 3419b805d5dfc518f3a05dcf42aa53aa9ce820e50b6df5097f9e186322e1bc733c36722b624802cd37e791035aa73b828ed814d8362333d42d7f5cd04d7a5e48 - languageName: node - linkType: hard - -"batch@npm:0.6.1": - version: 0.6.1 - resolution: "batch@npm:0.6.1" - checksum: 61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f - languageName: node - linkType: hard - "bcrypt-pbkdf@npm:^1.0.0": version: 1.0.2 resolution: "bcrypt-pbkdf@npm:1.0.2" @@ -6610,18 +6354,6 @@ __metadata: languageName: node linkType: hard -"body@npm:^5.1.0": - version: 5.1.0 - resolution: "body@npm:5.1.0" - dependencies: - continuable-cache: ^0.3.1 - error: ^7.0.0 - raw-body: ~1.1.0 - safe-json-parse: ~1.0.1 - checksum: 58a5a46b6de80c82ee2f6e00bdc0084be1697d50e47cfa0d53ff6daf70b0e5ec20359c134d41710d0fa8046ecd67e06128c134c821f090e40a31ed452a9b6b7f - languageName: node - linkType: hard - "boolbase@npm:^1.0.0, boolbase@npm:~1.0.0": version: 1.0.0 resolution: "boolbase@npm:1.0.0" @@ -6791,6 +6523,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:latest": + version: 4.25.0 + resolution: "browserslist@npm:4.25.0" + dependencies: + caniuse-lite: ^1.0.30001718 + electron-to-chromium: ^1.5.160 + node-releases: ^2.0.19 + update-browserslist-db: ^1.1.3 + bin: + browserslist: cli.js + checksum: 0d34fa0c6e23e962598ba68ee9f4566a4b575ec550ff7e9e7287c5e94a6e0f208f75f4f7d578ccd060f843167e0e495bde8f6d278f353f0da783cd50f758e5c7 + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -6858,13 +6604,6 @@ __metadata: languageName: node linkType: hard -"bytes@npm:1": - version: 1.0.0 - resolution: "bytes@npm:1.0.0" - checksum: 6e475440d7e32971611d2bc592695fee484ee91ca1cd49f99c855560131f71670d3d185210f6cdd1704f12281f0cfcee5cb1c1f6788cb2f676b410464b7d6885 - languageName: node - linkType: hard - "bytes@npm:3.0.0": version: 3.0.0 resolution: "bytes@npm:3.0.0" @@ -7057,6 +6796,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001718": + version: 1.0.30001724 + resolution: "caniuse-lite@npm:1.0.30001724" + checksum: 3285f9c56898ffd9f5fce8f6cff9deb832c5897da8046474f8961a5848771cac293b80200c6311c8a97822dd25b8af699af35042a2033d5ec54017fe4dc6c5e3 + languageName: node + linkType: hard + "capital-case@npm:^1.0.4": version: 1.0.4 resolution: "capital-case@npm:1.0.4" @@ -7068,7 +6814,7 @@ __metadata: languageName: node linkType: hard -"caseless@npm:^0.12.0, caseless@npm:~0.12.0": +"caseless@npm:~0.12.0": version: 0.12.0 resolution: "caseless@npm:0.12.0" checksum: b43bd4c440aa1e8ee6baefee8063b4850fd0d7b378f6aabc796c9ec8cb26d27fb30b46885350777d9bd079c5256c0e1329ad0dc7c2817e0bb466810ebb353751 @@ -7082,19 +6828,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^1.1.1": - version: 1.1.3 - resolution: "chalk@npm:1.1.3" - dependencies: - ansi-styles: ^2.2.1 - escape-string-regexp: ^1.0.2 - has-ansi: ^2.0.0 - strip-ansi: ^3.0.0 - supports-color: ^2.0.0 - checksum: 9d2ea6b98fc2b7878829eec223abcf404622db6c48396a9b9257f6d0ead2acf18231ae368d6a664a83f272b0679158da12e97b5229f794939e555cc574478acd - languageName: node - linkType: hard - "chalk@npm:^2.0.0, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -7116,7 +6849,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2, chalk@npm:~4.1.0": +"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -7239,18 +6972,6 @@ __metadata: languageName: node linkType: hard -"check-links@npm:^1.1.8": - version: 1.1.8 - resolution: "check-links@npm:1.1.8" - dependencies: - got: ^9.6.0 - is-relative-url: ^2.0.0 - p-map: ^2.0.0 - p-memoize: ^2.1.0 - checksum: b73296feb4f4a6b58fd93fb34a8252e42dae166b3232e789dad02e378dddd3d46427906291beb033b6bc273b4c0ffc0e51a7e9762b6a52e70eaa719ade164310 - languageName: node - linkType: hard - "cheerio-select@npm:^2.1.0": version: 2.1.0 resolution: "cheerio-select@npm:2.1.0" @@ -7265,21 +6986,6 @@ __metadata: languageName: node linkType: hard -"cheerio@npm:1.0.0-rc.12, cheerio@npm:^1.0.0-rc.10, cheerio@npm:^1.0.0-rc.12": - version: 1.0.0-rc.12 - resolution: "cheerio@npm:1.0.0-rc.12" - dependencies: - cheerio-select: ^2.1.0 - dom-serializer: ^2.0.0 - domhandler: ^5.0.3 - domutils: ^3.0.1 - htmlparser2: ^8.0.1 - parse5: ^7.0.0 - parse5-htmlparser2-tree-adapter: ^7.0.0 - checksum: 5d4c1b7a53cf22d3a2eddc0aff70cf23cbb30d01a4c79013e703a012475c02461aa1fcd99127e8d83a02216386ed6942b2c8103845fd0812300dd199e6e7e054 - languageName: node - linkType: hard - "cheerio@npm:^0.22.0": version: 0.22.0 resolution: "cheerio@npm:0.22.0" @@ -7304,9 +7010,24 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.0.0, chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" +"cheerio@npm:^1.0.0-rc.10, cheerio@npm:^1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "cheerio@npm:1.0.0-rc.12" + dependencies: + cheerio-select: ^2.1.0 + dom-serializer: ^2.0.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + htmlparser2: ^8.0.1 + parse5: ^7.0.0 + parse5-htmlparser2-tree-adapter: ^7.0.0 + checksum: 5d4c1b7a53cf22d3a2eddc0aff70cf23cbb30d01a4c79013e703a012475c02461aa1fcd99127e8d83a02216386ed6942b2c8103845fd0812300dd199e6e7e054 + languageName: node + linkType: hard + +"chokidar@npm:^3.0.0, chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": + version: 3.5.3 + resolution: "chokidar@npm:3.5.3" dependencies: anymatch: ~3.1.2 braces: ~3.0.2 @@ -7342,15 +7063,6 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^4.0.0": - version: 4.0.1 - resolution: "chokidar@npm:4.0.1" - dependencies: - readdirp: ^4.0.1 - checksum: 193da9786b0422a895d59c7552195d15c6c636e6a2293ae43d09e34e243e24ccd02d693f007c767846a65abbeae5fea6bfacb8fc2ddec4ea4d397620d552010d - languageName: node - linkType: hard - "chownr@npm:^1.1.1": version: 1.1.4 resolution: "chownr@npm:1.1.4" @@ -7403,15 +7115,6 @@ __metadata: languageName: node linkType: hard -"clean-css@npm:^5.3.2": - version: 5.3.3 - resolution: "clean-css@npm:5.3.3" - dependencies: - source-map: ~0.6.0 - checksum: 941987c14860dd7d346d5cf121a82fd2caf8344160b1565c5387f7ccca4bbcaf885bace961be37c4f4713ce2d8c488dd89483c1add47bb779790edbfdcc79cbc - languageName: node - linkType: hard - "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" @@ -7527,23 +7230,6 @@ __metadata: languageName: node linkType: hard -"co@npm:3.1.0": - version: 3.1.0 - resolution: "co@npm:3.1.0" - checksum: b7c685595103663317be1cbe3a00386b0b3643a6a859aaeb20ca2a7fa8b0d5c5f744de55d8b0b44bb07635c86bcd48d64684fcfccf52381ede3de55ed374dc80 - languageName: node - linkType: hard - -"coffeescript@npm:^2.6.1": - version: 2.7.0 - resolution: "coffeescript@npm:2.7.0" - bin: - cake: bin/cake - coffee: bin/coffee - checksum: b07c40910b0585ef7c1bddbfad93bdf1f47c158a1b6a21017a4366f2672d9253eb0d24c1301a96afb8dc687216a7613c2f40e572dc5994edcef9680dce839722 - languageName: node - linkType: hard - "collapse-white-space@npm:^1.0.2": version: 1.0.6 resolution: "collapse-white-space@npm:1.0.6" @@ -7626,13 +7312,6 @@ __metadata: languageName: node linkType: hard -"colors@npm:~1.1.2": - version: 1.1.2 - resolution: "colors@npm:1.1.2" - checksum: 1f73a78b9a40c6658ed58d0aca6b71164bc301fa5766a7a2cad8cecdb5b7856dab089039def5d6137f9735e23689d2454050e962b5ca0432aa6f273e4fa6a92e - languageName: node - linkType: hard - "combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": version: 1.0.8 resolution: "combined-stream@npm:1.0.8" @@ -7663,13 +7342,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^10.0.0": - version: 10.0.1 - resolution: "commander@npm:10.0.1" - checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 - languageName: node - linkType: hard - "commander@npm:^2.20.0, commander@npm:^2.20.3": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -7688,7 +7360,7 @@ __metadata: version: 0.0.0-use.local resolution: "commerce-services@workspace:." dependencies: - "@adobe/gatsby-theme-aio": 4.14.19 + "@adobe/gatsby-theme-aio": 4.15.1 gatsby: 4.22.0 react: ^17.0.0 react-dom: ^17.0.0 @@ -7696,9 +7368,7 @@ __metadata: remark-frontmatter: ^5.0.0 remark-heading-id: ^1.0.1 remark-lint-frontmatter-schema: ^3.15.4 - remark-lint-no-dead-urls: ^1.1.0 remark-validate-links: ^13.0.1 - spectaql: ^3.0.2 languageName: unknown linkType: soft @@ -7761,7 +7431,7 @@ __metadata: languageName: node linkType: hard -"concat-stream@npm:^1.5.2, concat-stream@npm:^1.6.0, concat-stream@npm:^1.6.2": +"concat-stream@npm:^1.5.2": version: 1.6.2 resolution: "concat-stream@npm:1.6.2" dependencies: @@ -7785,16 +7455,6 @@ __metadata: languageName: node linkType: hard -"config-chain@npm:^1.1.13": - version: 1.1.13 - resolution: "config-chain@npm:1.1.13" - dependencies: - ini: ^1.3.4 - proto-list: ~1.2.1 - checksum: 828137a28e7c2fc4b7fb229bd0cd6c1397bcf83434de54347e608154008f411749041ee392cbe42fab6307e02de4c12480260bf769b7d44b778fdea3839eafab - languageName: node - linkType: hard - "configstore@npm:^5.0.1": version: 5.0.1 resolution: "configstore@npm:5.0.1" @@ -7816,25 +7476,6 @@ __metadata: languageName: node linkType: hard -"connect-livereload@npm:^0.6.1": - version: 0.6.1 - resolution: "connect-livereload@npm:0.6.1" - checksum: a0d2d8ca311be067108b229c8c918fb9ba18c8e72004a085b596cc6567b135a771db0cae83a2093e965696d5cc0688124b105d5ffb41b29311d4fadd344eef9f - languageName: node - linkType: hard - -"connect@npm:^3.7.0": - version: 3.7.0 - resolution: "connect@npm:3.7.0" - dependencies: - debug: 2.6.9 - finalhandler: 1.1.2 - parseurl: ~1.3.3 - utils-merge: 1.0.1 - checksum: 96e1c4effcf219b065c7823e57351c94366d2e2a6952fa95e8212bffb35c86f1d5a3f9f6c5796d4cd3a5fdda628368b1c3cc44bf19c66cfd68fe9f9cab9177e2 - languageName: node - linkType: hard - "console-browserify@npm:^1.1.0": version: 1.2.0 resolution: "console-browserify@npm:1.2.0" @@ -7900,13 +7541,6 @@ __metadata: languageName: node linkType: hard -"continuable-cache@npm:^0.3.1": - version: 0.3.1 - resolution: "continuable-cache@npm:0.3.1" - checksum: d88b9891cdc76533bf018613ec80c7f8f3ce7159fa8c1402dae7be546c4b0566ef0c18e488b08da66b8a8f5aab7c91ce9910e4c32d965d902ffe34e095ccc2cb - languageName: node - linkType: hard - "convert-hrtime@npm:^3.0.0": version: 3.0.0 resolution: "convert-hrtime@npm:3.0.0" @@ -7961,13 +7595,20 @@ __metadata: languageName: node linkType: hard -"core-js-pure@npm:^3.23.3, core-js-pure@npm:^3.25.1": +"core-js-pure@npm:^3.23.3": version: 3.25.5 resolution: "core-js-pure@npm:3.25.5" checksum: e48799a8ab28f00ef3db18377142ff2c578574ab2b18ebddde6cbf12823e0181a57c80e3caa6046ce2a2e439d603a252be767583ddc54248e3d1060bc5012127 languageName: node linkType: hard +"core-js-pure@npm:^3.30.2": + version: 3.41.0 + resolution: "core-js-pure@npm:3.41.0" + checksum: 611faf7b49d6de65ffd7b364cdc78482846cbefb43d4dc185219ebef33aa92c43a981284f45c6230d6711bf5d48c529013a6665835b6bdd149bad1c11bbd54a1 + languageName: node + linkType: hard + "core-js@npm:^3.22.3, core-js@npm:^3.25.1": version: 3.25.5 resolution: "core-js@npm:3.25.5" @@ -8464,13 +8105,6 @@ __metadata: languageName: node linkType: hard -"dateformat@npm:~3.0.3": - version: 3.0.3 - resolution: "dateformat@npm:3.0.3" - checksum: ca4911148abb09887bd9bdcd632c399b06f3ecad709a18eb594d289a1031982f441e08e281db77ffebcb2cbcbfa1ac578a7cbfbf8743f41009aa5adc1846ed34 - languageName: node - linkType: hard - "debug@npm:2, debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.6.0, debug@npm:^2.6.9": version: 2.6.9 resolution: "debug@npm:2.6.9" @@ -8665,7 +8299,7 @@ __metadata: languageName: node linkType: hard -"depd@npm:2.0.0, depd@npm:^2.0.0, depd@npm:~2.0.0": +"depd@npm:2.0.0, depd@npm:^2.0.0": version: 2.0.0 resolution: "depd@npm:2.0.0" checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a @@ -8719,13 +8353,6 @@ __metadata: languageName: node linkType: hard -"detect-file@npm:^1.0.0": - version: 1.0.0 - resolution: "detect-file@npm:1.0.0" - checksum: 1861e4146128622e847abe0e1ed80fef01e78532665858a792267adf89032b7a9c698436137707fcc6f02956c2a6a0052d6a0cef5be3d4b76b1ff0da88e2158a - languageName: node - linkType: hard - "detect-libc@npm:^1.0.3": version: 1.0.3 resolution: "detect-libc@npm:1.0.3" @@ -8835,24 +8462,6 @@ __metadata: languageName: node linkType: hard -"dns-packet@npm:^5.2.4": - version: 5.6.1 - resolution: "dns-packet@npm:5.6.1" - dependencies: - "@leichtgewicht/ip-codec": ^2.0.1 - checksum: 64c06457f0c6e143f7a0946e0aeb8de1c5f752217cfa143ef527467c00a6d78db1835cfdb6bb68333d9f9a4963cf23f410439b5262a8935cce1236f45e344b81 - languageName: node - linkType: hard - -"dns-socket@npm:^4.2.2": - version: 4.2.2 - resolution: "dns-socket@npm:4.2.2" - dependencies: - dns-packet: ^5.2.4 - checksum: d02b83ecc9b0f1d2fc459f93c6390c768a8805002637d1f74113d623fa7b2478a695ade7761a0a847622781f5e6dd008a9a1469ac75a617bdf1b775f2156943c - languageName: node - linkType: hard - "doctrine@npm:^2.1.0": version: 2.1.0 resolution: "doctrine@npm:2.1.0" @@ -9004,9 +8613,9 @@ __metadata: linkType: hard "dompurify@npm:^2.2.8": - version: 2.5.6 - resolution: "dompurify@npm:2.5.6" - checksum: 1d329fe79928aa86c61539b758bdbc53df58dd90bdc5b74032a2a3a22a436e84178d8f6ad8b022c8f6fac46b26d6e7e553c0cd131a37ed5105bbed6bf87be226 + version: 2.5.8 + resolution: "dompurify@npm:2.5.8" + checksum: 8d7acd42bfc75d3dd9030d61201e346fffc4fd5f62e491a446564f0d5e0ffc1635712ccf7781302b00c4fefe412a030b5434c9e803605d81343e923b088cde7e languageName: node linkType: hard @@ -9042,17 +8651,6 @@ __metadata: languageName: node linkType: hard -"domutils@npm:^3.1.0": - version: 3.1.0 - resolution: "domutils@npm:3.1.0" - dependencies: - dom-serializer: ^2.0.0 - domelementtype: ^2.3.0 - domhandler: ^5.0.3 - checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 - languageName: node - linkType: hard - "dot-case@npm:^2.1.0": version: 2.1.1 resolution: "dot-case@npm:2.1.1" @@ -9109,7 +8707,7 @@ __metadata: languageName: node linkType: hard -"duplexer@npm:^0.1.1, duplexer@npm:^0.1.2": +"duplexer@npm:^0.1.2": version: 0.1.2 resolution: "duplexer@npm:0.1.2" checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 @@ -9133,20 +8731,6 @@ __metadata: languageName: node linkType: hard -"editorconfig@npm:^1.0.3": - version: 1.0.4 - resolution: "editorconfig@npm:1.0.4" - dependencies: - "@one-ini/wasm": 0.1.1 - commander: ^10.0.0 - minimatch: 9.0.1 - semver: ^7.5.3 - bin: - editorconfig: bin/editorconfig - checksum: 09904f19381b3ddf132cea0762971aba887236f387be3540909e96b8eb9337e1793834e10f06890cd8e8e7bb1ba80cb13e7d50a863f227806c9ca74def4165fb - languageName: node - linkType: hard - "ee-first@npm:1.1.1": version: 1.1.1 resolution: "ee-first@npm:1.1.1" @@ -9161,6 +8745,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.160": + version: 1.5.172 + resolution: "electron-to-chromium@npm:1.5.172" + checksum: f1144b121b871d672b8df9cd3d5bcdfe8946a6565dcd032e017d69bdcc63c7b39c31b7d448e4ee5c93a5c13c4453e871ed2577fd145ebd4fedff509e50f07eba + languageName: node + linkType: hard + "elliptic@npm:^6.5.3, elliptic@npm:^6.5.5": version: 6.6.1 resolution: "elliptic@npm:6.6.1" @@ -9328,13 +8919,6 @@ __metadata: languageName: node linkType: hard -"entities@npm:^4.5.0": - version: 4.5.0 - resolution: "entities@npm:4.5.0" - checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 - languageName: node - linkType: hard - "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -9383,15 +8967,6 @@ __metadata: languageName: node linkType: hard -"error@npm:^7.0.0": - version: 7.2.1 - resolution: "error@npm:7.2.1" - dependencies: - string-template: ~0.2.1 - checksum: 9c790d20a386947acfeabb0d1c39173efe8e5a38cb732b5f06c11a25c23ce8ac4dafbb7aa240565e034580a49aba0703e743d0274c6228500ddf947a1b998568 - languageName: node - linkType: hard - "es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1, es-abstract@npm:^1.19.2, es-abstract@npm:^1.19.5, es-abstract@npm:^1.20.0": version: 1.20.4 resolution: "es-abstract@npm:1.20.4" @@ -9556,6 +9131,13 @@ __metadata: languageName: node linkType: hard +"escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e + languageName: node + linkType: hard + "escape-goat@npm:^2.0.0": version: 2.1.1 resolution: "escape-goat@npm:2.1.1" @@ -9992,13 +9574,6 @@ __metadata: languageName: node linkType: hard -"eventemitter2@npm:~0.4.13": - version: 0.4.14 - resolution: "eventemitter2@npm:0.4.14" - checksum: 214603a32aba5f49c0d7a68202a0d5e01e89b3c872c7c32172e80b513aaa06ee74d54de212705483a01c03dda7b396874b3576cbe9bc96d92bae0912dad89eb2 - languageName: node - linkType: hard - "eventemitter3@npm:^4.0.4, eventemitter3@npm:^4.0.7": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" @@ -10063,13 +9638,6 @@ __metadata: languageName: node linkType: hard -"exit@npm:~0.1.2": - version: 0.1.2 - resolution: "exit@npm:0.1.2" - checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 - languageName: node - linkType: hard - "expand-template@npm:^2.0.3": version: 2.0.3 resolution: "expand-template@npm:2.0.3" @@ -10077,15 +9645,6 @@ __metadata: languageName: node linkType: hard -"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2": - version: 2.0.2 - resolution: "expand-tilde@npm:2.0.2" - dependencies: - homedir-polyfill: ^1.0.1 - checksum: 2efe6ed407d229981b1b6ceb552438fbc9e5c7d6a6751ad6ced3e0aa5cf12f0b299da695e90d6c2ac79191b5c53c613e508f7149e4573abfbb540698ddb7301a - languageName: node - linkType: hard - "express-graphql@npm:^0.12.0": version: 0.12.0 resolution: "express-graphql@npm:0.12.0" @@ -10200,19 +9759,6 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.12": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 - languageName: node - linkType: hard - "fast-glob@npm:^3.2.9": version: 3.2.12 resolution: "fast-glob@npm:3.2.12" @@ -10272,15 +9818,6 @@ __metadata: languageName: node linkType: hard -"faye-websocket@npm:~0.10.0": - version: 0.10.0 - resolution: "faye-websocket@npm:0.10.0" - dependencies: - websocket-driver: ">=0.5.1" - checksum: 5a2989ec5effc832bd219e3af934966b5a2a2605dd83b995a04edae5d34207ef930635f5c8456b8b7b4209bfb8f7ea991e41594f150a04faa53fca1ee4eb31b6 - languageName: node - linkType: hard - "fb-watchman@npm:^2.0.0": version: 2.0.2 resolution: "fb-watchman@npm:2.0.2" @@ -10319,7 +9856,7 @@ __metadata: languageName: node linkType: hard -"figures@npm:^3.0.0, figures@npm:^3.2.0": +"figures@npm:^3.0.0": version: 3.2.0 resolution: "figures@npm:3.2.0" dependencies: @@ -10356,13 +9893,6 @@ __metadata: languageName: node linkType: hard -"file-sync-cmp@npm:^0.1.0": - version: 0.1.1 - resolution: "file-sync-cmp@npm:0.1.1" - checksum: a0b59b62be55a6efe1ed2571d3869f4a81d023b2fc0309b2ffb08159776c08759e07a2add8c22732c521d81992c4d753256f62b9e0e70b1b5ab3d9784cb4bd9e - languageName: node - linkType: hard - "file-type@npm:^16.5.3, file-type@npm:^16.5.4": version: 16.5.4 resolution: "file-type@npm:16.5.4" @@ -10422,21 +9952,6 @@ __metadata: languageName: node linkType: hard -"finalhandler@npm:1.1.2": - version: 1.1.2 - resolution: "finalhandler@npm:1.1.2" - dependencies: - debug: 2.6.9 - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - on-finished: ~2.3.0 - parseurl: ~1.3.3 - statuses: ~1.5.0 - unpipe: ~1.0.0 - checksum: 617880460c5138dd7ccfd555cb5dde4d8f170f4b31b8bd51e4b646bb2946c30f7db716428a1f2882d730d2b72afb47d1f67cc487b874cb15426f95753a88965e - languageName: node - linkType: hard - "finalhandler@npm:1.3.1": version: 1.3.1 resolution: "finalhandler@npm:1.3.1" @@ -10509,47 +10024,6 @@ __metadata: languageName: node linkType: hard -"findup-sync@npm:^4.0.0": - version: 4.0.0 - resolution: "findup-sync@npm:4.0.0" - dependencies: - detect-file: ^1.0.0 - is-glob: ^4.0.0 - micromatch: ^4.0.2 - resolve-dir: ^1.0.1 - checksum: 94131e1107ad63790ed00c4c39ca131a93ea602607bd97afeffd92b69a9a63cf2c6f57d6db88cb753fe748ac7fde79e1e76768ff784247026b7c5ebf23ede3a0 - languageName: node - linkType: hard - -"findup-sync@npm:~0.3.0": - version: 0.3.0 - resolution: "findup-sync@npm:0.3.0" - dependencies: - glob: ~5.0.0 - checksum: 44d9ca92aba973781c9560d015f1a3b62a21236e198890d877f4e1113b9d7a0b40a5568516eacce18a6e9cc43a16b27d6c8de10bff26333ebdf86f8804970480 - languageName: node - linkType: hard - -"fined@npm:^1.2.0": - version: 1.2.0 - resolution: "fined@npm:1.2.0" - dependencies: - expand-tilde: ^2.0.2 - is-plain-object: ^2.0.3 - object.defaults: ^1.1.0 - object.pick: ^1.2.0 - parse-filepath: ^1.0.1 - checksum: 9c76fb17e9f7e3f21e65b563cf49aed944c6b257a46b04306cef8883d60e295e904f57514443e60c64874914d13557b2f464071181d8d80a37cd9d8565075b7f - languageName: node - linkType: hard - -"flagged-respawn@npm:^1.0.1": - version: 1.0.1 - resolution: "flagged-respawn@npm:1.0.1" - checksum: 73596ca037dba21455937a27e7efe6aa12074ff653a930abec238db80d65b7129aaae58cc686e1ac5ede718c18c14207ee0f265c542425afc396f2b8ca675f78 - languageName: node - linkType: hard - "flat-cache@npm:^3.0.4": version: 3.0.4 resolution: "flat-cache@npm:3.0.4" @@ -10586,22 +10060,6 @@ __metadata: languageName: node linkType: hard -"for-in@npm:^1.0.1": - version: 1.0.2 - resolution: "for-in@npm:1.0.2" - checksum: 09f4ae93ce785d253ac963d94c7f3432d89398bf25ac7a24ed034ca393bf74380bdeccc40e0f2d721a895e54211b07c8fad7132e8157827f6f7f059b70b4043d - languageName: node - linkType: hard - -"for-own@npm:^1.0.0": - version: 1.0.0 - resolution: "for-own@npm:1.0.0" - dependencies: - for-in: ^1.0.1 - checksum: 233238f6e9060f61295a7f7c7e3e9de11aaef57e82a108e7f350dc92ae84fe2189848077ac4b8db47fd8edd45337ed8d9f66bd0b1efa4a6a1b3f38aa21b7ab2e - languageName: node - linkType: hard - "foreach@npm:^2.0.4": version: 2.0.6 resolution: "foreach@npm:2.0.6" @@ -10657,18 +10115,6 @@ __metadata: languageName: node linkType: hard -"form-data@npm:^2.2.0": - version: 2.5.2 - resolution: "form-data@npm:2.5.2" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.6 - mime-types: ^2.1.12 - safe-buffer: ^5.2.1 - checksum: 89ed3d96238d6fa874d75435e20f1aad28a1c22a88ab4e726ac4f6b0d29bef33d7e5aca51248c1070eccbbf4df94020a53842e800b2f1fb63073881a268113b4 - languageName: node - linkType: hard - "form-data@npm:^3.0.0": version: 3.0.1 resolution: "form-data@npm:3.0.1" @@ -11669,15 +11115,6 @@ __metadata: languageName: node linkType: hard -"gaze@npm:^1.1.0": - version: 1.1.3 - resolution: "gaze@npm:1.1.3" - dependencies: - globule: ^1.0.0 - checksum: d5fd375a029c07346154806a076bde21290598179d01ffbe7bc3e54092fa65814180bd27fc2b577582737733eec77cdbb7a572a4e73dff934dde60317223cde6 - languageName: node - linkType: hard - "gensync@npm:^1.0.0-beta.1, gensync@npm:^1.0.0-beta.2": version: 1.0.0-beta.2 resolution: "gensync@npm:1.0.0-beta.2" @@ -11716,7 +11153,7 @@ __metadata: languageName: node linkType: hard -"get-port@npm:^3.1.0, get-port@npm:^3.2.0": +"get-port@npm:^3.2.0": version: 3.2.0 resolution: "get-port@npm:3.2.0" checksum: 31f530326569683ac4b7452eb7573c40e9dbe52aec14d80745c35475261e6389160da153d5b8ae911150b4ce99003472b30c69ba5be0cedeaa7865b95542d168 @@ -11758,13 +11195,6 @@ __metadata: languageName: node linkType: hard -"getobject@npm:~1.0.0": - version: 1.0.2 - resolution: "getobject@npm:1.0.2" - checksum: d34ed7da33e8e291264c1d31f132a085b154dc04b74f93d08369db8fbb8a5aedd084c0eb2b49a8ad87db1f6d89a1ce9f15a986fe6b7fb8ff2c9a81232bd56f99 - languageName: node - linkType: hard - "getpass@npm:^0.1.1": version: 0.1.7 resolution: "getpass@npm:0.1.7" @@ -11831,7 +11261,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.3": +"glob@npm:^10.0.0, glob@npm:^10.2.2": version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: @@ -11874,33 +11304,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:~5.0.0": - version: 5.0.15 - resolution: "glob@npm:5.0.15" - dependencies: - inflight: ^1.0.4 - inherits: 2 - minimatch: 2 || 3 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: f9742448303460672607e569457f1b57e486a79a985e269b69465834d2075b243378225f65dc54c09fcd4b75e4fb34442aec88f33f8c65fa4abccc8ee2dc2f5d - languageName: node - linkType: hard - -"glob@npm:~7.1.1, glob@npm:~7.1.6": - version: 7.1.7 - resolution: "glob@npm:7.1.7" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.0.4 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: b61f48973bbdcf5159997b0874a2165db572b368b931135832599875919c237fc05c12984e38fe828e69aa8a921eb0e8a4997266211c517c9cfaae8a93988bb8 - languageName: node - linkType: hard - "global-dirs@npm:^3.0.0": version: 3.0.0 resolution: "global-dirs@npm:3.0.0" @@ -11910,17 +11313,6 @@ __metadata: languageName: node linkType: hard -"global-modules@npm:^1.0.0": - version: 1.0.0 - resolution: "global-modules@npm:1.0.0" - dependencies: - global-prefix: ^1.0.1 - is-windows: ^1.0.1 - resolve-dir: ^1.0.0 - checksum: 10be68796c1e1abc1e2ba87ec4ea507f5629873b119ab0cd29c07284ef2b930f1402d10df01beccb7391dedd9cd479611dd6a24311c71be58937beaf18edf85e - languageName: node - linkType: hard - "global-modules@npm:^2.0.0": version: 2.0.0 resolution: "global-modules@npm:2.0.0" @@ -11930,19 +11322,6 @@ __metadata: languageName: node linkType: hard -"global-prefix@npm:^1.0.1": - version: 1.0.2 - resolution: "global-prefix@npm:1.0.2" - dependencies: - expand-tilde: ^2.0.2 - homedir-polyfill: ^1.0.1 - ini: ^1.3.4 - is-windows: ^1.0.1 - which: ^1.2.14 - checksum: 061b43470fe498271bcd514e7746e8a8535032b17ab9570517014ae27d700ff0dca749f76bbde13ba384d185be4310d8ba5712cb0e74f7d54d59390db63dd9a0 - languageName: node - linkType: hard - "global-prefix@npm:^3.0.0": version: 3.0.0 resolution: "global-prefix@npm:3.0.0" @@ -11980,7 +11359,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:11.1.0, globby@npm:^11.0.1, globby@npm:^11.0.3, globby@npm:^11.0.4, globby@npm:^11.1.0": +"globby@npm:^11.0.1, globby@npm:^11.0.3, globby@npm:^11.0.4, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -11994,17 +11373,6 @@ __metadata: languageName: node linkType: hard -"globule@npm:^1.0.0": - version: 1.3.4 - resolution: "globule@npm:1.3.4" - dependencies: - glob: ~7.1.1 - lodash: ^4.17.21 - minimatch: ~3.0.2 - checksum: 258b6865c77d54fbd4c91dd6931d99baf81b1485fdf4bd2c053b1a10eab015163cb646e6c96812d5c8b027fb07adfc0b7c7fb13bbbb571f3c12ea60bd7fda2f5 - languageName: node - linkType: hard - "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -12059,7 +11427,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.2.11, graceful-fs@npm:~4.2.10": +"graceful-fs@npm:^4.2.11": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -12107,17 +11475,6 @@ __metadata: languageName: node linkType: hard -"graphql-scalars@npm:^1.15.0": - version: 1.23.0 - resolution: "graphql-scalars@npm:1.23.0" - dependencies: - tslib: ^2.5.0 - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: a9646fba25c306d9a43471676e8a312fa7ce88e7af879fcc18dd17f2f864cb9b1a6f6dc0563681dcbebf3a81a8c1b8aa416d17b61263912dc208e44fe5be1b45 - languageName: node - linkType: hard - "graphql-tag@npm:^2.11.0": version: 2.12.6 resolution: "graphql-tag@npm:2.12.6" @@ -12145,13 +11502,6 @@ __metadata: languageName: node linkType: hard -"graphql@npm:^16.3.0": - version: 16.9.0 - resolution: "graphql@npm:16.9.0" - checksum: 8cb3d54100e9227310383ce7f791ca48d12f15ed9f2021f23f8735f1121aafe4e5e611a853081dd935ce221724ea1ae4638faef5d2921fb1ad7c26b5f46611e9 - languageName: node - linkType: hard - "gray-matter@npm:^4.0.2, gray-matter@npm:^4.0.3": version: 4.0.3 resolution: "gray-matter@npm:4.0.3" @@ -12164,195 +11514,6 @@ __metadata: languageName: node linkType: hard -"grunt-cli@npm:~1.4.3": - version: 1.4.3 - resolution: "grunt-cli@npm:1.4.3" - dependencies: - grunt-known-options: ~2.0.0 - interpret: ~1.1.0 - liftup: ~3.0.1 - nopt: ~4.0.1 - v8flags: ~3.2.0 - bin: - grunt: bin/grunt - checksum: 794da5899789bf94c19ee5dd8bee0e69b1bf2135dd0082c6f8f33a71c711a131fd43717528ec8fd43cbfb7d9962cb6fed882d1e957c835633e4ca6b29a20cd24 - languageName: node - linkType: hard - -"grunt-contrib-clean@npm:^2.0.0": - version: 2.0.1 - resolution: "grunt-contrib-clean@npm:2.0.1" - dependencies: - async: ^3.2.3 - rimraf: ^2.6.2 - peerDependencies: - grunt: ">=0.4.5" - checksum: 765e3ca9c3dd00167245f6a926232e8cd3c285d0dbcb59478baebe95b735a1013cb6b2bd1f56e38a3228861ddd8bb9aee49328d4a3ba4b1117a4c5d01b61edf5 - languageName: node - linkType: hard - -"grunt-contrib-concat@npm:^2.1.0": - version: 2.1.0 - resolution: "grunt-contrib-concat@npm:2.1.0" - dependencies: - chalk: ^4.1.2 - source-map: ^0.5.3 - peerDependencies: - grunt: ">=1.4.1" - checksum: af010ead56a7ddd7d5b01e360a6372939eb9c6213ebb0a5ace6d79290dccaa3ff86b6b6b5ffb64eff50a434c81e2cef4326f003602d97efbbc89caa363c6ab48 - languageName: node - linkType: hard - -"grunt-contrib-connect@npm:^5.0.0": - version: 5.0.1 - resolution: "grunt-contrib-connect@npm:5.0.1" - dependencies: - async: ^3.2.5 - connect: ^3.7.0 - connect-livereload: ^0.6.1 - http2-wrapper: ^2.2.1 - morgan: ^1.10.0 - open: ^8.0.0 - portscanner: ^2.2.0 - serve-index: ^1.9.1 - serve-static: ^1.15.0 - checksum: b93ba1dd12884c60e2bc583667a94aae7c5a2ca74fbdbb1e95b0a77bd867e16d647984dca6d5da4256d4268edfdaa40d294a2ee456932c09dce98c0238cfe8b3 - languageName: node - linkType: hard - -"grunt-contrib-copy@npm:^1.0.0": - version: 1.0.0 - resolution: "grunt-contrib-copy@npm:1.0.0" - dependencies: - chalk: ^1.1.1 - file-sync-cmp: ^0.1.0 - checksum: 12feff37c3594b895c092db925ff571604f2616936d4e30a00ad18989bc3c2eca279a594e3648690bf9ccf74a16e3fb13a688e2e484f0b2ce691b0f5184a286b - languageName: node - linkType: hard - -"grunt-contrib-cssmin@npm:^5.0.0": - version: 5.0.0 - resolution: "grunt-contrib-cssmin@npm:5.0.0" - dependencies: - chalk: ^4.1.2 - clean-css: ^5.3.2 - maxmin: ^3.0.0 - checksum: 8cb8669564bba41f9a2697f0500f5fa43c76b5ed8ac21a315f28ddf3df5e5f9c4d6a4f0af614dda12f8a985fd7f419144fa811b548ed805ee6511a3bd55335c1 - languageName: node - linkType: hard - -"grunt-contrib-uglify@npm:^5.0.1": - version: 5.2.2 - resolution: "grunt-contrib-uglify@npm:5.2.2" - dependencies: - chalk: ^4.1.2 - maxmin: ^3.0.0 - uglify-js: ^3.16.1 - uri-path: ^1.0.0 - checksum: 20a580e69ba32df85aa21e63ecbbbb80475999438334f74ad1dae0ece3ecffe3a1c8905a89e246b5351e455721f352f679241b818f68be4f6d1195617dccd440 - languageName: node - linkType: hard - -"grunt-contrib-watch@npm:^1.1.0": - version: 1.1.0 - resolution: "grunt-contrib-watch@npm:1.1.0" - dependencies: - async: ^2.6.0 - gaze: ^1.1.0 - lodash: ^4.17.10 - tiny-lr: ^1.1.1 - checksum: 04f3e8b0ccf2556a6d23e3663fb1d24da780ab23de33dfafe9dc70073014e66f5f48a1d8b02c8d42d4a17f0f20fd83074c91d3ab844e97b8e72579bdfbc947aa - languageName: node - linkType: hard - -"grunt-known-options@npm:~2.0.0": - version: 2.0.0 - resolution: "grunt-known-options@npm:2.0.0" - checksum: ed22a96a7d9536ad7922b45b17cb806bbc0cd301af81c673c5c1102195332404ddf63418fe28faec70df85f7d3610d750b7c3bc540f755c6fc66b97624d0fc01 - languageName: node - linkType: hard - -"grunt-legacy-log-utils@npm:~2.1.0": - version: 2.1.0 - resolution: "grunt-legacy-log-utils@npm:2.1.0" - dependencies: - chalk: ~4.1.0 - lodash: ~4.17.19 - checksum: bd350037255bd0485d61c99d2d318147302dc77704b7d63d6f1f6d7d0eb9e07b101eb9476348a81b06e1659ed37b14d24fc9ab52d6769b68ad834e40e881b311 - languageName: node - linkType: hard - -"grunt-legacy-log@npm:~3.0.0": - version: 3.0.0 - resolution: "grunt-legacy-log@npm:3.0.0" - dependencies: - colors: ~1.1.2 - grunt-legacy-log-utils: ~2.1.0 - hooker: ~0.2.3 - lodash: ~4.17.19 - checksum: 60c98c7ad752495ef7cc39bca660454d59ef4500946c3f42ad721ca1ef47c053c46e516e102069008f0e0896c92e872a5b64273b6bfe35bd9971a0721fec81b2 - languageName: node - linkType: hard - -"grunt-legacy-util@npm:~2.0.1": - version: 2.0.1 - resolution: "grunt-legacy-util@npm:2.0.1" - dependencies: - async: ~3.2.0 - exit: ~0.1.2 - getobject: ~1.0.0 - hooker: ~0.2.3 - lodash: ~4.17.21 - underscore.string: ~3.3.5 - which: ~2.0.2 - checksum: 5cf6d5a95876db7623f102b1f56a3b5af33cbe1f2c768512a588a0e0807424bd2c098c4018a9b01c607f290eb960095b9d5d909a2c0078adba74d0f51dd08c59 - languageName: node - linkType: hard - -"grunt-sass@npm:^3.0.2": - version: 3.1.0 - resolution: "grunt-sass@npm:3.1.0" - peerDependencies: - grunt: ">=1" - checksum: c96ceedeb3af64162d23ca6c62fac64fb91fbf6aff90398f55ee30d733103d6b8f6d2b81095f446e25f27db4ab4bbcaf42667466ac996cf3012fc0c3035ff3dc - languageName: node - linkType: hard - -"grunt@npm:~1.5.3": - version: 1.5.3 - resolution: "grunt@npm:1.5.3" - dependencies: - dateformat: ~3.0.3 - eventemitter2: ~0.4.13 - exit: ~0.1.2 - findup-sync: ~0.3.0 - glob: ~7.1.6 - grunt-cli: ~1.4.3 - grunt-known-options: ~2.0.0 - grunt-legacy-log: ~3.0.0 - grunt-legacy-util: ~2.0.1 - iconv-lite: ~0.4.13 - js-yaml: ~3.14.0 - minimatch: ~3.0.4 - mkdirp: ~1.0.4 - nopt: ~3.0.6 - rimraf: ~3.0.2 - bin: - grunt: bin/grunt - checksum: 3cf1dfed5b3641d59e315f4062921aa902c0e2aaefb2f2b18b7439c5b9cce12551f689b0390290cb2f55e276e75622e61469374c044382c3abb9dc1776a12dc1 - languageName: node - linkType: hard - -"gzip-size@npm:^5.1.1": - version: 5.1.1 - resolution: "gzip-size@npm:5.1.1" - dependencies: - duplexer: ^0.1.1 - pify: ^4.0.1 - checksum: 6451ba2210877368f6d9ee9b4dc0d14501671472801323bf81fbd38bdeb8525f40a78be45a59d0182895d51e6b60c6314b7d02bd6ed40e7225a01e8d038aac1b - languageName: node - linkType: hard - "gzip-size@npm:^6.0.0": version: 6.0.0 resolution: "gzip-size@npm:6.0.0" @@ -12391,18 +11552,9 @@ __metadata: version: 5.1.5 resolution: "har-validator@npm:5.1.5" dependencies: - ajv: ^6.12.3 - har-schema: ^2.0.0 - checksum: b998a7269ca560d7f219eedc53e2c664cd87d487e428ae854a6af4573fc94f182fe9d2e3b92ab968249baec7ebaf9ead69cf975c931dc2ab282ec182ee988280 - languageName: node - linkType: hard - -"has-ansi@npm:^2.0.0": - version: 2.0.0 - resolution: "has-ansi@npm:2.0.0" - dependencies: - ansi-regex: ^2.0.0 - checksum: 1b51daa0214440db171ff359d0a2d17bc20061164c57e76234f614c91dbd2a79ddd68dfc8ee73629366f7be45a6df5f2ea9de83f52e1ca24433f2cc78c35d8ec + ajv: ^6.12.3 + har-schema: ^2.0.0 + checksum: b998a7269ca560d7f219eedc53e2c664cd87d487e428ae854a6af4573fc94f182fe9d2e3b92ab968249baec7ebaf9ead69cf975c931dc2ab282ec182ee988280 languageName: node linkType: hard @@ -12539,7 +11691,7 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.0, hasown@npm:^2.0.2": +"hasown@npm:^2.0.0": version: 2.0.2 resolution: "hasown@npm:2.0.2" dependencies: @@ -12733,13 +11885,6 @@ __metadata: languageName: node linkType: hard -"highlight.js@npm:^11.4.0": - version: 11.10.0 - resolution: "highlight.js@npm:11.10.0" - checksum: 65f89966a164f283a3083ce90f65d6f78c5d91c2ab753c70dc2f1d117ee8fe982ed428e51e663c37c562c88b7dad18cdd84769e522f0f8764462c448017c6dfa - languageName: node - linkType: hard - "hmac-drbg@npm:^1.0.1": version: 1.0.1 resolution: "hmac-drbg@npm:1.0.1" @@ -12760,22 +11905,6 @@ __metadata: languageName: node linkType: hard -"homedir-polyfill@npm:^1.0.1": - version: 1.0.3 - resolution: "homedir-polyfill@npm:1.0.3" - dependencies: - parse-passwd: ^1.0.0 - checksum: 18dd4db87052c6a2179d1813adea0c4bfcfa4f9996f0e226fefb29eb3d548e564350fa28ec46b0bf1fbc0a1d2d6922ceceb80093115ea45ff8842a4990139250 - languageName: node - linkType: hard - -"hooker@npm:~0.2.3": - version: 0.2.3 - resolution: "hooker@npm:0.2.3" - checksum: 217055dd9dd9e185c25ad31727e0a7b47a667d23635d6116acbbfa61c6701386b517208b63934aa423e7985a5df2382614af718e50199da08db1e9bc528c6e67 - languageName: node - linkType: hard - "hosted-git-info@npm:^3.0.8": version: 3.0.8 resolution: "hosted-git-info@npm:3.0.8" @@ -12876,30 +12005,6 @@ __metadata: languageName: node linkType: hard -"htmlparser2@npm:~9.0.0": - version: 9.0.0 - resolution: "htmlparser2@npm:9.0.0" - dependencies: - domelementtype: ^2.3.0 - domhandler: ^5.0.3 - domutils: ^3.1.0 - entities: ^4.5.0 - checksum: a234c3add821cae8308ca61ce4b8ad3e88af83cf9c3c2003059adc89c46a06ffc39cc2a92b39af8d16c3705e1055df6769d80877acb6529983867f0d7e74098d - languageName: node - linkType: hard - -"http-basic@npm:^8.1.1": - version: 8.1.3 - resolution: "http-basic@npm:8.1.3" - dependencies: - caseless: ^0.12.0 - concat-stream: ^1.6.2 - http-response-object: ^3.0.1 - parse-cache-control: ^1.0.1 - checksum: 7df5dc4d4b6eb8cc3beaa77f8e5c3074288ec3835abd83c85e5bb66d8a95a0ef97664d862caf5e225698cb795f78f9a5abd0d39404e5356ccd3e5e10c87936a5 - languageName: node - linkType: hard - "http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -12933,25 +12038,6 @@ __metadata: languageName: node linkType: hard -"http-errors@npm:~1.6.2": - version: 1.6.3 - resolution: "http-errors@npm:1.6.3" - dependencies: - depd: ~1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: ">= 1.4.0 < 2" - checksum: a9654ee027e3d5de305a56db1d1461f25709ac23267c6dc28cdab8323e3f96caa58a9a6a5e93ac15d7285cee0c2f019378c3ada9026e7fe19c872d695f27de7c - languageName: node - linkType: hard - -"http-parser-js@npm:>=0.5.1": - version: 0.5.8 - resolution: "http-parser-js@npm:0.5.8" - checksum: 6bbdf2429858e8cf13c62375b0bfb6dc3955ca0f32e58237488bc86cd2378f31d31785fd3ac4ce93f1c74e0189cf8823c91f5cb061696214fd368d2452dc871d - languageName: node - linkType: hard - "http-proxy-agent@npm:^5.0.0": version: 5.0.0 resolution: "http-proxy-agent@npm:5.0.0" @@ -12963,15 +12049,6 @@ __metadata: languageName: node linkType: hard -"http-response-object@npm:^3.0.1": - version: 3.0.2 - resolution: "http-response-object@npm:3.0.2" - dependencies: - "@types/node": ^10.0.3 - checksum: 6cbdcb4ce7b27c9158a131b772c903ed54add2ba831e29cc165e91c3969fa6f8105ddf924aac5b954b534ad15a1ae697b693331b2be5281ee24d79aae20c3264 - languageName: node - linkType: hard - "http-signature@npm:~1.2.0": version: 1.2.0 resolution: "http-signature@npm:1.2.0" @@ -13000,16 +12077,6 @@ __metadata: languageName: node linkType: hard -"http2-wrapper@npm:^2.2.1": - version: 2.2.1 - resolution: "http2-wrapper@npm:2.2.1" - dependencies: - quick-lru: ^5.1.1 - resolve-alpn: ^1.2.0 - checksum: e95e55e22c6fd61182ce81fecb9b7da3af680d479febe8ad870d05f7ebbc9f076e455193766f4e7934e50913bf1d8da3ba121fb5cd2928892390b58cf9d5c509 - languageName: node - linkType: hard - "https-browserify@npm:^1.0.0": version: 1.0.0 resolution: "https-browserify@npm:1.0.0" @@ -13043,7 +12110,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24, iconv-lite@npm:^0.4.4, iconv-lite@npm:~0.4.13": +"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24, iconv-lite@npm:^0.4.4": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" dependencies: @@ -13114,13 +12181,6 @@ __metadata: languageName: node linkType: hard -"immutable@npm:^5.0.2": - version: 5.0.3 - resolution: "immutable@npm:5.0.3" - checksum: b2fcfc75aff29634babfcf6afb102111d7bc3858bfc55c17c5ad5eedf11085fe8b72d59fac883c6cfe9b2ec6e72cc184dec88782d5375ab17dc4eb25e3a665ed - languageName: node - linkType: hard - "immutable@npm:~3.7.6": version: 3.7.6 resolution: "immutable@npm:3.7.6" @@ -13218,7 +12278,7 @@ __metadata: languageName: node linkType: hard -"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": +"ini@npm:^1.3.5, ini@npm:~1.3.0": version: 1.3.8 resolution: "ini@npm:1.3.8" checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 @@ -13271,13 +12331,6 @@ __metadata: languageName: node linkType: hard -"interpret@npm:~1.1.0": - version: 1.1.0 - resolution: "interpret@npm:1.1.0" - checksum: 978a142dd380c5087cc85af5d6856cb5d78ea31a69e817733279aa4abbd9e0eebe0966ed6c7bf6f7d5e5fd01e3c94839d68ef4757b06881533ba35353a6c7514 - languageName: node - linkType: hard - "invariant@npm:^2.2.3, invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" @@ -13287,13 +12340,6 @@ __metadata: languageName: node linkType: hard -"ip-regex@npm:^4.0.0": - version: 4.3.0 - resolution: "ip-regex@npm:4.3.0" - checksum: 7ff904b891221b1847f3fdf3dbb3e6a8660dc39bc283f79eb7ed88f5338e1a3d1104b779bc83759159be266249c59c2160e779ee39446d79d4ed0890dfd06f08 - languageName: node - linkType: hard - "ip@npm:^2.0.0": version: 2.0.0 resolution: "ip@npm:2.0.0" @@ -13308,13 +12354,6 @@ __metadata: languageName: node linkType: hard -"is-absolute-url@npm:^2.0.0": - version: 2.1.0 - resolution: "is-absolute-url@npm:2.1.0" - checksum: 781e8cf8a2af54b1b7a92f269244d96c66224030d91120e734ebeebbce044c167767e1389789d8aaf82f9e429cb20ae93d6d0acfe6c4b53d2bd6ebb47a236d76 - languageName: node - linkType: hard - "is-absolute-url@npm:^3.0.0": version: 3.0.3 resolution: "is-absolute-url@npm:3.0.3" @@ -13433,15 +12472,6 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0": - version: 2.15.1 - resolution: "is-core-module@npm:2.15.1" - dependencies: - hasown: ^2.0.2 - checksum: df134c168115690724b62018c37b2f5bba0d5745fa16960b329c5a00883a8bea6a5632fdb1e3efcce237c201826ba09f93197b7cd95577ea56b0df335be23633 - languageName: node - linkType: hard - "is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0": version: 2.10.0 resolution: "is-core-module@npm:2.10.0" @@ -13571,15 +12601,6 @@ __metadata: languageName: node linkType: hard -"is-ip@npm:^3.1.0": - version: 3.1.0 - resolution: "is-ip@npm:3.1.0" - dependencies: - ip-regex: ^4.0.0 - checksum: da2c2b282407194adf2320bade0bad94be9c9d0bdab85ff45b1b62d8185f31c65dff3884519d57bf270277e5ea2046c7916a6e5a6db22fe4b7ddcdd3760f23eb - languageName: node - linkType: hard - "is-lambda@npm:^1.0.1": version: 1.0.1 resolution: "is-lambda@npm:1.0.1" @@ -13626,15 +12647,6 @@ __metadata: languageName: node linkType: hard -"is-number-like@npm:^1.0.3": - version: 1.0.8 - resolution: "is-number-like@npm:1.0.8" - dependencies: - lodash.isfinite: ^3.3.2 - checksum: cfba928570a4e7d44a9ed9493986091c0d21dfbeb9bbe4cd92785d7a9c8bd4e5f66fc8837b59e793244f0b1bd742b3e4605e85bdcdcc9279a0382163e2174510 - languageName: node - linkType: hard - "is-number-object@npm:^1.0.4": version: 1.0.7 resolution: "is-number-object@npm:1.0.7" @@ -13658,18 +12670,6 @@ __metadata: languageName: node linkType: hard -"is-online@npm:^8.2.1": - version: 8.5.1 - resolution: "is-online@npm:8.5.1" - dependencies: - got: ^9.6.0 - p-any: ^2.0.0 - p-timeout: ^3.0.0 - public-ip: ^4.0.1 - checksum: 87d7f321dc872f0e4c7ac058595dcd058d7e09931f3b4fc29164f9d610564b9e9b15adf9ff4427bd273a47ef0da55b66a97a0e535584249d04a26d0ec134bf56 - languageName: node - linkType: hard - "is-path-inside@npm:^3.0.2": version: 3.0.3 resolution: "is-path-inside@npm:3.0.3" @@ -13698,7 +12698,7 @@ __metadata: languageName: node linkType: hard -"is-plain-object@npm:^2.0.3, is-plain-object@npm:^2.0.4": +"is-plain-object@npm:^2.0.4": version: 2.0.4 resolution: "is-plain-object@npm:2.0.4" dependencies: @@ -13731,15 +12731,6 @@ __metadata: languageName: node linkType: hard -"is-relative-url@npm:^2.0.0": - version: 2.0.0 - resolution: "is-relative-url@npm:2.0.0" - dependencies: - is-absolute-url: ^2.0.0 - checksum: 5acb66d6374a0c89fb68a770c94eeee3061b7d2e94d1fdff4d780b3054caf681ad33ed9d554eebeaedd897d90b781684c84ed85c7581d5d50767e857af3a199e - languageName: node - linkType: hard - "is-relative-url@npm:^3.0.0": version: 3.0.0 resolution: "is-relative-url@npm:3.0.0" @@ -13978,7 +12969,7 @@ __metadata: languageName: node linkType: hard -"isobject@npm:^3.0.0, isobject@npm:^3.0.1": +"isobject@npm:^3.0.1": version: 3.0.1 resolution: "isobject@npm:3.0.1" checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 @@ -14077,22 +13068,6 @@ __metadata: languageName: node linkType: hard -"js-beautify@npm:~1.14.7": - version: 1.14.11 - resolution: "js-beautify@npm:1.14.11" - dependencies: - config-chain: ^1.1.13 - editorconfig: ^1.0.3 - glob: ^10.3.3 - nopt: ^7.2.0 - bin: - css-beautify: js/bin/css-beautify.js - html-beautify: js/bin/html-beautify.js - js-beautify: js/bin/js-beautify.js - checksum: 92512b8dcc54330fe075569fd0226a1960da3fbb68f91e35dbfb110cc2b85e53e3ef17878c8be88b0888277bc5d51b1a692d72a00142d653ce7a8cbd48c66ee0 - languageName: node - linkType: hard - "js-levenshtein@npm:^1.1.6": version: 1.1.6 resolution: "js-levenshtein@npm:1.1.6" @@ -14107,7 +13082,7 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^3.13.1, js-yaml@npm:~3.14.0": +"js-yaml@npm:^3.13.1": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" dependencies: @@ -14300,13 +13275,6 @@ __metadata: languageName: node linkType: hard -"json-stringify-pretty-compact@npm:^3.0.0": - version: 3.0.0 - resolution: "json-stringify-pretty-compact@npm:3.0.0" - checksum: 01ab5c5c8260299414868d96db97f53aef93c290fe469edd9a1363818e795006e01c952fa2fd7b47cbbab506d5768998eccc25e1da4fa2ccfebd1788c6098791 - languageName: node - linkType: hard - "json-stringify-safe@npm:~5.0.1": version: 5.0.1 resolution: "json-stringify-safe@npm:5.0.1" @@ -14506,22 +13474,6 @@ __metadata: languageName: node linkType: hard -"liftup@npm:~3.0.1": - version: 3.0.1 - resolution: "liftup@npm:3.0.1" - dependencies: - extend: ^3.0.2 - findup-sync: ^4.0.0 - fined: ^1.2.0 - flagged-respawn: ^1.0.1 - is-plain-object: ^2.0.4 - object.map: ^1.0.1 - rechoir: ^0.7.0 - resolve: ^1.19.0 - checksum: ff8fd76576e772ef93a0aa607e465ec6f1a935c0b8c0ea5fd352cdacb380174f970a8844294667c8f71ecd948eb0054e7b090cb4f759167477d96c0d0bbac912 - languageName: node - linkType: hard - "lilconfig@npm:^2.0.3": version: 2.0.6 resolution: "lilconfig@npm:2.0.6" @@ -14543,13 +13495,6 @@ __metadata: languageName: node linkType: hard -"livereload-js@npm:^2.3.0": - version: 2.4.0 - resolution: "livereload-js@npm:2.4.0" - checksum: da6bcd195f45c8ae1b6a2ef79a60ce08a5d8dd34cb38e9e00a3f5c86611eb4eb7ff52ea9fd16b5b978b384573c2d602f526e7769d06560be8f9182604a6b681e - languageName: node - linkType: hard - "lmdb@npm:2.5.2": version: 2.5.2 resolution: "lmdb@npm:2.5.2" @@ -14764,7 +13709,7 @@ __metadata: languageName: node linkType: hard -"lodash.defaults@npm:^4.0.1, lodash.defaults@npm:^4.2.0": +"lodash.defaults@npm:^4.0.1": version: 4.2.0 resolution: "lodash.defaults@npm:4.2.0" checksum: 84923258235592c8886e29de5491946ff8c2ae5c82a7ac5cddd2e3cb697e6fbdfbbb6efcca015795c86eec2bb953a5a2ee4016e3735a3f02720428a40efbb8f1 @@ -14806,13 +13751,6 @@ __metadata: languageName: node linkType: hard -"lodash.get@npm:^4.4.2": - version: 4.4.2 - resolution: "lodash.get@npm:4.4.2" - checksum: e403047ddb03181c9d0e92df9556570e2b67e0f0a930fcbbbd779370972368f5568e914f913e93f3b08f6d492abc71e14d4e9b7a18916c31fa04bd2306efe545 - languageName: node - linkType: hard - "lodash.isequal@npm:^4.5.0": version: 4.5.0 resolution: "lodash.isequal@npm:4.5.0" @@ -14820,13 +13758,6 @@ __metadata: languageName: node linkType: hard -"lodash.isfinite@npm:^3.3.2": - version: 3.3.2 - resolution: "lodash.isfinite@npm:3.3.2" - checksum: 5e9f9c27fdcdb940f7d4bd3546f584502448004825ce42dc6c40cbee6a3de73d825f9aced3f5b50ff0f613b8dcb1b985fe6e29d172522d1d7975d3f8d02cef86 - languageName: node - linkType: hard - "lodash.map@npm:^4.4.0, lodash.map@npm:^4.6.0": version: 4.6.0 resolution: "lodash.map@npm:4.6.0" @@ -14904,14 +13835,7 @@ __metadata: languageName: node linkType: hard -"lodash.unset@npm:^4.5.2": - version: 4.5.2 - resolution: "lodash.unset@npm:4.5.2" - checksum: 53b2a79c20e7c8c604ccfd82c7ad5caa28876171a323c5dc4d6d745d42bc43f4827c24526d877484bf64284104dffa4dd34e0c363d49fd84bd398c259001ac3f - languageName: node - linkType: hard - -"lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:~4.17.0, lodash@npm:~4.17.19, lodash@npm:~4.17.21": +"lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:~4.17.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -15080,16 +14004,7 @@ __metadata: languageName: node linkType: hard -"make-iterator@npm:^1.0.0": - version: 1.0.1 - resolution: "make-iterator@npm:1.0.1" - dependencies: - kind-of: ^6.0.2 - checksum: d38afc388f4374b15c0622d4fa4d3e8c3154e3a6ba35b01e9a5179c127d7dd09a91fa571056aa9e041981b39f80bdbab035c05475e56ef675a18bdf550f0cb6a - languageName: node - linkType: hard - -"map-age-cleaner@npm:^0.1.1, map-age-cleaner@npm:^0.1.3": +"map-age-cleaner@npm:^0.1.3": version: 0.1.3 resolution: "map-age-cleaner@npm:0.1.3" dependencies: @@ -15142,7 +14057,7 @@ __metadata: languageName: node linkType: hard -"marked@npm:^4.0.12, marked@npm:^4.0.15": +"marked@npm:^4.0.15": version: 4.3.0 resolution: "marked@npm:4.3.0" bin: @@ -15151,18 +14066,6 @@ __metadata: languageName: node linkType: hard -"maxmin@npm:^3.0.0": - version: 3.0.0 - resolution: "maxmin@npm:3.0.0" - dependencies: - chalk: ^4.1.0 - figures: ^3.2.0 - gzip-size: ^5.1.1 - pretty-bytes: ^5.3.0 - checksum: 6efb19ccb42a43acf2faffad537477af9db482354820fc1ad45e85b51c30a0f430b7c70afab9da39b33f0f1c8677884cdb3aa6689fc222c5697dc79325f00153 - languageName: node - linkType: hard - "md5-file@npm:^5.0.0": version: 5.0.0 resolution: "md5-file@npm:5.0.0" @@ -15542,17 +14445,6 @@ __metadata: languageName: node linkType: hard -"mem@npm:^4.0.0": - version: 4.3.0 - resolution: "mem@npm:4.3.0" - dependencies: - map-age-cleaner: ^0.1.1 - mimic-fn: ^2.0.0 - p-is-promise: ^2.0.0 - checksum: cf488608e5d59c6cb68004b70de317222d4be9f857fd535dfa6a108e04f40821479c080bc763c417b1030569d303538c59d441280078cfce07fefd1c523f98ef - languageName: node - linkType: hard - "mem@npm:^8.1.1": version: 8.1.1 resolution: "mem@npm:8.1.1" @@ -15616,17 +14508,6 @@ __metadata: languageName: node linkType: hard -"microfiber@npm:^2.0.1": - version: 2.1.1 - resolution: "microfiber@npm:2.1.1" - dependencies: - lodash.defaults: ^4.2.0 - lodash.get: ^4.4.2 - lodash.unset: ^4.5.2 - checksum: 3e1f6fbec7fe41c60ff0bdec4bc0e2906385cc0024497498fd032bb96ad1261bbb541742b7aaff92980b404732830951c15c04d694e9420820bddfc73c243275 - languageName: node - linkType: hard - "micromark-core-commonmark@npm:^2.0.0": version: 2.0.1 resolution: "micromark-core-commonmark@npm:2.0.1" @@ -15951,7 +14832,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -15980,7 +14861,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.30, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.30, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -16016,14 +14897,7 @@ __metadata: languageName: node linkType: hard -"mimic-fn@npm:^1.0.0": - version: 1.2.0 - resolution: "mimic-fn@npm:1.2.0" - checksum: 69c08205156a1f4906d9c46f9b4dc08d18a50176352e77fdeb645cedfe9f20c0b19865d465bd2dec27a5c432347f24dc07fc3695e11159d193f892834233e939 - languageName: node - linkType: hard - -"mimic-fn@npm:^2.0.0, mimic-fn@npm:^2.1.0": +"mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a @@ -16096,15 +14970,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:2 || 3, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: ^1.1.7 - checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a - languageName: node - linkType: hard - "minimatch@npm:3.0.4": version: 3.0.4 resolution: "minimatch@npm:3.0.4" @@ -16114,15 +14979,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.1": - version: 9.0.1 - resolution: "minimatch@npm:9.0.1" - dependencies: - brace-expansion: ^2.0.1 - checksum: 97f5f5284bb57dc65b9415dec7f17a0f6531a33572193991c60ff18450dcfad5c2dad24ffeaf60b5261dccd63aae58cc3306e2209d57e7f88c51295a532d8ec3 - languageName: node - linkType: hard - "minimatch@npm:9.0.3": version: 9.0.3 resolution: "minimatch@npm:9.0.3" @@ -16132,6 +14988,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + "minimatch@npm:^5.0.1": version: 5.1.0 resolution: "minimatch@npm:5.1.0" @@ -16150,15 +15015,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:~3.0.2, minimatch@npm:~3.0.4": - version: 3.0.8 - resolution: "minimatch@npm:3.0.8" - dependencies: - brace-expansion: ^1.1.7 - checksum: 850cca179cad715133132693e6963b0db64ab0988c4d211415b087fc23a3e46321e2c5376a01bf5623d8782aba8bdf43c571e2e902e51fdce7175c7215c29f8b - languageName: node - linkType: hard - "minimist@npm:^1.0.0, minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.6": version: 1.2.7 resolution: "minimist@npm:1.2.7" @@ -16282,7 +15138,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4, mkdirp@npm:~1.0.4": +"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" bin: @@ -16344,19 +15200,6 @@ __metadata: languageName: node linkType: hard -"morgan@npm:^1.10.0": - version: 1.10.0 - resolution: "morgan@npm:1.10.0" - dependencies: - basic-auth: ~2.0.1 - debug: 2.6.9 - depd: ~2.0.0 - on-finished: ~2.3.0 - on-headers: ~1.0.2 - checksum: fb41e226ab5a1abf7e8909e486b387076534716d60207e361acfb5df78b84d703a7b7ea58f3046a9fd0b83d3c94bfabde32323341a1f1b26ce50680abd2ea5dd - languageName: node - linkType: hard - "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -16422,8 +15265,8 @@ __metadata: linkType: hard "multer@npm:^1.4.5-lts.1": - version: 1.4.5-lts.1 - resolution: "multer@npm:1.4.5-lts.1" + version: 1.4.5-lts.2 + resolution: "multer@npm:1.4.5-lts.2" dependencies: append-field: ^1.0.0 busboy: ^1.0.0 @@ -16432,7 +15275,7 @@ __metadata: object-assign: ^4.1.1 type-is: ^1.6.4 xtend: ^4.0.0 - checksum: d6dfa78a6ec592b74890412f8962da8a87a3dcfe20f612e039b735b8e0faa72c735516c447f7de694ee0d981eb0a1b892fb9e2402a0348dc6091d18c38d89ecc + checksum: b6f76a24c8fbc4d3ed5696ff8c98e126e7831d26f85e0ce17ab8d77e33a9ec14e33e4d05ea5e4e748e63a1b695cf450c2b05d8eee58484a74a1c13f459429713 languageName: node linkType: hard @@ -16452,15 +15295,6 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.7": - version: 3.3.7 - resolution: "nanoid@npm:3.3.7" - bin: - nanoid: bin/nanoid.cjs - checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 - languageName: node - linkType: hard - "napi-build-utils@npm:^1.0.1": version: 1.0.2 resolution: "napi-build-utils@npm:1.0.2" @@ -16578,15 +15412,6 @@ __metadata: languageName: node linkType: hard -"node-addon-api@npm:^7.0.0": - version: 7.1.1 - resolution: "node-addon-api@npm:7.1.1" - dependencies: - node-gyp: latest - checksum: 46051999e3289f205799dfaf6bcb017055d7569090f0004811110312e2db94cb4f8654602c7eb77a60a1a05142cc2b96e1b5c56ca4622c41a5c6370787faaf30 - languageName: node - linkType: hard - "node-fetch-h2@npm:^2.3.0": version: 2.3.0 resolution: "node-fetch-h2@npm:2.3.0" @@ -16760,6 +15585,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.19": + version: 2.0.19 + resolution: "node-releases@npm:2.0.19" + checksum: 917dbced519f48c6289a44830a0ca6dc944c3ee9243c468ebd8515a41c97c8b2c256edb7f3f750416bc37952cc9608684e6483c7b6c6f39f6bd8d86c52cfe658 + languageName: node + linkType: hard + "nopt@npm:^6.0.0": version: 6.0.0 resolution: "nopt@npm:6.0.0" @@ -16771,7 +15603,7 @@ __metadata: languageName: node linkType: hard -"nopt@npm:^7.2.0, nopt@npm:^7.2.1": +"nopt@npm:^7.2.1": version: 7.2.1 resolution: "nopt@npm:7.2.1" dependencies: @@ -16782,29 +15614,6 @@ __metadata: languageName: node linkType: hard -"nopt@npm:~3.0.6": - version: 3.0.6 - resolution: "nopt@npm:3.0.6" - dependencies: - abbrev: 1 - bin: - nopt: ./bin/nopt.js - checksum: 7f8579029a0d7cb3341c6b1610b31e363f708b7aaaaf3580e3ec5ae8528d1f3a79d350d8bfa331776e6c6703a5a148b72edd9b9b4c1dd55874d8e70e963d1e20 - languageName: node - linkType: hard - -"nopt@npm:~4.0.1": - version: 4.0.3 - resolution: "nopt@npm:4.0.3" - dependencies: - abbrev: 1 - osenv: ^0.1.4 - bin: - nopt: bin/nopt.js - checksum: 66cd3b6021fc8130fc201236bc3dce614fc86988b78faa91377538b09d57aad9ba4300b5d6a01dc93d6c6f2c170f81cc893063d496d108150b65191beb4a50a4 - languageName: node - linkType: hard - "normalize-package-data@npm:^6.0.0": version: 6.0.2 resolution: "normalize-package-data@npm:6.0.2" @@ -17089,18 +15898,6 @@ __metadata: languageName: node linkType: hard -"object.defaults@npm:^1.1.0": - version: 1.1.0 - resolution: "object.defaults@npm:1.1.0" - dependencies: - array-each: ^1.0.1 - array-slice: ^1.0.0 - for-own: ^1.0.0 - isobject: ^3.0.0 - checksum: 25468e06132af866bffedf9889b8180a31b9915776dbb660106866c5dd70cd0c0ad54f17e34de8ab99e6f548d579678de2e558390f56bd4ee61899fa6057f946 - languageName: node - linkType: hard - "object.entries@npm:^1.1.5": version: 1.1.5 resolution: "object.entries@npm:1.1.5" @@ -17133,16 +15930,6 @@ __metadata: languageName: node linkType: hard -"object.map@npm:^1.0.1": - version: 1.0.1 - resolution: "object.map@npm:1.0.1" - dependencies: - for-own: ^1.0.0 - make-iterator: ^1.0.0 - checksum: 3c9cf1a417f78915c7cf34054188193d4506b3d28f60ffd57aaf035fb34f19688fdf91a1af0ff9b81092270de7d3538ebe6783ae742663ea28a2b19d5eb6c6d9 - languageName: node - linkType: hard - "object.omit@npm:^3.0.0": version: 3.0.0 resolution: "object.omit@npm:3.0.0" @@ -17152,15 +15939,6 @@ __metadata: languageName: node linkType: hard -"object.pick@npm:^1.2.0": - version: 1.3.0 - resolution: "object.pick@npm:1.3.0" - dependencies: - isobject: ^3.0.1 - checksum: 77fb6eed57c67adf75e9901187e37af39f052ef601cb4480386436561357eb9e459e820762f01fd02c5c1b42ece839ad393717a6d1850d848ee11fbabb3e580a - languageName: node - linkType: hard - "object.values@npm:^1.1.5": version: 1.1.5 resolution: "object.values@npm:1.1.5" @@ -17188,15 +15966,6 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:~2.3.0": - version: 2.3.0 - resolution: "on-finished@npm:2.3.0" - dependencies: - ee-first: 1.1.1 - checksum: 1db595bd963b0124d6fa261d18320422407b8f01dc65863840f3ddaaf7bcad5b28ff6847286703ca53f4ec19595bd67a2f1253db79fc4094911ec6aa8df1671b - languageName: node - linkType: hard - "on-headers@npm:~1.0.2": version: 1.0.2 resolution: "on-headers@npm:1.0.2" @@ -17232,17 +16001,6 @@ __metadata: languageName: node linkType: hard -"open@npm:^8.0.0": - version: 8.4.2 - resolution: "open@npm:8.4.2" - dependencies: - define-lazy-prop: ^2.0.0 - is-docker: ^2.1.1 - is-wsl: ^2.2.0 - checksum: 6388bfff21b40cb9bd8f913f9130d107f2ed4724ea81a8fd29798ee322b361ca31fa2cdfb491a5c31e43a3996cfe9566741238c7a741ada8d7af1cb78d85cf26 - languageName: node - linkType: hard - "open@npm:^8.4.0": version: 8.4.0 resolution: "open@npm:8.4.0" @@ -17309,42 +16067,14 @@ __metadata: "os-browserify@npm:^0.3.0": version: 0.3.0 resolution: "os-browserify@npm:0.3.0" - checksum: 16e37ba3c0e6a4c63443c7b55799ce4066d59104143cb637ecb9fce586d5da319cdca786ba1c867abbe3890d2cbf37953f2d51eea85e20dd6c4570d6c54bfebf - languageName: node - linkType: hard - -"os-homedir@npm:^1.0.0": - version: 1.0.2 - resolution: "os-homedir@npm:1.0.2" - checksum: af609f5a7ab72de2f6ca9be6d6b91a599777afc122ac5cad47e126c1f67c176fe9b52516b9eeca1ff6ca0ab8587fe66208bc85e40a3940125f03cdb91408e9d2 - languageName: node - linkType: hard - -"os-tmpdir@npm:^1.0.0, os-tmpdir@npm:~1.0.2": - version: 1.0.2 - resolution: "os-tmpdir@npm:1.0.2" - checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d - languageName: node - linkType: hard - -"osenv@npm:^0.1.4": - version: 0.1.5 - resolution: "osenv@npm:0.1.5" - dependencies: - os-homedir: ^1.0.0 - os-tmpdir: ^1.0.0 - checksum: 779d261920f2a13e5e18cf02446484f12747d3f2ff82280912f52b213162d43d312647a40c332373cbccd5e3fb8126915d3bfea8dde4827f70f82da76e52d359 + checksum: 16e37ba3c0e6a4c63443c7b55799ce4066d59104143cb637ecb9fce586d5da319cdca786ba1c867abbe3890d2cbf37953f2d51eea85e20dd6c4570d6c54bfebf languageName: node linkType: hard -"p-any@npm:^2.0.0": - version: 2.1.0 - resolution: "p-any@npm:2.1.0" - dependencies: - p-cancelable: ^2.0.0 - p-some: ^4.0.0 - type-fest: ^0.3.0 - checksum: c65924474214b5cb66b4ad8a2860f4d57f1cde81c0e0f505c013ee7bc9bde1ea68d0a6a82732f16643f8e14d473887da5d617397ccda4bf25a218492d70a1d86 +"os-tmpdir@npm:~1.0.2": + version: 1.0.2 + resolution: "os-tmpdir@npm:1.0.2" + checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d languageName: node linkType: hard @@ -17383,13 +16113,6 @@ __metadata: languageName: node linkType: hard -"p-is-promise@npm:^2.0.0": - version: 2.1.0 - resolution: "p-is-promise@npm:2.1.0" - checksum: c9a8248c8b5e306475a5d55ce7808dbce4d4da2e3d69526e4991a391a7809bfd6cfdadd9bf04f1c96a3db366c93d9a0f5ee81d949e7b1684c4e0f61f747199ef - languageName: node - linkType: hard - "p-limit@npm:3.1.0, p-limit@npm:^3.0.2": version: 3.1.0 resolution: "p-limit@npm:3.1.0" @@ -17453,13 +16176,6 @@ __metadata: languageName: node linkType: hard -"p-map@npm:^2.0.0": - version: 2.1.0 - resolution: "p-map@npm:2.1.0" - checksum: 9e3ad3c9f6d75a5b5661bcad78c91f3a63849189737cd75e4f1225bf9ac205194e5c44aac2ef6f09562b1facdb9bd1425584d7ac375bfaa17b3f1a142dab936d - languageName: node - linkType: hard - "p-map@npm:^4.0.0": version: 4.0.0 resolution: "p-map@npm:4.0.0" @@ -17469,16 +16185,6 @@ __metadata: languageName: node linkType: hard -"p-memoize@npm:^2.1.0": - version: 2.1.0 - resolution: "p-memoize@npm:2.1.0" - dependencies: - mem: ^4.0.0 - mimic-fn: ^1.0.0 - checksum: dea93ed68cfc9be8d147054c5ccd70c8145224de828ad84246273ac41b601e6f6becadae7c3be8e93ffc6673767e79c781706f88b3f67d74ba95ef631d3b033e - languageName: node - linkType: hard - "p-queue@npm:^6.6.2": version: 6.6.2 resolution: "p-queue@npm:6.6.2" @@ -17489,17 +16195,7 @@ __metadata: languageName: node linkType: hard -"p-some@npm:^4.0.0": - version: 4.1.0 - resolution: "p-some@npm:4.1.0" - dependencies: - aggregate-error: ^3.0.0 - p-cancelable: ^2.0.0 - checksum: 7ef6a808c53ac2d96954dd26c1406ebbc14c89a092f46f65b0902601ed9db3b2fb7855d18624645157d56de9a51c59ce98378a68b797617204028addfbada10a - languageName: node - linkType: hard - -"p-timeout@npm:^3.0.0, p-timeout@npm:^3.2.0": +"p-timeout@npm:^3.2.0": version: 3.2.0 resolution: "p-timeout@npm:3.2.0" dependencies: @@ -17620,13 +16316,6 @@ __metadata: languageName: node linkType: hard -"parse-cache-control@npm:^1.0.1": - version: 1.0.1 - resolution: "parse-cache-control@npm:1.0.1" - checksum: 5a70868792124eb07c2dd07a78fcb824102e972e908254e9e59ce59a4796c51705ff28196d2b20d3b7353d14e9f98e65ed0e4eda9be072cc99b5297dc0466fee - languageName: node - linkType: hard - "parse-english@npm:^4.0.0": version: 4.2.0 resolution: "parse-english@npm:4.2.0" @@ -17667,7 +16356,7 @@ __metadata: languageName: node linkType: hard -"parse-filepath@npm:^1.0.1, parse-filepath@npm:^1.0.2": +"parse-filepath@npm:^1.0.2": version: 1.0.2 resolution: "parse-filepath@npm:1.0.2" dependencies: @@ -17721,13 +16410,6 @@ __metadata: languageName: node linkType: hard -"parse-passwd@npm:^1.0.0": - version: 1.0.0 - resolution: "parse-passwd@npm:1.0.0" - checksum: 4e55e0231d58f828a41d0f1da2bf2ff7bcef8f4cb6146e69d16ce499190de58b06199e6bd9b17fbf0d4d8aef9052099cdf8c4f13a6294b1a522e8e958073066e - languageName: node - linkType: hard - "parse-path@npm:^7.0.0": version: 7.0.0 resolution: "parse-path@npm:7.0.0" @@ -17800,7 +16482,7 @@ __metadata: languageName: node linkType: hard -"parseurl@npm:^1.3.3, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": +"parseurl@npm:^1.3.3, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 @@ -18056,13 +16738,6 @@ __metadata: languageName: node linkType: hard -"pify@npm:^4.0.1": - version: 4.0.1 - resolution: "pify@npm:4.0.1" - checksum: 9c4e34278cb09987685fa5ef81499c82546c033713518f6441778fbec623fc708777fe8ac633097c72d88470d5963094076c7305cafc7ad340aae27cfacd856b - languageName: node - linkType: hard - "pixelmatch@npm:^4.0.2": version: 4.0.2 resolution: "pixelmatch@npm:4.0.2" @@ -18129,16 +16804,6 @@ __metadata: languageName: node linkType: hard -"portscanner@npm:^2.2.0": - version: 2.2.0 - resolution: "portscanner@npm:2.2.0" - dependencies: - async: ^2.6.0 - is-number-like: ^1.0.3 - checksum: 5ca0b5bab4797327607a2979251057e476b2caf26dd17c7d628d059bd8962c23803a2b12ff2a72fca207dfb10563b158b915f6c38bc8319a4f351323266786c7 - languageName: node - linkType: hard - "postcss-calc@npm:^8.2.3": version: 8.2.4 resolution: "postcss-calc@npm:8.2.4" @@ -18549,17 +17214,6 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.19": - version: 8.4.49 - resolution: "postcss@npm:8.4.49" - dependencies: - nanoid: ^3.3.7 - picocolors: ^1.1.1 - source-map-js: ^1.2.1 - checksum: eb5d6cbdca24f50399aafa5d2bea489e4caee4c563ea1edd5a2485bc5f84e9ceef3febf170272bc83a99c31d23a316ad179213e853f34c2a7a8ffa534559d63a - languageName: node - linkType: hard - "potrace@npm:^2.1.8": version: 2.1.8 resolution: "potrace@npm:2.1.8" @@ -18655,9 +17309,9 @@ __metadata: linkType: hard "prismjs@npm:^1.27.0": - version: 1.29.0 - resolution: "prismjs@npm:1.29.0" - checksum: 007a8869d4456ff8049dc59404e32d5666a07d99c3b0e30a18bd3b7676dfa07d1daae9d0f407f20983865fd8da56de91d09cb08e6aa61f5bc420a27c0beeaf93 + version: 1.30.0 + resolution: "prismjs@npm:1.30.0" + checksum: a68eddd4c5f1c506badb5434b0b28a7cc2479ed1df91bc4218e6833c7971ef40c50ec481ea49749ac964256acb78d8b66a6bd11554938e8998e46c18b5f9a580 languageName: node linkType: hard @@ -18726,15 +17380,6 @@ __metadata: languageName: node linkType: hard -"promise@npm:^8.0.0": - version: 8.3.0 - resolution: "promise@npm:8.3.0" - dependencies: - asap: ~2.0.6 - checksum: a69f0ddbddf78ffc529cffee7ad950d307347615970564b17988ce43fbe767af5c738a9439660b24a9a8cbea106c0dcbb6c2b20e23b7e96a8e89e5c2679e94d5 - languageName: node - linkType: hard - "prompts@npm:^2.4.2": version: 2.4.2 resolution: "prompts@npm:2.4.2" @@ -18785,13 +17430,6 @@ __metadata: languageName: node linkType: hard -"proto-list@npm:~1.2.1": - version: 1.2.4 - resolution: "proto-list@npm:1.2.4" - checksum: 4d4826e1713cbfa0f15124ab0ae494c91b597a3c458670c9714c36e8baddf5a6aad22842776f2f5b137f259c8533e741771445eb8df82e861eea37a6eaba03f7 - languageName: node - linkType: hard - "protocols@npm:^2.0.0, protocols@npm:^2.0.1": version: 2.0.1 resolution: "protocols@npm:2.0.1" @@ -18837,17 +17475,6 @@ __metadata: languageName: node linkType: hard -"public-ip@npm:^4.0.1": - version: 4.0.4 - resolution: "public-ip@npm:4.0.4" - dependencies: - dns-socket: ^4.2.2 - got: ^9.6.0 - is-ip: ^3.1.0 - checksum: 9a0c3194b219d14e8996080f90857ca025c37ebe233cb89b7ba629714ebcdc6dfd563084931d497c597b56599468ec064b7a9196bbdc92feefa908d1e1585ea7 - languageName: node - linkType: hard - "pump@npm:^3.0.0": version: 3.0.0 resolution: "pump@npm:3.0.0" @@ -18897,15 +17524,6 @@ __metadata: languageName: node linkType: hard -"qs@npm:^6.4.0": - version: 6.13.1 - resolution: "qs@npm:6.13.1" - dependencies: - side-channel: ^1.0.6 - checksum: 86c5059146955fab76624e95771031541328c171b1d63d48a7ac3b1fdffe262faf8bc5fcadc1684e6f3da3ec87a8dedc8c0009792aceb20c5e94dc34cf468bb9 - languageName: node - linkType: hard - "qs@npm:~6.5.2": version: 6.5.3 resolution: "qs@npm:6.5.3" @@ -19022,16 +17640,6 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:~1.1.0": - version: 1.1.7 - resolution: "raw-body@npm:1.1.7" - dependencies: - bytes: 1 - string_decoder: 0.10 - checksum: 75ab1815ac54992abccccdffb27bd9ad9f5b6f5fb66e740474ad0d1bd3c1425e407b2be5eb34e0bef3da2c66bfa6a2c2b77498596f5b9999ead2d449fff0226f - languageName: node - linkType: hard - "raw-loader@npm:^4.0.2": version: 4.0.2 resolution: "raw-loader@npm:4.0.2" @@ -19268,13 +17876,6 @@ __metadata: languageName: node linkType: hard -"readdirp@npm:^4.0.1": - version: 4.0.2 - resolution: "readdirp@npm:4.0.2" - checksum: 309376e717f94fb7eb61bec21e2603243a9e2420cd2e9bf94ddf026aefea0d7377ed1a62f016d33265682e44908049a55c3cfc2307450a1421654ea008489b39 - languageName: node - linkType: hard - "readdirp@npm:~3.5.0": version: 3.5.0 resolution: "readdirp@npm:3.5.0" @@ -19293,15 +17894,6 @@ __metadata: languageName: node linkType: hard -"rechoir@npm:^0.7.0": - version: 0.7.1 - resolution: "rechoir@npm:0.7.1" - dependencies: - resolve: ^1.9.0 - checksum: 2a04aab4e28c05fcd6ee6768446bc8b859d8f108e71fc7f5bcbc5ef25e53330ce2c11d10f82a24591a2df4c49c4f61feabe1fd11f844c66feedd4cd7bb61146a - languageName: node - linkType: hard - "recursive-readdir@npm:^2.2.2": version: 2.2.2 resolution: "recursive-readdir@npm:2.2.2" @@ -19446,13 +18038,20 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.3, regenerator-runtime@npm:^0.13.4, regenerator-runtime@npm:^0.13.7": +"regenerator-runtime@npm:^0.13.3, regenerator-runtime@npm:^0.13.7": version: 0.13.10 resolution: "regenerator-runtime@npm:0.13.10" checksum: 09893f5a9e82932642d9a999716b6c626dc53ef2a01307c952ebbf8e011802360163a37c304c18a6c358548be5a72b448e37209954a18696f21e438c81cbb4b9 languageName: node linkType: hard +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 + languageName: node + linkType: hard + "regenerator-transform@npm:^0.15.0": version: 0.15.0 resolution: "regenerator-transform@npm:0.15.0" @@ -19635,18 +18234,6 @@ __metadata: languageName: node linkType: hard -"remark-lint-no-dead-urls@npm:^1.1.0": - version: 1.1.0 - resolution: "remark-lint-no-dead-urls@npm:1.1.0" - dependencies: - check-links: ^1.1.8 - is-online: ^8.2.1 - unified-lint-rule: ^1.0.4 - unist-util-visit: ^2.0.1 - checksum: e409b9896b6da801643b07514a32b7ff55b0f056f4585a6fdfaad7900e41907368750bccd84ae24d7f633291457243e01f871cd9a74f04befce37b6d8c0f165a - languageName: node - linkType: hard - "remark-mdx@npm:1.6.22": version: 1.6.22 resolution: "remark-mdx@npm:1.6.22" @@ -19988,7 +18575,7 @@ __metadata: languageName: node linkType: hard -"resolve-alpn@npm:^1.0.0, resolve-alpn@npm:^1.2.0": +"resolve-alpn@npm:^1.0.0": version: 1.2.1 resolution: "resolve-alpn@npm:1.2.1" checksum: f558071fcb2c60b04054c99aebd572a2af97ef64128d59bef7ab73bd50d896a222a056de40ffc545b633d99b304c259ea9d0c06830d5c867c34f0bfa60b8eae0 @@ -20004,16 +18591,6 @@ __metadata: languageName: node linkType: hard -"resolve-dir@npm:^1.0.0, resolve-dir@npm:^1.0.1": - version: 1.0.1 - resolution: "resolve-dir@npm:1.0.1" - dependencies: - expand-tilde: ^2.0.0 - global-modules: ^1.0.0 - checksum: ef736b8ed60d6645c3b573da17d329bfb50ec4e1d6c5ffd6df49e3497acef9226f9810ea6823b8ece1560e01dcb13f77a9f6180d4f242d00cc9a8f4de909c65c - languageName: node - linkType: hard - "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -20041,19 +18618,6 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.9.0": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" - dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c - languageName: node - linkType: hard - "resolve@npm:^2.0.0-next.3": version: 2.0.0-next.4 resolution: "resolve@npm:2.0.0-next.4" @@ -20080,19 +18644,6 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.9.0#~builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=07638b" - dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 - languageName: node - linkType: hard - "resolve@patch:resolve@^2.0.0-next.3#~builtin": version: 2.0.0-next.4 resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin::version=2.0.0-next.4&hash=07638b" @@ -20169,7 +18720,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2, rimraf@npm:~3.0.2": +"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" dependencies: @@ -20222,20 +18773,13 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 languageName: node linkType: hard -"safe-json-parse@npm:~1.0.1": - version: 1.0.1 - resolution: "safe-json-parse@npm:1.0.1" - checksum: aea585d967fb373903aae99e6e31157a68ebebdc9d0011bc86732b6c700994768349e30d4fb6dfdc346106004a85104187d0b48964fe1caff90b0886df5827eb - languageName: node - linkType: hard - "safe-regex-test@npm:^1.0.0": version: 1.0.0 resolution: "safe-regex-test@npm:1.0.0" @@ -20266,23 +18810,6 @@ __metadata: languageName: node linkType: hard -"sass@npm:^1.32.13": - version: 1.81.0 - resolution: "sass@npm:1.81.0" - dependencies: - "@parcel/watcher": ^2.4.1 - chokidar: ^4.0.0 - immutable: ^5.0.2 - source-map-js: ">=0.6.2 <2.0.0" - dependenciesMeta: - "@parcel/watcher": - optional: true - bin: - sass: sass.js - checksum: 93db5b342c3b0449af2b08123ed4c0793643bd3a30f78e4e0686a1aa991ad640e0d9bc8da09aa5d7ff313bbd317b3be9c827cca60fb33b07d9f4b14b001eccfe - languageName: node - linkType: hard - "sax@npm:>=0.6.0, sax@npm:^1.2.4": version: 1.2.4 resolution: "sax@npm:1.2.4" @@ -20477,22 +19004,7 @@ __metadata: languageName: node linkType: hard -"serve-index@npm:^1.9.1": - version: 1.9.1 - resolution: "serve-index@npm:1.9.1" - dependencies: - accepts: ~1.3.4 - batch: 0.6.1 - debug: 2.6.9 - escape-html: ~1.0.3 - http-errors: ~1.6.2 - mime-types: ~2.1.17 - parseurl: ~1.3.2 - checksum: e2647ce13379485b98a53ba2ea3fbad4d44b57540d00663b02b976e426e6194d62ac465c0d862cb7057f65e0de8ab8a684aa095427a4b8612412eca0d300d22f - languageName: node - linkType: hard - -"serve-static@npm:1.16.2, serve-static@npm:^1.15.0": +"serve-static@npm:1.16.2": version: 1.16.2 resolution: "serve-static@npm:1.16.2" dependencies: @@ -20532,13 +19044,6 @@ __metadata: languageName: node linkType: hard -"setprototypeof@npm:1.1.0": - version: 1.1.0 - resolution: "setprototypeof@npm:1.1.0" - checksum: 27cb44304d6c9e1a23bc6c706af4acaae1a7aa1054d4ec13c05f01a99fd4887109a83a8042b67ad90dbfcd100d43efc171ee036eb080667172079213242ca36e - languageName: node - linkType: hard - "setprototypeof@npm:1.2.0": version: 1.2.0 resolution: "setprototypeof@npm:1.2.0" @@ -20858,13 +19363,6 @@ __metadata: languageName: node linkType: hard -"sliced@npm:^1.0.1": - version: 1.0.1 - resolution: "sliced@npm:1.0.1" - checksum: 84528d23279985ead75809eeec5d601b0fb6bc28348c6627f4feb40747533a1e36a75e8bc60f9079528079b21c434890b397e8fc5c24a649165cc0bbe90b4d70 - languageName: node - linkType: hard - "slugify@npm:^1.4.4, slugify@npm:^1.6.1": version: 1.6.5 resolution: "slugify@npm:1.6.5" @@ -20990,13 +19488,6 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.2.1": - version: 1.2.1 - resolution: "source-map-js@npm:1.2.1" - checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b - languageName: node - linkType: hard - "source-map-js@npm:^1.0.2": version: 1.0.2 resolution: "source-map-js@npm:1.0.2" @@ -21014,14 +19505,14 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.5.0, source-map@npm:^0.5.3, source-map@npm:^0.5.7, source-map@npm:~0.5.3": +"source-map@npm:^0.5.0, source-map@npm:^0.5.7, source-map@npm:~0.5.3": version: 0.5.7 resolution: "source-map@npm:0.5.7" checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d languageName: node linkType: hard -"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 @@ -21076,51 +19567,6 @@ __metadata: languageName: node linkType: hard -"spectaql@npm:^3.0.2": - version: 3.0.2 - resolution: "spectaql@npm:3.0.2" - dependencies: - "@anvilco/apollo-server-plugin-introspection-metadata": ^2.2.3 - "@graphql-tools/load-files": ^6.3.2 - "@graphql-tools/merge": ^8.1.2 - "@graphql-tools/schema": ^9.0.1 - "@graphql-tools/utils": ^9.1.1 - cheerio: 1.0.0-rc.12 - coffeescript: ^2.6.1 - commander: ^10.0.0 - fast-glob: ^3.2.12 - graceful-fs: ~4.2.10 - graphql: ^16.3.0 - graphql-scalars: ^1.15.0 - grunt: ~1.5.3 - grunt-contrib-clean: ^2.0.0 - grunt-contrib-concat: ^2.1.0 - grunt-contrib-connect: ^5.0.0 - grunt-contrib-copy: ^1.0.0 - grunt-contrib-cssmin: ^5.0.0 - grunt-contrib-uglify: ^5.0.1 - grunt-contrib-watch: ^1.1.0 - grunt-sass: ^3.0.2 - handlebars: ^4.7.7 - highlight.js: ^11.4.0 - htmlparser2: ~9.0.0 - js-beautify: ~1.14.7 - js-yaml: ^4.1.0 - json-stringify-pretty-compact: ^3.0.0 - json5: ^2.2.0 - lodash: ^4.17.21 - marked: ^4.0.12 - microfiber: ^2.0.1 - postcss: ^8.4.19 - sass: ^1.32.13 - sync-request: ^6.1.0 - tmp: 0.2.1 - bin: - spectaql: bin/spectaql.js - checksum: 132da4d326d3d4ab3667ef93a501d3d3a9fb522f612e1de8b8a2da2c38f655531ea2b26d584fbbe669733d46547b5827c35899e19d45f23f08328ece10b47a20 - languageName: node - linkType: hard - "split-on-first@npm:^1.0.0": version: 1.1.0 resolution: "split-on-first@npm:1.1.0" @@ -21255,7 +19701,7 @@ __metadata: languageName: node linkType: hard -"statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:~1.5.0": +"statuses@npm:>= 1.5.0 < 2": version: 1.5.0 resolution: "statuses@npm:1.5.0" checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c @@ -21354,13 +19800,6 @@ __metadata: languageName: node linkType: hard -"string-template@npm:~0.2.1": - version: 0.2.1 - resolution: "string-template@npm:0.2.1" - checksum: 042cdcf4d4832378f12fbf45b42f479990f330cc409e6dc184838801efbc8352ccf9428fe169f8f8cfff2b864879d4ba1ef8b5f41d63d1d71844c48005a1683f - languageName: node - linkType: hard - "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -21432,13 +19871,6 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:0.10": - version: 0.10.31 - resolution: "string_decoder@npm:0.10.31" - checksum: fe00f8e303647e5db919948ccb5ce0da7dea209ab54702894dd0c664edd98e5d4df4b80d6fabf7b9e92b237359d21136c95bf068b2f7760b772ca974ba970202 - languageName: node - linkType: hard - "string_decoder@npm:^1.0.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -21489,7 +19921,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1": +"strip-ansi@npm:^3.0.1": version: 3.0.1 resolution: "strip-ansi@npm:3.0.1" dependencies: @@ -21686,13 +20118,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^2.0.0": - version: 2.0.0 - resolution: "supports-color@npm:2.0.0" - checksum: 602538c5812b9006404370b5a4b885d3e2a1f6567d314f8b4a41974ffe7d08e525bf92ae0f9c7030e3b4c78e4e34ace55d6a67a74f1571bc205959f5972f88f0 - languageName: node - linkType: hard - "supports-color@npm:^5.3.0, supports-color@npm:^5.5.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -21810,26 +20235,6 @@ __metadata: languageName: node linkType: hard -"sync-request@npm:^6.1.0": - version: 6.1.0 - resolution: "sync-request@npm:6.1.0" - dependencies: - http-response-object: ^3.0.1 - sync-rpc: ^1.2.1 - then-request: ^6.0.0 - checksum: cc8438a6749f62fb501d022fae0e3af3ac4a9983f889f929c8721b328a1c3408b98ca218aad886785a02be2c34bd75eb1a5a2608bd1fcee3c8c099391ff53a11 - languageName: node - linkType: hard - -"sync-rpc@npm:^1.2.1": - version: 1.3.6 - resolution: "sync-rpc@npm:1.3.6" - dependencies: - get-port: ^3.1.0 - checksum: 4340974fb5641c2cadb9df18d6b791ed2327f28cf6d8a00c99ebc2278e37391e3f5e237596da2ff83d14d2147594c6f5b3b98a93b9327644db425d239dea172f - languageName: node - linkType: hard - "table@npm:^6.0.9": version: 6.8.0 resolution: "table@npm:6.8.0" @@ -21858,14 +20263,14 @@ __metadata: linkType: hard "tar-fs@npm:^2.0.0, tar-fs@npm:^2.1.1": - version: 2.1.1 - resolution: "tar-fs@npm:2.1.1" + version: 2.1.2 + resolution: "tar-fs@npm:2.1.2" dependencies: chownr: ^1.1.1 mkdirp-classic: ^0.5.2 pump: ^3.0.0 tar-stream: ^2.1.4 - checksum: f5b9a70059f5b2969e65f037b4e4da2daf0fa762d3d232ffd96e819e3f94665dbbbe62f76f084f1acb4dbdcce16c6e4dac08d12ffc6d24b8d76720f4d9cf032d + checksum: 6b4fcd38a644b5cd3325f687b9f1f48cd19809b63cbc8376fe794f68361849a17120d036833b3a97de6acb1df588844476309b8c2d0bcaf53f19da2d56ac07de languageName: node linkType: hard @@ -21968,25 +20373,6 @@ __metadata: languageName: node linkType: hard -"then-request@npm:^6.0.0": - version: 6.0.2 - resolution: "then-request@npm:6.0.2" - dependencies: - "@types/concat-stream": ^1.6.0 - "@types/form-data": 0.0.33 - "@types/node": ^8.0.0 - "@types/qs": ^6.2.31 - caseless: ~0.12.0 - concat-stream: ^1.6.0 - form-data: ^2.2.0 - http-basic: ^8.1.1 - http-response-object: ^3.0.1 - promise: ^8.0.0 - qs: ^6.4.0 - checksum: a24a4fc95dd8591966bf3752f024f5cd4d53c2b2c29b23b4e40c3322df6a432d939bc17b589d8e9d760b90e92ab860f6f361a4dfcfe3542019e1615fb51afccc - languageName: node - linkType: hard - "through@npm:^2.3.6": version: 2.3.8 resolution: "through@npm:2.3.8" @@ -22020,20 +20406,6 @@ __metadata: languageName: node linkType: hard -"tiny-lr@npm:^1.1.1": - version: 1.1.1 - resolution: "tiny-lr@npm:1.1.1" - dependencies: - body: ^5.1.0 - debug: ^3.1.0 - faye-websocket: ~0.10.0 - livereload-js: ^2.3.0 - object-assign: ^4.1.0 - qs: ^6.4.0 - checksum: d32912d4ce09ea905649905162f4f76c141523822efe6a54861affe0b2be336b6f30ec244a8a5857aa59f3fb94a029d3eb4a33444de89ddd5118fa4687292fe8 - languageName: node - linkType: hard - "tinycolor2@npm:^1.4.1": version: 1.4.2 resolution: "tinycolor2@npm:1.4.2" @@ -22060,15 +20432,6 @@ __metadata: languageName: node linkType: hard -"tmp@npm:0.2.1, tmp@npm:^0.2.1": - version: 0.2.1 - resolution: "tmp@npm:0.2.1" - dependencies: - rimraf: ^3.0.0 - checksum: 8b1214654182575124498c87ca986ac53dc76ff36e8f0e0b67139a8d221eaecfdec108c0e6ec54d76f49f1f72ab9325500b246f562b926f85bcdfca8bf35df9e - languageName: node - linkType: hard - "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -22078,6 +20441,15 @@ __metadata: languageName: node linkType: hard +"tmp@npm:^0.2.1": + version: 0.2.1 + resolution: "tmp@npm:0.2.1" + dependencies: + rimraf: ^3.0.0 + checksum: 8b1214654182575124498c87ca986ac53dc76ff36e8f0e0b67139a8d221eaecfdec108c0e6ec54d76f49f1f72ab9325500b246f562b926f85bcdfca8bf35df9e + languageName: node + linkType: hard + "to-arraybuffer@npm:^1.0.0, to-arraybuffer@npm:^1.0.1": version: 1.0.1 resolution: "to-arraybuffer@npm:1.0.1" @@ -22256,13 +20628,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.5.0": - version: 2.8.1 - resolution: "tslib@npm:2.8.1" - checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a - languageName: node - linkType: hard - "tsutils@npm:^3.21.0": version: 3.21.0 resolution: "tsutils@npm:3.21.0" @@ -22343,13 +20708,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.3.0": - version: 0.3.1 - resolution: "type-fest@npm:0.3.1" - checksum: 347ff46c2285616635cb59f722e7f396bee81b8988b6fc1f1536b725077f2abf6ccfa22ab7a78e9b6ce7debea0e6614bbf5946cbec6674ec1bde12113af3a65c - languageName: node - linkType: hard - "type-fest@npm:^0.8.0, type-fest@npm:^0.8.1": version: 0.8.1 resolution: "type-fest@npm:0.8.1" @@ -22427,15 +20785,6 @@ __metadata: languageName: node linkType: hard -"uglify-js@npm:^3.16.1": - version: 3.19.3 - resolution: "uglify-js@npm:3.19.3" - bin: - uglifyjs: bin/uglifyjs - checksum: 7ed6272fba562eb6a3149cfd13cda662f115847865c03099e3995a0e7a910eba37b82d4fccf9e88271bb2bcbe505bb374967450f433c17fa27aa36d94a8d0553 - languageName: node - linkType: hard - "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" @@ -22455,7 +20804,7 @@ __metadata: languageName: node linkType: hard -"underscore.string@npm:^3.3.5, underscore.string@npm:^3.3.6, underscore.string@npm:~3.3.5": +"underscore.string@npm:^3.3.5, underscore.string@npm:^3.3.6": version: 3.3.6 resolution: "underscore.string@npm:3.3.6" dependencies: @@ -22571,15 +20920,6 @@ __metadata: languageName: node linkType: hard -"unified-lint-rule@npm:^1.0.4": - version: 1.0.6 - resolution: "unified-lint-rule@npm:1.0.6" - dependencies: - wrapped: ^1.0.1 - checksum: fb3fa8a08bab260e8200a40de48180d422cc7beb118cd74352490a6e8e42346ffbaed47e43593df4b5519eead0f67d71d1e4031b1b100a9aaf5f42d7b6135d54 - languageName: node - linkType: hard - "unified@npm:9.2.0": version: 9.2.0 resolution: "unified@npm:9.2.0" @@ -22937,7 +21277,7 @@ __metadata: languageName: node linkType: hard -"unist-util-visit@npm:2.0.3, unist-util-visit@npm:^2.0.0, unist-util-visit@npm:^2.0.1, unist-util-visit@npm:^2.0.3": +"unist-util-visit@npm:2.0.3, unist-util-visit@npm:^2.0.0, unist-util-visit@npm:^2.0.3": version: 2.0.3 resolution: "unist-util-visit@npm:2.0.3" dependencies: @@ -22993,7 +21333,7 @@ __metadata: languageName: node linkType: hard -"unixify@npm:1.0.0, unixify@npm:^1.0.0": +"unixify@npm:^1.0.0": version: 1.0.0 resolution: "unixify@npm:1.0.0" dependencies: @@ -23023,6 +21363,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.1.3": + version: 1.1.3 + resolution: "update-browserslist-db@npm:1.1.3" + dependencies: + escalade: ^3.2.0 + picocolors: ^1.1.1 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 7b6d8d08c34af25ee435bccac542bedcb9e57c710f3c42421615631a80aa6dd28b0a81c9d2afbef53799d482fb41453f714b8a7a0a8003e3b4ec8fb1abb819af + languageName: node + linkType: hard + "update-notifier@npm:^5.0.1, update-notifier@npm:^5.1.0": version: 5.1.0 resolution: "update-notifier@npm:5.1.0" @@ -23088,13 +21442,6 @@ __metadata: languageName: node linkType: hard -"uri-path@npm:^1.0.0": - version: 1.0.0 - resolution: "uri-path@npm:1.0.0" - checksum: 794618f2fcbff47fb7b354384d62a30b660e0caa1e67c972f4ac936407efdbb0955c191f9b8537b89461343867afb856287db0bd3d62984464ed21cb829e8791 - languageName: node - linkType: hard - "url-loader@npm:^4.1.1": version: 4.1.1 resolution: "url-loader@npm:4.1.1" @@ -23246,15 +21593,6 @@ __metadata: languageName: node linkType: hard -"v8flags@npm:~3.2.0": - version: 3.2.0 - resolution: "v8flags@npm:3.2.0" - dependencies: - homedir-polyfill: ^1.0.1 - checksum: 193db08aa396d993da04d3d985450784aa0010f51613005d13ef97d7b2b9e1ba5aef04affa585037adece12de5ca532f6f5fc40288495eab55e2eebc201809d2 - languageName: node - linkType: hard - "valid-url@npm:^1.0.9": version: 1.0.9 resolution: "valid-url@npm:1.0.9" @@ -23286,13 +21624,6 @@ __metadata: languageName: node linkType: hard -"value-or-promise@npm:^1.0.12": - version: 1.0.12 - resolution: "value-or-promise@npm:1.0.12" - checksum: f53a66c75b7447c90bbaf946a757ca09c094629cb80ba742f59c980ec3a69be0a385a0e75505dedb4e757862f1a994ca4beaf083a831f24d3ffb3d4bb18cd1e1 - languageName: node - linkType: hard - "vary@npm:^1, vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" @@ -23629,24 +21960,6 @@ __metadata: languageName: node linkType: hard -"websocket-driver@npm:>=0.5.1": - version: 0.7.4 - resolution: "websocket-driver@npm:0.7.4" - dependencies: - http-parser-js: ">=0.5.1" - safe-buffer: ">=5.1.0" - websocket-extensions: ">=0.1.1" - checksum: fffe5a33fe8eceafd21d2a065661d09e38b93877eae1de6ab5d7d2734c6ed243973beae10ae48c6613cfd675f200e5a058d1e3531bc9e6c5d4f1396ff1f0bfb9 - languageName: node - linkType: hard - -"websocket-extensions@npm:>=0.1.1": - version: 0.1.4 - resolution: "websocket-extensions@npm:0.1.4" - checksum: 5976835e68a86afcd64c7a9762ed85f2f27d48c488c707e67ba85e717b90fa066b98ab33c744d64255c9622d349eedecf728e65a5f921da71b58d0e9591b9038 - languageName: node - linkType: hard - "whatwg-encoding@npm:^1.0.1, whatwg-encoding@npm:^1.0.3": version: 1.0.5 resolution: "whatwg-encoding@npm:1.0.5" @@ -23774,7 +22087,7 @@ __metadata: languageName: node linkType: hard -"which@npm:^1.2.14, which@npm:^1.2.9, which@npm:^1.3.1": +"which@npm:^1.2.9, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1" dependencies: @@ -23785,7 +22098,7 @@ __metadata: languageName: node linkType: hard -"which@npm:^2.0.1, which@npm:^2.0.2, which@npm:~2.0.2": +"which@npm:^2.0.1, which@npm:^2.0.2": version: 2.0.2 resolution: "which@npm:2.0.2" dependencies: @@ -23879,16 +22192,6 @@ __metadata: languageName: node linkType: hard -"wrapped@npm:^1.0.1": - version: 1.0.1 - resolution: "wrapped@npm:1.0.1" - dependencies: - co: 3.1.0 - sliced: ^1.0.1 - checksum: 549d3a0dae46f97eae15f749dc9c512cbbb0db716e1f2bc48e3e134123c941750ed008bb2799d154406154e69fb3b2e504964d9bd8e3c63e99ac4991cfd00ae8 - languageName: node - linkType: hard - "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2"