IVO
Înapoi la centrul de ajutor
Integrare Merchant

Formatul feedului de produse

Formate JSON, XML și CSV acceptate, maparea câmpurilor, imagini, valori implicite, stoc, prețuri promoționale și variante.

Ultima actualizare: 4 noiembrie 2026

URL-uri de feed acceptate

IVO poate citi feeduri de produse dintr-un URL public în format JSON, XML, Google Shopping RSS/XML sau CSV. URL-ul trebuie să returneze direct conținutul feedului și să fie accesibil crawlerului IVO.md.

Structură JSON

Feedul poate fi o listă de produse sau un obiect care conține lista, de exemplu {"products": [...]}, {"product": [...]}, {"offers": [...]} sau o listă de produse într-o structură mai adâncă. IVO caută cea mai mare listă de produse când structura este imbricată.

{
  "products": [
    {
      "sku": "LAP-14",
      "name": "Laptop 14",
      "price": "12999 MDL",
      "description": "Laptop compact",
      "images": ["https://example.com/1.jpg", "https://example.com/2.jpg"]
    }
  ]
}

Structură XML

IVO acceptă feeduri XML obișnuite, inclusiv itemi Google Shopping RSS și cataloage simple de produse.

<products>
  <product>
    <sku>LAP-14</sku>
    <name>Laptop 14</name>
    <price>12999</price>
    <currency>MDL</currency>
    <image>https://example.com/1.jpg</image>
  </product>
</products>

Structură CSV

Feedurile CSV trebuie să aibă antet pe primul rând. Delimitatoarele virgulă, punct și virgulă, tab și bară verticală sunt detectate automat.

sku,name,price,currency,image,availability
LAP-14,Laptop 14,12999,MDL,https://example.com/1.jpg,5

Câmpuri obligatorii

Câmpurile minime obligatorii sunt ID intern, name și price. Moneda poate fi inclusă în preț, mapată separat ca currency sau setată ca valoare implicită.

ID-ul intern este codul tău stabil pentru produs (de exemplu sku sau id) și se bifează pe o singură coloană în mapare. Așa recunoaște fiecare sincronizare același produs. Rândurile fără ID sunt sărite. Produsele care au același ID pe rânduri diferite sunt sărite și scoase din vânzare până când fiecare are ID propriu. Dacă rândurile sărite sunt mai multe decât cele cu ID valid, feedul este oprit.

Un rând care are ID și stoc, dar nu are nume sau preț, actualizează doar stocul produsului existent.

Maparea câmpurilor

În previzualizarea integrării, IVO afișează fiecare cheie sursă din feed. Atribuie fiecare cheie câmpului IVO corespunzător. Mai multe chei pot fi atribuite aceluiași câmp. Pentru text, cum ar fi name sau description, valorile se concatenează. Pentru image, toate URL-urile valide de imagine sunt colectate.

Imagini

Folosește un singur câmp țintă: image. Poți mapa chei precum image, images, image_1, image_2, image_link sau gallery. Sunt acceptate și liste de URL-uri.

Dacă feedul indică imaginile prin cale (de exemplu /catalog/image.jpg), nu prin adresa completă, completează URL de bază pentru imagini în configurarea integrării, iar imaginile sunt descărcate de acolo.

Valori implicite

Dacă feedul nu conține o valoare precum moneda, brandul, categoria, disponibilitatea, imaginea sau descrierea, poți seta o valoare fixă în configurarea integrării.

Stoc

Trimite cantitatea în availability (sau stock, quantity, qty). 0, false, out of stock și unavailable înseamnă fără stoc. Stocul pe puncte ale comerciantului și produsele care dispar din feed se configurează în integrare; ghidul feedului explică opțiunile.

Preț redus și preț recomandat

Un feed care marchează promoțiile ca Google — g:price cu g:sale_price și, opțional, g:sale_price_effective_date — vinde la prețul redus cât timp este activ și afișează prețul obișnuit ca preț recomandat (PRP). Un preț recomandat într-un câmp propriu (retail_price, rrp, msrp, old_price) este folosit ca atare, ori de câte ori este mai mare decât prețul de vânzare.

Prețuri promoționale (Black Friday, Cyber Monday)

Fiecare promoție are prețurile ei, separate de prețul obișnuit. Cât timp o promoție primește prețuri, în mapare apar două câmpuri pentru ea, de exemplu Preț promoțional – Black Friday și Cantitate promoțională – Black Friday. Adaugă în feed câte o coloană, cu orice nume, și atribuie-o câmpului ei. Poți folosi o singură coloană sau pe amândouă.

