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.
curl -X POST https://catalog.api.metty.eu/catalog/syncs \
-H "Authorization: Bearer <SECRET_API_KEY>"{ "sync_id": "sync_8f2c1d4e5a6b7c8d" }Dávky posielajte s ?sync=:
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:
curl -X POST https://catalog.api.metty.eu/catalog/syncs/sync_8f2c1d4e5a6b7c8d/commit \
-H "Authorization: Bearer <SECRET_API_KEY>"{ "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ácia | chyba |
|---|---|
| sync nemá žiadne produkty | 409 generation_incomplete |
| sync pokrýva menej než 50 % katalógu | 409 generation_incomplete |
| sync je už commitnutý | 409 generation_committed |
| ID syncu neexistuje | 404 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
- Otvorte sync a jeho identifikátor si uložte.
- Pošlite celý katalóg po dávkach s najviac 100 produktmi a parametrom
?sync=. - Overte, že žiadna dávka nevrátila položku so
status: "error". - 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:
curl 'https://catalog.api.metty.eu/catalog/products?page=1&per_page=100' \
-H "Authorization: Bearer <SECRET_API_KEY>"{
"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.