Create a product
Creates a product in the specified shop. shop_id must be a shop belonging to the authenticated account.
/productsAuthorizationBearer token (JWT) · headerrequiredapplication/jsonshop_idintegerrequiredID of the shop (required on create)
namestringrequiredProduct name.
slugstringURL slug. Auto-generated from name if omitted.
statusstringvisiblehiddenblockedclassstringProduct class. Defaults to Product.
ProductProductBundleSubscriptionGiftCarddescriptionstringshort_descriptionstringdeliverablebooleanWhether the product requires physical delivery. Defaults to true. Set to false for digital goods, event tickets, subscriptions, etc. Returned as is_deliverable in responses.
tracks_stockbooleanWhether stock is tracked for this product's variants.
has_prices_per_variantbooleanRequired when variants have different prices. Must be true if any variant sets its own regular_price; the API returns 422 otherwise.
has_weights_per_variantbooleanWhether variants carry individual weights.
regular_priceintegerRegular price in cents, applied to all variants (for non-bundle products). Use per-variant regular_price inside variants when has_prices_per_variant is true.
sale_priceintegerSale price in cents, applied to all variants.
sale_price_starts_atstring<date-time>ISO 8601 datetime when the sale price activates.
sale_price_ends_atstring<date-time>ISO 8601 datetime when the sale price expires.
product_type_namestringProduct type name. Created automatically if it doesn't exist.
vendor_namestringVendor name. Created automatically if it doesn't exist.
tagsstring[]Tag names. Replaces all existing tags unless _policies.keep_attributes is set.
cart_quantity_multipleintegerEnforces cart quantities to be multiples of this value.
variant_optionsobjectNames for up to 3 variant option axes (e.g. "Color", "Size").
Show propertiesHide properties
option1stringoption2stringoption3stringvariantsVariantInput[]Variant definitions. By default, variants not present in the array are removed; set _policies.keep_variants: true to preserve them.
Show propertiesHide properties
VariantInputidintegerExisting variant ID. Required when updating a specific variant.
positionintegerskustringoption1stringoption2stringoption3stringregular_priceintegerRegular price in cents. Required per-variant when has_prices_per_variant is true.
sale_priceintegerSale price in cents.
online_stockintegerAvailable online stock units.
weight_in_gramsintegerbarcode_numberstringstatusstringvisiblehiddenavailable_if_no_stockbooleanAllow purchase even when stock reaches zero.
collectionsobject[]Collections to assign the product to. Pass id to reference an existing collection, or title to create/find by name. Replaces all existing collections unless _policies.keep_collections: true.
Show propertiesHide properties
objectidstringCollection ID
titlestringCollection title (used to find or create)
custom_attributesobject[]Custom meta-field attributes.
Show propertiesHide properties
objectnamestringvaluestringfield_typestringstringintsplit_stringtextfield_groupstringrequiredbooleanfilterablebooleanvolume_discount_idintegerAssigns an existing volume discount to this product.
relationsobject[]Related products (e.g. "goes well with"). Replaces all existing relations unless _policies.keep_relations: true.
Show propertiesHide properties
objectidstringRelation ID, when updating an existing relation.
namestringRelation name (e.g. "related", "upsell").
child_idstringRelated product ID or slug.
child_typestringcustom_variant_optionsobjectCustom variant option metadata (id/name/type) for up to 3 option axes, keyed by option1/option2/option3.
bundle_optionsobject[]Configurable bundle option groups (customer picks items from each group). Only applies to class: ProductBundle.
Show propertiesHide properties
objectidintegerBundle option ID, when updating.
namestringmin_countintegermax_countintegermax_per_itemintegerbundle_itemsobject[]Show propertiesHide properties
objectidintegerBundle item ID, when updating.
product_idintegervariant_idintegerRequired unless variant_sku is given.
variant_skustringRequired unless variant_id is given.
unitsintegeradditional_priceintegerAdditional price in cents if this item is selected.
bundle_itemsobject[]Fixed bundle items (always included, no customer choice). Only applies to class: ProductBundle.
Show propertiesHide properties
objectidintegerBundle item ID, when updating.
product_idintegervariant_idintegerRequired unless variant_sku is given.
variant_skustringRequired unless variant_id is given.
unitsinteger_policiesobjectControl update behaviour. All flags default to false (destructive replace). Set to true to preserve existing data when the corresponding field is not included in the request.
Show propertiesHide properties
keep_variantsbooleanKeep existing variants not listed in variants.
keep_collectionsbooleanKeep existing collection assignments not listed in collections.
keep_relationsbooleanKeep existing product relations not listed in relations.
keep_attributesbooleanKeep existing custom attributes not listed in custom_attributes.
ensure_uniquestringIf set, the product is not created when another product already has the same value for this field (returns 409 instead).
titleslugProduct created
_linksHalLinksidintegernamestringProduct display name.
slugstringclass_namestringstatusstringvisiblehiddendescriptionstringshort_descriptionstringis_bundlebooleanis_deliverablebooleanhas_optionsbooleantagsstring[]currency_codestringbundle_price_modestringpricesumbundle_discountnumberregular_pricenumberIn cents
pricenumberEffective price in cents
sale_pricenumberIn cents
sale_price_starts_atstring<date-time>sale_price_ends_atstring<date-time>has_multiple_pricesbooleandiscount_percentagenumbersafety_stockintegeravailablebooleanstockintegerCurrent stock
online_stockintegerall_stockintegerStock across all locations
vendorstringvariant_optionsobject[]Show propertiesHide properties
objectnamestringvaluestringglobal_tagsstring[]stocksobjectstocks_per_locationobjectcart_max_quantityintegercart_quantity_multipleintegerlist_pricesobject[]Show propertiesHide properties
objectprice_list_idintegerpricenumbercreated_onstring<date-time>updated_onstring<date-time>Not authorized to create products in this shop
Validation error or missing shop_id
_embeddedobjectShow propertiesHide properties
errorsobject[]Show propertiesHide properties
objectfieldstringmessagesstring[]