Release 2026.08-R4

Updated September 28, 20262 min read

Released August 11, 2026.

Stock availability on delivery options

When you send inventory_check, the Storefront delivery options endpoints now tell you how much of the request each option can deliver. Each option now carries an availability field on both endpoints.

Cart delivery options (POST /storefront/delivery-options):

  • Each option carries availability: FULL when every cart item is fully in stock, PARTIAL when some are not, and UNKNOWN when Carriyo couldn't read stock.
  • Every option now lists all cart items. Each item carries its own availability (FULL, PARTIAL, NONE or UNKNOWN) and a fulfillable_quantity. The item's quantity is always the quantity you requested.
  • Each option is one delivery. Every location in its fulfillment_locations can deliver the option's available items on its own. Carriyo no longer combines stock from several locations to cover a cart.
  • Options that cover the whole cart come first, then the rest by how many items they can deliver.

Product delivery options (POST /storefront/product-delivery-options): each row carries availability for its location, judged against the requested quantity.

A missing availability means Carriyo did not check stock, for example when inventory_check is off. UNKNOWN never means out of stock. If Carriyo can't read stock, or can't finish an option after pricing it, it still returns the option, marked UNKNOWN.

Delivery option variations

By default, cart delivery options return one entry per option: the location group that can deliver the most items. Send include_variations: true to get every useful alternative instead. Each variation is its own entry, with the same code, its own items and its own fulfillment_locations. Carriyo leaves out a variation when another one delivers everything it does and more.

Item-level product category condition

Delivery options take a new item_product_categories condition with includes and excludes lists. It works per item, unlike product_categories, which accepts or rejects the whole cart.

  • On cart delivery options, items the condition rejects are marked NONE for that option, and the option reads PARTIAL. If no cart item passes, the option is not returned.
  • On product delivery options, a product the condition rejects doesn't get that option.

Categories match case-insensitively. A value cannot appear in both includes and excludes.

Fixes

  • Shared stock across cart lines: when a cart has several lines for the same product, delivery options no longer count a location's full stock for each line.
  • Catalog categories on cart lines: a line item without a category now takes its category from the product catalog before allocation rules run on the cart.