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)
Standard Product (Baseline)
Use as a baseline for comparison against edge-case products.
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/product-published-to-rye-channel |
3PL Product (Carrier-Calculated Shipping)
3PL Product (Carrier-Calculated Shipping)
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:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/test-product-3pl |
- 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)
Digital Product
Digital Product
A digital product (e.g., an ebook or software license) that does not require physical shipping.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/digital-product |
| Price | $9.99 |
- A free shipping method is returned on the checkout intent
- Shipping cost is $0
Heavyweight / Oversized Product
Heavyweight / Oversized Product
A product with a very high weight (100 lbs). Tests weight-based shipping rate calculations.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/heavyweight-product |
| Price | $199.99 |
- Shipping rates significantly higher than standard products
Inventory & Availability
Sold Out Product
Sold Out Product
A product with 0 inventory that cannot be purchased.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/sold-out-product |
- Checkout intent fails with
product_out_of_stock
Partially Out-of-Stock Variants
Partially Out-of-Stock Variants
A product where some variants are in stock and others are sold out.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/partial-stock-variants |
| Price | $40.00 |
| Variants | Size: S (in stock), M (in stock), L (sold out), XL (sold out) |
- Selecting an in-stock variant (S or M) succeeds
- Selecting a sold-out variant (L or XL) fails with
product_out_of_stock
Unpublished / Draft Product
Unpublished / Draft Product
A product that is not published to any sales channel (draft or hidden).
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/unpublished-draft |
| Price | $25.00 |
- Product URL returns 404
- Checkout intent fails with
offer_retrieval_failed
Variants & Options
Different Variant Prices
Different Variant Prices
A product where each variant has a different price point.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/test-product-with-different-variant-prices |
- Offer returns the correct price for the selected variant
- Switching variants updates the price, shipping, and tax accordingly
Many Variants (25+)
Many Variants (25+)
A product with many variant combinations (5 colors x 5 sizes = 25 variants) with different prices per variant.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/many-variants |
| Price | $35.00 to $55.00 (varies by variant) |
- All 25 variants available for selection
- Offer reflects the correct price for the selected variant
Pricing & Tax
High-Value Product ($9,999.99)
High-Value Product ($9,999.99)
A product at a very high price point.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/high-value-product |
| Price | $9,999.99 |
- Offer returns
cost.subtotal.amountSubunits=999999 - Checkout completes successfully
Sale / Compare-at Price
Sale / Compare-at Price
A product with a compare-at (original) price showing a discount on the storefront.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/on-sale-compare-at |
| Price | $19.99 (compare-at $39.99) |
- Offer returns the selling price ($19.99), not the compare-at price
Tax-Exempt Product
Tax-Exempt Product
A product that is not subject to sales tax.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/tax-exempt-product |
| Price | $25.00 |
cost.tax.amountSubunits=0- Total = subtotal + shipping (no tax component)
Gift Card
Gift Card
A gift card product with no shipping required and no tax applied.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/test-gift-card |
| Denominations | $25, $50, $100 |
- A free shipping method is returned
- No tax applied
- Fulfillment is digital (email delivery)
Product Data Edge Cases
No Images
No Images
A product with no product images uploaded.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/no-images-product |
| Price | $10.00 |
- Offer returns empty images array
- Checkout completes without errors
Long Title & Special Characters
Long Title & Special Characters
A product with a 255-character title containing unicode, accented characters, and special symbols.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/long-title-special-chars |
| Price | $15.00 |
- Product title returned without truncation or encoding issues
- Checkout completes without errors
Discounts & Promo Codes
Manual Discount Code
Manual Discount Code
A product with a discount code that can be passed via the
Expected behavior:
promoCodes field.| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/discount-test-product |
| Price | $50.00 |
| Discount Code | TESTDISCOUNT (20% off) |
- Pass
promoCodes: ["TESTDISCOUNT"]when creating the checkout intent - Offer
cost.discount.amountSubunitsreflects 20% off - Only one discount code per order
Discount That Crosses Free Shipping Threshold
Discount That Crosses Free Shipping Threshold
A product priced just above the free shipping threshold, with a discount code that drops the subtotal below it.
Expected behavior:
| Field | Value |
|---|---|
| Product URL | https://rye-test-store.myshopify.com/products/free-shipping-threshold |
| Price | $52.00 |
| Discount Code | SAVE10 |
- Without discount: free shipping applies
- With
SAVE10: subtotal drops to $42, free shipping no longer available, shipping cost increases
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
| Card Number | Behavior | Failure Reason |
|---|---|---|
4242 4242 4242 4242 | Payment succeeds | — |
4000 0000 0000 0002 | Generic decline | payment_failed |
4000 0000 0000 9995 | Insufficient funds | payment_failed |
4000 0000 0000 9987 | Lost card | payment_failed |
4000 0000 0000 0069 | Expired card | payment_failed |
4000 0000 0000 0127 | Incorrect CVC | payment_failed |
3D Secure / Authentication Challenges
| Card Number | Behavior |
|---|---|
4000 0027 6000 3184 | Requires 3D Secure authentication |
Malformed Input & Validation Errors
Rye returns synchronous 400 errors for invalid buyer data. No special product needed — just send bad inputs.Address Validation
| Input | Example | Expected |
|---|---|---|
| Invalid state/province | province: "XX" | 400 error |
| Invalid postal code | postalCode: "ZZZZZ" | 400 error |
| Wrong ZIP for state | postalCode: "90210" with province: "NY" | 400 error |
| Invalid country code | country: "ZZ" | 400 error |
| Missing required field | Omit address1 or city | 400 error |
| Emojis in address | address1: "123 Main St 🏠" | 400 error |
Buyer Identity Validation
| Input | Example | Expected |
|---|---|---|
| Invalid email | email: "not-an-email" | 400 error |
| Missing email | Omit email field | 400 error |
| Invalid phone | phone: "abc" | 400 error |
Failure Reason Reference
When a checkout intent fails, the response includes afailureReason with a code and message. Here are the most common failure codes you may encounter during testing:
| Failure Code | Meaning |
|---|---|
product_out_of_stock | Product or selected variant has no available inventory |
offer_retrieval_failed | Could not fetch pricing/shipping from merchant (product not found, unsupported, store issue) |
payment_failed | Payment was declined or could not be processed |
missing_shipping_method | No valid shipping method available for the buyer’s address |
checkout_intent_expired | Intent was not confirmed within 45 minutes of creation |
order_placement_failed | Payment succeeded but order could not be placed at the merchant |
variant_selections_invalid | The variant selections provided don’t match the product’s available options |
variant_selections_required | Product has variants but no variantSelections were provided |
constraint_total_price_exceeded | Order total exceeded the maxTotalPrice constraint |
constraint_shipping_cost_exceeded | Shipping cost exceeded the maxShippingPrice constraint |
form_validation_error | Buyer information was rejected by the merchant’s checkout form |
unsupported_store_no_guest_checkout | Merchant requires customer login — guest checkout is not available |

