Site icon MALL Partner – Nápověda Marketplace

Návod pro napojení API

Napojení API (MPAPI) slouží k provázání vašeho obchodu a prostředí MALL/MIMOVRSTE Partner, tedy k výměně informací o produktech a jejich variantách, o nastavení doprav a v neposlední řadě ke zprocesování objednávek.

API je postaveno na tzv. REST architektuře, která umožňuje přistupovat k datům a provádět nad nimi operace jako výpis dat, vytváření, aktualizace anebo mazání založených objektů (produktů, doprav apod.).
API využívá zabezpečené spojení protokolu HTTPS.

Pro funkční napojení je nutné získat ze strany MALL Partner unikátní klíč – client_id, který slouží k autorizaci zasílaných požadavků.

Tyto požadavky jsou posílány na https://mpapi.mallgroup.com/ v produkčním prostředí, a to bez ohledu na zemi, v níž budete své zboží nabízet.
Země je identifikována podle client_id.

Všechna data jsou posílána a vracena ve formátu JSON a v UTF-8 kódování. Odpověď na zaslaný požadavek vrací vždy HTTP kód, v odpovídajících metodách také data a případně i stránkování.

{
   "result": {
         "code": 200/400/403/404/500,
         "status": OK/ERROR/LIMITED,
         "message": doplňující zpráva
   },
   "paging": {
         "pages": počet stránek,
         "size": počet položek na stránce,
         "page": aktuální strana
   },
   "data": {
          strukturovaná data
   }
}

Podrobné informace k HTTP kódům, využití stránkování a zejména předepsané struktuře dat jsou k dispozici v online dokumentaci.

Pro rychlejší implementaci je k dispozici MPAPI client (v současnosti pouze v jazyce PHP, podporována je verze 5.5 a vyšší). Informace ke stažení a nejnovější verzi najdete na packagist.org/packages/mallgroup/mpapi-client.

Changelog

Online dokumentace obsahuje aktuální informace. Případné změny jsou zaznamenávány v sekci Changelog včetně data platnosti.

API architektura

MP API je založeno na softwarové architektuře REST a zabezpečeno HTTPS protokolem.

API endpointy

1. Transparent proxy

2. Produkční prostředí

Autorizace

Každý požadavek musí obsahovat autorizační klíč (client id). Partnerům je tento klíč dostupný v partnerském portálu.

Formát dat

Všechna data jsou ve formátu JSON a kódována jako UTF-8. Content type lze nastavit jako Content-Type: application/json nebo Content-Type: application/json; Charset=UTF-8.

Identifikace objektů

Všechny objekty v rozhraní (např. produkty / varianty) musí mít jedinečný identifikátor, který je spravován partnerem:

  • MALL nepřiděluje partnerům žádné číselné řady,
  • Identifikátory mohou obsahovat kombinace maximálně 50 znaků, povolené znaky jsou: _ – 0-9 a-z A-Z (podtržítka, pomlčky, čísla nula až devět, malé a velké písmena bez diakritiky).
  • Identifikátor musí být jedinečný na úrovni partnera

Výjimkou jsou například objednávky, dopravy nebo faktury. V případě objednávek MALL/MIMOVRSTE vygeneruje order_id, které je následně dostupné například v seznamu otevřených objednávek. Toto ID je číselné a je nutné jej použít při zpracování objednávky.

Upozornění:
MALL order_id překračují maximální povolenou celočíselnou velikost pro 32bitovou verzi PHP. Abyste zabránili nekonzistentním datům u objednávek, využijte prosím 64bitovou verzi.

Výstup

Výstup je v následující struktuře:

{
    "result": {
        "code": 200/400/403/404/500,
        "status": OK/ERROR/LIMITED,
        "message": additional error information
    },
    "paging": {
        "pages": number of pages,
        "size": number of objects on a page,
        "page": number of current page
    },
    "data": {
        data structure
    }
}

DELETE požadavky nevracejí žádný obsah (kód 204).

Výsledek

Výsledek vrací HTTP kód, status a případnou chybovou zprávu.

Stránkování

