Custom napojení
Úvod
Samotná komunikace mezi Vaším eshopem a službou shopstato.com je řešena přes REST API. SHOPSTATO API Vám nikterak nebude zasahovat do Vašeho systému, jen z něj bude čerpat informace. Samotná implementace vychází z předpokladu, že implementátor má základní znalosti PHP, práci rest API, curl.
Postup implementace
Pro účely vývoje napojení a testování doporučujeme použit naše DOMO, kde si vše můžete vyzkoušet. Napojení na produkci, doporučujeme až máte opravdu napojení řádně otestované. Protože na zpětné nárokování chyb v napojení na produkci, již nebude bráno zřetel.
1) Zaregistrujte se na této adrese
https://demo.shopstato.com/register
Jako e-shopové řešení vyberte volbu “vlastní e-shopové řešení”. Propojení woocommerce se SHOPSTATO využívá naše API, tím budete mít vždy automaticky zajištěné nové funkce API.
2) Po dokončení registrace budete přesměrovaní do nastavení Vašeho e-shopu. Pro zajištění správné funkčnosti prosím vyplňte veškeré údaje.
Než kliknete na tlačítko Uložit zkopírujte přístupové údaje do Vašeho e-shopu. Jedná se o políčko TOKEN a adresa API pro nastavení v Shopstato.com.
Nastavení v Shopstato.com
3) Pro snažíš implementaci jsme pro Vás připravil jednoduchý ukázkový php kód, který Vám může být inspirací při napojení Vašeho eshopu.
Vše podstatné se nastavuje v souboru config.php. Konstanta URL_API je před nastavená, pokud Vám nebyla sdělená jiná adresa nechte předvyplněnou adresu.
V následujícím řádku vyplňte token, který Vám byl přidělen při registraci Vašeho e-shopu, viz. krok č. 2.
Token musí být v uvozovkách.
Ukázka před vyplněním
Ukázka po vyplnění
Pokud vše správně vyplníte a zavoláte script client.php
Zobrazí se Vám odpověď z API v json formátu
4) přenos objednávek do eshopu
informace o objednávce jsou uložené v poli, se skládá z hlavičky objednávky, informaci o uživateli a seznamu produktů.
Popis jednotlivých prvků
$order[‘order’][‘code’] string -> kód objednávky max. délka 15znaků
$order[‘order’][‘createDate’] string -> // datum vytvoření objednávky ISO YYYY-MM-DD HH:ii:ss
$order[‘order’][‘updateDate’] string -> // datum aktualizace objednávky ISO YYYY-MM-DD HH:ii:ss
$order[‘order’][‘totalPrice’] decimal -> // cena celé objednávky s dph
$order[‘order’][‘withoutVat’] decimal -> // cena celé objednávky bez dph
$order[‘order’][‘currency’] integer -> // 1 ->CZK, 2 ->EURO
$order[‘order’][‘shipping’] decimal -> //cena dopravy bez dph
$order[‘order’][‘payment’] decimal -> //cena platby bez dph
$order[‘order’][‘statusOrder’] string -> //název stavu objednávky,max. délka 100znaků, povinný údaj
$order[‘order’][‘weight’] decimal -> //váha v kg
$order[‘order’][‘otherId’] integer -> // id objednávky např z DB
$order[‘order’][‘shippingName’] string -> // název dopravy,max. délka 100znaků, povinný údaj
$order[‘order’][‘paymentName’] string -> // název platby max. délka 100znaků, povinný údaj
$order[‘order’][‘shippingVat’] integer -> // dph dopravy, povinný údaj
$order[‘order’][‘paymentVat’] integer -> // dph platby, povinný údaj
$order[‘order’][‘paid’] integer -> // zda je objednávka zaplacena, pokud ano 1 pokud ne 0
$order[‘customer’][‘ip’] string -> // ip adresa
$order[‘address’][‘name’] string -> // fakturační jméno max. délka 100znaků
$order[‘address’][‘surname’] string -> // fakturační přijmení max. délka 100znaků
$order[‘address’][‘street’] string -> // fakturační ulice max. délka 100znaků, povinný údaj
$order[‘address’][‘town’] string -> // fakturační město max. délka 100znaků, povinný údaj
$order[‘address’][‘zip’] integer -> // fakturační psč max. délka 100znaků, povinný údaj
$order[‘address’][‘country’] integer -> // fakturační stát, 1-> CZ, 2-> SK , povinný údaj
$order[‘address’][‘company’] string -> // fakturační název spolčenosti max. délka 100znaků
$order[‘address’][‘crn’] integer -> // fakturační ič
$order[‘address’][‘taxId’] string -> // fakturační dič
$order[‘address’][‘crnVatId’] integer -> // jen pro SK
$order[‘address’][’email’] string -> // fakturační email, povinný údaj
$order[‘address’][‘phone’] string -> // fakturační telefon, povinný údaj
$order[‘address’][‘deliveryName’] string -> // doručovací jméno max. délka 100znaků
$order[‘address’][‘deliverySurname’] string -> // doručovací přijmení max. délka 100znaků
$order[‘address’][‘deliveryStreet’] string -> // doručovací ulice max. délka 100znaků
$order[‘address’][‘deliveryTown’] string -> // doručovací město max. délka 100znaků
$order[‘address’][‘deliveryZip’] integer -> // doručovací psč max. délka 100znaků
$order[‘address’][‘deliveryPhone’] string -> // doručovací telefon
$order[‘address’][‘deliveryCountry’] integer -> // doručovací stát 1-> CZ, 2-> SK
$order[‘address’][‘deliveryCompany’] string -> // doručovací společnost, max. délka 100znaků
$order[‘address’][‘deliveryCrn’] integer -> // doručovací ič
$order[‘address’][‘deliveryTaxId’] string -> // doručovací dič
$order[‘address’][‘deliveryCrnVatId’] string -> //pro SK
$order[‘address’][‘deliveryEmail’] string -> // doručovací email
$items = [];
$product = [];
$product[‘productId’] integer -> //id produktu , povinný údaj, musí být unikátní id
$product[‘code’] string -> // kód produktu , povinný údaj
$product[‘ean’] integer -> //ean produktu
$product[‘name’] string -> // název produktu, max. délka 120znaků, povinný údaj
$product[‘count’] decimal -> // počet kusů, povinný údaj
$product[‘price’] decimal -> // cena bez dph, povinný údaj
$product[‘priceVat’] decimal -> // cena s dph , povinný údaj
$product[‘vat’] integer -> //dph sazba, povinný údaj
$product[‘weight’] decimal ->; // v kg
$product[‘producer’] string -> // vyrobce
$product[‘unitText’] string -> // jednotka
$product[‘buyPriceWithVat’] decimal -> // nakpní cena s dph
$product[‘buyPriceWihoutVat’] decimal -> // nakupní cena bez dph
$product[‘buyPriceVat’] integer ->// dph sazba
$product[‘warranty’] integer -> // zároku
$product[‘discoutPrice’] decimal ->
$product[‘discountPercent’] decimal ->
$product[‘originalPrice’] decimal ->
$items[] = $product;
$items[] = $product;
$order[‘items’] = $items;
$orders[] = $order;
Funkční kód najdete ve scriptu orders.php
5) Skladové zásoby
Slouží pro výpočty obratkovosti dalších ukazatelů výkonnosti e-shopu. Skladové zásoby se můžou posílat 1x za 7dní
Všechny 3 parametry jsou povinné.
$stocks=[
[
‘productId’=> id produkt, musí být stejné které se posílá v v objednávce u položky
‘amount’=> počet kusů na skladě
‘code’=> kód produktu
],
];
Ukázku použití najdete ve skriptu stock.php
Závěr
Nedoporučujeme přenášet hned staré objednávky. Nejdříve si zkuste vytvořit jednu objednávku jako Váš zákazník, čili projdete celým nákupním procesem.
Jednak si ověříte, že implementace Vám nijak neohrozila chod Vašeho e-shopu a zadruhé se Vám budou lépe kontrolovat přenesená data do Shopstato.com.
Co vše kontrolovat u objednávky přenesené z Vašeho eshopu do Shopstato.com?
Testovací objednávka by měla obsahovat více produktů, každý produkt by měl být v jiném množství, např triko ve velikosti M koupeno 2x, propiska 10x, stůl 1x atp.
Při kontrole se zaměřte na
1) cena objednávky – pozor v shopstato cena objednávky je očištěna o dph, poplatek za dopravu a platbu
2) počty a ceny jednotlivých produktů
3) informace o zákazníkovi – kontakt, adresa
Testovacích objednávek udělejte vícero.
Tento testovací proces běží na našem demu, kde se nedají objednat žádné moduly ani kredity. Můžete do systému přenést maximálně 60 objednávek.
Ukázka skriptu ke stažení