Generate multilingual Shopify product descriptions with Gemini 2.5 Vision AI
$20/month : Unlimited workflows
2500 executions/month
THE #1 IN WEB SCRAPING
Scrape any website without limits
HOSTINGER 🎉 Early Black Friday Deal
DISCOUNT 20% Try free
DISCOUNT 20%
Self-hosted n8n
Unlimited workflows - from $4.99/mo
#1 hub for scraping, AI & automation
6000+ actors - $5 credits/mo
Shopify Multilingual Product Copy with n8n & Gemini 2.5 Flash-Lite
Use for free
Created by <Weiser22> · Last update 2025-09-02
Categories: E-commerce, Product Content, Translation, Computer Vision
Description
Generate language-specific Shopify product copy (ES, DE, EN, FR, IT, PT) from each product’s main image and metadata. The workflow performs a vision analysis to extract objective, verifiable details, then produces product names, descriptions, and handles per language, and stores the results in Google Sheets for review or publishing.
Good to know
- Model:
models/gemini-2.5-flash-lite(supports image input). Confirm pricing/limits in your account before scaling. - Image requirement: products should have
images[0].src; add a fallback if some products lack a primary image. - Sheets mapping: the sheet node uses Auto-map; ensure your matching column aligns with the field you emit (
idvsproduct_id). - Strict output: the Agent enforces a multilingual JSON contract (
es,de,en,fr,it,pt), each withshopify_product_name,shopify_description,handle.
How it works
- Manual Trigger: start a test run on demand.
- Get many products (Shopify): fetch products and their images.
- Analyze image (Gemini Vision): send
images[0].srcwith an objective, 3–5 sentence prompt. - AI Agent (Gemini Chat): merge Shopify fields + vision text under anti-hallucination rules and a strict JSON schema.
- Structured Output Parser: validates the exact JSON shape.
- Expand Languages & Sanitize (Code): split into 6 items and normalize handles/HTML content as needed.
- Append row in sheet (Google Sheets): add one row per language to your spreadsheet.
Requirements
- Shopify Access Token with product read permissions.
- Google AI Studio (Gemini) API key for Vision + Chat Model nodes.
- Google Sheets credentials (OAuth or Service Account) with access to the target spreadsheet.
How to use
- Connect credentials: Shopify, Gemini (same key for Vision and Chat), and Google Sheets.
- Configure nodes:
- Get many products: adjust
limit/filters. - Analyze image: verify
={{ $json.images[0].src }}resolves to a public image URL. - AI Agent & Parser: keep the strict JSON contract as provided.
- Code (Expand & Sanitize): emits
product_id,lang,handle,shopify_product_name,shopify_description,base_handle_es. - Google Sheets (Append): set
documentIdand tab name; confirm the matching column.
- Get many products: adjust
- Run a test: execute the workflow and confirm six rows per product (one per language) appear in the sheet.
Data contract (Agent output)
{
"es": {"shopify_product_name": "", "shopify_description": "", "handle": ""},
"de": {"shopify_product_name": "", "shopify_description": "", "handle": ""},
"en": {"shopify_product_name": "", "shopify_description": "", "handle": ""},
"fr": {"shopify_product_name": "", "shopify_description": "", "handle": ""},
"it": {"shopify_product_name": "", "shopify_description": "", "handle": ""},
"pt": {"shopify_product_name": "", "shopify_description": "", "handle": ""}
}
Customising this workflow
- Publish to Shopify: after review in Sheets, add a
product.updatestep to write finalized copy/handles. - Handle policy: tweak slug rules (diacritics, separators, max length) in the Code node to match store conventions.
- No-image fallback: add an IF/Switch to skip vision when
images[0].srcis missing and generate copy from title + body only. - Tone/length: adjust temperature and token limits on the Chat Model for brand-fit.
Troubleshooting
- No rows in Sheets: confirm spreadsheet ID, tab name, Auto-map status, and that the matching column matches your emitted field.
- Vision errors: ensure
images[0].srcis reachable. - Parser failures: the Agent must return bare JSON with the six root keys and three fields per language—no extra text.