Skip to main content
All test products below are on rye-test-store.myshopify.com. Use Stripe test cards for payment.
rye-protocol.myshopify.com is also available for production test orders. It uses a live payment gateway — payments are not captured and funds are automatically returned to the card after ~1 week.

Shipping & Delivery

Standard Product (Baseline)

Use as a baseline for comparison against edge-case products.
A product fulfilled via third-party logistics (3PL). Shipping rates are calculated dynamically by the carrier based on the buyer’s shipping address, rather than being flat rates set by the merchant.Expected behavior:
  • Shipping rates vary based on the buyer’s address
  • Applying a discount code may cause the available shipping options to change (e.g., if the discounted total drops below a free shipping threshold)
A digital product (e.g., an ebook or software license) that does not require physical shipping.Expected behavior:
  • A free shipping method is returned on the checkout intent
  • Shipping cost is $0
A product with a very high weight (100 lbs). Tests weight-based shipping rate calculations.Expected behavior:
  • Shipping rates significantly higher than standard products
Use with the shipment advance test helper to simulate a delayed shipment.Expected behavior:
  • The shipment advance helper follows ordered -> shipped -> out_for_delivery -> delayed -> delivered
Use with the shipment advance test helper to simulate a canceled shipment.Expected behavior:
  • The shipment advance helper follows ordered -> canceled

Inventory & Availability

A product with 0 inventory that cannot be purchased.Expected behavior:
  • Checkout intent fails with product_out_of_stock
A product where some variants are in stock and others are sold out.Expected behavior:
  • Selecting an in-stock variant (S or M) succeeds
  • Selecting a sold-out variant (L or XL) fails with product_out_of_stock
A product that is not published to any sales channel (draft or hidden).Expected behavior:
  • Product URL returns 404
  • Checkout intent fails with offer_retrieval_failed

Variants & Options

A product where each variant has a different price point.Expected behavior:
  • Offer returns the correct price for the selected variant
  • Switching variants updates the price, shipping, and tax accordingly
A product with many variant combinations (5 colors x 5 sizes = 25 variants) with different prices per variant.Expected behavior:
  • All 25 variants available for selection
  • Offer reflects the correct price for the selected variant

Pricing & Tax

A product at a very high price point.Expected behavior:
  • Offer returns cost.subtotal.amountSubunits = 999999
  • Checkout completes successfully
A product with a compare-at (original) price showing a discount on the storefront.Expected behavior:
  • Offer returns the selling price ($19.99), not the compare-at price
A product that is not subject to sales tax.Expected behavior:
  • cost.tax.amountSubunits = 0
  • Total = subtotal + shipping (no tax component)
A gift card product with no shipping required and no tax applied.Expected behavior:
  • A free shipping method is returned
  • No tax applied
  • Fulfillment is digital (email delivery)

Product Data Edge Cases

A product with no product images uploaded.Expected behavior:
  • Offer returns empty images array
  • Checkout completes without errors
A product with a 255-character title containing unicode, accented characters, and special symbols.Expected behavior:
  • Product title returned without truncation or encoding issues
  • Checkout completes without errors

Discounts & Promo Codes

A product with a discount code that can be passed via the promoCodes field.Expected behavior:
  • Pass promoCodes: ["TESTDISCOUNT"] when creating the checkout intent
  • Offer cost.discount.amountSubunits reflects 20% off
  • Only one discount code per order
A product priced just above the free shipping threshold, with a discount code that drops the subtotal below it.Expected behavior:
  • Without discount: free shipping applies
  • With SAVE10: subtotal drops to $42, free shipping no longer available, shipping cost increases
Applying a discount can change the available shipping methods if the discounted subtotal crosses a free shipping threshold.

Commissions

Commissions are configured at the store level, not per product. Any product on the test stores earns a commission when the order completes:
Use any product on either store. For a cheap end-to-end test:Expected behavior:
  • When the intent reaches awaiting_confirmation, the offer includes a projected commission field with the amount you would earn ({ amount, estimate: true })
  • After the order completes, the commission is recorded and returned by GET /api/v1/commissions?checkoutIntentId=<id>
Commissions must be enabled on your developer account. If offer.commission is missing on these stores, or no commission appears after checkout, reach out to us to enable it.

Checkout Failures

A product that always fails during checkout submission at the merchant. Useful for exercising post-payment failure handling.Expected behavior:
  • Offer retrieval and checkout intent creation succeed
  • Checkout intent fails with reason order_placement_failed

Simulating Payment Failures

No special product needed — use Stripe’s test card numbers to simulate different payment outcomes with any product above.

Card Decline Scenarios

Use any future expiration date and any 3-digit CVC.

3D Secure / Authentication Challenges

3D Secure authentication is not currently supported. If 3DS is triggered by the store, the checkout intent will fail with payment_failed.

Malformed Input & Validation Errors

Rye returns synchronous 400 errors for invalid buyer data. No special product needed — just send bad inputs.

Address Validation

Buyer Identity Validation


Failure Reason Reference

When a checkout intent fails, the response includes a failureReason with a code and message. Here are the most common failure codes you may encounter during testing: