> Agent-readable docs index: /llms.txt. Download /docs.zip to grep all markdown files locally.

---
title: "Changelog"
description: "What's new at Rye?"
sidebarTitle: "2023"
---

<AccordionGroup>
  <Accordion title="December 2023">
    ### Fixes

    * Addressed a critical Amazon bug causing price discrepancies between cart offer and cartlines prices, ensuring consistency across shopping experiences.
    * Exposed inventory counts for integrated Shopify product variants, providing better inventory management.
    * Fixed staging environment issues, stabilizing the testing environment for reliable development.
    * Enhanced GraphQL error extensions formatting for clearer and more explicit error handling.
    * Improved error handling in `requestProductByURL` mutation for more robust and error-resilient product requests.
    * Addressed an issue where the absence of offerIDs would default to Amazon's algorithm for selecting an offerID, ensuring consistent offer selection.
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="November 2023">
    ### Enhancements

    * Added an Error code for attempts to cancel a failed or cancelled order, enhancing order management and error reporting.
    * Improved the buyer identity validation process in `updateBuyerIdentity` calls for more accurate identity management.
    * Implemented functionality to fetch the best Amazon offer when a featured offer is not available, optimizing the offer selection process.
    * Replaced refund amount with `refundedLineItems` in Return types, offering more detailed refund information.
    * Added currency code to return line items, enhancing currency management and consistency.
    * Included currency code in Return type for improved currency handling in return processes.
    * Implemented `CartExpiredException` for carts older than 10 days, ensuring timely cart management.
    * Removed hardcoded shipping options for Amazon business orders, allowing for more flexible shipping management.
    * Enable 3D-S on Amazon and all Shopify stores.
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="October 2023">
    ### Enhancements

    * Introducing our official Amazon Business integration
    * Added support for bringing your own Amazon account to Rye

    ### Fixes

    * Update list of countries that are supported by Shopify
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="September 2023">
    ### Fixes

    * Fixed an error, where sometimes users could get an internal error, when fetching product reviews.
    * Fixed an error, where the `productsByID`s field returned an error, if requested products do not exist.
    * Fixed checkout, when the total is 0.
    * Fixed product availability detection for Amazon store
    * Fixed issues with stores that require currency conversion
    * Improved phone validation: the phone numbers are now verified with `numlookupapi`
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="August 2023">
    ### API Changes

    * Added new `OrderFailedReasonCode` value for `OrderFailedWebhook`: `SHIPPING_ADDRESS_BLACKLISTED`. Sometimes we can not fulfill an order, because the retailer added the address to blacklist. In this case you will receive a webhook with
    * Added new `OrderFailedReasonCode` value for `OrderFailedWebhook`: `SHIPPING_ADDRESS_UNAVAILABLE`. Sometimes we can not fulfill an order, because the item can not be shipped to the selected address. For example, you can not ship hazardous materials to PO boxes, or addresses in Hawaii.
    * Added new [cancelOrder](https://docs.rye.com/reference/cancelorderstatus) endpoint. Supports canceling amazon orders. Shopify support will come at a later date.
    * Added `Cancelled`, `PARTIALLY_CANCELLED`, and `CANCELLATION_IN_PROGRESS` statuses to `OrderStatus` enum.
    * Added `Cancelled`, `MIXED`, and `CANCELLATION_IN_PROGRESS` statuses to `CheckoutStatus` enum.
    * `PARTIALLY_SUCCEEDED` status in `CheckoutStatus` enum will be deprecated in the next release. Begin using the new `MIXED` status and update uses of `PARTIALLY_SUCCEEDED` status to use `MIXED` before then.
    * Added `CART_IS_EMPTY` value to `SubmitCartResultErrorCode` enum
    * An attempt to submit a cart with no stores or with stores with no items now leads to `CART_IS_EMPTY` error
    * `CartSubmitInput.token` field is now optional. It can be omitted for Amazon and Shopify non-integrated stores if you use a monthly invoice payment flow.
    * Added a new `CartSubmitInput.experimentalPromoCodes` field that allows setting promo codes per store. See details in the field description
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="July 2023">
    ### API Changes

    * Added ability to checkout with 3D-S challenge for integrated shopify stores. In order to get 3D-S link, you need to ask for `requiredActons` field when querying `checkoutByCartId`. More information could be found on `checkoutByCartID`
    * Added phone validation for a billing address. The validation is triggered upon cart submission.

    ### Fixes

    * Fixed a bug, where currencies subtotal, taxes, and shipping in offers could be in different currencies.
    * Fixed tax calculations
    * Fixed `Int cannot represent non-integer value thrown` when requesting `AmazonPrice` or `AmazonVideo`
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="June 2023">
    ## 30th June, 2023

    ### API Changes

    * `AmazonOffer.selectedShippingMethod/ShopifyOffer.selectedShippingMethod` are reset to null if the store in the cart has been changed (e.g. a new product has been added, the product has been removed/updated, etc.).

    ### Fixes

    * Fixed "Invalid currency code : NONE" error that appeared under certain circumstances when querying products using `productByID`, `productsByVendorV2` or `productsByDomainV2` queries.

    ***

    ## 23rd June, 2023

    ### API Changes

    * A new `INVALID_BUYER_IDENTITY_INFORMATION` value added to `OfferErrorCode`
    * Improved address validation logic when requesting offer details. Now, if provided postal code does not match the provided province code a corresponding `AmazonOfferError`/`ShopifyOfferError` is returned with `INVALID_BUYER_IDENTITY_INFORMATION` `OfferErrorCode`.

    ***

    ## 2nd June, 2023

    ### Deprecation

    * Query `productsByVendor` has been deprecated. Use `productsByVendorV2` instead.
    * Query `productsByDomain` has been deprecated. Use `productsByDomainV2` instead.
    * Query `shopifyOffer` has been deprecated. `ShopifyOffer` can be retrieved by requesting offer field from `CartResponse` object returned by Cart-API queries and mutations.
    * Query `amazonOffer` has been deprecated. `AmazonOffer` can be retrieved by requesting offer field from `CartResponse` object returned by Cart-API queries and mutations
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="May 2023">
    ## 26th May, 2023

    ### API Changes

    * Added a root query field `shopifyApp`: `ShopifyApp!` which fetches details about the Rye's Shopify App. Currently, it includes the single field `installationLink(storeCanonicalDomain: String!)`: `ShopifyAppInstallationLink!` that crafts a Rye App installation link for the provided Shopify store.
    * Added a root query field `environmentToken`. This query is used by the RyePay package and should not be used by developers directly.
    * Added id field to `AmazonVariant` that represents ASIN of the variant.
    * postalCode of `BuyerIdentityInput` has become optional.
    * Added a new `generateJWT: () => Promise<string>` to `RyePay::init` method. It allows providing a function that generates JWT for authorization and can be passed instead of apiKey

    ### Fixes

    * Fixed cannot read properties undefined (reading 'currency') exception occurred when querying Cart:cost field for an already submitted cart.

    ***

    ## 11th May, 2023

    ### API Changes

    * `orderByID` endpoint, which is actual substitution of deprecated "order" endpoint. Returns an `Order` object by id.
    * `checkoutByCartID` retrieves a checkout based on a specific cart ID. This feature facilitates checkout management and provides a convenient way to retrieve order details.
    * Added new name field on `ShopifyVariant` type.
    * Changed the way the image field on `ShopifyVariant` type is resolved. Now, if there is no specific image for the variant, the field is resolved to the product image.

    ### Fixes

    * `order` (deprecated now) endpoint, which allows users to retrieve a specific order by `paymentIntentID`.

    ***

    ## 4th May, 2023

    ### API Changes

    * Added `isEmailMarketingAllowed` fields to `updateCartBuyerIdentity` and `createCart` mutations inputs - this boolean flag defines if the buyer explicitly gave their consent to get marketing messages and offers by email. This email subscription will be fulfilled for each Shopify store in the cart right after successful checkout.
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="April 2023">
    ## 27th April, 2023

    ### API Changes

    * Added `updateCartSelectedShippingOptions` mutation. It allows setting selected shipping option ID per store, and it can be retrieved by querying `offer.selectedShippingMethod`.
    * Additionally, `CartSubmitInput.selectedShippingOptions` is now optional. If not provided, the shipping options set via `updateCartSelectedShippingOptions` will be used.

    ### Deprecations

    * The status field in `SubmitStoreResult` was deprecated

    ***

    ## 20th April, 2023

    ### API Changes

    * Introduced new error codes:
      * `CartErrorCode.CART_MODIFICATION_FORBIDDEN`
      * `StoreErrorCode.STORE_MODIFICATION_FORBIDDEN`
      * `SubmitStoreResultErrorCode.ALREADY_SUBMITTED`
      * `SubmitCartResultErrorCode.ALREADY_SUBMITTED`

    * Modification and submission of an already submitted cart is now forbidden.

    * Cart modification: A cart error with `CART_MODIFICATION_FORBIDDEN` code is returned when attempting to modify a cart with all stores submitted. A store error with `STORE_MODIFICATION_FORBIDDEN` code is returned when attempting to modify a cart with a particular store submitted.

    * Cart submission: A cart error with `ALREADY_SUBMITTED` code is returned when attempting to submit a cart with all stores submitted. A store error with `ALREADY_SUBMITTED` code is returned when attempting to submit a cart with a particular store submitted.

    * `integratedShopifyStore` query was added, it allows getting paginated shopify store collections\`

    * `shopifyCollection` query was added , it allows getting shopify store collection metadata, including title and description as well as products inside the collection. The products list can be paginated too.

    * Added a city validation for buyer identity and billing address - it checks if the city exists for a provided country and returns `BUYER_IDENTITY_INVALID_CITY` error code if the city was not found.

    ***

    ## 13th April, 2023

    ### API Changes

    * For `AmazonStore`, `SubmitStoreResult`, and `ShopifyStore` types
      * `requestId` string field is introduced
      * `isSubmitted` boolean flag is introduced
    * The requestId filed is no longer an indicator of a successfully submitted cart store, it’s created as soon as the store is added to the cart and doesn’t change anymore, to figure out if the cart store order was submitted or not you can use the `isSubmitted` boolean flag

    ### Fixes

    * Previously when `submitCart` was called and the mutation result is lost, there was no way to figure our the requestId, now this problem is solved by pre-generated requestId
  </Accordion>
</AccordionGroup>


---

*Powered by [holocron.so](https://holocron.so)*
