--- title: 2021-07 release notes description: Update your app from API version 2021-04 to 2021-07. api_name: release-notes source_url: html: https://shopify.dev/docs/api/release-notes/previous-versions/2021-07 md: https://shopify.dev/docs/api/release-notes/previous-versions/2021-07.md --- ExpandOn this page * [Breaking changes](https://shopify.dev/docs/api/release-notes/previous-versions/2021-07#breaking-changes) * [Graph​QL Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2021-07#graphql-admin-api-changes) * [Graph​QL Storefront API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2021-07#graphql-storefront-api-changes) * [Graph​QL Payments Apps API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2021-07#graphql-payments-apps-api-changes) * [REST Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2021-07#rest-admin-api-changes) # 2021-07 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 | | - | - | | July 1, 2021 | July 1, 2022 | The 2021-07 release includes the Bulk Mutations API, a new API that provides improvements to pushing large amounts of data into Shopify. Also released as a part of 2021-07: Product Variant Bulk APIs, the Files API, expanded support for metafields on the Storefront API, and improvements to international pricing. The 2021-07 release includes many of the features announced at Shopify Unite this year. For more information, refer to the [All of the Announcements From Shopify Unite 2021](https://www.shopify.com/partners/blog/shopify-unite-announcements-2021?itcat=partner_blog\&itterm=shopify_api_release_july_2021) blog post. **What’s new in 2021-07** The following features were added in version 2021-07 of Shopify's APIs: * We've made updates to [metafields](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/metafields) that improve their utility for apps and merchants. Metafield storefront visibility is now supported on articles, blogs, collections, customers, orders, pages, and the shop resource. * The [Bulk Mutation APIs](https://shopify.dev/docs/api/usage/bulk-operations/imports) remove the need to manage your client-side throttle, and allow apps to asynchronously run mutations to import large amounts of data into Shopify stores. * The [Product Variant Bulk APIs](https://shopify.dev/docs/api/admin-graphql/latest/objects/productvariant) include four new mutations that allow clients to explicitly specify variant behavior when they push data into Shopify, rather than the error-prone implicit model. * The Files APIs [`stagedUploadCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/stageduploadscreate) mutation, which previously only supported staging product media, now allows you to stage other types of files for upload. These staged files can now also be included as a part of a [fileCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/FileCreate) mutation, which uploads the files to Shopify and adds them to the Files page in the Shopify admin. * You can now use the Storefront API to query international prices for products and orders, and explicitly set the checkout context. This feature works in conjunction with `priceLists`, and allows you to surface international pricing in a contextually relevant way to buyers. *** ## 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. ### Deprecated connection on Shop object As of API version 2021-07, the `uploadedImages` connection on the [GraphQL Admin Shop object type](https://shopify.dev/docs/api/admin-graphql/latest/objects/shop) has been deprecated. The connection previously represented all images that were uploaded to a shop. You can use the `uploadedImagesbyIds` field instead to retrieve a list of images by ID that have been uploaded to the shop. ### Deprecated field on Shop resource As of API version 2021-07, the `force_ssl` field on the [REST Shop resource](https://shopify.dev/docs/api/admin-rest/latest/resources/shop) has been removed. Previously, this field had indicated whether requests made to the REST Shop resource connected over SSL using HTTPS. All requests now use HTTPS, so `force_ssl` is always `true`. ### Deprecated field on Metafield object As of API version 2021-07, the `value_type` field on the [Metafield](https://shopify.dev/docs/api/admin-graphql/latest/objects/metafield) object was deprecated. 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 about this transition, refer to [this changelog entry](https://shopify.dev/changelog/online-store-2-0-new-metafields-type-system-and-dynamic-sources). ### Deprecated property on Metafield resource As of API version 2021-07, the `value_type` property on the [Metafield](https://shopify.dev/docs/api/admin-rest/latest/resources/metafield) resource was deprecated. You should use the `type` property instead of the `value_type` property to access or set the type of a `Metafield` resource. For more information about this transition, refer to [this changelog entry](https://shopify.dev/changelog/online-store-2-0-new-metafields-type-system-and-dynamic-sources). ### Explicit user permissions In previous API versions, the `permissions` property in the [REST User resource](https://shopify.dev/docs/api/admin-rest/latest/resources/user) returned either `full` or a specific list of permissions. The `full` permission represents that the user has the same permissions as the [store owner](https://help.shopify.com/en/manual/your-account/staff-accounts/staff-permissions#store-owner-permissions), with some exceptions, such as modifying the account billing or deleting staff accounts. As of API version 2021-07, the complete list of explicit permissions that a user with the `full` permission has access to is returned in the `permissions` property. ### Empty selling plan groups Prior to API version 2021-07, a selling plan group could exist without any selling plans. Apps could create a selling plan group with selling plans, and subsequently delete all selling plans in the group. This was problematic because empty selling plan groups could result in undesirable behavior on the product page and a broken cart experience. As of API version 2021-07, we've added a validation to the [`sellingPlanGroupUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingplangroupupdate) mutation that prevents the presence of empty selling plan groups. ### Pricing policies for selling plans Apps update the pricing policies associated with a selling plan using the [`sellingPlanGroupUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingplangroupupdate) mutation. Prior to API version 2021-07, two key behaviors existed: * Apps could apply partial updates to a pricing policy by supplying only the updated pricing policy in the mutation's input. For example, if you had a selling plan with an existing fixed pricing policy, and you wanted to add a recurring pricing policy, then you could supply only the recurring pricing policy as the input to the `sellingPlanGroupUpdate` mutation. * There wasn't a clear way to delete a pricing policy associated with a selling plan. As of API version 2021-07, apps must explicitly provide the end state of all pricing policies in the `sellingPlanGroupUpdate` mutation's input. For example, if you have a selling plan with an existing fixed pricing policy, and you want to add a recurring pricing policy, then you need to supply both the existing and new pricing policy in the mutation's input. To delete all pricing policies from a selling plan, you need to supply an empty array of pricing policies (`pricingPolicies: []`) in the `sellingPlanGroupUpdate` mutation's input. *** ## Graph​QL Admin API changes Below are all the changes currently introduced in the 2021-07 version of the GraphQL Admin API. ### Deprecated connection on Shop object type #### Breaking As of API version 2021-07, the `uploadedImages` connection on the [GraphQL Admin Shop object type](https://shopify.dev/docs/api/admin-graphql/latest/objects/shop) has been deprecated. The connection previously represented all images that were uploaded to a shop. You can use the `uploadedImagesbyIds` field instead to retrieve a list of images by ID that have been uploaded to the shop. ### Empty selling plan groups #### Breaking Prior to API version 2021-07, a selling plan group could exist without any selling plans. Apps could create a selling plan group with selling plans, and subsequently delete all selling plans in the group. This was problematic because empty selling plan groups could result in undesirable behavior on the product page and a broken cart experience. As of API version 2021-07, we've added a validation to the [`sellingPlanGroupUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingplangroupupdate) mutation that prevents the presence of empty selling plan groups. ### Pricing policies for selling plans #### Breaking Apps update the pricing policies associated with a selling plan using the [`sellingPlanGroupUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingplangroupupdate) mutation. Prior to API version 2021-07, two key behaviors existed: * Apps could apply partial updates to a pricing policy by supplying only the updated pricing policy in the mutation's input. For example, if you had a selling plan with an existing fixed pricing policy, and you wanted to add a recurring pricing policy, then you could supply only the recurring pricing policy as the input to the `sellingPlanGroupUpdate` mutation. * There wasn't a clear way to delete a pricing policy associated with a selling plan. As of API version 2021-07, apps must explicitly provide the end state of all pricing policies in the `sellingPlanGroupUpdate` mutation's input. For example, if you have a selling plan with an existing fixed pricing policy, and you want to add a recurring pricing policy, then you need to supply both the existing and new pricing policy in the mutation's input. To delete all pricing policies from a selling plan, you need to supply an empty array of pricing policies (`pricingPolicies: []`) in the `sellingPlanGroupUpdate` mutation's input. ### Deprecated field on Metafield object As of API version 2021-07, the `value_type` field on the [Metafield](https://shopify.dev/docs/api/admin-graphql/latest/objects/metafield) object has been deprecated. You should use the `type` field instead of the `value_type` field to access or set the type of a [Metafield](https://shopify.dev/docs/apps/build/custom-data/metafields/list-of-data-types) object. For more information about this transition, refer to [this changelog entry](https://shopify.dev/changelog/online-store-2-0-new-metafields-type-system-and-dynamic-sources). You can set the `type` field of the `Metafield` object using any of the new values introduced below. **New fields** * `type` field was added to object `Metafield` **New values** * `single_line_text_field` value was added to object `Metafield` * `multi_line_text_field` value was added to object `Metafield` * `page_reference` value was added to object `Metafield` * `product_reference` value was added to object `Metafield` * `variant_reference` value was added to object `Metafield` * `file_reference` value was added to object `Metafield` * `number_integer` value was added to object `Metafield` * `number_decimal` value was added to object `Metafield` * `date` value was added to object `Metafield` * `date_time` value was added to object `Metafield` * `url` value was added to object `Metafield` * `json` value was added to object `Metafield` * `boolean` value was added to object `Metafield` * `color` value was added to object `Metafield` * `weight` value was added to object `Metafield` * `volume` value was added to object `Metafield` * `dimension` value was added to object `Metafield` * `url` value was added to object `Metafield` ### Duties and international taxes As of API version 2021-07, you can use the [GraphQL Admin API](https://shopify.dev/docs/api/admin-graphql) to query whether the duties and international taxes associated with an order were charged at checkout. **New fields** * `international_duties` field was added to object `FulfillmentOrder` **New types** * `FulfillmentOrderInternationalDuties` object was added ### Estimated taxes on orders As of API version 2021-07, you can use the `estimatedTaxes` field on the [Order object](https://shopify.dev/docs/api/admin-graphql/latest/objects/order) to determine whether taxes on an order are estimated. The field returns `false` when taxes on an order are finalized and aren't subject to any changes. **New field** * `estimatedTaxes` field was added to `Order` object ### Configure payment gateways to work with subscriptions As of API version 2021-07, you can use the [customerPaymentMethodRemoteCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerpaymentmethodremotecreditcardcreate) mutation to associate a Shopify customer ID with an Authorize.net customer profile ID and payment method ID. For more information on configuring payment gateways to work with subscriptions, refer to [Migrating existing subscription contracts to Shopify](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/migrate-to-subscriptions-api/migrate-subscription-contracts). **New types** * `customerPaymentMethodRemoteCreate` mutation was added * `CustomerPaymentMethodRemoteUserError` was added ### Manage images and generic files As of API version 2021-07, you can use the [GraphQL Admin API](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/file) to create, update, and delete generic files and images using the Files API. This functionality allows merchants to reuse files for different apps. **New mutations** * `FileCreate` mutation was added * `FileDelete` mutation was added * `FileUpdate` mutation was added **New types** * `FileError` object was added * `GenericFile` object was added * `FileCreateInput` input object was added * `FileUpdateInput` input object was added * `File` interface was added * `FileContentType` enum was added * `FileErrorCode` enum was added * `file_storage_limit_exceeded` error code was added to enum `MediaErrorCode` * `generic_file_download_failure` error code was added to enum `MediaErrorCode` * `generic_file_invalid_size` error code was added to enum `MediaErrorCode` * `invalid_image_aspect_ratio` error code was added to enum `MediaErrorCode` * `invalid_image_resolution` error code was added to enum `MediaErrorCode` **New errors** * `FilesUserError` error was added **New fields** * `FileStatus` field was added to `Media` interface **New connections** * `file_saved_searches` connection added to object `QueryRoot` * `files` connection added to object `QueryRoot` **New values** * `FILE` value was added to enum `UploadResource` * `File` value was added to enum `SearchResultType` ### Bulk import data asynchronously As of API version 2021-07, you can use the [GraphQL Admin API](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkoperationrunmutation) to bulk import large volumes of data asychronously. By running a bulk mutation operation, you can avoid manually running a GraphQL mutation multiple times and managing a client-side throttle. To learn more about bulk importing data asynchronously, refer to [Bulk import data with the GraphQL Admin API](https://shopify.dev/docs/api/usage/bulk-operations/imports). **New mutation** * `bulkOperationRunMutation` mutation was added **New types** * `BulkOperationType` enum was added * `BulkMutationUserError` type was added * `currentBulkOperation` connection was added to object `QueryRoot` * `BULK_MUTATION_VARIABLES` value was added to enum `StagedUploadTargetGenerateUploadResource` ### Product variants As of API version 2021-07, you can create, update, and delete multiple product variants at once using 3 new product variant mutations. Previously, multiple product variants could be managed at once only through the `productCreate` and `productUpdate` mutations, which required additional input to avoid overwriting existing variants. **New mutations** * `productVariantsBulkCreate` mutation was added * `productVariantsBulkUpdate` mutation was added * `productVariantsBulkDelete` mutation was added * `productVariantsBulkReorder` mutation was added **New types** * `ProductVariantsBulkInput` input object was added * `ProductVariantsBulkCreateUserError` was added * `ProductVariantsBulkUpdateUserError` was added * `ProductVariantsBulkDeleteUserError` was added ### Manage webhooks with Google Cloud Pub/Sub As of API version 2021-07, you can use the GraphQL Admin API and Google Cloud Pub/Sub to manage webhook subscriptions. **New mutations** * `pubSubWebhookSubscriptionCreate` mutation was added * `pubSubWebhookSubscriptionUpdate` mutation was added **New input** * `pubSubWebhookSubscriptionInput` was added **New type** * `WebhookPubSubEndpoint` object was added * `PubSubWebhookSubscriptionInput` was added * `PubSubWebhookSubscriptionCreatePayload` was added * `PubSubWebhookSubscriptionUpdatePayload` was added ### Manage URL redirects on an online store As of API version 2021-07, you can use the [GraphQL Admin API](https://shopify.dev/docs/api/admin-graphql/latest/objects/urlredirect) to manage redirects on an online store. URL redirects can be used to redirect traffic from one web page to another. For example, if you delete a product, then you can set up a URL redirect so that when customers enter the URL for that product, they are redirected to a similar product on an online store. **New mutations** * `UrlRedirectBulkDeleteAll` mutation was added * `UrlRedirectBulkDeleteByIds` mutation was added * `UrlRedirectBulkDeleteBySavedSearch` mutation was added * `UrlRedirectBulkDeleteBySearch` mutation was added * `UrlRedirectCreate` mutation was added * `UrlRedirectDelete` mutation was added * `UrlRedirectImportCreate` mutation was added * `UrlRedirectImportSubmit` mutation was added * `UrlRedirectUpdate` mutation was added **New types** * `UrlRedirect` object was added * `UrlRedirectImport` object was added * `UrlRedirectImportPreview` object was added * `UrlRedirectInput` input object was added * `UrlRedirectImportUserError` type was added * `UrlRedirectUserError` type was added **New fields** * `urlRedirect` field was added to object `QueryRoot` * `urlRedirectSavedSearches` field was added to object `QueryRoot` * `urlRedirectImport` field was added to object `QueryRoot` **New connections** * `urlRedirects` connection was added to object `QueryRoot` **New values** * `urlRedirects` value was added to enum `ResourceType` * `urlRedirects` value was added to enum `ResourceExportableType` * `urlRedirect` value was added to enum `SearchResultType` ### New code for unrecognized currencies As of API version 2021-07, the GraphQL Admin API returns `XXX` in response to an unrecognized currency code. `XXX` is the ISO code used to denote transactions that involve no currency. In mutations, a `CurrencyCode` input value of `XXX` is invalid. `XXX` can only be returned as a result and not as an input value. This change prevents order pages from breaking if payments include a currency code that's not in the list of [valid values for the `CurrencyCode` object](https://shopify.dev/docs/api/admin-graphql/latest/enums/currencycode). ### Expose writable tax line attributes As of API version 2021-07, you can use the `channelLiable` field on the [TaxLine](https://shopify.dev/docs/api/admin-graphql/latest/objects/taxline) object to determine whether the channel that submitted the tax line is liable for remitting. A value of `null` indicates unknown liability for the tax line. **New field** * `channelLiable` field was added to the `TaxLine` object *** ## Graph​QL Storefront API changes Below are all the changes currently introduced in the 2021-07 version of the GraphQL Storefront API. ### Local pickup As of API version 2021-07, you can display whether a product is in stock and available for local pickup using the [Storefront API](https://shopify.dev/docs/api/storefront). Customers can then pick up their online orders at a retail store, curbside, or any location that a merchant chooses. For more information, refer to [Support local pickup on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/local-pickup). **New types** * `Location` object was added * `StoreAvailability` object was added * `locations` connection was added to `QueryRoot` * `preferredLocationId` argument was added to `InContext` directive ### Subscription products As of API version 2021-07, you can use the [Storefront API](https://shopify.dev/docs/api/storefront) to retrieve subscription products on a storefront. Subscription products can be accessed from the `sellingPlans` object. To learn how to retrieve information about selling plans, including price adjustments and selling plan allocations, and creating a cart with a subscription line item, refer to [Manage subscription products on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/subscriptions). **New types** * `SellingPlanAllocation` object was added * `SellingPlanPriceAdjustment` object was added * `SellingPlanAllocationPriceAdjustment` object was added * `SellingPlanFixedAmountPriceAdjustment` object was added * `SellingPlanPercentagePriceAdjustment` object was added * `SellingPlanGroupOption` object was added * `SellingPlanGroup` object was added * `SellingPlan` object was added * `sellingPlanAllocations` connection was added to `ProductVariant` object * `requiresSellingPlan` field was added to `Product` object * `SellingPlanPriceAdjustmentValue` union was added ### Checkout queue tokens As of API version 2021-07, the Storefront API can be used for checkouts during a flash sale. The [checkoutCreate](https://shopify.dev/docs/api/storefront/reference/checkouts/checkoutcreate) mutation now accepts an optional `queueToken` argument, which allows apps to bypass the checkout throttle after they have completed polling. Previously, when a checkout queue was in use, apps calling the `checkoutCreate` mutation received a `Throttled` response. There was no way for apps to bypass the queue, and the only option was to wait for the queue to disengage before retrying the request again. The queue now engages as soon as the rate per second threshold is crossed. Note The `queueToken` argument is available only to selected stores. **New types** * `queueToken` argument was added to `CheckoutCreate` mutation * `queueToken` return field was added to `CheckoutCreate` mutation * `THROTTLED_DURING_CHECKOUT` error was added to `CheckoutUserError` * `EXPIRED_QUEUE_TOKEN` error was added to `CheckoutUserError` * `INVALID_QUEUE_TOKEN` error was added to `CheckoutUserError` ### Query available countries and currencies As of API version 2021-07, you can use the Storefront API to retrieve a list of [available countries and corresponding currencies](https://shopify.dev/docs/api/storefront/reference/common-objects/localization) for a store. **New types** * `Localization` object was added * `Country` object was added * `Currency` object was added ### Support international pricing on storefronts The prices that display in a storefront can vary based on the customer's location. As of API version 2021-07, you can use the Storefront API to [query international prices](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) for products and orders, and explicitly set the context of a checkout. International pricing is determined based on the customer's shipping address and is enforced at checkout. Note International pricing replaces the deprecated presentment currencies functionality. **New types** * `inContext` directive was added * `CheckoutBuyerIdentity` object was added * `CheckoutBuyerIdentityInput` input object was added * `INVALID_COUNTRY_AND_CURRENCY` error code was added to `CheckoutUserError` **New fields** * `buyerIdentity` field was added to `Checkout` object * `buyerIdentity` input argument was added to `checkoutCreate` mutation ### Support for metafields on more resources As of API version 2021-07, the GraphQL Storefront API [supports metafields on additional resources](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/metafields#step-2-retrieve-metafields). You can retrieve metafields with the Storefront API to access additional information from different types of resources. Previously, metafields were only supported on the `Product` and `ProductVariant` resources. **New types** The following types now also support metafields: * `Article` object was added to `MetafieldParentResource` union * `Blog` object was added to `MetafieldParentResource` union * `Collection` object was added to `MetafieldParentResource` union * `Customer` object was added to `MetafieldParentResource` union * `Order` object was added to `MetafieldParentResource` union * `Page` object was added to `MetafieldParentResource` union * `Shop` object was added to `MetafieldParentResource` union ### New code for unrecognized currencies As of API version 2021-07, the Storefront API returns `XXX` in response to an unrecognized currency code. `XXX` is the ISO code used to denote transactions that involve no currency. In mutations, a `CurrencyCode` input value of `XXX` is invalid. `XXX` can only be returned as a result and not as an input value. This change prevents order pages from breaking if payments include a currency code that's not in the list of [valid values for the `CurrencyCode` object](https://shopify.dev/docs/api/storefront/reference/common-objects/currencycode). *** ## Graph​QL Payments Apps API changes The [Payments Apps API](https://shopify.dev/docs/api/payments-apps/) is a new API that is available as of the 2021-07 release. The Payments Apps API lets you programmatically access data related to your payments app configuration. ### Capture session As of API version 2021-07, you can use new mutations to reject or resolve an open capture session. **New type** * `CaptureSession` object was added **New mutations** * `captureSessionReject` mutation was added * `captureSessionResolve` mutation was added ### Void session As of API version 2021-07, you can use new mutations to reject or resolve a void session. **New type** * `VoidSession` object was added **New mutations** * `voidSessionReject` mutation was added * `voidSessionResolve` mutation was added ### Authorized payment session expiry As of API version 2021-07, a new argument `authorizationExpiresAt` can be included with the `paymentSessionResolve` mutation. **New field** * `authorizationExpiresAt` field was added to `PaymentSession` object **New argument** * `authorizationExpiresAt` argument was added to `paymentSessionResolve` mutation *** ## REST Admin API changes Below are all the changes currently introduced in the 2021-07 version of the REST Admin API. ### Deprecated field on Shop resource #### Breaking As of API version 2021-07, the `force_ssl` field on the [REST Shop resource](https://shopify.dev/docs/api/admin-rest/latest/resources/shop) has been removed. Previously, this field had indicated whether requests made to the REST Shop resource connected over SSL using HTTPS. All requests now use HTTPS, so `force_ssl` is always `true`. **Removed fields** * `force_ssl` field was removed from `Shop` resource * `force_ssl` field was removed from `shop/update` webhook topic * `force_ssl` field was removed from `app/uninstalled` webhook topic ### Explicit user permissions #### Breaking As of API version 2021-07, the complete list of explicit permissions that a user with the `full` permission has access to is returned in the `permissions` property of the [REST User resource](https://shopify.dev/docs/api/admin-rest/latest/resources/user). **New values** The following new values have also been added to the `permissions` property: * `billing_charges`: The user can view and export billing charges. * `billing_invoices_view`: The user can view billing invoices. * `billing_payment_methods_view`: The user can view billing payment methods. * `staff_management_activation`: The user can activate or deactivate staff in the store. * `staff_management_create`: The user can add staff to the store. * `staff_management_delete`: The user can delete staff from the store. ### Deprecated property on Metafield resource As of API version 2021-07, the `value_type` property on the [Metafield](https://shopify.dev/docs/api/admin-rest/latest/resources/metafield) resource has been deprecated. You should use the `type` property instead of the `value_type` property to access or set the type of a [Metafield](https://shopify.dev/docs/apps/build/custom-data/metafields/list-of-data-types) resource. For more information about this transition, refer to [this changelog entry](https://shopify.dev/changelog/online-store-2-0-new-metafields-type-system-and-dynamic-sources). You can set the `type` property of the `Metafield` resource using any of the new values introduced below. **New properties** * `type` property was added to resource `Metafield` **New values** * `single_line_text_field` value was added to resource `Metafield` * `multi_line_text_field` value was added to resource `Metafield` * `page_reference` value was added to resource `Metafield` * `product_reference` value was added to resource `Metafield` * `variant_reference` value was added to resource `Metafield` * `file_reference` value was added to resource `Metafield` * `number_integer` value was added to resource `Metafield` * `number_decimal` value was added to resource `Metafield` * `date` value was added to resource `Metafield` * `date_time` value was added to resource `Metafield` * `url` value was added to resource `Metafield` * `json` value was added to resource `Metafield` * `boolean` value was added to resource `Metafield` * `color` value was added to resource `Metafield` * `weight` value was added to resource `Metafield` * `volume` value was added to resource `Metafield` * `dimension` value was added to resource `Metafield` * `url` value was added to resource `Metafield` ### Duties and international taxes As of API version 2021-07, you can use the [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-rest/latest/resources/fulfillmentorder) resource to retrieve information about whether the duties and international taxes associated with an order were charged at checkout. **New properties** * `international_duties` property was added to resource `FulfillmentOrder` ### Estimated taxes on orders As of API version 2021-07, you can use the `estimated_taxes` property on the [REST Order resource](https://shopify.dev/docs/api/admin-rest/latest/resources/order) to determine whether taxes on an order are estimated. The property returns `false` when taxes on an order are finalized and aren't subject to any changes. **New property** * `estimated_taxes` property was added to `Order` resource ### Expose writable tax line attributes As of API version 2021-07, you can use the `channel_liable` property on the [Order](https://shopify.dev/docs/api/admin-rest/latest/resources/order) and [Abandoned checkouts](https://shopify.dev/docs/api/admin-rest/latest/resources/abandoned-checkouts) resources to determine whether the channel that submitted the tax line is liable for remitting. A value of `null` indicates unknown liability for the tax line. **New properties** * `channel_liable` property was added to Order resource * `channel_liable` property was added to Abandoned checkouts resource *** * [Breaking changes](https://shopify.dev/docs/api/release-notes/previous-versions/2021-07#breaking-changes) * [Graph​QL Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2021-07#graphql-admin-api-changes) * [Graph​QL Storefront API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2021-07#graphql-storefront-api-changes) * [Graph​QL Payments Apps API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2021-07#graphql-payments-apps-api-changes) * [REST Admin API changes](https://shopify.dev/docs/api/release-notes/previous-versions/2021-07#rest-admin-api-changes)