Catalog & content
Catalog sources
AskMerra only recommends what is in your catalog, so a complete, fresh catalog is the most important input.
Four ways to import
| Method | Best for | Freshness |
|---|---|---|
| File upload (CSV, JSON, XML) | Getting started, occasional updates | When you upload |
| Feed URL | Shops that already publish a product feed (e.g. for Google Shopping) | Automatic, every 1–6 h depending on plan |
| Push API | Custom platforms, ERPs, real-time stock | Real time |
| Platform apps | Magento, Shopify | Coming soon |
Formats
CSV
Comma, semicolon, tab or pipe separated (detected automatically). UTF-8 recommended; files that are not valid UTF-8 are read as Windows-1252. First row = column names.
id;name;price;sale_price;currency;in_stock;category;brand;url;image
LUM-SE-01;Hydra Glow Serum 30 ml;39;32;EUR;yes;Face > Serums;Lumière;https://shop.ro/p/hydra-glow;https://shop.ro/img/hydra.jpgJSON
An array of objects, or an object with a products (or items) array. Keys follow the same aliases as CSV columns.
{ "products": [
{ "id": "LUM-SE-01", "name": "Hydra Glow Serum 30 ml", "price": 39, "sale_price": 32,
"in_stock": true, "category": "Face > Serums", "brand": "Lumière",
"skin_type": "dry, sensitive" }
] }XML (Google Merchant Center)
RSS 2.0 (rss > channel > item) or Atom (feed > entry) feeds with g: fields. The same feed you send to Google Shopping works as is.
Field mapping
After you upload a file or add a feed, AskMerra suggests a mapping from your columns to its fields. Review it before importing; columns you map to attribute:<name> (e.g. attribute:skin_type) become searchable product attributes; common descriptive columns (color, size, material, ingredients…) are suggested as attributes automatically. Recognised aliases:
| Field | Recognised column names (examples) | Notes |
|---|---|---|
external_id | id, product_id, item_id, offer_id, variant_id | Required. Your stable product id, used to update and to match product pages. |
name | name, title, product_name, denumire | Required. |
sku | sku, mpn, product_code, code, reference | Shown to your add-to-cart handler; matched for product-page context. |
parent_external_id | item_group_id, parent_id, parent_sku | Groups variants (sizes, colors) of the same product. |
description | description, body_html, descriere | HTML is converted to text. |
url | url, link, product_url | Product page; product cards link here. |
image_urls | image, image_link, additional_image_link, images | Several columns allowed; the first image is used on cards. |
price | price, pret, regular_price | Number; “19,99 lei” and “€19.99” are understood. |
sale_price | sale_price, special_price, discount_price, pret_promotional | Shown with the regular price struck through. |
currency | currency, moneda | ISO code (EUR, RON…); defaults to the source or shop currency. |
availability | availability, in_stock, stock_status, disponibilitate | “in stock”, “yes”, “1”, “instock”… Out-of-stock products are never recommended. |
stock_qty | stock, quantity, qty, stoc | Optional quantity. |
categories | category, categories, product_type, google_product_category | “Face > Serums” paths and several columns allowed. |
brand | brand, manufacturer, vendor, marca | |
locale | locale, language, lang | For multi-language catalogs; one row per product and language. |
Sync behaviour
- Products are matched by
external_id(+locale). Re-importing updates existing products; nothing is duplicated. - Full sync (default for files and feeds): products missing from the latest file are deactivated (never deleted) so they stop being recommended.
- Price and stock changes apply immediately and do not trigger re-enrichment. Changes to name, description or attributes re-run enrichment for that product.
- Rows with errors (missing id or name, invalid price) are skipped and listed in the import report; the rest is imported.
- Files up to 25 MB. Larger catalogs: use a feed URL or the Push API.
Enrichment
After import, each new or changed product is analysed by AI to extract what shoppers ask about: use cases, skin/hair types, concerns, key ingredients or specs, routine steps and safety notes. The result is embedded for semantic search. Large imports are processed in batches at a lower cost; the Catalog page shows progress and lets you inspect each product’s enrichment.
Better input, better answers
Need real-time updates from your backend? See the Catalog Push API.