Resource
Preorders
API v1 is the older API. It still works, but new integrations should use API v2. Migrating from v1 to v2
The preorder object
Attributes
idstringUnique identifier for the selling plan
namestringDisplay name of the selling plan
internal_namestringInternal name for the selling plan
enabledbooleanWhether the selling plan is enabled
billing_typestringType of billing for the selling plan
One ofexact_timeno_remaining_balancetime_after_checkoutbilling_atstring, nullableExact billing time if billing_type is exact_time
billing_after_n_intervalsinteger, nullableNumber of intervals after checkout to bill
billing_after_interval_typestringType of interval for billing
One ofdaybilling_checkout_charge_amountnumber, nullableFixed amount to charge at checkout
billing_checkout_charge_percentagenumber, nullablePercentage to charge at checkout
billing_checkout_charge_typestringType of checkout charge
One ofpercentagepricebilling_titlestringTitle for billing section
billing_descriptionstringDescription for billing section
delivery_typestringType of delivery for the selling plan
One ofanchorasapexact_timeunknowndelivery_atstring, nullableExact delivery time if delivery_type is exact_time
delivery_after_n_intervalsinteger, nullableNumber of intervals after checkout for delivery
delivery_after_interval_typestringType of interval for delivery
One ofdayinventory_reserve_typestringWhen to reserve inventory
One ofon_saleon_fulfillmentinventory_providerstringInventory provider
One ofstoqshopifypricing_typestringType of pricing discount
One ofpercentagepricefixed_amountno_discountpricing_amountnumber, nullableFixed discount amount
pricing_percentagenumber, nullablePercentage discount
quantity_limit_textstringText to display for quantity limits
preorder_button_textstringText for the preorder button
preorder_button_text_colorstringText color for the preorder button
preorder_button_background_colorstringBackground color for the preorder button
preorder_button_colors_enabledbooleanWhether custom colors are enabled for the preorder button
preorder_discounted_price_enabledbooleanWhether to show discounted price on the preorder button
preorder_button_descriptionstringDescription text for the preorder button
preorder_button_description_background_colorstringBackground color for the preorder button description
preorder_button_description_border_radiusstringBorder radius for the preorder button description
preorder_button_description_quantity_limit_suffixstringSuffix text for quantity limit in button description
preorder_button_description_shipping_text_prefixstringPrefix text for shipping information in button description
preorder_button_description_show_quantity_limitbooleanWhether to show quantity limit in button description
preorder_button_description_show_shippingbooleanWhether to show shipping information in button description
preorder_button_description_text_colorstringText color for the preorder button description
preorder_badge_enabledbooleanWhether preorder badge is enabled
preorder_badge_textstringText for the preorder badge
preorder_badge_text_colorstringText color for the preorder badge
preorder_badge_background_colorstringBackground color for the preorder badge
preorder_shipping_textstringShipping text specific to preorders
shipping_textstringShipping information text
shipping_line_item_property_enabledbooleanWhether to enable shipping line item properties
shipping_applies_to_all_productsbooleanWhether shipping settings apply to all products
discount_textstringDiscount information text
preorder_tagsstringTags to apply to preorder items
product_variants_sourcestringSource of product variants for this selling plan
One ofallcollectioncustomproduct_variants_source_idinteger, nullableID of the source (e.g., collection ID)
selling_plan_product_variants_countintegerNumber of product variants associated with this selling plan
shopify_selling_plan_idinteger, nullableShopify selling plan ID
shopify_selling_plan_group_idinteger, nullableShopify selling plan group ID
use_shopify_selling_planbooleanWhether to use Shopify's native selling plan functionality for this preorder offer. When true, this enables advanced selling plan features in Shopify.
enable_billing_widgetbooleanWhether to display the payment/billing widget on the product page
split_fulfillments_enabledbooleanWhether to enable split fulfillments for preorders. When enabled, preorders will be separted into its own fulfillment order.
split_orders_enabledbooleanWhether to move preorder items into a separate Shopify order after checkout ("Move preorder items to a separate order"). In-stock items stay on the original order. Only one of
split_orders_enabled,split_fulfillments_enabledandhold_fulfillments_enabledcan be on: turning this on turns the others off. It also turns offuse_shopify_selling_plan, so deposits and partial payments aren't available.split_orders_per_variantbooleanOnly applies when
split_orders_enabledis on.false(default): all preorder items from this offer in a checkout move to one new order.true: each preorder variant from this offer moves to its own new order, so products sharing one offer still ship separately.split_orders_per_ship_datebooleanOnly applies when
split_orders_enabledis on.true: preorder items from this offer that ship on the same date (the same batch, or the same shipping text) move to one new order, and each other ship date gets its own. Turning it on turnssplit_orders_per_variantoff, and the other way round.require_preorder_acknowledgementbooleanWhether customers must accept terms and conditions before adding a preorder item to their cart.
preorder_acknowledgement_textstringThe terms and conditions text that customers must acknowledge when require_preorder_acknowledgement is enabled.
allow_mixed_cartbooleanWhether to allow customers to mix preorder items with regular items in the same cart. When false, customers must purchase preorders separately.
mixed_cart_error_messagestringError message displayed to customers when they attempt to mix preorder and regular items in their cart (when allow_mixed_cart is false).
preorder_min_quantityinteger, nullableMinimum quantity required per order for preorder items. When set, customers must purchase at least this many units.
preorder_max_quantityinteger, nullableMaximum quantity allowed per order for preorder items. When set, customers cannot purchase more than this many units.
payment_line_item_property_enabledbooleanWhether to add payment information as a line item property (e.g., "Payment - Pay in full").
custom_line_item_property_textstring, nullableCustom text to add as a line item property for preorder items. Useful for adding custom order notes or metadata.
auto_collect_payment_on_fulfillmentbooleanWhether to automatically collect remaining payment when the order is fulfilled (for partial payment preorders).
hold_fulfillments_enabledbooleanWhether to automatically hold fulfillments for preorder items. When enabled, fulfillments will be held until manually released.
hold_fulfillments_reason_notestringThe reason note displayed when fulfillments are held (when hold_fulfillments_enabled is true).
disable_button_until_acknowledgedbooleanWhether to disable the add to cart button until the customer acknowledges the preorder terms (when require_preorder_acknowledgement is true).
shop_idintegerShop ID this selling plan belongs to
market_idinteger, nullableMarket ID for multi-market stores
created_atstringTimestamp when the selling plan was created
updated_atstringTimestamp when the selling plan was last updated
discarded_atstring, nullableTimestamp when the selling plan was soft deleted
ongoing_jobbooleanWhether there is an ongoing job for this selling plan
shopify_variant_idsarray of integersList of Shopify variant IDs associated with this selling plan
- POST
/external/preorders/{id}/add_variant - GET
/external/preorders - POST
/external/preorders - GET
/external/preorders/{id} - PUT
/external/preorders/{id} - DEL
/external/preorders/{id} - GET
/external/preorders/{id}/product_variants - DEL
/external/preorders/{id}/remove_variant - POST
/external/preorders/send_shipping_update - POST
/external/preorders/{id}/bulk_toggle_inventory_policy - PATCH
/external/preorders/{id}/update_variant_settings
{
"id": "79b44c6c-ebc7-41d4-8a1b-573d7c693454",
"name": "Summer Preorder",
"internal_name": "summer-2026",
"enabled": true,
"billing_type": "time_after_checkout",
"billing_checkout_charge_type": "percentage",
"billing_checkout_charge_percentage": 20,
"delivery_type": "asap",
"pricing_type": "no_discount",
"preorder_button_text": "Preorder now",
"preorder_badge_enabled": true,
"preorder_badge_text": "Preorder",
"selling_plan_product_variants_count": 12,
"shopify_selling_plan_id": 645123456,
"shopify_selling_plan_group_id": 9912345,
"shop_id": 43,
"created_at": "2026-06-20T10:00:00Z",
"updated_at": "2026-06-24T08:30:00Z",
"ongoing_job": false,
"shopify_variant_ids": [
43900910010503,
43900910010999
]
}