What’s new at Rye?
December 2023
requestProductByURL
mutation for more robust and error-resilient product requests.November 2023
updateBuyerIdentity
calls for more accurate identity management.refundedLineItems
in Return types, offering more detailed refund information.CartExpiredException
for carts older than 10 days, ensuring timely cart management.October 2023
September 2023
productsByID
s field returned an error, if requested products do not exist.numlookupapi
August 2023
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 withOrderFailedReasonCode
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.Cancelled
, PARTIALLY_CANCELLED
, and CANCELLATION_IN_PROGRESS
statuses to OrderStatus
enum.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.CART_IS_EMPTY
value to SubmitCartResultErrorCode
enumCART_IS_EMPTY
errorCartSubmitInput.token
field is now optional. It can be omitted for Amazon and Shopify non-integrated stores if you use a monthly invoice payment flow.CartSubmitInput.experimentalPromoCodes
field that allows setting promo codes per store. See details in the field descriptionJuly 2023
requiredActons
field when querying checkoutByCartId
. More information could be found on checkoutByCartID
Int cannot represent non-integer value thrown
when requesting AmazonPrice
or AmazonVideo
June 2023
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.).productByID
, productsByVendorV2
or productsByDomainV2
queries.INVALID_BUYER_IDENTITY_INFORMATION
value added to OfferErrorCode
AmazonOfferError
/ShopifyOfferError
is returned with INVALID_BUYER_IDENTITY_INFORMATION
OfferErrorCode
.productsByVendor
has been deprecated. Use productsByVendorV2
instead.productsByDomain
has been deprecated. Use productsByDomainV2
instead.shopifyOffer
has been deprecated. ShopifyOffer
can be retrieved by requesting offer field from CartResponse
object returned by Cart-API queries and mutations.amazonOffer
has been deprecated. AmazonOffer
can be retrieved by requesting offer field from CartResponse
object returned by Cart-API queries and mutationsMay 2023
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.environmentToken
. This query is used by the RyePay package and should not be used by developers directly.AmazonVariant
that represents ASIN of the variant.BuyerIdentityInput
has become optional.generateJWT: () => Promise<string>
to RyePay::init
method. It allows providing a function that generates JWT for authorization and can be passed instead of apiKeyorderByID
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.ShopifyVariant
type.ShopifyVariant
type is resolved. Now, if there is no specific image for the variant, the field is resolved to the product image.order
(deprecated now) endpoint, which allows users to retrieve a specific order by paymentIntentID
.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.April 2023
updateCartSelectedShippingOptions
mutation. It allows setting selected shipping option ID per store, and it can be retrieved by querying offer.selectedShippingMethod
.CartSubmitInput.selectedShippingOptions
is now optional. If not provided, the shipping options set via updateCartSelectedShippingOptions
will be used.SubmitStoreResult
was deprecatedIntroduced 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.
AmazonStore
, SubmitStoreResult
, and ShopifyStore
types
requestId
string field is introducedisSubmitted
boolean flag is introducedisSubmitted
boolean flagsubmitCart
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