Every platform has its own idea of what a product CSV should look like. Hyperzod's import format uses a specific column layout: a set of PRODUCT.* columns for the product itself, followed by OPTION1.*, OPTION2.* columns that describe variant and add-on groups. Knowing this structure helps you understand what CSV Pilot generates — and why the file imports cleanly where hand-built files fail.
The product columns
Each product is one row. The product-level columns, in the order Hyperzod expects them:
| Column | Purpose |
|---|---|
PRODUCT.ID | Leave blank on create — Hyperzod generates it. Fill only when updating an existing product |
PRODUCT.NAME | Product name (required) |
PRODUCT.DESCRIPTION | Optional product copy |
PRODUCT.SKU | Unique stock code — case-insensitive unique; duplicates fail validation |
PRODUCT.PRICE.COMPARE | Optional "was" price — must be higher than the selling price or Hyperzod drops it |
PRODUCT.MIN.MAX.QUANTITY | Optional order limits as min,max |
PRODUCT.PRICE.SELLING | Selling price (required) |
PRODUCT.PRICE.COST | Cost price (required — use 0 if unknown) |
PRODUCT.TAX_PERCENT | Tax percentage as a plain number (10 for 10%) |
PRODUCT.STATUS | active or inactive (case-insensitive) |
PRODUCT.INVENTORY | Stock quantity — empty means inventory tracking is off |
PRODUCT.LABELS | Labels like Best Seller |
PRODUCT.CATEGORY | Category (required) |
PRODUCT.TAGS | Comma-separated tags |
PRODUCT.IMAGES | Public HTTPS image URLs |
Name, selling price, cost price and category are required — the rest can stay empty. Empty is different from zero: an empty product inventory cell means "not tracked", while a number means "track this many".
SKUs are unique case-insensitively: SKU-001 and sku-001 are the same code and fail validation. There are no variant-level SKU columns — a SKU belongs to the whole product.
The option columns
Variants and add-ons live in option groups. Each group repeats a set of columns with a number suffix:
OPTION1.NAME— the group name, like "Size" or "Choose Your Toppings"OPTION1.TYPE—single(pick one) ormultiple(pick many)OPTION1.ENABLE_RANGE—true/false; when false,OPTION1.RANGEstays0,0OPTION1.REQUIRED—trueif the customer must chooseOPTION1.VIEW—listorcarddisplay styleOPTION1.VARIANTS— the choices, each in the formname, price, cost, inventory, description, image
The number suffix is part of the column name — OPTION.NAME without a number is not a valid header.
A Size group with Small, Medium and Large looks like:
Small,0.00,0.00,,10 inch,
Medium,100.00,0.00,,12 inch,
Large,200.00,0.00,,14 inch,
The inventory field inside a variant is only written when the count is greater than zero — an empty field keeps the per-variant quantity stepper off rather than claiming zero stock.
Multiple groups stack: OPTION2.NAME for a toppings group, OPTION3.NAME for a crust choice, and so on.
The delta pricing rule
The most important concept in the template is delta pricing. The product's selling price covers the default variant. Every other variant stores only the difference. If the base price is ₹299 and Medium costs ₹100 more, Medium's variant price is 100.00 — not 399.00.
This keeps prices exact and bulk updates simple: change the base price once and every variant follows automatically. It is also how conversions preserve prices — a Shopify variant at ₹399 with a ₹299 base becomes a ₹100 delta, so the customer pays the same ₹399 either way.
Why building this by hand is painful
The template looks simple until you reach the VARIANTS cell. Each variant is a comma-separated mini-record inside one cell, and descriptions that contain commas must be quoted. Nested options add another layer of structure. One missing quote shifts every field that follows — the kind of error that fails an import on row 400 without telling you why.
CSV Pilot generates this structure for you. You describe sizes and toppings in plain language; the tool writes the correct OPTION*.VARIANTS cells, quotes descriptions safely, and validates the result before export. If you want to learn the format deeply, export a small generated file and open it in a text editor — the structure is exactly what this guide describes, and reading one generated file teaches the format faster than any documentation.