sku,name,price,availability,pret_bf,stoc_bf
LAP-14,Laptop 14,12999,5,9999,3
LAP-15,Laptop 15,15999,2,13999,
LAP-16,Laptop 16,17999,4,,
CâmpValoareEfect
Preț promoționalun numărProdusul se vinde la acest preț în timpul promoției. Trebuie să fie mai mic decât prețul obișnuit.
Preț promoționalgolProdusul iese din promoție.
Cantitate promoționalăun numărAtâtea bucăți se vând la prețul promoțional, iar restul la prețul obișnuit.
Cantitate promoțională0Nicio bucată nu se vinde la prețul promoțional. Prețul rămâne salvat pentru când revine stocul.
Cantitate promoționalăgolTot stocul se vinde la prețul promoțional.
  • Fiecare coloană funcționează singură, și într-un feed care trimite doar ID-ul și stocul. Un câmp pe care nu îl mapezi rămâne cum este: o coloană de preț păstrează cantitatea setată în panou, iar o coloană de cantitate păstrează prețul setat în panou. O cantitate fără preț setat nu are efect.
  • Cantitatea este totalul pentru promoție și face parte din stocul obișnuit. Bucățile vândute se scad din ea, așa că trimite totalul, nu ce a mai rămas. Un produs cu stocul obișnuit 0 nu se vinde, oricât ar fi cantitatea promoțională.
  • Când se aplică. Feedul este citit la fiecare șase ore, iar prețurile se schimbă doar cât timp promoția apare în Panoul comerciantului. În afara acestei perioade, coloanele sunt ignorate și prețurile deja setate rămân.
  • Ce nu apare ca eroare. Un preț care nu este mai mic decât prețul obișnuit nu se aplică și nu primești niciun mesaj, așa că verifică prețurile pe pagina de oferte a produsului. Un produs nou primește prețul la o sincronizare ulterioară, după ce oferta lui există.
  • Fiecare promoție se mapează separat. Cyber Monday are coloanele lui, iar o promoție nouă are nevoie de o mapare nouă.

Modificatorul de preț se aplică și prețului promoțional. sale_price nu este un preț promoțional: funcționează așa cum este descris în secțiunea de mai sus. Aceleași câmpuri apar și la maparea unui fișier încărcat, unde un produs nou primește prețul la următoarea încărcare a fișierului.

Greutate și colete

Trimite greutatea ambalată cu unitatea ei (weight: 1.8 kg) și dimensiunile coletului (length, width, height sau dimensions: 60x40x20 cm). Un produs care pleacă în mai multe colete trimite în locul lor packages, în același format ca API-ul pentru comercianți: câte o intrare pentru fiecare colet, fiecare cu weight și dimensions. În XML, câte un element pentru fiecare colet în <packages>; în JSON, o listă; în CSV, aceeași listă ca text JSON în celulă. Sunt citite și alte forme (atribute, prefixul g: de la Google, forma text, package_count); ghidul feedului le enumeră. Ce lipsește este estimat automat.

<packages>
  <package><weight>25000</weight><dimensions>200x90x12 cm</dimensions></package>
  <package><weight>25000</weight><dimensions>200x90x12 cm</dimensions></package>
  <package><weight>12000</weight><dimensions>120x20x10 cm</dimensions></package>
</packages>

Variante

Pentru detaliile variantelor, mapează doar dimensiuni explicite precum color, size, memory sau display la variant_option. Mai multe chei sursă pot fi mapate la variant_option.

{
  "name": "Laptop 14 Ultra / 32GB / Silver",
  "price": 15999,
  "variant_option": ["memory:32GB", "color:Silver"]
}

Dacă feedul conține deja un item_group_id de încredere, IVO îl poate citi intern, dar nu îl deduce automat, deoarece o grupare greșită poate uni produse diferite ca variante.

Identificarea crawlerului

Cererile către feed folosesc acest User-Agent:

IVO.md (+https://ivo.md/help/merchant-integration/ivo-md-crawler)

Ți-a fost util acest articol?

Spune-ne rapid dacă ți-a fost de ajutor.

Articole similare

Integrare Merchant

Referință API Merchant

Referință completă pentru API-ul de comerciant: autentificare, toate endpoint-urile și semnificația fiecărui câmp de intrare și de ieșire.

Integrare Merchant

Extensii: cum funcționează

O prezentare generală despre cum extensiile IVO se instalează, se autorizează, sincronizează și raportează statusul.

Integrare Merchant

Extensie Magento 2: instalare

Instalează extensia Magento 2 pentru IVO Marketplace și conectează magazinul la IVO.

Integrare Merchant

Extensie OpenCart 4: instalare

Instalează extensia OpenCart pentru IVO Marketplace și conectează magazinul la IVO.