Zeronode on ostuassistent, mis töötab sinu e-poes. Ta otsib sinu kataloogist ja soovitab päris tooteid koos kehtiva hinna ja laoseisuga. WooCommerce’i ja Magento poed saab ühendada ilma arenduseta. Kui sinu pood on custom lahendus, leiad siit kõik, mida me sinult vajame.
01
Ülevaade
Kolm osa. Live’i minekuks on vaja ainult toote API-t.
Kohustuslik
Toote API
Read-only JSON üle HTTPS-i. Otsing ja kolm soovituslikku endpointi.
Valikuline
Ostukorvi hookid
Assistent saab tooteid külastaja ostukorvi lisada. Koodi kirjutame meie.
Üks rida
Widgeti script-tag
Üks script-tag igale lehele. Võtme saadame meie.
02
API põhitõed
Kuidas me sinu API-t kasutame ja mida sellelt ootame.
Päringud tulevad meie serveritestMitte külastaja brauserist, nii et CORS-i headereid pole vaja.
GET-päring, vastuseks JSONKõik päringud on GET-id query parameetritega.
KiireOotame vastust kuni 8 sekundit, aga eesmärk võiks olla alla sekundi. Otsing käib samal ajal, kui assistent vastust kirjutab.
Nimed võivad olla sinu omadVäljade ja parameetrite nimed vali ise, me mapime need enda poolel. Võib-olla piisab ka olemasolevast sisemisest API-st, nii et saada see meile.
Loend võib olla ükskõik kusVastus võib olla kohe massiiv või paikneda mõne välja all, näiteks items või data.products.
Ainult avaldatud tootedTagasta ainult tooted, mida külastaja saab avada ja osta.
Üks keel päringu kohtaKui poes on mitu keelt, võta vastu parameeter (nt lang=et) või anna igale keelele oma base URL. Nimed, kirjeldused ja URL-id peavad olema samas keeles.
Autentimine
Vali üks. Anna võtmele ainult kataloogi lugemise õigus.
API key headerisSoovituslik
X-Api-Key: …Headeri nimi võib olla ükskõik milline.
Bearer token
Authorization: Bearer …
Basic auth
Authorization: Basic …Kasutajanimi ja parool.
Võti URL-is
?key=…Töötab, aga võti jääb access logidesse.
03
Endpointid
Pathid on näited, kasuta seda, mis sinu platvormile sobib.
GET/products/search
Kohustuslik
Toodete otsing
Kõige olulisem endpoint: assistent kasutab seda kõige rohkem ja soovituste kvaliteet sõltub otsingu kvaliteedist.
q
Otsingusõnad.
limit
Tulemuste arv, kuni 20.
min_price
Valikuline. Minimaalne hind.
max_price
Valikuline. Maksimaalne hind.
Otsi toote nimest, tootekoodist (SKU), brändist ja kirjeldusest.
Mitu sõna peab töötama; tooted, mis vastavad kõigile sõnadele, tulevad eespool.
Suur- ja väiketähed ega täpitähed ei tohi tulemust mõjutada: „käärid” leiab ka „kaarid”.
Tagasta täisandmetega tooted (kõik allpool olevad väljad), parimad vasted eespool.
GET/categories
Soovituslik
Kategooriad
Aitab assistendil kataloogis ringi vaadata, kui külastaja küsib tooteliiki, mitte konkreetset toodet.
q
Valikuline. Filtreerib kategooriaid nime järgi.
limit
Kategooriate arv.
Igal kategoorial on vaja id-d, nime ja parent id-d. Toodete arv on boonuseks.
GET/categories/{id}/products
Soovituslik
Kategooria tooted
Ühe kategooria tooted, mida saab kitsendada sõnade ja hinnaga.
limit
Toodete arv, tavaliselt 20.
q
Valikuline. Sõnad, mis tulemusi kitsendavad.
page
Valikuline. Lehekülje number, alates 1-st.
min_price, max_price
Valikuline. Hinnavahemik.
sort
Valikuline. price, date, title või popularity.
order
Valikuline. asc või desc.
Tagasta ka alamkategooriate tooted.
GET/products/{id}
Soovituslik
Üks toode id järgi
Selle kaudu kontrollime enne toote näitamist hinda ja laoseisu ning võrdleme tooteid.
id
Toote id pathis.
Tagasta samad väljad mis otsingus või 404, kui sellist id-d pole.
Kõik endpointid, mis tooteid tagastavad, tagastavad need väljad.
idKohustuslik
Ei muutu. Sama id, mida kasutab sinu ostukorv.
nameKohustuslik
Toote enda nimi, ilma kategooriate ja saidi nimeta.
priceKohustuslik
Number: hind, mille külastaja maksab, koos käibemaksuga. Kui sul on ainult käibemaksuta hinnad, anna meile teada käibemaksumäär.
urlKohustuslik
Tootelehe täielik URL.
imageSoovituslik
Põhipildi täielik URL.
stockSoovituslik
instock, outofstock või onbackorder.
descriptionSoovituslik
Plain text või lihtne HTML. Loeme esimesed 600 tähemärki, nii et olulisem info pane algusesse.
skuSoovituslik
Tootekood, mida kasutavad külastajad ja sinu töötajad.
brandSoovituslik
Tootja või bränd.
categoryIdsSoovituslik
Kategooriad, kuhu toode kuulub.
attributesValikuline
Nimi-väärtus paarid, näiteks Maht: 250 ml.
currencyValikuline
ISO-kood, näiteks EUR. Kui kõik hinnad on ühes valuutas, piisab, kui ütled meile korra.
regularPriceValikuline
Hind enne allahindlust, kui toode on soodushinnaga.
Otsingu vastuse näide
{"items":[{"id":"48213","name":"Glass beaker, low form, 250 ml","price":4.90,"currency":"EUR","stock":"instock","url":"https://shop.example.com/labware/glass-beaker-250-ml-48213","image":"https://shop.example.com/images/48213.jpg","sku":"BK-250","brand":"Example Glassworks","categoryIds":[12,31],"description":"Borosilicate glass 3.3, heat resistant to 500 °C. Graduated from 50 to 200 ml, with spout.","attributes":[{"name":"Volume","value":"250 ml"},{"name":"Material","value":"Borosilicate glass"}]}]}
Vead
200
Tulemusi pole: tühi list.
404
Sellise id-ga toodet pole.
401 / 403
Vale või puuduv võti. Meie rakendus märgib ühenduse katkiseks, nii et viga ei jää märkamata.
JSON
Vead tagasta JSON-ina, mitte HTML-i error-lehe ega boti-kontrollina. Kui API ees on firewall, lase meie päringud läbi.
05
Ostukorvi hookid
Valikuline. Ilma nendeta viivad tootekaardid tootelehele ja külastaja lisab toote ostukorvi seal.
Ostukorvi hookidega saab assistent tooteid külastaja ostukorvi lisada. Koodi kirjutame meie: see jookseb külastaja brauseris sinu lehel, tema enda sessioonis, ja sul ei ole vaja midagi lisada. Anna meile teada, kuidas sinu lehel olev skript saab teha neid nelja asja:
Lisa ostukorviToote id, kogus ja variant (kui variandid on) praeguse külastaja ostukorvi.
Loe ostukorvi sisuOstukorvis olevate toodete id-d ja kogused.
Ava ostukorvEnamasti piisab ostukorvi lehe URL-ist.
Lisa sooduskoodAinult siis, kui kasutad sooduskoode.
Sobib nii JavaScripti funktsioon kui ka sama domeeni endpoint. Kasuta samu toote id-sid mis API-s.
Kaks varianti, mis sobivad (sinu oma võib erineda)
// Funktsioon lehel …await window.shop.cart.add({id:'48213',quantity:1})// … või sama domeeni endpoint, mis kasutab sessiooniküpsistawaitfetch('/cart/add',{method:'POST',headers:{'Content-Type':'application/json'},body: JSON.stringify({id:'48213',quantity:1}),})
06
Widgeti paigaldamine
Lisa script-tag igale lehele, kas head’i või enne sulgevat body-tagi. Public key saadame meie.