Object paging je použit v případě, kdy je výstup rozdělen na více stránek.
Stránkování lze nastavit voláním URL s parametry page a page_size. Výchozí velikost stránky (a také doporučená maximální hodnota) je 100.

Příkladem:
https://mpapi.mallgroup.com/v1/products?client_id={clientId}&page={page}&page_size={pageSize}

Data

Struktura dat se liší v závislosti na endpointu a je popsána pro každý endpoint zvlášť v online dokumentaci.

Stavové kódy HTTP

Funkce API

Funkce API jsou volány vhodnými metodami HTTP:

Validace dat

API požadavky jsou ověřeny. Pokud existují nějaké chyby, které je třeba opravit, je v těle odpovědi vrácen seznam chyb.

Volitelné parametry

Pokud je vlastnost volitelná a nechcete ji používat, nedávejte ji do požadavku na rozhraní API. Pokud ji nastavíte s prázdnou hodnotou, vrátí se chybová zpráva Key {key} does not exist or is empty.

Obrázky

Chcete-li aktualizovat obrázek produktu/varianty, je nutné URL adresu obrázku změnit.
Například přidáním parametru v podobě TIMESTAMP nebo ID produktu/varianty do URL adresy obrázku.
Maximální rozlišení obrázků je 2000 px x 2000 px, minimální velikost obrázku je 100 KB a maximální velikost je 2 MB. Maximální počet obrázků u produktu je 20. Maximální doba odezvy URL adresy obrázku je 1 s. URL obrázku nesmí obsahovat mezery a diakritiku.

Energetický štítek

Pokyny k novým energetickým štítkům

Ochrana před nezamýšlenou změnou ceny produktu

V situaci, kdy partner aktualizuje produkty na různých e-shopech s rozdílnou měnou, existují určitá rizika.
Může dojít k tomu, že partner cenu produktu zašle v nesprávné měně. Abychom z části eliminovali toto riziko, je stanovena hranice pro ochranu cen produktu.
Povolený cenový rozdíl mezi starou a novou cenou produktu/varianty je 30 %.

Pokud je změna ceny produktu / varianty vyšší, než je stanovený limit, je v odpovědi vrácen force_token a produkt / varianta nejsou aktualizovány.

Produkt se značným cenovým rozdílem je tedy možné aktualizovat pouze při využití force_token získaného z neúspěšné aktualizace produktu. V dalším požadavku je nutné poslat získaný force_token jako parametr URL.

Příkladem:
https://mpapi.mallgroup.com/v1/products/{productId}?client_id={clientId}&force_token={forceToken}

Aktualizací ceny produktu s pomocí force_token, partner potvrzuje, že nová cena je správná a že za tuto nově stanovenou cenu přebírá plnou odpovědnost.
V těchto případech je opatrnost na místně a není tedy vhodné používat force_token automaticky. Všechny změny a použití tokenu jsou ze strany MALL zaznamenány.
V zemích mimo CZ jako oddělovač částek používejte tečku „.“.

Příkladem:

{
  "errorCodes": [
    {
      "message": "Difference between current price ({value of current price}) and new price ({value of new price}) for product "{product id}" is larger than 30% ({real percentage difference}). To confirm this change, use attached force token.",
      "errorCode": "INCORRECT_PRODUCT_PRICE_DIFFERENCE",
      "errorAttributes": {
        "current": "currentPrice",
        "new": "newPrice",
        "id": "productId"
      }
    }
  ],
  "result": {
    "code": 400,
    "status": "ERROR",
    "message": "Difference between current price ({value of current price}) and new price ({value of new price}) for product "{product id}" is larger than 30% ({real percentage difference}). To confirm this change, use attached force token."
  },
  "data": {
    "key": "product.variants",
    "data": {
      "forceToken": "b3f7d1feca4c649e3493b466cbe0e6795bc6f679",
      "variantIndex": 0
    }
  }
}

API endpointy

Jak užitečný byl tento příspěvek?

Kliknutím na hvězdičku ohodnotíte příspěvek!

Průměrné hodnocení: 3 / 5. Počet hlasů: 4

Zatím nikdo nehlasoval. Buďte první, kdo ohodnotí tento příspěvek.

Exit mobile version