Skip to content

Full sync a export

Bezpečný full snapshot

Ak chcete nahrať celý katalóg a zároveň odstrániť všetko, čo v ňom už nie je, otvorte sync, posielajte dávky s jeho identifikátorom a na záver ho commitnite.

bash
curl -X POST https://catalog.api.metty.eu/catalog/syncs \
  -H "Authorization: Bearer <SECRET_API_KEY>"
json
{ "sync_id": "sync_8f2c1d4e5a6b7c8d" }

Dávky posielajte s ?sync=:

bash
curl -X PUT 'https://catalog.api.metty.eu/catalog/products?sync=sync_8f2c1d4e5a6b7c8d' \
  -H "Authorization: Bearer <SECRET_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '[ … ]'

Po nahratí všetkých dávok:

bash
curl -X POST https://catalog.api.metty.eu/catalog/syncs/sync_8f2c1d4e5a6b7c8d/commit \
  -H "Authorization: Bearer <SECRET_API_KEY>"
json
{ "sync_id": "sync_8f2c1d4e5a6b7c8d", "status": "committed", "kept": 1240, "removed": 37 }

Produkty, ktoré počas syncu neprišli, sa odstránia z databázy aj z indexu. PUT bez parametra sync je bežná priebežná aktualizácia a do syncu sa nezapočítava.

Poistky

Commit neúplného snapshotu by odstránil väčšinu katalógu, preto ho odmietame v týchto prípadoch:

situáciachyba
sync nemá žiadne produkty409 generation_incomplete
sync pokrýva menej než 50 % katalógu409 generation_incomplete
sync je už commitnutý409 generation_committed
ID syncu neexistuje404 not_found

Ak katalóg zmenšujete zámerne (napríklad ste vyradili polovicu sortimentu), pošlite v tele commitu {"force": true}.

Commit sync uzatvára. Ďalší zápis s rovnakým sync_id vráti 409 generation_committed, takže snapshot nie je možné znovu otvoriť.

Odporúčaný postup

  1. Otvorte sync a jeho identifikátor si uložte.
  2. Pošlite celý katalóg po dávkach s najviac 100 produktmi a parametrom ?sync=.
  3. Overte, že žiadna dávka nevrátila položku so status: "error".
  4. Commitnite. Ak niektorá položka zlyhala, necommitujte — najprv dopošlite chybné produkty.

Hotovú implementáciu tohto postupu nájdete v príkladoch.

Export

Export slúži na overenie, aký stav katalógu Metty skutočne eviduje:

bash
curl 'https://catalog.api.metty.eu/catalog/products?page=1&per_page=100' \
  -H "Authorization: Bearer <SECRET_API_KEY>"
json
{
  "total": 1240,
  "page": 1,
  "per_page": 100,
  "pages": 13,
  "products": [
    {
      "id": "sku-1",
      "name": "Príklepová vŕtačka Bosch",
      "url": "https://eshop.sk/vrtacka",
      "price": 129.9,
      "list_price": 159.9,
      "currency": "EUR",
      "in_stock": true,
      "brand": "Bosch",
      "category": "Náradie > Vŕtačky",
      "description": "Príklepová vŕtačka s reguláciou otáčok.",
      "image": "https://eshop.sk/media/vrtacka.jpg",
      "params": { "farba": "modrá" }
    }
  ]
}

Parameter per_page sa oreže na rozsah 1–500 (default 100). Produkty prichádzajú v rovnakom tvare, aký prijíma PUT, takže export sa dá bez úprav použiť ako vstup.

Export funguje aj pre e-shop v režime feed — poistka proti kombinovaniu režimov sa týka výhradne zápisov.

Dokumentácia Metty