# Order To Shipment

Questo endpoint viene usato per evadere ordini scaricati da Gsped da marketplace o ecommerce mediante i propri connettori.

La chiamata a questo endpoint genera la spedizione usando come destinatario l'indirizzo di spedizione dell'ordine.

## Creazione spedizione da un Ordine

<mark style="color:green;">`POST`</mark> `https://api.gsped.it/[ISTANZA]/OrderToShipment`

Crea una spedizione da un ordine per ottenere evasione ed aggiornamento su piattaforma ecommerce/marketplace

#### Headers

| Name                                        | Type   | Description             |
| ------------------------------------------- | ------ | ----------------------- |
| x-api-key<mark style="color:red;">\*</mark> | String | APIKEY fornita da Gsped |

#### Request Body

| Name                                         | Type   | Description                     |
| -------------------------------------------- | ------ | ------------------------------- |
| client\_id<mark style="color:red;">\*</mark> | Int    | Client ID Gsped                 |
| platform                                     | String | Nome piattaforma origine ordine |
| packages<mark style="color:red;">\*</mark>   | Int    | Numero dei colli                |
| order\_ref<mark style="color:red;">\*</mark> |        | Riferimento ordine              |
| weight<mark style="color:red;">\*</mark>     | Float  | Peso dell'ordine                |

{% tabs %}
{% tab title="200: OK Risposta di spedizione creata" %}

```javascript
{
  "status": "OK",
  "order_ref": "FC3926207",
  "label_jpg": [
    "base64 label string"
  ],
  "label_pdf": [
    "base64 label string"
  ],
  "label_zpl": [
    "ZPL label string"
  ]
}
```

{% endtab %}

{% tab title="400: Bad Request Risposta Ordine non trovato" %}

```javascript
{
  "status": "ERROR",
  "error_description": "Ordine non trovato",
  "order_ref": "WrongRif"
}
```

{% endtab %}

{% tab title="500: Internal Server Error Errori Generici" %}

```javascript
```

{% endtab %}

{% tab title="400: Bad Request Risposta Payload errato" %}

```javascript
{
  "status": "ERROR",
  "error_description": "Dati ordine non presenti o in formato sbagliato",
  "order_ref": ""
}
```

{% endtab %}

{% tab title="403: Forbidden Apikey invalida" %}

```javascript
{
  "status": false,
  "error": "Invalid API key "
}
```

{% endtab %}
{% endtabs %}

#### Snippets codice di esempio

{% tabs %}
{% tab title="PHP" %}

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.gsped.it/sandbox/OrderToShipment",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n\t\"client_id\": 1,\n\t\"order_ref\": \"14326\",\n\t\"packages\": 2,\n\t\"platform\": \"woocommerce\",\n\t\"weight\": 7.09\n}",
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json",
    "x-api-key: YOUR-API-KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
```

{% endtab %}

{% tab title="PYTHON" %}

```python
import http.client

conn = http.client.HTTPSConnection("api.gsped.it")

payload = "{\n\t\"client_id\": 1,\n\t\"order_ref\": \"14326\",\n\t\"packages\": 2,\n\t\"platform\": \"woocommerce\",\n\t\"weight\": 7.09\n}"

headers = {
    'Content-Type': "application/json",
    'x-api-key': "YOUR-API-KEY"
    }

conn.request("POST", "/sandbox/OrderToShipment", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
```

{% endtab %}

{% tab title="GO" %}

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://api.gsped.it/sandbox/OrderToShipment"

	payload := strings.NewReader("{\n\t\"client_id\": 1,\n\t\"order_ref\": \"14326\",\n\t\"packages\": 2,\n\t\"platform\": \"woocommerce\",\n\t\"weight\": 7.09\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")
	req.Header.Add("x-api-key", "YOUR-API-KEY")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

{% endtab %}

{% tab title="C#" %}

```csharp
var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Post,
    RequestUri = new Uri("https://api.gsped.it/sandbox/OrderToShipment"),
    Headers =
    {
        { "x-api-key", "YOUR-API-KEY" },
    },
    Content = new StringContent("{\n\t\"client_id\": 1,\n\t\"order_ref\": \"14326\",\n\t\"packages\": 2,\n\t\"platform\": \"woocommerce\",\n\t\"weight\": 7.09\n}")
    {
        Headers =
        {
            ContentType = new MediaTypeHeaderValue("application/json")
        }
    }
};
using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}
```

{% endtab %}

{% tab title="cURL" %}

```bash
curl --request POST \
  --url https://api.gsped.it/sandbox/OrderToShipment \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR-API-KEY' \
  --data '{
	"client_id": 1,
	"order_ref": "14326",
	"packages": 2,
	"platform": "woocommerce",
	"weight": 7.09
}'
```

{% endtab %}
{% endtabs %}
