Create Product
Products
Create Product
Create a new product
POST
Create Product
Create Product
Creates a new product in the store.Request
Body Parameters
The product title
Product description (supports HTML)
URL-safe handle. Auto-generated from title if not provided
Product vendor/brand name
Product type or category
Primary category ID (legacy single-category FK). Creating a product
with this field also writes a
ProductCategories join row, so the
product appears on the corresponding collection page without needing
categoryIds. Send this on its own for single-category products.Array of category IDs for the many-to-many
ProductCategories join.
This is the relation /collections/{handle} listings and the
collection.products Liquid drop read from. The first entry (or
the one matching categoryId) is stored as the primary association.
Use this when a product belongs to multiple categories. If omitted,
the backend falls back to [categoryId].Product status:
active, draft, archivedArray of tags for organizing and filtering products
Product options (e.g., Size, Color). Max 3 options per product.
Array of product variants. At least one variant is required.
Array of product images
Response
Whether the request succeeded
The created product object (same structure as Get Product response)
Example Response
Error Codes
| Code | Description |
|---|---|
UNAUTHORIZED | Invalid or missing access token |
FORBIDDEN | App doesn’t have write_products scope |
VALIDATION_ERROR | Invalid request body (see error details) |
DUPLICATE_HANDLE | A product with this handle already exists |