GraphQL API

Zpřístupnili jsme beta verzi našeho API. Díky API můžete dále rozšiřovat funkce eshopu, napojovat aplikace třetích stran a celkově pracovat s daty bez ohledu na naše programátory. Aktuálně jsou v API k dispozici objednávky a produkty. API je placený modul. Pro více informací kontaktujte naše zákaznické oddělení. 

GraphQL: https://graphql.org/

Playground example: https://altair-gql.sirmuel.design (editor, kde je možné testovat queries a mutations + zobrazení dokumentace, kterou GraphQL generuje). Případně je možné si editor stáhnout například jako rozšíření do prohližeče na https://altairgraphql.dev. Můžete použít samozřejmě jakýkoli jiný editor pro svoje testování.

Dokumentace

https://graphql-docs.wpjshop.cz/

Autentifikace

➡️ Nastavení > Administrátoři

Na detailu administrátora otevřeme záložku Přihlašování, kde můžeme vygenerovat nebo přegenerovat přihlašovací token. Tento token potom musíme vkládat u každého API requestu v headeru X-Access-Token.

Zároveň je potřeba u administrátora, který má mít přístup k API, povolit API v právech. Na záložce Oprávnění: Ostatní zaškrtneme Používat u API.

Queries

 Query
Popis Implementováno Stav
order Načtení objednávky
✔️ done
orders Seznam objednávek ✔️ done
product Načtení produktu
✔️ done
products Seznam produktů
✔️ done
user Načtení uživatele
✔️ done
users Seznam uživatelů
✔️ done

Mutations

 Mutation Popis Implementováno Stav
productCreateOrUpdate Vytvoření produktu ✔️ done
variationCreateOrUpdate Vytvoření varianty ✔️ done
createOrder Vytvoření objednávky TODO
createPayment Přidání platby k objednávce TODO
checkCouponExists Kontrola existence kupónu in progress

Příklady

Načtení konkrétní objednávky:

query {
  order(id: 1) {
    id
    code
    dateCreated
    status
    deliveryAddress {
      name
      surname
      street
      city
      zip
      country {
        code
        name
      }
    }
    items {
      name
      pieces
      totalPrice {
        withVat
        vat
        currency {
          code
        }
      }
    }
  }
}

Načtení seznamu objednávek:

query {
  orders(limit: 50, sort: { dateCreated: DESC }, filter: { dateFrom: "2022-02-01T08:00:00+0000" }) {
    hasNextPage
    hasPreviousPage
    items {
      id
      code
      dateCreated
      totalPrice {
        withVat
        withoutVat
      }
      currency {
        code
        name
      }
    }
  }
}