Vaš prvi zahtev
Tri koraka od praznog terminala do jednog čitanja i jednog upisa: podesite token, pročitajte proizvode, izmenite zalihe. Potreban vam je token iz User › Tokens u Admin-u i terminal sa curl-om.
Podesite token#
Napravite token u Admin-u pod User › Tokens, kako je opisano na stranici Autentifikacija. Čuvajte ga u promenljivoj okruženja, da ne završi u kodu ni u komandama koje delite.
Svaki poziv ide na https://api.morffeus.com/api/v2 i nosi token u zaglavlju Authorization: Bearer. Primeri na ovim stranicama čitaju ga iz MORFFEUS_TOKEN.
export MORFFEUS_TOKEN="ovde-nalepite-token"
Pročitajte proizvode#
Vaši proizvodi onako kako ih vidi vaša prodavnica: sa cenama za tržište i valutu tokena, sa tekstovima na njegovom jeziku, i samo aktivni. Ako vaša aplikacija nije podešena da prikazuje sve, dobijate samo proizvode na stanju; pošaljite onlyOnStock=false da dobijete sve aktivne proizvode. Dobijate 10 proizvoda ako ne postavite limit.
Svaki odgovor je JSON sa sadržajem pod data. Ovde je data.products stranica koju ste tražili, a product_attributes i product_data_values opisuju filtere koje prodavnica može da ponudi; sinhronizacija ih može zanemariti. Dodajte productListOnly=true i data je samo lista proizvoda. Broja stranica ni ukupnog broja nema; pogledajte Paginacija i filtriranje.
Polja oko id i code prate polja proizvoda koja definiše vaša aplikacija, pa vaši proizvodi mogu imati više nego što primer pokazuje. Svaka varijanta ima svoje code, barcode i external_ref: identifikatore po kojima uparujete zalihe i porudžbine.
Jedan identifikator, jedan proizvod. Pošaljite tačno jedno od code, barcode, slug ili id i data je jedan objekat proizvoda umesto liste, ili {} kad ništa ne odgovara.
curl "https://api.morffeus.com/api/v2/products?limit=2" \ -H "Authorization: Bearer $MORFFEUS_TOKEN"
const res = await fetch('https://api.morffeus.com/api/v2/products?limit=2', { headers: { Authorization: `Bearer ${process.env.MORFFEUS_TOKEN}` } }); const { data } = await res.json(); console.log(data.products.map(p => p.code));
$ch = curl_init('https://api.morffeus.com/api/v2/products?limit=2'); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer ' . getenv('MORFFEUS_TOKEN'), ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $products = json_decode(curl_exec($ch), true)['data']['products'];
{
"data": {
"products": [
{
"id": 48213,
"code": "SKU-1001",
"slug": "espresso-beans-1-kg",
"status": 1,
"measuring_unit": "kg",
"variants": [
{
"id": 91120,
"code": "SKU-1001",
"barcode": "8600123456789",
"external_ref": "ERP-778",
"on_stock": true,
"prices": [
{ "price": 1890.0, "currency_id": 1, "market_id": 1, … }
],
…
}
],
"prices": [ { "price": 1890.0, … } ],
…
},
{ "id": 48377, "code": "SKU-1002", … }
],
"product_attributes": [ … ],
"product_data_values": [ { "name": …, "type": …, "values": [ … ] } ]
}
}
Izmenite zalihe#
Sada upis. Uzmite code varijante iz odgovora iznad i šifru jednog od vaših magacina iz Admin-a, pa mu dodajte zalihe. Red imenuje varijantu i magacin onako kako ih zna vaš sistem, pa vam naši identifikatori nikad ne trebaju.
Odgovor je 200 sa dve liste: success sadrži upisane redove zaliha, a failed redove koji nisu upisani, svaki sa razlogom. Uvek pročitajte failed.
Količina se dodaje onome što magacin ima. Pokrenite ovo dvaput i dvaput ste dodali 5. Kad vaš sistem šalje ukupne količine, pogledajte Usklađivanje magacina.
curl -X PUT "https://api.morffeus.com/api/v2/int/stocks" \ -H "Authorization: Bearer $MORFFEUS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "stocks": [ { "code": "SKU-1001", "warehouse_code": "WH-NS", "quantity": 5 } ] }'
{
"data": {
"success": [
{
"id": 5101,
"product_variant_id": 91120,
"warehouse_id": 17,
"quantity": 47.0,
"min_qty": 5.0,
…
}
],
"failed": []
}
}
Povezano#
- Zalihe: svi endpointi zaliha, pravila uparivanja i šta prodavnica prikazuje.
- Greške: kako izgleda neuspeo poziv i šta tada da uradite.
- Paginacija i filtriranje: čitanje posle prve stranice.
- Autentifikacija: tokeni, istek i odgovori 401.