Priser & lager med liveanrop från Affärssystem
Vendre Pull API för produkter
Vendres e-handelssystem är utrustat med ett så kallat Pull API som kan hämta information från ert affärssystem när kunden besöker specifika sidor i butiken. För produktpriser finns ett standardiserat anrop som gör att när en produkt visas eller när kunden besöker produktsida / kassa så görs prisuppdateringar och validering mot affärssystemet. Vendre cashar informationen på prislistan för att möjliggöra snabbare laddningstid i butiken.
Så funkar det
När kunden surfar runt i butiken kommer Vendre att vis specifika platser från ert affärssystem via API om priser & lager för produkter. Då skickas ett anrop till ert affärssystem som svarar på ett strukturerat sätt enligt nedanstående specifikation med den datan som ska presenteras för kunden.
Vendre uppdaterar i samma stund prisdatabasen i Vendre för att matcha med den data som precis kommit från affärssystemet. Varje gång en produkt visas skickas ett nytt anrop, således sker ingen cachning hos Vendre.
Best practice
Baserat på erfarenheter från tidigare integrationer finns det vissa saker att tänka på när dessa integrationer görs. Detta är inte en beskrivning av hur det måste fungera men erfarenheter från de case som har bäst laddningstid och den integration som håller bäst över tid.
Grund
Följande anrop är vanligt att de finns
- Hämta pris på produktsida
- Hämta pris / validera pris i kassan
Utökade / används ibland
Läs mer nedan på dessa punkter
- Visa priser i produktlistningar / kategorier
- Hämta lagersaldo / leveransstatus
- Hämta nästa leveransdatum
- Validering av pris i varukorg med feedbac
Viktigt med rätt formaterad responsdata
OBS! När API returnerar data till Vendre är det viktigt att svaret är validerad JSON. Om den inte skulle vara korrekt kommer Vendre inte kunna läsa av datan och visa den för slutkunden / i store-front.
Anropens struktur
Nedan listas hur anropet kommer att ske till extern pristjänst / ERP och hur Vendre Pull API förväntar sig att priset returernas.
JSON-Schema - Prislistor (Request)
{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "customer_group": { "type": "string" }, "products": { "type": "array", "items": [ { "type": "object", "properties": { "product_model": { "type": "string" }, "quantity": { "type": "integer" } }, "required": [ "product_model" ] } ] } }, "required": [ "customer_group", "products" ] }
JSON-Schema - Prislistor (Response)
{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "customer_group": { "type": "string" }, "products": { "type": "array", "items": [ { "type": "object", "properties": { "product_model": { "type": "string" }, "prices": { "type": "array", "items": [ { "type": "object", "properties": { "quantity_min": { "type": "integer" }, "currency": { "type": "string" }, "allow_order_discount": { "type": "boolean" }, "allow_product_discount": { "type": "boolean" }, "active_from": { "type": "string" }, "active_to": { "type": "string" }, "price": { "type": "number" }, "recommended_price": { "type": "number" } }, "required": [ "quantity_min", "price" ] } ] }, "status": { "type": "boolean" } }, "required": [ "product_model", "prices", "status" ] } ] } }, "required": [ "customer_group", "products" ] }