Learn how to create multiple Wix store products with customizable options like colors, sizes, or other variants in a single bulk operation, allowing efficient creation of product catalogs.
API ENDPOINT: https://www.wixapis.com/stores/v3/bulk/products-with-inventory/create
MEDIA FORMAT - MUST INCLUDE BOTH SECTIONS:
VARIANTS: The recipe shows ALL possible variant combinations (Cartesian product) with 3 visible variants per product. Each product has 6 total variants: 3 visible + 3 hidden for future use.
❌ COMMON FAILURES:
itemsInfo section in media (media won't work)?w=400&h=400&fit=crop&crop=center"optionRenderType": "SWATCH_CHOICES" and the appropriate choice type: "choiceType": "ONE_COLOR", while also providing the relevant colorCode. This must be done similar to the example above.CRITICAL: Bulk Request StructureThe bulk create API requires a different endpoint and request structure:
https://www.wixapis.com/stores/v3/bulk/products-with-inventory/create{"products": [array of product objects]}CRITICAL: Description FormatIf you include a description, it MUST use Wix's rich text nodes structure, NOT a plain string. Plain strings will cause "Expected an object" API errors.
WRONG: "description": "Your text here" CORRECT:
CRITICAL: Media FormatTo add product images, use the media object with main image and optional additional items.YOU MUST add an image to each product, with a url from the web which should be relevant to the product.
CRITICAL: Options StructureEach option MUST include:
optionRenderType: "TEXT_CHOICES" for text-based choiceschoicesSettings: Object containing the choices arraychoicesSettings.choices: Array with at least one choicechoiceType: "CHOICE_TEXT" and nameCRITICAL: Variants Structure
optionChoiceNames structure with optionName, choiceName, and renderTypeprice.actualPrice.amount with string valuesinventoryItem.quantityvisible: true for variants you want customers to see, visible: false for variants you want to keep hidden but available for future useThis occurs when using a plain string instead of the rich text nodes structure. Always use the nodes format shown above.
Ensure both main and itemsInfo sections are included in the media object, and URLs include the required parameters.
Verify that each option has the correct optionRenderType and choicesSettings structure.
Each variant must include choices for ALL options defined on the product.
Color options must use optionRenderType: "SWATCH_CHOICES" and choiceType: "ONE_COLOR" with a valid colorCode.
If part of the bulk request fails, extract the failed products and retry them separately using the same format.