A T-shirt may be one product in Shopify, but blue in medium and black in large are separate offers in a comparison-shopping feed. Each has its own barcode, SKU, price, inventory position, and selected options. If those values are copied across variants, the CSV can be syntactically valid while describing the wrong item.
This guide explains how to treat variants as independent, traceable records. The goal is not simply to fill every column. It is to create a stable connection between the exact variant sold in Shopify and the exact offer that shoppers should see on idealo.
Why each variant counts as a separate feed record
A Shopify variant is a concrete combination of option values, such as colour and size. Shopify exposes core offer information—including price, compare-at price, barcode, SKU, availability, image, and selected options—at variant level. You can see that field model directly in Shopify’s official ProductVariant documentation.
For an export, one product with three colours and four sizes can therefore produce twelve offer rows. Every row has to be internally consistent. Its EAN must belong to that particular trade item, its price must be the price of that variant, its URL should make the right selection reachable, and its availability must not accidentally represent the entire product.
The common trap is a well-maintained product title sitting above incomplete variants. The storefront can still appear to work because shoppers actively choose options. A receiving platform only sees the values included in each exported record. If two rows cannot be distinguished, the result can be duplicates, incorrect matching, or offers left outside the most useful comparison context.
EAN, GTIN, and SKU have different jobs
An EAN is a widely used form of the Global Trade Item Number, or GTIN. It identifies a trade item across company boundaries. A stock keeping unit is your internal inventory code. Shopify explicitly separates these concepts: barcode scanners normally read the barcode field, while SKUs support internal storage, search, reporting, fulfilment, and integrations. Shopify’s product details guidance places ISBN, UPC, and GTIN values in the barcode field.
Three practical rules follow:
- Enter a genuine EAN in Shopify’s barcode field, not in the SKU field.
- Give every variant a unique, durable SKU for your internal operations.
- Never invent an EAN for a private-label item. Obtain the correct identifier from the manufacturer or supplier, or license legitimate GTINs for products you manufacture.
A code such as TSHIRT-BLK-M may be an excellent warehouse SKU, but it is not an EAN. Conversely, the EAN should not become a disposable internal article number. A new pack size or a materially different trade item may need a different GTIN; a copy edit to a product title does not justify changing its identifiers.
Keep the entire variant record consistent
A correct EAN cannot repair a contradictory row. Audit the following values as a group:
| Field | Expected for each variant | Typical failure |
|---|---|---|
| Barcode/EAN | belongs to the exact trade item | one code copied across sizes |
| SKU | unique and stable internally | parent-product SKU reused |
| Options | colour, size, or quantity is complete | “Default Title” despite real variants |
| Price | current selling price of this variant | lowest product price copied everywhere |
| Inventory | sellable quantity or availability | total stock across all variants |
| URL | makes the precise variant reachable | always opens the first selection |
| Image | preferably shows the selected item | black image for a white option |
Price and inventory differences make mismatches especially risky. A feed must not combine the price of size S with the barcode of size XL. A shared title is also insufficient: the attributes that distinguish each selection need to remain visible in the title or in dedicated feed fields.
The SKU is a valuable audit key. It is not a universal product identifier, yet Shopify’s official SKU guidance recommends a unique SKU for every product variant. That lets you trace an exported row back to the precise admin record, inventory position, warehouse item, or ERP entry.
Clean the Shopify source data first
Do not start by compensating in feed mappings. Begin with the source catalogue. Choose a manageable group of products with genuine variants and complete that group before scaling the process.
- Open each variant in Shopify and record its option combination, SKU, barcode, price, and available inventory.
- Find blank or duplicated SKUs. Twelve combinations generally require twelve distinguishable SKUs.
- Compare each barcode with the packaging, manufacturer list, or a trusted supplier file. Remove placeholder values such as
1234567890123. - Confirm that prices and images belong to the selected option. Pay special attention to surcharges for sizes, colours, or quantities.
- Open the storefront with that variant selected. The price, image, option state, and cart line should describe the same item.
- Only then repeat the pattern with Shopify’s bulk editor or a controlled CSV import.
Work in small batches. Bulk correction also multiplies mistakes immediately. Preserve the pre-change export and sample products with one, a few, and many variants after every import.
Map product and variant fields deliberately
A feed mapping should distinguish shared product data from offer-specific variant data. Brand and a core description may come from the product. Barcode, SKU, selected options, price, and availability commonly need the current variant. If the exporter supports fallback values, a missing variant EAN must not be silently replaced with an unrelated product-level barcode.
idealo describes clear identifiers as important inputs for catalogue assignment. Its first-party article on complete product data in a feed highlights EAN, manufacturer article number, offer title, and category attributes. Offers that cannot be assigned unambiguously may remain in an open catalogue or be associated with the wrong product.
A practical mapping therefore follows this pattern:
- EAN from the barcode of the current Shopify variant;
- internal offer ID from a stable variant ID or a genuinely unique SKU;
- title from the product title plus the option values that distinguish the variant;
- price and availability from that same current variant only;
- landing-page URL with a stable variant reference where the storefront supports it;
- variant image, with one clearly defined product-image fallback.
Idealo Sync can map Shopify fields into a stable CSV feed URL and define explicit fallbacks. The quality of the source still matters: mapping can transport an existing value, but it cannot infer a legitimate barcode that was never entered.
Run an audit that exposes mismatches
Open the feed preview or CSV and begin with ten products that contain variants. Sort the rows by SKU and then by EAN. Look for four patterns: empty identifiers, repeated EANs, repeated SKUs, and records whose options cannot be recognised from either the title or dedicated attributes.
Next, perform an end-to-end trace for at least five variants:
- Select the feed row by its SKU.
- Compare its EAN with the trusted source record.
- Compare price and availability with Shopify.
- Open the offer URL and identify the active variant.
- Recheck image, selected options, and cart line.
Treat identifiers as text when using spreadsheets. Did the tool remove a leading zero? Did it display a long number in scientific notation? Did an import add spaces or alter letter case in an SKU? These changes can be easy to miss visually. Keeping barcode and SKU columns as text preserves their exact value instead of asking spreadsheet software to interpret them as quantities.
Repeat the audit after the next automatic refresh. A correct preview before publishing is useful, but the real test is that the scheduled feed still contains the same relationships after catalogue and inventory updates.
Handle edge cases without inventing data
Handmade products or unique used items may not have manufacturer-issued GTINs. Do not create plausible-looking numbers. Document the identifiers and attributes you do possess, then confirm with your idealo contact how that category and offer type should be supplied.
Bundles require the same caution. A set made from two separately barcoded products does not automatically inherit the EAN of either component. Do not reuse a component barcode for convenience. Multipacks, changed fill quantities, and market-specific versions may also represent different trade items even when their product photography is similar.
Variants can remain distinct even when their prices happen to match. They still need correct options, availability, landing behaviour, and—where applicable—their own EANs. For digital or non-shipping products, first establish that the target category and your idealo arrangement support the offer at all.
Stability matters after cleanup. Avoid changing SKUs for cosmetic reasons when inventory, orders, warehouse labels, or integrations depend on them. If duplicates must be corrected, keep a temporary old-to-new mapping and inspect the following feed update. That record makes reconciliation possible if another system has not yet received the change.
Checklist before the next feed refresh
- Every genuine variant has a unique internal SKU.
- EANs are stored in the barcode field and come from a trusted source.
- No placeholder or fabricated EAN is exported.
- EAN, options, price, inventory, URL, and image describe the same item.
- The mapping uses variant fields wherever values can differ.
- Fallbacks do not conceal missing identifiers.
- Blank and duplicated EANs and SKUs have been reviewed.
- At least five rows have been traced through to the storefront and cart.
- Identifiers remain text in spreadsheet and CSV workflows.
- The same checks pass after the next automatic feed refresh.
This makes the feed more than formally complete. It becomes traceable: every offer row can be followed from idealo back to the exact Shopify variant that supplies its identity, price, and availability.
Sources
- idealo: complete product data in a feed
- Shopify Help Center: product details
- Shopify Help Center: using SKUs to manage inventory
- Shopify Developer: ProductVariant fields
Ready to create your idealo feed?
Install Idealo Sync and get a stable feed URL for idealo Business.
Start 14-day free trial