# Bevezetés

Ez a leírás részletesen bemutatja, hogy a Webshippy különböző API végpontjait felhasználva, hogyan kommunikálhatsz külső rendszerekből a Webshippy rendszerével.

## Használható API végpontok

* [**Order API**](https://apidoc.webshippy.com/webaruhaz-integraciok/order-api)**:** Rendelések szinkronizálása (létrehozás, módosítás, törlés, lekérdezés).
* [**Product API**](https://apidoc.webshippy.com/webaruhaz-integraciok/product-api)**:** Termékek szinkronizálása (létrehozás, módosítás, törlés, lekérdezés, készletinfó).
* [**Inventory Transfer API**](https://apidoc.webshippy.com/webaruhaz-integraciok/inventory-transfer-api)**:** Áruszállítások kezelése (létrehozás, módosítás, törlés, lekérdezés).
* [**External Inventory API**](https://apidoc.webshippy.com/webaruhaz-integraciok/external-inventory-api)**:** Külső raktárról elérhető készlet mennyiség beállítása.
* [**GetStock API**](https://apidoc.webshippy.com/webaruhaz-integraciok/getstock-api): Termék-készlet adatok tömeges lekérdezése.
* [**Get Brack History API**](https://apidoc.webshippy.com/webaruhaz-integraciok/get-brack-history-api): Selejt előzmény(ek) lekérdezése.
* [**Create Bundle API**](https://apidoc.webshippy.com/webaruhaz-integraciok/create-bundle-api): Termékcsomag létrehozása.
* [**Marketplace Price Change API**](https://apidoc.webshippy.com/webaruhaz-integraciok/dropshippy-price-change-api): Marketplace nagyker árak módosítása.
* [**Marketplace Transaction API**](https://apidoc.webshippy.com/webaruhaz-integraciok/marketplace-transaction-api)**:** Ezzel a funkcióval lekérdezhetőek a Marketplace tranzakciók részletes adatai.
* [**Shipping Mode API**](https://apidoc.webshippy.com/webaruhaz-integraciok/shipping-api): Szállítási mód kiválasztása.
* [**Push API**](https://apidoc.webshippy.com/webaruhaz-integraciok/push-api): Értesítés a megrendelés és szállítás státuszváltozásáról.
* [**Track Info API**](https://apidoc.webshippy.com/webaruhaz-integraciok/track-info-api): A megrendelések szállításának státuszát lehet lekérdezni.

#### Használandó API URL -ek

* API XML url: `https://app.webshippy.com/wspyapi/{ACTION}/xml`
* API JSON url: `https://app.webshippy.com/wspyapi/{ACTION}/json`

## Autentikáció - API kulcs generálása

A Webshippy API minden esetben egy külön értékesítési csatornaként jelenik meg a Webshippy Admin rendszerében. Ahhoz, hogy sikeres adatkommunikáció jöjjön létre, rendelkeznünk kell egy saját API kulcssal. Ennek létrehozásához navigálj a Beállítások / Webáruházak kezelése oldalra, majd a Webshippy.API gombra kattinva hozz létre egy új értékesítési csatornát. Az alapadatok kitöltése után a rendszer legenerálja az API kulcsot, ami innentől kezdve készen áll a kommunikációra.

## Az API hívások működése

A WSAPI a biztonság érdekében HTTPS csatornát használ, az UTF-8 karakterkódolást támogatja, valamint képes kommunikálni XML és JSON formátumban is.

* API XML url: `https://app.webshippy.com/wspyapi/{ACTION}/xml`
* API JSON url: `https://app.webshippy.com/wspyapi/{ACTION}/json`

Ahol az {ACTION} helyőrző a kért funkciót/akciót jelenti.

Az API minden esetben POST metódust használ, és az átadott adatokat a `request` mező tartalmazza JSON vagy XML String-ként.

**Példa a PHP alapú API hívásra:**

```
$request = '<?xml version="1.0" encoding="UTF-8"?>
<request>  
  <apiKey>apiKey</apiKey>  
  <filters>    
    <lastMod>2018-01-01 00:00:00</lastMod>  
  </filters>
</request>';$ch = curl_init();curl_setopt($ch, CURLOPT_URL, 'https://app.webshippy.com/wspyapi/GetProduct/xml/');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['request' => $request]));$result = curl_exec($ch);
```

### Példa: Áruszállítás létrehozása

Ezzel a funkcióval áruszállítások hozhatóak létre.

| Mező        | Kötelező? | Leírás                                        |
| ----------- | --------- | --------------------------------------------- |
| `apiKey`    | Igen      | Az API kulcs.                                 |
| `direction` | Igen      | A létrehozandó áruszállítás iránya (in/out).  |
| `note`      | Nem       | Megjegyzés az áruszállításhoz.                |
| `date`      | Igen      | Az áruszállítás várható dátuma.               |
| `quantity`  | Igen      | Szállított termék mennyisége (pozitív egész). |
| `sku`       | Igen      | Szállított termék SKU-ja (cikkszáma).         |

**XML** esetén:

Url: `https://app.webshippy.com/wspyapi/CreateTransfer/xml`

Kérés:

```
<?xml version="1.0" encoding="utf-8"?>
<request> 
  <apiKey>api-key-comes-here</apiKey> 
  <transfer>     
    <direction>in</direction>     
    <note>délután érkezik</note>     
    <date>2018-01-01</date>     
    <products>       
      <elem>         
        <quantity>3</quantity>         
        <sku>4345</sku>       
      </elem>       
      <elem>         
        <quantity>1</quantity>         
        <sku>67657</sku>       
      </elem>       
      <elem>         
        <quantity>1</quantity>         
        <sku>56464</sku>       
      </elem>     
    </products> 
  </transfer>
</request>
```

Válasz (példa):

```
<?xml version="1.0" encoding="utf-8"?>
<response>  
  <status>success</status>  
  <message>    
    <elem>The transfer creation was successful</elem>  
  </message>  
  <transfer_id>74210</transfer_id>
</response>
```

**JSON** esetén:

Url: `https://app.webshippy.com/wspyapi/CreateTransfer/json`

Kérés:

```
{  "apiKey": "api-key-comes-here",  "transfer": {  "direction": "in",  "transfer_id": 59,  "note": "délután viszik el",  "date": "2018-08-20",  "products": [   {     "quantity": 3,     "sku": 343545   },   {     "quantity": 2,     "sku": 654564   },   {     "quantity": 1,     "sku": 32432432   }   ] }}
```

Válasz (példa):

```
{  "status": "success",  "message": [    "The transfer creation was successful"  ],  "transfer_id": 176}
```
