Menar du...


  • Kategorier för din sökning

  • Inget resultat

    Priser & lager med liveanrop från Affärssystem
    Hämta priser live från affärssystemet

    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
    • Hämta pris på produktsida

      Lista över order bör minst kunna ta emot följande indata:

      • Autentisering via headers
      • Kundnummer
      • Produktens artikelnummer


      Detta anrop körs i samband med att kunden går in på en produkt i butiken.

      Följande data är bra om det kommer med i detta anrop. Lägg till mer data om det behövs  

      Fältnamn* Beskrivning
      model Produktens artikelnummer
      customer_no Kundnummer
      product_info
      Fältnamn* Beskrivning
      stock Lagerantal (uppdaterar Vendres databas)
      delivery_time Leveranstid (uppdaterar Vendres databas)
      price_list
      Fältnamn* Beskrivning
      price Pris exkl. moms
      quantity Minsta antal för att pris ska gälla
      extra_data Jsonbaserad extra data

      *Observera att namnen på fälten måste vara enligt ovan. Namnen avgör vad för funktion fälten får

    • Hämta pris / validera pris när man kommer till kassan

      Anropet görs på samma sätt som på produktsidan. Vendre behandlar sen datan när vi kommer in. 

      OBS! Vendres generella rekommendation är att affärssystemet / mottagare av detta anrop bör klara av 200 produktuppslagningar på samma anrop. Detta är dock baserat på vilken storlek butiken har på antalet varukorgsrader.

    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"
      ]
    }