CSV Ingestion
CSV file structure for catalog ingestion
To guarantee the successful ingestion of your catalog, please adhere to the file requirements specified below.
This CSV format is based on Google Merchant Center Product Data Specification, with additional fields required for Envive's product retrieval and review collection.
CSV Header Row
id,product_review_id,handle,title,description,link,image_link,availability,price,sale_price,brand,gtin,mpn,condition,age_group,item_group_id,google_product_category,tags,bundle_products,additional_image_links,custom_label_0CSV Schema
id
String
Yes
Unique product identifier
"12345"
handle
String
Yes
Product slug/handle used in your store's URL structure. For a product at shop.com/products/summer-tshirt, the handle is "summer-tshirt". This is critical for product page retrieval and matching user events to products.
"summer-tshirt"
title
String
Yes
Product title/name
"Envive T-Shirt"
description
String
Yes
Product description
"This is a sample product description"
link
String
Yes
Direct link to product page
"https://example.com/products/summer-tshirt"
image_link
URL
Yes
Primary product image URL
"https://example.com/images/sample.jpg"
availability
"in_stock", "out_of_stock", "preorder", "backorder"
Yes
Product availability status
"in_stock"
price
String
Yes
Product price with currency
"19.99 USD"
sale_price
String
No
Sale price with currency
"15.99 USD"
brand
String
Yes
Product brand name
"Envive"
gtin
String
No
Global Trade Item Number
"1234567890123"
mpn
String
No
Manufacturer Part Number
"MPN123"
condition
"new", "refurbished", "used"
No
Product condition, default "new"
"new"
age_group
"newborn", "infant", "toddler", "kids", "adult"
No
Target age group
"adult"
item_group_id
String
No
Group identifier for product variants (e.g., different sizes/colors of the same product). Use this to group variants that share the same base product.
"group123"
google_product_category
String (kebab-case, comma-separated)
Yes
Collections/categories for Product Listing Page (PLP) retrieval. When users browse shop.com/collections/summer-collection, Envive uses this field to identify relevant products. Provide as a comma-separated list of collection handles/IDs (should be in kebab-case) that match your store's URL structure.
"summer-collection,new-arrivals,mens-clothing"
tags
String (kebab-case, comma-separated)
No
Product tags for enhanced filtering and categorization. Useful for search refinement and product discovery. (kebab-case as a convention)
"organic-cotton,eco-friendly,best-seller"
product_review_id
String
No
Identifier used for review collection. This should match the ID used in your review system to link reviews to products. Please note, you must include this field if you wish Envive to utilize your reviews in any way. Envive recommends that you exclude this field ONLY if you do not have reviews for a given product.
"12345" or "group123"
bundle_products
String (comma-separated)
No
List of component product handles that make up a bundle product. Use the product handles (from the `handle` column) for the bundled items.
"summer-tshirt,ceramic-mug,classic-cap"
additional_image_links
String (comma-separated URLs)
No
Additional product image URLs
"https://example.com/images/img1.jpg,https://example.com/images/img2.jpg"
custom_label_0
String
No
Custom label field
"custom_value"
Key Field Explanations
Product Review ID (product_review_id)
product_review_id)The product_review_id field specifies which identifier Envive should use when collecting and associating reviews with products. This field provides flexibility for different review architectures.
Why this matters: Without this dedicated field, Envive cannot reliably determine which ID to use for review collection, especially when merchants have both id and item_group_id columns with different values.
Product Handle (handle)
handle)This is the most critical field for product retrieval. It must match the slug/handle used in your product URLs.
Example URL patterns:
Shopify:
https://yourstore.com/products/summer-tshirt→ handle:summer-tshirtCustom store:
https://shop.com/p/organic-cotton-tee→ handle:organic-cotton-tee
Envive uses this field to match user events (page views, clicks) to specific products in your catalog. When a user visits a product page, the handle is extracted from the URL and used to retrieve the correct product data.
Important: The handle must exactly match what appears in your URLs. If your URL uses dashes, underscores, or specific casing, replicate that exactly in this field.
Collections/Categories (google_product_category)
google_product_category)This field enables Product Listing Page (PLP) retrieval and is essential for collection-based recommendations.
How it works: When a user visits https://yourstore.com/collections/summer-collection, Envive identifies all products with summer-collection in their google_product_category field.
Best practices:
Include all relevant collections/categories as a comma-separated list
Use the exact collection handles from your URLs (should be in kebab-case)
Example:
"summer-collection,new-arrivals,mens-clothing,sale-items"
Why this matters: PLPs are critical touchpoints in the shopping journey. This field allows Envive to:
Provide contextual recommendations based on the collection being browsed
Show relevant products when users explore specific categories
Enable collection-specific analytics and personalization
Tags (tags)
tags)While optional, tags significantly improve product filtering and discovery. They provide additional metadata that can be used for search refinement and recommendation logic.
Example use cases:
Product attributes:
"organic,cotton,breathable,moisture-wicking"Marketing features:
"bestseller,editor-pick,limited-edition,new-arrival"Seasonal markers:
"spring-2024,holiday-gift,summer-sale"Use cases:
"casual-wear,office-appropriate,athletic,formal"
Format: Comma-separated list of tag values, using the same handles/slugs that appear in your filter URLs if applicable (should be in kebab-case)
Additional Images (additional_image_links)
additional_image_links)Provide multiple additional product images as a comma-separated list of fully qualified URLs.
Example: "https://example.com/images/img1.jpg,https://example.com/images/img2.jpg,https://example.com/images/img3.jpg"
Notes:
image_linkis the primary image; these are secondary.Use consistent aspect ratios across images.
Avoid tracking parameters when possible.
Product variants using item_group_id
item_group_idUse one row per product variant and use item_group_id to reference the parent product it belongs to using parent product's handle, not its id. A product variant row should keep its own handle empty. If your reviews are product-level, keep product_review_id empty, otherwise fill in the product_review_id if the reviews are at the variant-level. The parent product row with child variants should not have an item_group_id.
Example:
Assuming product 7714809151699 is the parent product and the rest are variants belonging to the parent product.
7714809151699
summer-tee
Envive Summer Tee
https://example.com/images/summer-tee-s.jpg
summer-tee-review-id
0109274812331
Envive Summer Tee - Small
19.99 USD
in_stock
summer-tee
https://example.com/images/summer-tee-m.jpg
1231140094759
Envive Summer Tee - Large
19.99 USD
out_of_stock
summer-tee
https://example.com/images/summer-tee-l.jpg
id,handle,title,price,availability,item_group_id,image_link,product_review_id
7714809151699,summer-tee,Envive Summer Tee,,,,,https://example.com/images/summer-tee-s.jpg,summer-tee-review-id
0109274812331,,Envive Summer Tee - Small,19.99 USD,in_stock,summer-tee,https://example.com/images/summer-tee-m.jpg,
1231140094759,,Envive Summer Tee - Large,19.99 USD,out_of_stock,summer-tee,https://example.com/images/summer-tee-l.jpg,Notes:
item_group_idgroups variants; no separate parent row is required.For variant-level reviews, set
product_review_idto each row’sidinstead.Other fields (e.g.,
gtin,mpn,additional_image_links) can be variant-specific when needed.
Bundles (bundle_products)
bundle_products)Defines bundles generically via CSV. If a row represents a bundle product, list the component product handles in bundle_products as a comma-separated list.
Rules:
Use the product handles (from the
handlecolumn) for the component productsProvide handles as a comma-separated list
Order does not matter
Components must also exist as separate rows in the CSV
Examples:
Bundle row
id=gift-set-001withbundle_products="summer-tshirt,ceramic-mug,classic-cap"Bundle row
id=winter-packwithbundle_products="wool-beanie,thermal-gloves,scarf-plaid"
Important: Always use the product handles in the comma-separated list, not the product IDs. The handles ensure proper product matching and retrieval within Envive's system.
This maps to platform-specific implementations (e.g., Shopify metafield bundle_products) while keeping the CSV portable.
Last updated