Back to Templates

Generate Multilingual Shopify Product Descriptions with Gemini 2.5 Vision AI

Created by

Created by: Weiser22 || weiser22

Weiser22

Last update

Last update 7 days ago

Share


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 (id vs product_id).
  • Strict output: the Agent enforces a multilingual JSON contract (es,de,en,fr,it,pt), each with shopify_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].src with 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

  1. Connect credentials: Shopify, Gemini (same key for Vision and Chat), and Google Sheets.
  2. 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 documentId and tab name; confirm the matching column.
  3. 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.update step 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].src is 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].src is reachable.
  • Parser failures: the Agent must return bare JSON with the six root keys and three fields per language—no extra text.