--- title: 2022-01 release notes description: Update your app from API version 2021-10 to 2022-01. api_name: release-notes source_url: html: 'https://shopify.dev/docs/api/release-notes/previous-versions/2022-01' md: 'https://shopify.dev/docs/api/release-notes/previous-versions/2022-01.md' --- ExpandOn this page * [Breaking changes](https://shopify.dev/docs/api/release-notes/previous-versions/2022-01.md#breaking-changes) * [Graph​QL Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2022-01.md#graphql-admin-api-changes) * [Graph​QL Storefront API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2022-01.md#graphql-storefront-api-changes) * [REST Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2022-01.md#rest-admin-api-changes) # 2022-01 release notes Note We're no longer publishing API release notes. Instead, you can find the latest updates on Shopify APIs in our [developer changelog](https://shopify.dev/changelog). You can filter updates by area. For example, you can filter API updates by the API name and version, such as GraphQL Admin API changes in version 2025-04. | Release date | Date version is no longer supported | | - | - | | January 1, 2022 | January 1, 2023 | The 2022-01 version of Shopify's APIs includes improved product filtering through the Storefront API, the new product taxonomy object, and new metafield definitions on collections, customers, and orders. This version also includes a new mutation to email order invoices, new error codes for bulk mutations, and simplified methods for getting translatable resources, featured images, and barcodes. **What’s new in 2022-01** The following features were added in version 2022-01 of Shopify's APIs. Storefront API changes: * [Filter products](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products) in a collection. * Retrieve the featured image for a [product](https://shopify.dev/docs/api/storefront/reference/products/product) without having to request the first image in a set. * Retrieve the resource that a [metafield](https://shopify.dev/docs/api/storefront/reference/common-objects/metafield) refers to. * Retrieve the barcode (for example, ISBN, UPC, or GTIN) associated with a [product variant](https://shopify.dev/docs/api/storefront/reference/products/productvariant). * Retrieve a [policy associated with a store](https://shopify.dev/docs/api/storefront/reference/online-store/shoppolicywithdefault), such as a subscription policy. GraphQL Admin API changes: * Specify private metafield namespaces for the [`WebhookSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/WebhookSubscription) object and [`WebhookSubscriptionInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/WebhookSubscriptionInput) input object. * Apply [metafield definitions](https://shopify.dev/docs/apps/build/custom-data/metafields/definitions) to the Order, Customer, and Collection objects. * Send [an email invoice for an order](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderInvoiceSend). * Retrieve a [bounding box](https://shopify.dev/docs/api/admin-graphql/latest/objects/model3dboundingbox) from a 3D model. * Retrieve the total sellable quantity of a [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) for online channels. * Retrieve [product taxonomy details](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductTaxonomyNode) that include standard and custom product types. * Retrieve a list of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/product) that merchants have scheduled to publish to your sales channel and use new [webhooks](https://shopify.dev/docs/api/admin-graphql/latest/enums/webhooksubscriptiontopic) for scheduled product publishing notifications. * We've added new [error codes](https://shopify.dev/docs/api/admin-graphql/latest/enums/bulkmutationerrorcode) for bulk mutations. REST Admin API changes: * Use new [webhooks](https://shopify.dev/docs/api/admin-rest/latest/resources/webhook) for notifications of scheduled product publishing in sales channels. * We've simplified the validation for formatting the [resource feedback](https://shopify.dev/docs/api/admin-rest/latest/resources/resourcefeedback) message field. *** ## Breaking changes These changes require special attention. If your app uses these API resources, and you don’t adjust your usage of the resources according to the following instructions, then your app might break when you update to this API version. ### Error codes for bulk mutations As of API version 2022-01, new [error codes](https://shopify.dev/docs/api/admin-graphql/latest/enums/bulkmutationerrorcode) have been added to the `BulkMutationErrorCode` enum to better represent the different types of errors that can occur during the execution of a bulk mutation. ### Removed fields in the Storefront API In the 2021-01 API version release, several fields on the Storefront API were marked as deprecated. As of API version 2022-01, the following fields and arguments have been removed: * `customer` field on [`Checkout`](https://shopify.dev/docs/api/storefront/latest/objects/checkout) object * `available`, `presentmentPrices`, and `presentmentCurrencies` fields on the [`ProductVariant`](https://shopify.dev/docs/api/storefront/latest/objects/productvariant) object * `presentmentPriceRanges` field on the [`Product`](https://shopify.dev/docs/api/storefront/latest/objects/product) object * `url` field on the [`Article`](https://shopify.dev/docs/api/storefront/latest/objects/article), [`Blog`](https://shopify.dev/docs/api/storefront/latest/objects/blog), and [`Page`](https://shopify.dev/docs/api/storefront/latest/objects/page) objects * `description` field on the [`ScriptDiscountApplication`](https://shopify.dev/docs/api/storefront/latest/objects/scriptdiscountapplication) object * `currencyCode`, `shopifyPaymentsAccountId`, `productByHandle`, `collectionByHandle`, `blogs`, `articles`, `collections`, `products`, `productTypes`, and `productTags` fields on the [`Shop`](https://shopify.dev/docs/api/storefront/latest/objects/shop) object * `maxWidth`, `maxHeight`, `crop`, and `scale` arguments on the [`Image`](https://shopify.dev/docs/api/storefront/latest/objects/image) object ### Changes to the `Metafield` object In the 2021-07 API version release, the `value_type` field on the `Metafield` object in the [GraphQL Admin API](https://shopify.dev/docs/api/admin-graphql/latest/objects/metafield), [Storefront API](https://shopify.dev/docs/api/storefront/reference/common-objects/metafield), and [REST Admin API](https://shopify.dev/docs/api/admin-rest/latest/resources/metafield) was deprecated. As of the 2022-01 API version release, the `value_type` field has been removed from these APIs. You should use the `type` field instead of the `value_type` field to access or set the type of a `Metafield` object. For more information, refer to [Managing metafields](https://shopify.dev/docs/apps/build/custom-data/metafields/manage-metafields). *** ## Graph​QL Admin API changes Below are all the changes currently introduced in the 2022-01 version of the GraphQL Admin API. ### 3D model bounding boxes You can now retrieve a [bounding box](https://shopify.dev/docs/api/admin-graphql/latest/objects/model3dboundingbox) from a 3D model. A bounding box is the smallest volume that can contain a 3D model. **New field** * `boundingBox` field was added to `Model3d` object **New types** * `Model3dBoundingBox` object was added * `Vector3` object was added ### Authorization access errors The authorization access error descriptions have been improved to provide more context and better represent the scopes required to execute a mutation. For example, previous error descriptions only expressed that you were denied access to a mutation. As of the 2022-01 API version, the error descriptions include the access scopes required. ### Deprecated Image fields The following fields on the [`Image` object](https://shopify.dev/docs/api/admin-graphql/latest/objects/image) have been deprecated: * `originalSrc` * `src` * `transformedSrc` The deprecated fields are replaced with a single `url` field that you should use instead. **New fields** * `url` field was added to `Image` object **New types** * `ImageTransformInput` input object was added ### Error codes for bulk mutations #### Breaking As of API version 2022-01, new [error codes](https://shopify.dev/docs/api/admin-graphql/latest/enums/bulkmutationerrorcode) have been added to the `BulkMutationErrorCode` enum to better represent the different types of errors that can occur during the execution of a bulk mutation. **New error codes** * `BULK_MUTATION_USER_ERROR_CODE` was added to enum `BulkMutationErrorCode` * `OPERATION_IN_PROGRESS` was added to enum `BulkMutationErrorCode` * `INVALID_MUTATION` was added to enum `BulkMutationErrorCode` * `INVALID_STAGED_UPLOAD_FILE` was added to enum `BulkMutationErrorCode` * `NO_SUCH_FILE` was added to enum `BulkMutationErrorCode` * `INTERNAL_FILE_SERVER_ERROR` was added to enum `BulkMutationErrorCode` ### Error codes for processing Model3D files As of API version 2022-01, a new error code has been added to the [`FileErrorCode`](https://shopify.dev/docs/api/admin-graphql/latest/enums/fileerrorcode) and [`MediaErrorCode`](https://shopify.dev/docs/api/admin-graphql/latest/enums/mediaerrorcode) enums to communicate file creation failures when processing Model3D files on the backend. **New error codes** * `MODEL3D_PROCESSING_FAILURE` was added to enum `FileErrorCode` * `MODEL3D_PROCESSING_FAILURE` was added to enum `MediaErrorCode` ### Media warnings You can now display [warnings for media](https://shopify.dev/docs/api/admin-graphql/latest/objects/MediaWarning). For example, if 3D model dimensions might be incorrect, then a warning will be displayed on the product page. **New field** * `MediaWarning` field was added to `ExternalVideo`, `MediaImage`, `Model3d`, and `Video` objects **New types** * `MediaWarning` object was added * `MediaWarningCode` enum was added ### Metafields As of the 2022-01 API version release, you can use the [GraphQL Admin API](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/HasMetafieldDefinitions) to apply [metafield definitions](https://shopify.dev/docs/apps/build/custom-data/metafields/definitions) to the Order, Customer, and Collection objects. In the 2021-07 API version release, the `value_type` field on the [`Metafield` object](https://shopify.dev/docs/api/admin-graphql/latest/objects/metafield) was deprecated. As of the 2022-01 API version release, the `value_type` field has been removed. You should use the `type` field instead of the `value_type` field to access or set the type of a `Metafield` object. For more information, refer to [Managing metafields](https://shopify.dev/docs/apps/build/custom-data/metafields/manage-metafields). **New types** * `HasMetafieldDefinitions` interface has been added to `Order`, `Customer`, and `Collection` objects **Removed fields** * `valueType` field was removed from `Metafield` object * `valueType` field was removed from `MetafieldInput` input object ### Online channels You can now query the total sellable quantity of a [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) for online channels. This doesn't represent the total available inventory or [capture limitations based on customer location](https://help.shopify.com/en/manual/markets/inventory_and_fulfillment). **New field** * `sellableOnlineQuantity` field was added to `ProductVariant` object ### Orders As of the 2022-01 API version release, you can use the [`OrderInvoiceSend`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderInvoiceSend) mutation to send an email invoice for an order. **New mutation** * `OrderInvoiceSend` mutation was added ### Private metafield namespaces As of API version 2022-01, you can specify private metafield namespaces for webhook subscriptions. **New fields** * `private_metafield_namespaces` field was added to the `WebhookSubscription` object * `private_metafield_namespaces` field was added to the `WebhookSubscriptionInput` input object ### Product taxonomy You can now query the [GraphQL Admin API](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductTaxonomyNode) to retrieve a classification of product types. This includes all of the [standard and custom product types](https://help.shopify.com/en/manual/products/details/product-type) associated with a product. **New types** * `ProductTaxonomyNode` object was added * `StandardProductType` object was added * `StandardProductTypeInput` input object was added **New fields** * `standardizedProductType` was added to `Product` object * `standardizedProductType` was added and `ProductInput` input object * `customProductType` was added to `Product` object * `customProductType` was added to `ProductInput` input object ### Scheduled publications You can now query the [GraphQL Admin API](https://shopify.dev/docs/api/admin-graphql/latest/objects/product) for products that merchants have scheduled to publish to your sales channel. You can also use new webhooks for scheduled product publishing notifications. Use these webhooks to enable channel app workflows such as product drops and timed sales. **New field** * `resourcePublicationOnCurrentPublication` field was added to `Product` object **New values** * `SCHEDULED_PRODUCT_LISTINGS_ADD` value was added to enum [`WebhookSubscriptionTopic`](https://shopify.dev/docs/api/admin-graphql/latest/enums/webhooksubscriptiontopic) * `SCHEDULED_PRODUCT_LISTINGS_REMOVE` value was added to enum [`WebhookSubscriptionTopic`](https://shopify.dev/docs/api/admin-graphql/latest/enums/webhooksubscriptiontopic) * `SCHEDULED_PRODUCT_LISTINGS_UPDATE` value was added to enum [`WebhookSubscriptionTopic`](https://shopify.dev/docs/api/admin-graphql/latest/enums/webhooksubscriptiontopic) ### Subscriptions When you [create a subscription draft](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract#step-1-create-a-new-subscription-draft), you can now add a note to apply to generated orders. For example, the note can be a personalized message to the customer. **New field** * `note` field was added to `SubscriptionContract` object ### Translatable resources by IDs As of API version 2022-01, you can retrieve translatable resources by their IDs. **New connection** * `translatableResourcesByIds` connection was added to the `QueryRoot` object *** ## Graph​QL Storefront API changes Below are all the changes currently introduced in the 2022-01 version of the GraphQL Storefront API. ### Deprecated Image fields The following fields on the [`Image` object](https://shopify.dev/docs/api/storefront/reference/common-objects/image) have been deprecated: * `originalSrc` * `src` * `transformedSrc` The deprecated fields are replaced with a single `url` field that you should use instead. **New fields** * `url` field was added to `Image` object **New types** * `ImageTransformInput` input object was added ### Featured product images You can now use the [Storefront API](https://shopify.dev/docs/api/storefront/reference/products/product) to retrieve the featured image for a product without having to request the first image in a set. **New field** * `featuredImage` field was added to `Product` object ### Filtering products You can now use the Storefront API to [filter products in a collection](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products). This functionality lets you build a desired customer experience on a storefront, such as the ability to narrow down the search results that you display to customers. **New types** * `Filter` object was added * `FilterValue` object was added * `VariantOptionFilter` input object was added * `ProductFilter` input object was added * `PriceRangeFilter` input object was added * `MetafieldFilter` input object was added * `FilterType` enum was added **New field** * `filters` field was added to `Product` object ### Metafields You can now use the [Storefront API](https://shopify.dev/docs/api/storefront/reference/common-objects/metafield) to retrieve the resource that a metafield refers to. This functionality provides parity with the `reference` field on the [GraphQL Admin API's `MetafieldReference` object](https://shopify.dev/docs/api/admin-graphql/latest/unions/MetafieldReference). In the 2021-07 API version release, the `value_type` field on the [`Metafield` object](https://shopify.dev/docs/api/storefront/reference/common-objects/metafield) was deprecated. As of the 2022-01 API version release, the `value_type` field has been removed. You should use the `type` field instead of the `value_type` field to access or set the type of a `Metafield` object. For more information, refer to [Managing metafields](https://shopify.dev/docs/apps/build/custom-data/metafields/manage-metafields). **New field** * `reference` field was added to `MetafieldReference` object **Removed fields** * `valueType` field was removed from `Metafield` object ### Product variants You can now use the [Storefront API](https://shopify.dev/docs/api/storefront/reference/products/productvariant) to retrieve the barcode (for example, ISBN, UPC, or GTIN) associated with a product variant. **New field** * `barcode` field was added to `ProductVariant` object ### Removed fields #### Breaking In the 2021-01 API version release, several fields on the Storefront API were marked as deprecated. As of API version 2022-01, the following fields and arguments have been removed: * `customer` field on [`Checkout`](https://shopify.dev/docs/api/storefront/latest/objects/checkout) object * `available`, `presentmentPrices`, and `presentmentCurrencies` fields on the [`ProductVariant`](https://shopify.dev/docs/api/storefront/latest/objects/productvariant) object * `presentmentPriceRanges` field on the [`Product`](https://shopify.dev/docs/api/storefront/latest/objects/product) object * `url` field on the [`Article`](https://shopify.dev/docs/api/storefront/latest/objects/article), [`Blog`](https://shopify.dev/docs/api/storefront/latest/objects/blog), and [`Page`](https://shopify.dev/docs/api/storefront/latest/objects/page) objects * `description` field on the [`ScriptDiscountApplication`](https://shopify.dev/docs/api/storefront/latest/objects/scriptdiscountapplication) object * `currencyCode`, `shopifyPaymentsAccountId`, `productByHandle`, `collectionByHandle`, `blogs`, `articles`, `collections`, `products`, `productTypes`, and `productTags` fields on the [`Shop`](https://shopify.dev/docs/api/storefront/latest/objects/shop) object * `maxWidth`, `maxHeight`, `crop`, and `scale` arguments on the [`Image`](https://shopify.dev/docs/api/storefront/latest/objects/image) object ### Store policy You can now use the [Storefront API](https://shopify.dev/docs/api/storefront/reference/online-store/shoppolicywithdefault) to retrieve policy associated with a store, such as a subscription policy. **New type** * `ShopPolicyWithDefault` object was added **New fields** * `subscriptionPolicy` field was added to `Shop` object *** ## REST Admin API changes Below are all the changes currently introduced in the 2022-01 version of the REST Admin API. ### Metafields In the 2021-07 API version release, the `value_type` property on the [`Metafield` resource](https://shopify.dev/docs/api/admin-rest/latest/resources/metafield) was deprecated. As of the 2022-01 API version release, the `value_type` property has been removed. You should use the `type` field instead of the `value_type` field to access or set the type of a `Metafield` object. For more information, refer to [Managing metafields](https://shopify.dev/docs/apps/build/custom-data/metafields/manage-metafields). **Removed properties** * `value_type` property was removed from `Metafield` resource ### Resource feedback The validation for formatting the resource feedback message field has been simplified. If the feedback state is `requires_action`, then you can send a string message that communicates the action to be taken by the merchant. The string must be a single message up to 100 characters long and must end with a period. For more information, refer to [ResourceFeedback](https://shopify.dev/docs/api/admin-rest/latest/resources/resourcefeedback). ### Scheduled publications webhooks Sales channels can now use webhooks for notifications of scheduled product publishing. Use these webhooks to enable channel app workflows such as product drops and timed sales. **New topics** * `scheduled_product_listings/add` topic was added to [Webhook](https://shopify.dev/docs/api/admin-rest/latest/resources/webhook) resource * `scheduled_product_listings/remove` topic was added to [Webhook](https://shopify.dev/docs/api/admin-rest/latest/resources/webhook) resource * `scheduled_product_listings/update` topic was added to [Webhook](https://shopify.dev/docs/api/admin-rest/latest/resources/webhook) resource *** * [Breaking changes](https://shopify.dev/docs/api/release-notes/previous-versions/2022-01.md#breaking-changes) * [Graph​QL Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2022-01.md#graphql-admin-api-changes) * [Graph​QL Storefront API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2022-01.md#graphql-storefront-api-changes) * [REST Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2022-01.md#rest-admin-api-changes)