Caution
Note: The JS Buy SDK is deprecated as of January, 2025. It will no longer be updated or maintained by Shopify past that point. A final major version will be released in January 2025 to remove the SDK's dependency on the deprecated Checkout APIs, replacing them with Cart APIs. Updating to this new version will allow the SDK to continue to function for most use cases.
If you are using the JS Buy SDK, you have two options:
-
Recommended Option: switch to the Storefront API Client
- The Storefront API Client manages the API's authentication information and provides various methods that enable devs to interact with the API. This is the preferred and more future-proof solution. See this migration guide to help you transition.
-
Stopgap Option: Upgrade to JS Buy SDK V3 (coming soon)
- This allows you to maintain your current setup with minimal changes for use cases that are supported by the Cart API. A migration guide with details on supported use cases will be available soon. If you choose this option, we still recommend that you switch to the Storefront API Client in the future.
Critical Deadline: July 1st, 2025. You must implement one of these changes by this date, or customers will not be able to complete purchases. Please choose the option that best suits your needs and timelines.
- Bumps the SDK to use Storefront API version
2024-04
. For more information, see the Release Notes.
- Bumps the SDK to use Storefront API version
2023-10
. For more information, see the Release Notes.
- Update
schema.json
to match Storefront API version2023-07
schema.
- Bumps the SDK to use Storefront API version
2023-07
. For more information, see the Release Notes.
- Bumps the SDK to use Storefront API version
2023-04
. For more information, see the Release Notes. - Security patch handlebars version vulnerability
- Bumps the SDK to use Storefront API version
2023-01
. For more information, see the Release Notes.
- Removed the common
MoneyFragment
and replaced all usage of the fragment with the correspondingMoneyV2
fields. This fixes an error that was occuring whenclient.fetchNextPage()
is called
- Bumps the SDK to use Storefront API version
2022-10
. For more information, see the Release Notes. - NOTABLE API DATA CHANGE: Storefront API version
2022-10
includes the removal of theMoney
scalar and all fields that had previously returned a Money scalar will now return a MoneyV2 object. Affected fields include:- AppliedGiftCard fields:
amountUsed
,balance
- Checkout fields:
paymentDue
,totalTax
,subtotalPrice
,totalPrice
- ShippingRate fields:
price
- Order fields:
subtotalPrice
,totalShippingPrice
,totalTax
,totalPrice
,totalRefunded
- ProductVariant fields:
price
,compareAtPrice
- AppliedGiftCard fields:
- Bumps the SDK to use Storefront API version
2022-07
. For more information, see the Release Notes. - Alias all instances of
Image.src
to useImage.url
.
- Bumps the SDK to use Storefront API version
2022-04
. For more information, see the Release Notes. - Add
product.fetchRecommendations
function that allows for fetching recommended products for a product.
- Bumps the SDK to use Storefront API version
2022-01
. For more information, see the Release Notes. - Replace deprecated
description
withtitle
inScriptDiscountApplication
typedvalue
object in discount application fragment - Remove deprecated
currencyCode
from shop fragment - Remove deprecated
presentmentPrices
from product variant fragment
- Bumps the SDK to use Storefront API version
2021-10
. For more information, see the Release Notes. - Add image
width
andheight
fields to theProductFragment
andVariantFragment
.
- Bumps the SDK to use Storefront API version
2021-07
. For more information, see the Release Notes.
- Bumps the SDK to use Storefront API version
2020-07
. For more information, see the Release Notes.
- Bumps the SDK to use Storefront API version
2020-04
. For more information, see the Release Notes.
- Update code of conduct report link
- Update the client to always set the
accept-language
header for all requests and will use*
as the default value when a language config is not set during client initialization
- Update
handleCheckoutMutation
to invoke proper schema level error when no data/model is provided
- Bumps the SDK to use Storefront API version
2020-01
. For more information, see the Release Notes. - Adds a language option to the client config to support retrieving translated content from the Storefront API. For more information, see the Multi-Language API Guide.
- Adds
compareAtPrice
to thepresentmentPrices
object in the variant fragment - Adds
unitPrice
andunitPriceMeasurement
fields to the variant fragment - Updates
graphql-js-client
to fix an error when callingfetchNextPage
for products in thefetchWithProducts
andfetchAllWithProducts
collection queries
- Updates some description strings in the Storefront API schema version
2019-10
. - Adds an optional param to
collection.fetchWithProducts
for specifying the number of products to return. - Adds
priceV2
to theshippingLine
object in the checkout fragment - Update the contributing guide to recommend using
yarn
instead ofnpm
.
- Bumps the SDK to use Storefront API version
2019-10
. For more information, see the Release Notes.
- Fixed error caused by getting additional images and variants information when product is null
- Update header configuration
- Add the following fields to the queries:
- VariantFrament:
priceV2
,compareAtPriceV2
- DiscountApplicationFragment:
value
- VariantFrament:
- Includes code changes missed in previous version (2.6.0) to send all requests to API version 2019-07.
- Introduces API Versioning! Starting with this release, each release will be tied to a new API version. Learn more about versioning here.
- Exposes the following information in the graphql schema:
- Queryroot field
publicApiVersions
- list of supported API versions - Checkout field
requiresShipping
- CheckoutErrorCode:
BAD_DOMAIN
,INVALID_FOR_COUNTRY
,GIFT_CARD_DEPLETED
,TOTAL_PRICE_MISMATCH
- Queryroot field
- Add the following fields to the queries:
- AppliedGiftCard:
presentmentAmountUsed
. - CheckoutFragment:
paymentDueV2
,totalTaxV2
,subtotalPriceV2
,totalPriceV2
. - order:
subtotalPriceV2
,totalShippingPriceV2
,totalTaxV2
,totalPriceV2
,totalRefundedV2
. - VariantFrament:
presentmentPrices
. - ShopQuery:
paymentSettings
(that includesenabledPresentmentCurrencies
)
- AppliedGiftCard:
- Bump the graphql schema to pull the latest fields:
- Applied Gift Card field
presentmentAmountUsed
- Payment field
amountV2
- Product field
presentmentPriceRanges
- Transaction field
amountV2
- Applied Gift Card field
- Duplicate of v2.4.0
- Bump the graphql schema to pull the latest fields into the unoptimized version:
- ProductVariant fields:
metafield
,metafields
- Product fields:
metafield
,metafields
- QueryRoot field:
productRecommendations
- ProductVariant fields:
- Add
handle
to checkout's line item's variant's product.
- Add support for the
checkoutGiftCardsAppend
andcheckoutGiftCardRemoveV2
mutations, which allows clients to add and remove gift cards from a checkout.
- Bump the graphql schema to pull the latest fields into the unoptimized version:
- Order fields:
subtotalPriceV2
,totalPriceV2
,totalRefundedV2
,totalShippingPriceV2
,totalTaxV2
- ProductVariant fields:
compareAtPriceV2
,priceV2
- Checkout fields:
paymentDueV2
,subtotalPriceV2
,totalPriceV2
,totalTaxV2
- AppliedGiftCard fields:
balanceV2
,amountUsedV2
- Shop field:
presentmentCurrencyCode
- ShippingRate field:
priceV2
- Order fields:
These fields are all of type MoneyV2
and contain both an amount and a currency.
- Bump the graphql-js-client package, which fixes support for IE browsers
- Add currency support for Bermudian Dollar
- Add seo field to article which exposes SEO title and description information
- Deprecate
status
field on transaction and replaces it withstatusV2
, which supports a null status. - Add
lineItemsSubtotalPrice
field to checkout. It contains the sum of all line items prices before any tax, shipping or discount applications.
- Bump the graphql-js-client package, which includes support for falling back when a GraphQL interface object can't be translated.
- Add support for the
checkoutShippingAddressUpdateV2
mutation, which allows clients to update the shipping address of a checkout. - Add the
checkoutUserErrors
field to all of the checkout mutation fragments that did not previously contain this.
- Build an unoptimized release version that contains all fields that are available in the Storefront API.
- Fetch
collections
,products
,collectionByHandle
andproductByHandle
from the QueryRoot instead of from the Shop object. - Return
checkoutUserErrors
instead ofuserErrors
when present. This will add an extra field called code. - Expose
checkoutLineItemsReplace
mutation (to replace deprecatedcheckoutLineItemsAdd
,checkoutLineItemsRemove
, andcheckoutLineItemsUpdate
mutations). - Remove unused fixtures
- Added availableForSale field to Product query fragment
- Removed tags field from Product query fragment
- Add field aliasing to deprecated fields in affected query fragments:
- availableForSale on VariantFragment
- countryCode on CheckoutFragment
- src on CollectionFragment and VariantFragment
- Updates deprecated Storefront API methods used for some checkout mutations.
- Specifies pageInfo for discountApplications connection
- Updates schema.json
- Support checkoutDiscountCodeRemove mutation
- Exposes discounts on the checkout Object
- Allows a null checkout response from CheckoutResource.fetch (#563)
- Support checkoutEmailUpdate mutation
- Adds IE9 support for
atob
andbtoa
using polyfills via #52 - Cleans up some deployment noise (#54). Thanks @tessalt