Wstęp
Ta strona zawiera informacje odnośnie integracji naszych algorytmów z Twoim systemem. Nasze algorytmy zostały zaprojektowane, aby optymalizowały proces pakowania przedmiotów w różnych przestrzeniach ładunkowych. Możesz łączyć się z naszymi algorytmami poprzez API, które akceptuje zapytania i zwraca odpowiedzi w formacie JSON.
Czym jest API?
API to akronim oznaczający interfejs programowania aplikacji (ang. Application Programming Interface). Jest to metoda komunikacji pomiędzy składnikami oprogramowania i aplikacjami sieciowymi oraz wymiany danych między oddzielnymi systemami.
Jak zacząć
Aby móc łączyć się z naszym API, należy zarejestrować konto na naszej stronie (www.3dbinpacking.com). Otrzymasz nazwę użytkownika oraz klucz API, które należy wkleić w odpowiednie miejsca w zapytaniu.
Jeżeli chciałbyś przetestować nasze API, zamień nazwę użytkownika i klucz API podane poniżej i wklej je w pole wyszukiwania twojej przeglądarki.
https://global-api.3dbinpacking.com/packer/fillContainer?query={"username":"USERNAME","api_key":"API_KEY","items":[{"id":"Speakers","w":3,"h":3,"d":3,"wg":2,"quantity":3,"vr":true},{"id":"Bigger item","w":3,"h":3,"d":5,"wg":1,"quantity":2,"vr":true}],"bins":[{"id":"Pack M","h":4,"w":4,"d":4,"wg":"","max_wg":""},{"id":"Pack S","h":3,"w":3,"d":6,"wg":"","max_wg":""}],"params":{"images_background_color":"255,255,255","images_bin_border_color":"59,59,59","images_bin_fill_color":"230,230,230","images_item_border_color":"22,22,22","images_item_fill_color":"255,193,6","images_item_back_border_color":"22,22,22","images_sbs_last_item_fill_color":"177,14,14","images_sbs_last_item_border_color":"22,22,22","images_format":"svg","images_width":50,"images_height":50,"images_source":"file","save_response":true,"stats":0,"item_coordinates":1,"images_complete":1,"images_sbs":1,"images_separated":0}}
Jeśli otrzymasz odpowiedź jak poniżej, oznacza to, że wszystko zrobiłeś poprawnie.
{"id":"1556529305_9ff402ed696d0a5a3d9f26b8987a3758","not_packed_items":[],"bins_packed":[{"bin_data":{"w":4,"h":4,"d":4,"id":"Pack M","used_space":42.1875,"weight":2,"used_weight":100,"stack_height":3,"order_id":null},"image_complete":"https:\/\/eu.api.3dbinpacking.com\/images\/file_hash1.svg","items":[{"id":"Speakers","w":3,"h":3,"d":3,"wg":2,"image_sbs":"https:\/\/eu.api.3dbinpacking.com\/images\/file_hash2.svg","coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}}]},{"bin_data":{"w":3,"h":3,"d":6,"id":"Pack S","used_space":100,"weight":4,"used_weight":100,"stack_height":3,"order_id":null},"image_complete":"https:\/\/eu.api.3dbinpacking.com\/images\/file_hash3.svg","items":[{"id":"Speakers","w":3,"h":3,"d":3,"wg":2,"image_sbs":"https:\/\/eu.api.3dbinpacking.com\/images\/file_hash4.svg","coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}},{"id":"Speakers","w":3,"h":3,"d":3,"wg":2,"image_sbs":"https:\/\/eu.api.3dbinpacking.com\/images\/file_hash5.svg","coordinates":{"x1":0,"y1":0,"z1":3,"x2":3,"y2":3,"z2":6}}]}]}
Serwery
Obecnie mamy uruchomione kilka serwerów w różnych lokalizacjach na całym świecie, aby zapewnić możliwie wysoką jakość usług - wysoką dostępność oraz niski współczynnik opóźnień.
Globalny serwer jest najbardziej uniwersalny, gdyż przekierowuje zapytania bezpośrednio do najbliższego, dostępnego serwera.
Lista dostępnych serwerów API 3DBinPacking:
- global-api.3dbinpacking.com/packer/pack - Globalny adres / balance loader
- us-east.api.3dbinpacking.com/packer/pack - USA (Wirginia)
- eu.api.3dbinpacking.com/packer/pack - Europa (Irlandia)
- asia1.api.3dbinpacking.com/packer/pack - Asia Pacific (Singapur)
PEM (X.509)
Zapytania
Poniżej znajdują się informacje odnośnie sposobów wysyłania zapytań do naszych serwerów API.
Dostępne sposoby wysyłania danych
- POST - rekomendowany
- GET
Dostępne protokoły:
- https - rekomendowany
- http
Metody wywoływania:
- jako parametr - Przykład GET: https://global-api.3dbinpacking.com/packer/pack?query={json_encoded_data}
- jako zapytanie JSON
Produkty
Spakuj przesyłkę
Użyj narzędzia Spakuj przesyłkę, aby optymalizować proces pakowania w różnych przestrzeniach ładunkowych. Zmniejszaj liczbę pojemników podczas transportu, wykorzystaj maksymalnie przestrzeń wewnątrz pojemników lub uzyskaj jak najniższy koszt wysyłki.
URL
- https://global-api.3dbinpacking.com/packer/packIntoMany
- https://us-east.api.3dbinpacking.com/packer/packIntoMany
- https://eu.api.3dbinpacking.com/packer/packIntoMany
- https://asia1.api.3dbinpacking.com/packer/packIntoMany
Parametry zapytania
Wymagane parametry
REQUEST
{
"username":"_USERNAME_",
"api_key":"_API_KEY_",
"items":
[
{
"id":"Speakers",
"w":3,
"h":3,
"d":3,
"wg":2,
"q":3,
"vr":true
},
{
"id":"Bigger item",
"w":3,
"h":3,
"d":5,
"wg":1,
"q":2,
"vr":true
},
{
"id":"Too big item",
"w":5,
"h":5,
"d":5,
"wg":1,
"q":1,
"vr":true
}
],
"bins":
[
{
"id":"Pack M",
"h":4,
"w":4,
"d":4,
"wg":"",
"max_wg":"",
"q":"",
"cost":0
},
{
"id":"Pack S",
"h":3,
"w":3,
"d":6,
"wg":"",
"max_wg":"",
"q":"",
"cost":0
}
],
"params":
{
"images_background_color":"255,255,255",
"images_bin_border_color":"59,59,59",
"images_bin_fill_color":"230,230,230",
"images_item_border_color":"22,22,22",
"images_item_fill_color":"255,193,6",
"images_item_back_border_color":"22,22,22",
"images_sbs_last_item_fill_color":"177,14,14",
"images_sbs_last_item_border_color":"22,22,22",
"images_format":"svg",
"images_width":50,
"images_height":50,
"images_source":"file",
"stats":0,
"item_coordinates":1,
"images_complete":1,
"images_sbs":1,
"images_separated":0,
"optimization_mode":"bins_number"
}
}
curl -X POST \\
-H "Content-Type: application/json" \\
-d '{"username": "_USERNAME_", "api_key": "_API_KEY_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true},{"id":"Too big item","w":5,"h":5,"d":5,"wg":1,"q":1,"vr":true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": "", "q":"", "cost":0},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": "", "q":"", "cost":0}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0, "optimization_mode":"bins_number"}}' \\
https://global-api.3dbinpacking.com/packer/packIntoMany \\
-k
<?php
$data = array(
'bins' => array(
array(
'id' => 'Pack M',
'h' => '4',
'w' => '4',
'd' => '4',
'wg' => '',
'max_wg' => '',
'q'=>'',
'cost'=>0
),
array(
'id' => 'Pack S',
'h' => '3',
'w' => '3',
'd' => '6',
'wg' => '',
'max_wg' => '',
'q'=>'',
'cost'=>0
)
),
'items' => array(
array(
'id' => 'Speakers',
'w' => '3',
'h' => '3',
'd' => '3',
'wg' => '2',
'q' => '3',
'vr' => '1'
),
array(
'id' => 'Bigger item',
'w' => '3',
'h' => '3',
'd' => '5',
'wg' => '1',
'q' => '2',
'vr' => '1'
),
array(
'id' => 'Too big item',
'w' => '5',
'h' => '5',
'd' => '5',
'wg' => '1',
'q' => '1',
'vr' => '1'
)
),
'username' => 'YOUR_USERNAME',
'api_key' => 'YOUR_API_KEY',
'params' => array(
'images_background_color' => '255,255,255',
'images_bin_border_color' => '59,59,59',
'images_bin_fill_color' => '230,230,230',
'images_item_border_color' => '22,22,22',
'images_item_fill_color' => '255,193,6',
'images_item_back_border_color' => '22,22,22',
'images_sbs_last_item_fill_color' => '177,14,14',
'images_sbs_last_item_border_color' => '22,22,22',
'images_format' => 'svg',
'images_width' => '50',
'images_height' => '50',
'images_source' => 'file',
'stats' => '0',
'item_coordinates' => '1',
'images_complete' => '1',
'images_sbs' => '1',
'images_separated' => '0',
'optimization_mode'=>'bins_number'
)
);
$query = json_encode($data);
$url = "https://global-api.3dbinpacking.com/packer/packIntoMany";
$prepared_query = 'query='.$query;
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $prepared_query );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$resp = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error #' . curl_errno($ch) . ': ' . curl_error($ch).'<br>';
}
curl_close($ch);
$response = json_decode($resp,true);
// display errors
if(isset($response['response']['errors'])){
foreach($response['response']['errors'] as $error){
echo $error['message'].'<br>';
}
}
// display data
if( $response['response']['status'] > -1 ){
$b_packed= $response['response']['bins_packed'];
foreach ($b_packed as $bin){
echo "<h2>Bin id:{$bin['bin_data']['id']}</h2>
<p> {$bin['bin_data']['w']} x {$bin['bin_data']['h']} x {$bin['bin_data']['d']}</p>
<p> Weight:{$bin['bin_data']['weight']}</p>
<p> Used weight:{ $bin['bin_data']['used_weight'] }</p>
<img src=\"{$bin['image_complete']}\">
<h2>Items packed in this bin:</h2>";
$items = $bin['items'];
echo '<table style="text-align: center">
<tr><th>Item id</th>
<th>Item dimensions</th>
<th>Item weight</th>
<th>Separated item</th>
<th>Step by step</th></tr>';
foreach ( $items as $item){
echo "<tr><td>{$item['id']}</td>
<td> {$item['w']} x {$item['h']} x {$bin['bin_data']['d']}</td>
<td> {$item['wg']}</td>
<td><img src=\"{$item['image_separated']}\"></td>
<td><img src=\"{$item['image_sbs']}\"></td>
</tr>";
}
echo '</table>';
echo '<hr>';
}
}
#!/usr/bin/python
import httplib
import urllib
import json
conn = httplib.HTTPConnection(host='global-api.3dbinpacking.com', port=80)
data = {"username": "_USERNAME_", "api_key": "_API_KEY_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true},{"id": "Too big item", "w": 5, "h": 5, "d": 5, "wg": 1, "q": 1, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": "", "q":"", "cost":0},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": "", "q":"", "cost":0}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0, "optimization_mode":"bins_number"}}
params = urllib.urlencode( {'query':json.dumps(data)} )
headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
conn.request( "POST", "/packer/packIntoMany", params, headers )
content = conn.getresponse( ).read( )
conn.close( )
print content
package javaapplication1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;;
import org.json.simple.JSONObject;
import org.springframework.web.client.RestTemplate;
public class JavaApplication1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws MalformedURLException, ProtocolException, IOException {
RestTemplate restTemplate = new RestTemplate();
JSONObject json = new JSONObject();
//SET BINS
List<Map<String , String>> bins = new ArrayList<Map<String,String>>();
Map<String, String> bin1 = new HashMap<String, String>();
bin1.put("id", "Pack M");
bin1.put("h", "4");
bin1.put("w", "4");
bin1.put("d", "4");
bin1.put("wg", "");
bin1.put("max_wg", "");
bin1.put("q", "");
bin1.put("cost", 0);
bins.add(bin1);
Map<String, String> bin2 = new HashMap<String, String>();
bin2.put("id", "Pack S");
bin2.put("h", "3");
bin2.put("w", "3");
bin2.put("d", "6");
bin2.put("wg", "");
bin2.put("max_wg", "");
bin1.put("q", "");
bin1.put("cost", 0);
bins.add(bin2);
//SET ITEMS
List<Map<String , String>> items = new ArrayList<Map<String,String>>();
Map<String, String> item1 = new HashMap<String, String>();
item1.put("id", "Speakers");
item1.put("w", "3");
item1.put("h", "3");
item1.put("d", "3");
item1.put("wg", "2");
item1.put("q", "3");
item1.put("vr", "1");
items.add(item1);
Map<String, String> item2 = new HashMap<String, String>();
item2.put("id", "Bigger item");
item2.put("w", "3");
item2.put("h", "3");
item2.put("d", "5");
item2.put("wg", "1");
item2.put("q", "2");
item2.put("vr", "1");
items.add(item2);
Map<String, String> item3 = new HashMap<String, String>();
item3.put("id", "Too big item");
item3.put("w", "5");
item3.put("h", "5");
item3.put("d", "5");
item3.put("wg", "1");
item3.put("q", "1");
item3.put("vr", "1");
items.add(item3);
//SET PARAMETERS
Map <String , String > params = new HashMap <String , String >();
params.put("images_background_color", "255,255,255")
params.put("images_bin_border_color", "59,59,59")
params.put("images_bin_fill_color", "230,230,230")
params.put("images_item_border_color", "22,22,22")
params.put("images_item_fill_color", "255,193,6")
params.put("images_item_back_border_color", "22,22,22")
params.put("images_sbs_last_item_fill_color", "177,14,14")
params.put("images_sbs_last_item_border_color", "22,22,22")
params.put("images_format", "svg")
params.put("images_width", "50")
params.put("images_height", "50")
params.put("images_source", "file")
params.put("stats", "0")
params.put("item_coordinates", "1")
params.put("images_complete", "1")
params.put("images_sbs", "1")
params.put("images_separated", "0")
params.put("optimization_mode", "bins_number")
//ADD ELEMENTS TO JSON
json.put("username", "YOUR_USERNAME");
json.put("api_key", "YOUR_API_KEY");
json.put("items", items);
json.put("bins", bins);
json.put("params", params);
//CALL QUERY
HttpURLConnection conn;
URL addr = new URL("https://global-api.3dbinpacking.com/packer/packIntoMany");
conn = (HttpURLConnection) addr.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.connect();
OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
// prepare POST body
String query = "query=" + json.toString();
osw.write(query);
osw.flush();
osw.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String response_json = br.readLine();
//DO SOMETHING COOL WITH THE RESPONSE
System.out.println(response_json);
}
}
string data;
System.Net.HttpWebRequest req = System.Net.WebRequest.Create("https://global-api.3dbinpacking.com/packer/packIntoMany") as System.Net.HttpWebRequest;
var request_data = new {username = "YOUR_USERNAME",
api_key = "YOUR_API_KEY",
items = new[] {
new { id = "Speakers", w = "3", h = "3", d = "3", wg = "2", q = "3", vr = "1"},
new { id = "Bigger item", w = "3", h = "3", d = "5", wg = "1", q = "2", vr = "1"},
new { id = "Too big item", w = "5", h = "5", d = "5", wg = "1", q = "1", vr = "1"}
},
bins = new[] {
new { id = "Pack M", h = "4", w = "4", d = "4", wg = "", max_wg = "", "q" = "", "cost" = 0},
new { id = "Pack S", h = "3", w = "3", d = "6", wg = "", max_wg = "", "q" = "", "cost" = 0}
},
@params = new { images_background_color = "255,255,255",
images_bin_border_color = "59,59,59",
images_bin_fill_color = "230,230,230",
images_item_border_color = "22,22,22",
images_item_fill_color = "255,193,6",
images_item_back_border_color = "22,22,22",
images_sbs_last_item_fill_color = "177,14,14",
images_sbs_last_item_border_color = "22,22,22",
images_format = "svg",
images_width = "50",
images_height = "50",
images_source = "file",
stats = "0",
item_coordinates = "1",
images_complete = "1",
images_sbs = "1",
images_separated = "0",
optimization_mode= "bins_number"
}
};
string json_str = JsonConvert.SerializeObject(request_data);
string queryParam = "query="+json_str;
byte[] postBytes = System.Text.Encoding.ASCII.GetBytes(queryParam);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postBytes.Length;
System.IO.Stream postStream = req.GetRequestStream();
postStream.Write(postBytes, 0, postBytes.Length);
postStream.Close();
X509Certificate Cert = X509Certificate2.CreateFromCertFile("path_to_pem_key\global-api.3dbinpacking.com.pem");
req.ClientCertificates.Add(Cert);
using (System.Net.HttpWebResponse response = req.GetResponse() as System.Net.HttpWebResponse)
{
System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
data = reader.ReadToEnd();
}
Nazwa parametru | Opis | Typ danych |
---|---|---|
username (wymagane) |
Nazwa użytkownika. Możesz ją znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
api_key (wymagane) |
Klucz API. Możesz go znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
[bins] (wymagane) |
Tablica parametrów przestrzeni ładunkowych | tablica |
[items] (wymagane) |
Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 | tablica |
params | Tablica parametrów dodatkowych zapytań of extra request parameters | tablica |
[bins] - Tablica przestrzeni ładunkowych
Nazwa parametru | Opis | Typ danych |
---|---|---|
id (wymagane) |
ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania | ciąg znaków |
w (wymagane) |
Szerokość przestrzeni ładunkowej | integer or float |
h (wymagane) |
wysokość przestrzeni ładunkowej | integer or float |
d (wymagane) |
Głębokość/długość przestrzeni ładunkowej | integer or float |
wg | Waga pojemnika | integer or float |
max_wg | Maksymalna waga przestrzeni ładunkowej. Wartość ustawiona na '0' (zero) oznacza, że nie ma limitu obciążenia | integer or float |
q | Maksymalna ilość przestrzeni ładunkowej o podanych wymiarach | Brak ustawionego parametru lub o wartości NULL - oznacza, że liczba danej przestrzeni ładunkowej jest nieskończona |
cost | Koszt wysyłki przestrzeni ładunkowej. Wartość ta jest wykorzystywana przy pakowaniu z parametrem 'optimization_mode' ustawionym na 'cost' | integer or float |
[items] - Tablica parametrów przedmiotów
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
id (wymagane) |
ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków | |
w (wymagane) |
Szerokość przedmiotu | integer or float | |
h (wymagane) |
Wysokość przedmiotu | integer or float | |
d (wymagane) |
Głębokość lub długość przedmiotu | integer or float | |
wg | Waga przedmiotu | integer or float | |
vr | Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. | integer | Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. |
q (wymagane) |
Ilość przedmiotów o danych wymiarach do zapakowania | integer | |
group | Przedmioty zostaną zapakowane według utworzonych grup. Parametr umożliwia oddzielenie np. produktów spożywczych (grupa 'X') od chemii gospodarczej (grupa 'Y'). | ciąg znaków | |
separate | Odseparowanie przedmiotów. Ustawienie tego parametru na '1' oznacza, że dane przedmioty nie mogą być pakowane razem z innymi przedmiotami | integer | Dopuszczalne wartości: 1 - oznacza, że przedmioty będą odseparowane, 0 [domyślnie] - oznacza, że przedmioty nie będą odseparowane |
limit_per_bin | Ogranicza liczbę przedmiotów danych wymiarów w jednej przestrzeni ładunkowej podczas pakowania. | integer | |
acceptable_bins | Określa, które pojemniki mogą zostać użyte do zapakowania przedmiotów. Jeżeli parametr nie jest ustawiony, wtedy wszystkie pojemniki zostaną użyte. Podane wartości muszą zawierać ID pojemników podanych w parametrze 'bins'. | tablica | |
item_colors_schema | Określa, który schemat kolorów zostanie użyty | ciąg znaków | Dopuszczalne wartości: default - użyte zostaną kolory ustawione w parametrach 'images_item_border_color' i 'images_bin_fill_color', 'random' - kolory zostaną ustawione losowo, 'item' - użyte zostaną kolory podane w sekcji 'item' w parametrach: 'item_fill_color' i 'item_border_color'. |
item_fill_color | Kolor wypełnienia przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
params - Dodatkowe parametry
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
optimization_mode | Określa metodę optymalizacji pakowania | ciąg znaków | Dopuszczalne wartości: bins_number [default] - jak najmniejsza liczba przestrzeni ładunkowych; bins_utilization - jak najmniejsza ilość wolnej przestrzeni w przestrzeniach ładunkowych; cost - najmniejszy koszt przesyłki lub transportu (wymaga podania parametru 'cost' dla każdej przestrzeni ładunkowej) |
images_width | Maks. szerokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_height | Maks. wysokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_background_color | Kolor tła | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_border_color | Kolor krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_dashed_line_color | Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_fill_color | Kolor wypełnienia przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_fill_color | Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_border_color | Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_format | Format plików zwracanych obrazków | ciąg znaków | Dopuszczalne wartości: [ png , svg ] |
images_sbs | Generuje obrazki pokazujące proces pakowania 'krok po kroku' | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana |
images_complete | Generuj grafikę przedstawiającą obrazek końcowy zapakowania | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana |
images_separated | Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana |
item_coordinates | Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów | integer | Dopuszczalne wartości: 0 [default] - oznacza, że współrzędne nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że współrzędne zostaną zwrócone w odpowiedzi |
stats | Zwraca statystyki procesu pakowania (np. czas generowania obrazków) | integer | Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi |
Paramtery odpowiedzi
RESPONSE
{
"response":{
"id":"response_id",
"bins_packed":[
{
"bin_data":{
"w":3,
"h":3,
"d":6,
"id":"Pack S",
"used_space":100,
"weight":4,
"gross_weight":4,
"used_weight":100,
"stack_height":3
},
"image_complete":"image_url.svg",
"items":[
{
"id":"Speakers",
"w":3,
"h":3,
"d":3,
"wg":2,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}
},{
"id":"Speakers",
"w":3,
"h":3,
"d":3,
"wg":2,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":0,"z1":3,"x2":3,"y2":3,"z2":6}
}
]
},{
"bin_data":{
"w":3,
"h":3,
"d":6,
"id":"Pack S",
"used_space":83.3333,
"weight":1,
"gross_weight":1,
"used_weight":100,
"stack_height":3
},
"image_complete":"image_url.svg",
"items":[
{
"id":"Bigger item",
"w":3,
"h":3,
"d":5,
"wg":1,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":5}
}
]
}
],
"errors":[
{
"level":"notice",
"message":"Item \u0027Too big item\u0027 can\u0027t be packed into any bin."
}
],
"status":1,
"not_packed_items":[
{
"id":"Too big item",
"q":1,
"w":5,
"h":5,
"d":5,
"wg":1
}
]
}
}
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
[bins_packed] | Lista zapakowanych przestrzeni ładunkowych | tablica | |
errors | Lista możliwych błędów, które wystąpiły w zapytaniu | tablica | Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu |
status | Status odpowiedzi | integer | Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne. * błąd krytyczny - błąd uniemożliwiający pakowanie. Może nim być brak któregoś z wymaganych parametrów ('username','api_key') lub niewłaściwa wartość parametru (np. pole, które powinno zawierać liczbę, zawiera ciąg znaków). |
[not_packed_items] | “Przedmioty, które zawierały niewłaściwe parametry lub nie zostały zapakowane ze względu na wagę lub rozmiar | tablica |
[bins_packed] - Zapakowane przestrzenie ładunkowe
Nazwa parametru | Opis | Typ danych |
---|---|---|
bin_data | Detale zapakowanej przestrzeni ładunkowej | tablica |
image_complete | Grafika przedstawiająca zapakowany pojemnik | url |
[items] | Zapakowane przedmioty w pojemniku | tablica |
[bin_data] - Szczegóły zapakowanej przestrzeni ładunkowej
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania | ciąg znaków |
w | Szerokość przestrzeni ładunkowej | integer or float |
h | wysokość przestrzeni ładunkowej | integer or float |
d | Głębokość/długość przestrzeni ładunkowej | integer or float |
used_space | Procent wykorzystania przestrzeni ładunkowej | integer or float |
weight | Waga zapakowanych przedmiotów | integer or float |
gross_weight | Waga zapakowanych przedmiotów + waga przestrzeni ładunkowej | integer or float |
used_weight | Procent wykorzystania dopuszczalnej wagi | integer or float |
stack_height | Wysokość, na jaką zastały ułożone przedmioty w przestrzeni ładunkowej | integer or float |
[items] - Zapakowane przedmioty
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
wg | Waga przedmiotu | integer or float |
image_separated | Grafika przedstawiająca położenie każdego przedmiotu | url |
image_sbs | Grafika pakowania “krok po kroku” | url |
coordinates | Koordynaty przedmiotu w przestrzeni ładunkowej | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - Przedmioty niezapakowane
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
q | Ilość przedmiotów o danych wymiarach do zapakowania | integer |
wg | Waga przedmiotu | integer or float |
Spakuj paletę
Użyj narzędzia Spakuj paletę, aby optymalnie wykorzystać przestrzeń i zmniejszyć liczbę palet potrzebną do transportu.
URL
- https://global-api.3dbinpacking.com/packer/palletPack
- https://us-east.api.3dbinpacking.com/packer/palletPack
- https://eu.api.3dbinpacking.com/packer/palletPack
- https://asia1.api.3dbinpacking.com/packer/palletPack
Parametry zapytania
Wymagane parametry
REQUEST
{
"username":"_USERNAME_",
"api_key":"_API_KEY_",
"items":
[
{
"id":"Speakers",
"w":3,
"h":3,
"d":3,
"wg":2,
"q":2,
"vr":true
},
{
"id":"Bigger item",
"w":3,
"h":3,
"d":5,
"wg":1,
"q":2,
"vr":true
}
],
"pallet":
{
"id":"Palet M",
"h":4,
"w":4,
"d":4,
"wg":"",
"max_wg":""
},
"params":
{
"images_background_color":"255,255,255",
"images_bin_border_color":"59,59,59",
"images_bin_fill_color":"230,230,230",
"images_item_border_color":"22,22,22",
"images_item_fill_color":"255,193,6",
"images_item_back_border_color":"22,22,22",
"images_sbs_last_item_fill_color":"177,14,14",
"images_sbs_last_item_border_color":"22,22,22",
"images_format":"svg",
"images_width":50,
"images_height":50,
"images_source":"file",
"stats":0,
"item_coordinates":1,
"images_complete":1,
"images_sbs":1,
"images_separated":0
}
}
Nazwa parametru | Opis | Typ danych |
---|---|---|
username (wymagane) |
Nazwa użytkownika. Możesz ją znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
api_key (wymagane) |
Klucz API. Możesz go znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
[pallet] (wymagane) |
Array of pallet parameters | tablica |
[items] (wymagane) |
Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 | tablica |
params | Tablica parametrów dodatkowych zapytań | tablica |
[pallet] - Tablica parametrów palety
Nazwa parametru | Opis | Typ danych |
---|---|---|
id (wymagane) |
ID palety, na której zostaną zapakowane przedmioty | ciąg znaków |
w (wymagane) |
Szerokość palety | integer or float |
h (wymagane) |
Wysokość palety | integer or float |
d (wymagane) |
Głębokość/długość palety | integer or float |
wg | Waga pojemnika | integer or float |
max_wg | Maksymalna waga przestrzeni ładunkowej. Wartość ustawiona na '0' (zero) oznacza, że nie ma limitu obciążenia | integer or float |
[items] - Tablica parametrów przedmiotów
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
id (wymagane) |
ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków | |
w (wymagane) |
Szerokość przedmiotu | integer or float | |
h (wymagane) |
Wysokość przedmiotu | integer or float | |
d (wymagane) |
Głębokość lub długość przedmiotu | integer or float | |
wg | Waga przedmiotu | integer or float | |
vr | Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. | integer | Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. |
q (wymagane) |
Ilość przedmiotów o danych wymiarach do zapakowania | integer | |
item_colors_schema | Określa, który schemat kolorów zostanie użyty | ciąg znaków | |
item_fill_color | Kolor wypełnienia przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
params - Dodatkowe parametry
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
images_width | Maks. szerokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_height | Maks. wysokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_background_color | Kolor tła | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_border_color | Kolor krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_dashed_line_color | Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_fill_color | Kolor wypełnienia przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_fill_color | Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_border_color | Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_format | Format plików zwracanych obrazków | ciąg znaków | Dopuszczalne wartości: [ png , svg ] |
images_sbs | Generuje obrazki pokazujące proces pakowania 'krok po kroku' | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana |
images_complete | Generuj grafikę przedstawiającą obrazek końcowy zapakowania | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana |
images_separated | Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana |
item_coordinates | Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów | integer | Dopuszczalne wartości: 0 [default] - oznacza, że współrzędne nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że współrzędne zostaną zwrócone w odpowiedzi |
stats | Zwraca statystyki procesu pakowania (np. czas generowania obrazków) | integer | Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi |
Paramtery odpowiedzi
RESPONSE
{
"id":"response_id",
"pallets_packed":[
{
"pallet_data":{
"w":4,
"h":3,
"d":4,
"id":"Paleta M",
"used_space":56.25,
"weight":2,
"used_weight":100,
"gross_weight":2,
"stack_height":3
},
"image_complete":"image_url.svg",
"items":[
{
"id":"Speakers",
"w":3,
"h":3,
"d":3,
"wg":2,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}
}
]
},
{
"pallet_data":{
"w":4,
"h":3,
"d":4,
"id":"Palet M",
"used_space":56.25,
"weight":2,
"used_weight":100,
"gross_weight":2,
"stack_height":3
},
"image_complete":"image_url.svg",
"items":[
{
"id":"Speakers",
"w":3,
"h":3,
"d":3,
"wg":2,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}
}
]
}
],
"errors":[],
"status":1,
"not_packed_items":[
{
"id":"Bigger item",
"q":2,
"w":3,
"h":3,
"d":5,
"wg":1
}
]
}
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
[pallets_packed] | Zapakowane palety | tablica | |
errors | Lista możliwych błędów, które wystąpiły w zapytaniu | tablica | Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu |
status | Status odpowiedzi | integer | Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne. * błąd krytyczny - błąd uniemożliwiający pakowanie. Może nim być brak któregoś z wymaganych parametrów ('username','api_key') lub niewłaściwa wartość parametru (np. pole, które powinno zawierać liczbę, zawiera ciąg znaków). |
[not_packed_items] | “Przedmioty, które zawierały niewłaściwe parametry lub nie zostały zapakowane ze względu na wagę lub rozmiar | tablica |
[pallets_packed] - Zapakowane palety
Nazwa parametru | Opis | Typ danych |
---|---|---|
pallet_data | Detale zapakowanej przestrzeni ładunkowej | tablica |
image_complete | Grafika przedstawiająca zapakowany pojemnik | url |
[items] | Zapakowane przedmioty w pojemniku | tablica |
[pallet_data] - Szczegóły zapakowanej przestrzeni ładunkowej
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania | ciąg znaków |
w | Szerokość przestrzeni ładunkowej | integer or float |
h | wysokość przestrzeni ładunkowej | integer or float |
d | Głębokość/długość przestrzeni ładunkowej | integer or float |
used_space | Procent wykorzystania przestrzeni ładunkowej | integer or float |
weight | Waga zapakowanych przedmiotów | integer or float |
gross_weight | Waga zapakowanych przedmiotów + waga przestrzeni ładunkowej | integer or float |
used_weight | Procent wykorzystania dopuszczalnej wagi | integer or float |
stack_height | Wysokość, na jaką zastały ułożone przedmioty w przestrzeni ładunkowej | integer or float |
[items] - Zapakowane przedmioty
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
wg | Waga przedmiotu | integer or float |
image_separated | Grafika przedstawiająca położenie każdego przedmiotu | url |
image_sbs | Grafika pakowania “krok po kroku” | url |
coordinates | Koordynaty przedmiotu w przestrzeni ładunkowej | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - Przedmioty niezapakowane
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
q | Ilość przedmiotów o danych wymiarach do zapakowania | integer |
wg | Waga przedmiotu | integer or float |
Znajdź brakujący wymiar
Użyj narzędzia Znajdź brakujący wymiar, jeżeli znasz dwa wymiary przestrzeni ładunkowej i chcesz obliczyć jej trzeci wymiar.
URL
- https://global-api.3dbinpacking.com/packer/findSmallestBin
- https://us-east.api.3dbinpacking.com/packer/findSmallestBin
- https://eu.api.3dbinpacking.com/packer/findSmallestBin
- https://asia1.api.3dbinpacking.com/packer/findSmallestBin
Parametry zapytania
Wymagane parametry
REQUEST
{
"username":"_USERNAME_",
"api_key":"_API_KEY_",
"bins": [
{
"w": 5,
"h": 0,
"d": 5,
"id": "Bin1",
"find": "h"
},
{
"w": 3,
"h": 30,
"d": 3,
"id": "Bin2",
"find": "h"
}
],
"items": [
{
"w": 5,
"h": 3,
"d": 2,
"q": 2,
"vr": 1,
"id": "Item1"
},
{
"w": 3,
"h": 3,
"d": 3,
"q": 3,
"vr": 1,
"id": "Item2"
}
],
"params":
{
"images_background_color":"255,255,255",
"images_bin_border_color":"59,59,59",
"images_bin_fill_color":"230,230,230",
"images_item_border_color":"22,22,22",
"images_item_fill_color":"255,193,6",
"images_item_back_border_color":"22,22,22",
"images_sbs_last_item_fill_color":"177,14,14",
"images_sbs_last_item_border_color":"22,22,22",
"images_format":"svg",
"images_width":50,
"images_height":50,
"images_source":"file",
"stats":0,
"item_coordinates":1,
"images_complete":1,
"images_sbs":1,
"images_separated":0
}
}
curl -X POST \\
-H "Content-Type: application/json" \\
-d '{"username": "_USERNAME_", "api_key": "_API_KEY_", "bins": [{"w": 5,"h": 0,"d": 5,"id": "Bin1","find": "h"},{"w": 3,"h": 30,"d": 3,"id": "Bin2","find": "h"}],"items": [{"w": 5,"h": 3,"d": 2,"q": 2,"vr": 1,"id": "Item1"},{"w": 3,"h": 3,"d": 3,"q": 3,"vr": 1,"id": "Item2"}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}' \\
https://global-api.3dbinpacking.com/packer/findSmallestBin \\
-k
<?php
$data = array(
'bins' => array(
array(
'id' => 'Bin1',
'h' => '0',
'w' => '5',
'd' => '5',
'find' => 'h'
),
array(
'id' => 'Pack S',
'h' => '30',
'w' => '3',
'd' => '3',
'find' => 'h'
)
),
'items' => array(
array(
'id' => 'Item1',
'w' => '5',
'h' => '3',
'd' => '2',
'wg' => '2',
'q' => '2',
'vr' => '1'
),
array(
'id' => 'Item2',
'w' => '3',
'h' => '3',
'd' => '3',
'wg' => '1',
'q' => '3',
'vr' => '1'
)
),
'username' => 'YOUR_USERNAME',
'api_key' => 'YOUR_API_KEY',
'params' => array(
'images_background_color' => '255,255,255',
'images_bin_border_color' => '59,59,59',
'images_bin_fill_color' => '230,230,230',
'images_item_border_color' => '22,22,22',
'images_item_fill_color' => '255,193,6',
'images_item_back_border_color' => '22,22,22',
'images_sbs_last_item_fill_color' => '177,14,14',
'images_sbs_last_item_border_color' => '22,22,22',
'images_format' => 'svg',
'images_width' => '50',
'images_height' => '50',
'images_source' => 'file',
'stats' => '0',
'item_coordinates' => '1',
'images_complete' => '1',
'images_sbs' => '1',
'images_separated' => '0'
)
);
$query = json_encode($data);
$url = "https://global-api.3dbinpacking.com/packer/findSmallestBin";
$prepared_query = 'query='.$query;
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $prepared_query );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$resp = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error #' . curl_errno($ch) . ': ' . curl_error($ch).'<br>';
}
curl_close($ch);
$response = json_decode($resp,true);
// display errors
if(isset($response['response']['errors'])){
foreach($response['response']['errors'] as $error){
echo $error['message'].'<br>';
}
}
// display data
if( $response['response']['status'] > -1 ){
$b_packed= $response['response']['bins_packed'];
foreach ($b_packed as $bin){
echo "<h2>Bin id:{$bin['bin_data']['id']}</h2>
<p> {$bin['bin_data']['w']} x {$bin['bin_data']['h']} x {$bin['bin_data']['d']}</p>
<p> Weight:{$bin['bin_data']['weight']}</p>
<p> Used weight:{ $bin['bin_data']['used_weight'] }</p>
<img src=\"{$bin['image_complete']}\">
<h2>Items packed in this bin:</h2>";
$items = $bin['items'];
echo '<table style="text-align: center">
<tr><th>Item id</th>
<th>Item dimensions</th>
<th>Item weight</th>
<th>Separated item</th>
<th>Step by step</th></tr>';
foreach ( $items as $item){
echo "<tr><td>{$item['id']}</td>
<td> {$item['w']} x {$item['h']} x {$bin['bin_data']['d']}</td>
<td> {$item['wg']}</td>
<td><img src=\"{$item['image_separated']}\"></td>
<td><img src=\"{$item['image_sbs']}\"></td>
</tr>";
}
echo '</table>';
echo '<hr>';
}
}
#!/usr/bin/python
import httplib
import urllib
import json
conn = httplib.HTTPConnection(host='global-api.3dbinpacking.com', port=80)
data = {"username": "_USERNAME_", "api_key": "_API_KEY_", "bins": [{"w": 5,"h": 0,"d": 5,"id": "Bin1","find": "h"},{"w": 3,"h": 30,"d": 3,"id": "Bin2","find": "h"}],"items": [{"w": 5,"h": 3,"d": 2,"q": 2,"vr": 1,"id": "Item1"},{"w": 3,"h": 3,"d": 3,"q": 3,"vr": 1,"id": "Item2"}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}
params = urllib.urlencode( {'query':json.dumps(data)} )
headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
conn.request( "POST", "/packer/findSmallestBin", params, headers )
content = conn.getresponse( ).read( )
conn.close( )
print content
package javaapplication1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;;
import org.json.simple.JSONObject;
import org.springframework.web.client.RestTemplate;
public class JavaApplication1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws MalformedURLException, ProtocolException, IOException {
RestTemplate restTemplate = new RestTemplate();
JSONObject json = new JSONObject();
//SET BINS
List<Map<String , String>> bins = new ArrayList<Map<String,String>>();
Map<String, String> bin1 = new HashMap<String, String>();
bin1.put("id", "Bin1");
bin1.put("h", "0");
bin1.put("w", "5");
bin1.put("d", "5");
bin1.put("find", "h");
bins.add(bin1);
Map<String, String> bin2 = new HashMap<String, String>();
bin2.put("id", "Bin2");
bin2.put("h", "30");
bin2.put("w", "5");
bin2.put("d", "5");
bin2.put("find", "h");
bins.add(bin2);
//SET ITEMS
List<Map<String , String>> items = new ArrayList<Map<String,String>>();
Map<String, String> item1 = new HashMap<String, String>();
item1.put("id", "Item1");
item1.put("w", "5");
item1.put("h", "3");
item1.put("d", "2");
item1.put("q", "2");
item1.put("vr", "1");
items.add(item1);
Map<String, String> item2 = new HashMap<String, String>();
item2.put("id", "Item2");
item2.put("w", "3");
item2.put("h", "3");
item2.put("d", "3");
item2.put("wg", "1");
item2.put("q", "3");
item2.put("vr", "1");
items.add(item2);
//SET PARAMETERS
Map <String , String > params = new HashMap <String , String >();
params.put("images_background_color", "255,255,255")
params.put("images_bin_border_color", "59,59,59")
params.put("images_bin_fill_color", "230,230,230")
params.put("images_item_border_color", "22,22,22")
params.put("images_item_fill_color", "255,193,6")
params.put("images_item_back_border_color", "22,22,22")
params.put("images_sbs_last_item_fill_color", "177,14,14")
params.put("images_sbs_last_item_border_color", "22,22,22")
params.put("images_format", "svg")
params.put("images_width", "50")
params.put("images_height", "50")
params.put("images_source", "file")
params.put("stats", "0")
params.put("item_coordinates", "1")
params.put("images_complete", "1")
params.put("images_sbs", "1")
params.put("images_separated", "0")
//ADD ELEMENTS TO JSON
json.put("username", "YOUR_USERNAME");
json.put("api_key", "YOUR_API_KEY");
json.put("items", items);
json.put("bins", bins);
json.put("params", params);
//CALL QUERY
HttpURLConnection conn;
URL addr = new URL("https://global-api.3dbinpacking.com/packer/findSmallestBin");
conn = (HttpURLConnection) addr.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.connect();
OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
// prepare POST body
String query = "query=" + json.toString();
osw.write(query);
osw.flush();
osw.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String response_json = br.readLine();
//DO SOMETHING COOL WITH THE RESPONSE
System.out.println(response_json);
}
}
string data;
System.Net.HttpWebRequest req = System.Net.WebRequest.Create("https://global-api.3dbinpacking.com/packer/findSmallestBin") as System.Net.HttpWebRequest;
var request_data = new {username = "YOUR_USERNAME",
api_key = "YOUR_API_KEY",
items = new[] {
new { id = "Item1", w = "5", h = "3", d = "2", wg = "2", q = "2", vr = "1"},
new { id = "Item2", w = "3", h = "3", d = "3", wg = "1", q = "3", vr = "1"}
},
bins = new[] {
new { id = "Bin1", h = "0", w = "5", d = "5"},
new { id = "Bin2", h = "30", w = "5", d = "5"}
},
@params = new { images_background_color = "255,255,255",
images_bin_border_color = "59,59,59",
images_bin_fill_color = "230,230,230",
images_item_border_color = "22,22,22",
images_item_fill_color = "255,193,6",
images_item_back_border_color = "22,22,22",
images_sbs_last_item_fill_color = "177,14,14",
images_sbs_last_item_border_color = "22,22,22",
images_format = "svg",
images_width = "50",
images_height = "50",
images_source = "file",
stats = "0",
item_coordinates = "1",
images_complete = "1",
images_sbs = "1",
images_separated = "0"
}
};
string json_str = JsonConvert.SerializeObject(request_data);
string queryParam = "query="+json_str;
byte[] postBytes = System.Text.Encoding.ASCII.GetBytes(queryParam);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postBytes.Length;
System.IO.Stream postStream = req.GetRequestStream();
postStream.Write(postBytes, 0, postBytes.Length);
postStream.Close();
X509Certificate Cert = X509Certificate2.CreateFromCertFile("path_to_pem_key\global-api.3dbinpacking.com.pem");
req.ClientCertificates.Add(Cert);
using (System.Net.HttpWebResponse response = req.GetResponse() as System.Net.HttpWebResponse)
{
System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
data = reader.ReadToEnd();
}
Nazwa parametru | Opis | Typ danych |
---|---|---|
username (wymagane) |
Nazwa użytkownika. Możesz ją znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
api_key (wymagane) |
Klucz API. Możesz go znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
[bins] (wymagane) |
Tablica parametrów przestrzeni ładunkowych | tablica |
[items] (wymagane) |
Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 | tablica |
params | Tablica parametrów dodatkowych zapytań | tablica |
[bins] - Tablica przestrzeni ładunkowych
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
id (wymagane) |
ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania | ciąg znaków | |
w (wymagane) |
Szerokość przestrzeni ładunkowej | float | |
h (wymagane) |
wysokość przestrzeni ładunkowej | float | |
d (wymagane) |
Głębokość/długość przestrzeni ładunkowej | float | |
find (wymagane) |
Wskazuje, który wymiar paczki ma zostać znaleziony | ciąg znaków | Dopuszczalne wartości: 'w' - oznacza, że algorytm będzie obliczał szerokość pojemnika, 'h' - oznacza, że algorytm będzie obliczał wysokość pojemnika, 'd' - oznacza, że algorytm będzie obliczał głębokość pojemnika |
[items] - Tablica parametrów przedmiotów
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
id (wymagane) |
ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków | |
w (wymagane) |
Szerokość przedmiotu | integer or float | |
h (wymagane) |
Wysokość przedmiotu | integer or float | |
d (wymagane) |
Głębokość lub długość przedmiotu | integer or float | |
wg | Waga przedmiotu | integer or float | |
vr | Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. | integer | Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. |
q (wymagane) |
Ilość przedmiotów o danych wymiarach do zapakowania | integer | |
acceptable_bins | Określa, które pojemniki mogą zostać użyte do zapakowania przedmiotów. Jeżeli parametr nie jest ustawiony, wtedy wszystkie pojemniki zostaną użyte. Podane wartości muszą zawierać ID pojemników podanych w parametrze 'bins'. | tablica | |
item_colors_schema | Określa, który schemat kolorów zostanie użyty | ciąg znaków | Dopuszczalne wartości: default - użyte zostaną kolory ustawione w parametrach 'images_item_border_color' i 'images_bin_fill_color', 'random' - kolory zostaną ustawione losowo, 'item' - użyte zostaną kolory podane w sekcji 'item' w parametrach: 'item_fill_color' i 'item_border_color'. |
item_fill_color | Kolor wypełnienia przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
params - Dodatkowe parametry
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
images_width | Maks. szerokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_height | Maks. wysokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_background_color | Kolor tła | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_border_color | Kolor krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_dashed_line_color | Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_fill_color | Kolor wypełnienia przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_fill_color | Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_border_color | Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_format | Format plików zwracanych obrazków | ciąg znaków | Dopuszczalne wartości: [ png , svg ] |
images_sbs | Generuje obrazki pokazujące proces pakowania 'krok po kroku' | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana |
images_complete | Generuj grafikę przedstawiającą obrazek końcowy zapakowania | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana |
images_separated | Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana |
item_coordinates | Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów | integer | Dopuszczalne wartości: 0 [default] - oznacza, że współrzędne nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że współrzędne zostaną zwrócone w odpowiedzi |
stats | Zwraca statystyki procesu pakowania (np. czas generowania obrazków) | integer | Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi |
Paramtery odpowiedzi
RESPONSE
{
"response":{
"id":"response_id",
"bins_packed":[
{
"bin_data":{
"w":5,
"h":9,
"d":5,
"id":"Bin1",
"used_space":62.6667,
"weight":0,
"gross_weight":0,
"used_weight":100,
"stack_height":9,
"order_id":null
},
"image_complete":"image_url.svg",
"items":[
{
"id":"Item1",
"w":5,
"h":3,
"d":2,
"wg":0,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":0,"z1":0,"x2":2,"y2":5,"z2":3}
},{
"id":"Item2",
"w":3,
"h":3,
"d":3,
"wg":0,
"image_sbs":"image_url.svg",
"coordinates":{"x1":2,"y1":0,"z1":0,"x2":5,"y2":3,"z2":3}
},{
"id":"Item1",
"w":5,
"h":3,
"d":2,
"wg":0,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":5,"z1":0,"x2":2,"y2":8,"z2":5}
},{
"id":"Item2",
"w":3,
"h":3,
"d":3,
"wg":0,
"image_sbs":"image_url.svg",
"coordinates":{"x1":2,"y1":3,"z1":0,"x2":5,"y2":6,"z2":3}
},{
"id":"Item2",
"w":3,
"h":3,
"d":3,
"wg":0,
"image_sbs":"image_url.svg",
"coordinates":{"x1":2,"y1":6,"z1":0,"x2":5,"y2":9,"z2":3}
}
],
"not_packed_items":[]
},{
"bin_data":{
"w":3,
"h":19,
"d":3,
"id":"Bin2",
"used_space":82.4561,
"weight":0,
"gross_weight":0,
"used_weight":100,
"stack_height":19,
"order_id":null
},
"image_complete":"image_url.svg",
"items":[
{
"id":"Item2",
"w":3,
"h":3,
"d":3,
"wg":0,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}
},{
"id":"Item2",
"w":3,
"h":3,
"d":3,
"wg":0,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":3,"z1":0,"x2":3,"y2":6,"z2":3}
},{
"id":"Item2",
"w":3,
"h":3,
"d":3,
"wg":0,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":6,"z1":0,"x2":3,"y2":9,"z2":3}
},{
"id":"Item1",
"w":5,
"h":3,
"d":2,
"wg":0,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":9,"z1":0,"x2":3,"y2":14,"z2":2}
},{
"id":"Item1",
"w":5,
"h":3,
"d":2,
"wg":0,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":14,"z1":0,"x2":3,"y2":19,"z2":2}
}
],
"not_packed_items":[]
}
],
"errors":[],
"status":1,
"not_packed_items":[]
}
}
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
[bins_packed] | Lista zapakowanych przestrzeni ładunkowych | tablica | |
errors | Lista możliwych błędów, które wystąpiły w zapytaniu | tablica | Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu |
status | Status odpowiedzi | integer | Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne. * błąd krytyczny - błąd uniemożliwiający pakowanie. Może nim być brak któregoś z wymaganych parametrów ('username','api_key') lub niewłaściwa wartość parametru (np. pole, które powinno zawierać liczbę, zawiera ciąg znaków). |
[not_packed_items] | “Przedmioty, które zawierały niewłaściwe parametry lub nie zostały zapakowane ze względu na wagę lub rozmiar | tablica |
[bins_packed] - Zapakowane przestrzenie ładunkowe
Nazwa parametru | Opis | Typ danych |
---|---|---|
bin_data | Detale zapakowanej przestrzeni ładunkowej | tablica |
image_complete | Grafika przedstawiająca zapakowany pojemnik | url |
[items] | Zapakowane przedmioty w pojemniku | tablica |
[not_packed_items] | Niezapakowane przedmioty w danym pojemniku | tablica |
[bin_data] - Szczegóły zapakowanej przestrzeni ładunkowej
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania | ciąg znaków |
w | Szerokość przestrzeni ładunkowej | integer or float |
h | wysokość przestrzeni ładunkowej | integer or float |
d | Głębokość/długość przestrzeni ładunkowej | integer or float |
used_space | Procent wykorzystania przestrzeni ładunkowej | integer or float |
weight | Waga zapakowanych przedmiotów | integer or float |
gross_weight | Waga zapakowanych przedmiotów + waga przestrzeni ładunkowej | integer or float |
used_weight | Procent wykorzystania dopuszczalnej wagi | integer or float |
stack_height | Wysokość, na jaką zastały ułożone przedmioty w przestrzeni ładunkowej | integer or float |
[items] - Zapakowane przedmioty
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
wg | Waga przedmiotu | integer or float |
image_separated | Grafika przedstawiająca położenie każdego przedmiotu | url |
image_sbs | Grafika pakowania “krok po kroku” | url |
coordinates | Koordynaty przedmiotu w przestrzeni ładunkowej | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - Przedmioty niezapakowane
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
q | Ilość przedmiotów o danych wymiarach do zapakowania | integer |
wg | Waga przedmiotu | integer or float |
Znajdź pojemnik
Użyj narzędzia Znajdź pojemnik, aby obliczyć optymalny rozmiar pojemnika dla spakowania Twoich przedmiotów.
URL
- https://global-api.3dbinpacking.com/packer/findBinSize
- https://us-east.api.3dbinpacking.com/packer/findBinSize
- https://eu.api.3dbinpacking.com/packer/findBinSize
- https://asia1.api.3dbinpacking.com/packer/findBinSize
Parametry zapytania
Wymagane parametry
REQUEST
{
"bins": [
{
"w": 0,
"h": 0,
"d": 0,
"id": "Bin1"
}
],
"items": [
{
"w": 5,
"h": 3,
"d": 2,
"q": 2,
"vr": 1,
"id": "Item1"
},{
"w": 3,
"h": 3,
"d": 3,
"q": 3,
"vr": 1,
"id": "Item2"
}
],
"username": "YOUR_USERNAME",
"api_key": "YOUR_API_KEY",
"params": {
"images_background_color": "255,255,255",
"images_bin_border_color": "59,59,59",
"images_bin_fill_color": "230,230,230",
"images_item_border_color": "214,79,79",
"images_item_fill_color": "177,14,14",
"images_item_back_border_color": "215,103,103",
"images_sbs_last_item_fill_color": "99,93,93",
"images_sbs_last_item_border_color": "145,133,133",
"images_width": 100,
"images_height": 100,
"images_source": "file",
"images_sbs": 1,
"item_coordinates": 1,
"images_complete": 1,
"images_separated": 1
}
}
curl -X POST \\
-H "Content-Type: application/json" \\
-d '{"username": "_USERNAME_", "api_key": "_API_KEY_", "bins": [{"w": 0,"h": 0,"d": 0,"id": "Bin1"}],"items": [{"w": 5,"h": 3,"d": 2,"q": 2,"vr": 1,"id": "Item1"},{"w": 3,"h": 3,"d": 3,"q": 3,"vr": 1,"id": "Item2"}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}' \\
https://global-api.3dbinpacking.com/packer/findBinSize \\
-k
<?php
$data = array(
'bins' => array(
array(
'id' => 'Bin1',
'h' => '0',
'w' => '0',
'd' => '0',
)
),
'items' => array(
array(
'id' => 'Item1',
'w' => '5',
'h' => '3',
'd' => '2',
'q' => '2',
'vr' => '1'
),
array(
'id' => 'Item2',
'w' => '3',
'h' => '3',
'd' => '3',
'q' => '3',
'vr' => '1'
)
),
'username' => 'YOUR_USERNAME',
'api_key' => 'YOUR_API_KEY',
'params' => array(
'images_background_color' => '255,255,255',
'images_bin_border_color' => '59,59,59',
'images_bin_fill_color' => '230,230,230',
'images_item_border_color' => '22,22,22',
'images_item_fill_color' => '255,193,6',
'images_item_back_border_color' => '22,22,22',
'images_sbs_last_item_fill_color' => '177,14,14',
'images_sbs_last_item_border_color' => '22,22,22',
'images_format' => 'svg',
'images_width' => '50',
'images_height' => '50',
'images_source' => 'file',
'item_coordinates' => '1',
'images_complete' => '1',
'images_sbs' => '1',
'images_separated' => '0'
)
);
$query = json_encode($data);
$url = "https://global-api.3dbinpacking.com/packer/findBinSize";
$prepared_query = 'query='.$query;
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $prepared_query );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$resp = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error #' . curl_errno($ch) . ': ' . curl_error($ch).'<br>';
}
curl_close($ch);
$response = json_decode($resp,true);
// display errors
if(isset($response['response']['errors'])){
foreach($response['response']['errors'] as $error){
echo $error['message'].'<br>';
}
}
// display data
if( $response['response']['status'] > -1 ){
$b_packed= $response['response']['bins_packed'];
foreach ($b_packed as $bin){
echo "<h2>Bin id:{$bin['bin_data']['id']}</h2>
<p> {$bin['bin_data']['w']} x {$bin['bin_data']['h']} x {$bin['bin_data']['d']}</p>
<p> Weight:{$bin['bin_data']['weight']}</p>
<p> Used weight:{ $bin['bin_data']['used_weight'] }</p>
<img src=\"{$bin['image_complete']}\">
<h2>Items packed in this bin:</h2>";
$items = $bin['items'];
echo '<table style="text-align: center">
<tr><th>Item id</th>
<th>Item dimensions</th>
<th>Item weight</th>
<th>Separated item</th>
<th>Step by step</th></tr>';
foreach ( $items as $item){
echo "<tr><td>{$item['id']}</td>
<td> {$item['w']} x {$item['h']} x {$bin['bin_data']['d']}</td>
<td> {$item['wg']}</td>
<td><img src=\"{$item['image_separated']}\"></td>
<td><img src=\"{$item['image_sbs']}\"></td>
</tr>";
}
echo '</table>';
echo '<hr>';
}
}
#!/usr/bin/python
import httplib
import urllib
import json
conn = httplib.HTTPConnection(host='global-api.3dbinpacking.com', port=80)
data = {"username": "_USERNAME_", "api_key": "_API_KEY_", "bins": [{"w": 0,"h": 0,"d": 0,"id": "Bin1"}],"items": [{"w": 5,"h": 3,"d": 2,"q": 2,"vr": 1,"id": "Item1"},{"w": 3,"h": 3,"d": 3,"q": 3,"vr": 1,"id": "Item2"}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}
params = urllib.urlencode( {'query':json.dumps(data)} )
headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
conn.request( "POST", "/packer/findBinSize", params, headers )
content = conn.getresponse( ).read( )
conn.close( )
print content
package javaapplication1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;;
import org.json.simple.JSONObject;
import org.springframework.web.client.RestTemplate;
public class JavaApplication1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws MalformedURLException, ProtocolException, IOException {
RestTemplate restTemplate = new RestTemplate();
JSONObject json = new JSONObject();
//SET BINS
List<Map<String , String>> bins = new ArrayList<Map<String,String>>();
Map<String, String> bin1 = new HashMap<String, String>();
bin1.put("id", "Bin1");
bin1.put("h", "0");
bin1.put("w", "0");
bin1.put("d", "0");
bins.add(bin1);
//SET ITEMS
List<Map<String , String>> items = new ArrayList<Map<String,String>>();
Map<String, String> item1 = new HashMap<String, String>();
item1.put("id", "Item1");
item1.put("w", "5");
item1.put("h", "3");
item1.put("d", "2");
item1.put("q", "2");
item1.put("vr", "1");
items.add(item1);
Map<String, String> item2 = new HashMap<String, String>();
item2.put("id", "Item2");
item2.put("w", "3");
item2.put("h", "3");
item2.put("d", "3");
item2.put("q", "3");
item2.put("vr", "1");
items.add(item2);
//SET PARAMETERS
Map <String , String > params = new HashMap <String , String >();
params.put("images_background_color", "255,255,255")
params.put("images_bin_border_color", "59,59,59")
params.put("images_bin_fill_color", "230,230,230")
params.put("images_item_border_color", "22,22,22")
params.put("images_item_fill_color", "255,193,6")
params.put("images_item_back_border_color", "22,22,22")
params.put("images_sbs_last_item_fill_color", "177,14,14")
params.put("images_sbs_last_item_border_color", "22,22,22")
params.put("images_format", "svg")
params.put("images_width", "50")
params.put("images_height", "50")
params.put("images_source", "file")
params.put("item_coordinates", "1")
params.put("images_complete", "1")
params.put("images_sbs", "1")
params.put("images_separated", "0")
//ADD ELEMENTS TO JSON
json.put("username", "YOUR_USERNAME");
json.put("api_key", "YOUR_API_KEY");
json.put("items", items);
json.put("bins", bins);
json.put("params", params);
//CALL QUERY
HttpURLConnection conn;
URL addr = new URL("https://global-api.3dbinpacking.com/packer/findBinSize");
conn = (HttpURLConnection) addr.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.connect();
OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
// prepare POST body
String query = "query=" + json.toString();
osw.write(query);
osw.flush();
osw.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String response_json = br.readLine();
//DO SOMETHING COOL WITH THE RESPONSE
System.out.println(response_json);
}
}
string data;
System.Net.HttpWebRequest req = System.Net.WebRequest.Create("https://global-api.3dbinpacking.com/packer/findBinSize") as System.Net.HttpWebRequest;
var request_data = new {username = "YOUR_USERNAME",
api_key = "YOUR_API_KEY",
items = new[] {
new { id = "Item1", w = "5", h = "3", d = "2", q = "2", vr = "1"},
new { id = "Item2", w = "3", h = "3", d = "3", q = "3", vr = "1"}
},
bins = new[] {
new { id = "Bin1", h = "0", w = "0", d = "0"}
},
@params = new { images_background_color = "255,255,255",
images_bin_border_color = "59,59,59",
images_bin_fill_color = "230,230,230",
images_item_border_color = "22,22,22",
images_item_fill_color = "255,193,6",
images_item_back_border_color = "22,22,22",
images_sbs_last_item_fill_color = "177,14,14",
images_sbs_last_item_border_color = "22,22,22",
images_format = "svg",
images_width = "50",
images_height = "50",
images_source = "file",
item_coordinates = "1",
images_complete = "1",
images_sbs = "1",
images_separated = "0"
}
};
string json_str = JsonConvert.SerializeObject(request_data);
string queryParam = "query="+json_str;
byte[] postBytes = System.Text.Encoding.ASCII.GetBytes(queryParam);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postBytes.Length;
System.IO.Stream postStream = req.GetRequestStream();
postStream.Write(postBytes, 0, postBytes.Length);
postStream.Close();
X509Certificate Cert = X509Certificate2.CreateFromCertFile("path_to_pem_key\global-api.3dbinpacking.com.pem");
req.ClientCertificates.Add(Cert);
using (System.Net.HttpWebResponse response = req.GetResponse() as System.Net.HttpWebResponse)
{
System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
data = reader.ReadToEnd();
}
Nazwa parametru | Opis | Typ danych |
---|---|---|
username (wymagane) |
Nazwa użytkownika. Możesz ją znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
api_key (wymagane) |
Klucz API. Możesz go znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
[bins] (wymagane) |
Tablica parametrów przestrzeni ładunkowych | tablica |
[items] (wymagane) |
Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 | tablica |
params | Tablica parametrów dodatkowych zapytań | tablica |
[bins] - Tablica przestrzeni ładunkowych
Nazwa parametru | Opis | Typ danych |
---|---|---|
id (wymagane) |
ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania | ciąg znaków |
w (wymagane) |
Packing space max. width (wymagane) |
float |
h (wymagane) |
Packing space max. height | float |
d (wymagane) |
Packing space max. depth/length | float |
[items] - Tablica parametrów przedmiotów
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
id (wymagane) |
ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków | |
w (wymagane) |
Szerokość przedmiotu | integer or float | |
h (wymagane) |
Wysokość przedmiotu | integer or float | |
d (wymagane) |
Głębokość lub długość przedmiotu | integer or float | |
wg | Waga przedmiotu | integer or float | |
vr | Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. | integer | Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. |
q (wymagane) |
Ilość przedmiotów o danych wymiarach do zapakowania | integer | |
item_colors_schema | Określa, który schemat kolorów zostanie użyty | ciąg znaków | |
item_fill_color | Kolor wypełnienia przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
params - Dodatkowe parametry
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
images_width | Maks. szerokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_height | Maks. wysokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_background_color | Kolor tła | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_border_color | Kolor krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_dashed_line_color | Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_fill_color | Kolor wypełnienia przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_fill_color | Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_border_color | Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_format | Format plików zwracanych obrazków | ciąg znaków | Dopuszczalne wartości: [ png , svg ] |
images_sbs | Generuje obrazki pokazujące proces pakowania 'krok po kroku' | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana |
images_complete | Generuj grafikę przedstawiającą obrazek końcowy zapakowania | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana |
images_separated | Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana |
item_coordinates | Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów | integer | Dopuszczalne wartości: 0 [default] - oznacza, że współrzędne nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że współrzędne zostaną zwrócone w odpowiedzi |
stats | Zwraca statystyki procesu pakowania (np. czas generowania obrazków) | integer | Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi |
Paramtery odpowiedzi
RESPONSE
{
"response":{
"id":"response_id",
"bins_packed":[
{
"bin_data":{
"w":8,
"h":3,
"d":7,
"id":null,
"used_space":83.9286,
"weight":0,
"gross_weight":0,
"used_weight":100,
"stack_height":3
},
"image_complete":"image_url.png",
"items":[
{
"id":"Item1",
"w":5,
"h":3,
"d":2,
"wg":0,
"image_separated":"image_url.png",
"image_sbs":"image_url.png",
"coordinates":{"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2}
},{
"id":"Item1",
"w":5,
"h":3,
"d":2,
"wg":0,
"image_separated":"image_url.png",
"image_sbs":"image_url.png",
"coordinates":{"x1":0,"y1":0,"z1":2,"x2":5,"y2":3,"z2":4}
},{
"id":"Item2",
"w":3,
"h":3,
"d":3,
"wg":0,
"image_separated":"image_url.png",
"image_sbs":"image_url.png",
"coordinates":{"x1":2,"y1":0,"z1":4,"x2":5,"y2":3,"z2":7}
},{
"id":"Item2",
"w":3,
"h":3,
"d":3,
"wg":0,
"image_separated":"image_url.png",
"image_sbs":"image_url.png",
"coordinates":{"x1":5,"y1":0,"z1":0,"x2":8,"y2":3,"z2":3}
},{
"id":"Item2",
"w":3,
"h":3,
"d":3,
"wg":0,
"image_separated":"image_url.png",
"image_sbs":"image_url.png",
"coordinates":{"x1":5,"y1":0,"z1":3,"x2":8,"y2":3,"z2":6}
}
]
}
],
"errors":[],
"status":1,
"not_packed_items":[]
}
}
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
[bins_packed] | Lista zapakowanych przestrzeni ładunkowych | tablica | |
errors | Lista możliwych błędów, które wystąpiły w zapytaniu | tablica | Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu |
status | Status odpowiedzi | integer | Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne. * błąd krytyczny - błąd uniemożliwiający pakowanie. Może nim być brak któregoś z wymaganych parametrów ('username','api_key') lub niewłaściwa wartość parametru (np. pole, które powinno zawierać liczbę, zawiera ciąg znaków). |
[not_packed_items] | “Przedmioty, które zawierały niewłaściwe parametry lub nie zostały zapakowane ze względu na wagę lub rozmiar | tablica |
[bins_packed] - Zapakowane przestrzenie ładunkowe
Nazwa parametru | Opis | Typ danych |
---|---|---|
bin_data | Detale zapakowanej przestrzeni ładunkowej | tablica |
image_complete | Grafika przedstawiająca zapakowany pojemnik | url |
[items] | Zapakowane przedmioty w pojemniku | tablica |
[not_packed_items] | Niezapakowane przedmioty w danym pojemniku | tablica |
[bin_data] - Szczegóły zapakowanej przestrzeni ładunkowej
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania | ciąg znaków |
w | Szerokość przestrzeni ładunkowej | integer or float |
h | wysokość przestrzeni ładunkowej | integer or float |
d | Głębokość/długość przestrzeni ładunkowej | integer or float |
used_space | Procent wykorzystania przestrzeni ładunkowej | integer or float |
weight | Waga zapakowanych przedmiotów | integer or float |
gross_weight | Waga zapakowanych przedmiotów + waga przestrzeni ładunkowej | integer or float |
used_weight | Procent wykorzystania dopuszczalnej wagi | integer or float |
stack_height | Wysokość, na jaką zastały ułożone przedmioty w przestrzeni ładunkowej | integer or float |
[items] - Zapakowane przedmioty
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
wg | Waga przedmiotu | integer or float |
image_separated | Grafika przedstawiająca położenie każdego przedmiotu | url |
image_sbs | Grafika pakowania “krok po kroku” | url |
coordinates | Koordynaty przedmiotu w przestrzeni ładunkowej | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - Przedmioty niezapakowane
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
q | Ilość przedmiotów o danych wymiarach do zapakowania | integer |
wg | Waga przedmiotu | integer or float |
Wypróbuj pojemniki
Użyj tego narzędzia, jeżeli chcesz porównać sposób pakowania przedmiotów w różnych przestrzeniach ładunkowych.
URL
- https://global-api.3dbinpacking.com/packer/pack
- https://us-east.api.3dbinpacking.com/packer/pack
- https://eu.api.3dbinpacking.com/packer/pack
- https://asia1.api.3dbinpacking.com/packer/pack
Parametry zapytania
Wymagane parametry
REQUEST
{
"username":"_USERNAME_",
"api_key":"_API_KEY_",
"items":
[
{"id":"Speakers","w":3,"h":3,"d":3,"wg":2,"q":3,"vr":true},
{"id":"Bigger item","w":3,"h":3,"d":5,"wg":1,"q":2,"vr":true}
],
"bins":
[
{"id":"Pack M","h":4,"w":4,"d":4,"wg":"","max_wg":""},
{"id":"Pack S","h":3,"w":3,"d":6,"wg":"","max_wg":""}
],
"params":
{
"images_background_color":"255,255,255",
"images_bin_border_color":"59,59,59",
"images_bin_fill_color":"230,230,230",
"images_item_border_color":"22,22,22",
"images_item_fill_color":"255,193,6",
"images_item_back_border_color":"22,22,22",
"images_sbs_last_item_fill_color":"177,14,14",
"images_sbs_last_item_border_color":"22,22,22",
"images_format":"svg",
"images_width":50,
"images_height":50,
"images_source":"file",
"stats":0,
"item_coordinates":1,
"images_complete":1,
"images_sbs":1,
"images_separated":0
}
}
curl -X POST \\
-H "Content-Type: application/json" \\
-d '{"username": "_USERNAME_", "api_key": "_API_KEY_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}' \\
https://global-api.3dbinpacking.com/packer/pack \\
-k
<?php
$data = array(
'bins' => array(
array(
'id' => 'Pack M',
'h' => '4',
'w' => '4',
'd' => '4',
'wg' => '',
'max_wg' => ''
),
array(
'id' => 'Pack S',
'h' => '3',
'w' => '3',
'd' => '6',
'wg' => '',
'max_wg' => ''
)
),
'items' => array(
array(
'id' => 'Speakers',
'w' => '3',
'h' => '3',
'd' => '3',
'wg' => '2',
'q' => '3',
'vr' => '1'
),
array(
'id' => 'Bigger item',
'w' => '3',
'h' => '3',
'd' => '5',
'wg' => '1',
'q' => '2',
'vr' => '1'
)
),
'username' => 'YOUR_USERNAME',
'api_key' => 'YOUR_API_KEY',
'params' => array(
'images_background_color' => '255,255,255',
'images_bin_border_color' => '59,59,59',
'images_bin_fill_color' => '230,230,230',
'images_item_border_color' => '22,22,22',
'images_item_fill_color' => '255,193,6',
'images_item_back_border_color' => '22,22,22',
'images_sbs_last_item_fill_color' => '177,14,14',
'images_sbs_last_item_border_color' => '22,22,22',
'images_format' => 'svg',
'images_width' => '50',
'images_height' => '50',
'images_source' => 'file',
'stats' => '0',
'item_coordinates' => '1',
'images_complete' => '1',
'images_sbs' => '1',
'images_separated' => '0'
)
);
$query = json_encode($data);
$url = "https://global-api.3dbinpacking.com/packer/pack";
$prepared_query = 'query='.$query;
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $prepared_query );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$resp = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error #' . curl_errno($ch) . ': ' . curl_error($ch).'<br>';
}
curl_close($ch);
$response = json_decode($resp,true);
// display errors
if(isset($response['response']['errors'])){
foreach($response['response']['errors'] as $error){
echo $error['message'].'<br>';
}
}
// display data
if( $response['response']['status'] > -1 ){
$b_packed= $response['response']['bins_packed'];
foreach ($b_packed as $bin){
echo "<h2>Bin id:{$bin['bin_data']['id']}</h2>
<p> {$bin['bin_data']['w']} x {$bin['bin_data']['h']} x {$bin['bin_data']['d']}</p>
<p> Weight:{$bin['bin_data']['weight']}</p>
<p> Used weight:{ $bin['bin_data']['used_weight'] }</p>
<img src=\"{$bin['image_complete']}\">
<h2>Items packed in this bin:</h2>";
$items = $bin['items'];
echo '<table style="text-align: center">
<tr><th>Item id</th>
<th>Item dimensions</th>
<th>Item weight</th>
<th>Separated item</th>
<th>Step by step</th></tr>';
foreach ( $items as $item){
echo "<tr><td>{$item['id']}</td>
<td> {$item['w']} x {$item['h']} x {$bin['bin_data']['d']}</td>
<td> {$item['wg']}</td>
<td><img src=\"{$item['image_separated']}\"></td>
<td><img src=\"{$item['image_sbs']}\"></td>
</tr>";
}
echo '</table>';
echo '<hr>';
}
}
#!/usr/bin/python
import httplib
import urllib
import json
conn = httplib.HTTPConnection(host='global-api.3dbinpacking.com', port=80)
data = {"username": "_USERNAME_", "api_key": "_API_KEY_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}
params = urllib.urlencode( {'query':json.dumps(data)} )
headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
conn.request( "POST", "/packer/pack", params, headers )
content = conn.getresponse( ).read( )
conn.close( )
print content
package javaapplication1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;;
import org.json.simple.JSONObject;
import org.springframework.web.client.RestTemplate;
public class JavaApplication1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws MalformedURLException, ProtocolException, IOException {
RestTemplate restTemplate = new RestTemplate();
JSONObject json = new JSONObject();
//SET BINS
List<Map<String , String>> bins = new ArrayList<Map<String,String>>();
Map<String, String> bin1 = new HashMap<String, String>();
bin1.put("id", "Pack M");
bin1.put("h", "4");
bin1.put("w", "4");
bin1.put("d", "4");
bin1.put("wg", "");
bin1.put("max_wg", "");
bins.add(bin1);
Map<String, String> bin2 = new HashMap<String, String>();
bin2.put("id", "Pack S");
bin2.put("h", "3");
bin2.put("w", "3");
bin2.put("d", "6");
bin2.put("wg", "");
bin2.put("max_wg", "");
bins.add(bin2);
//SET ITEMS
List<Map<String , String>> items = new ArrayList<Map<String,String>>();
Map<String, String> item1 = new HashMap<String, String>();
item1.put("id", "Speakers");
item1.put("w", "3");
item1.put("h", "3");
item1.put("d", "3");
item1.put("wg", "2");
item1.put("q", "3");
item1.put("vr", "1");
items.add(item1);
Map<String, String> item2 = new HashMap<String, String>();
item2.put("id", "Bigger item");
item2.put("w", "3");
item2.put("h", "3");
item2.put("d", "5");
item2.put("wg", "1");
item2.put("q", "2");
item2.put("vr", "1");
items.add(item2);
//SET PARAMETERS
Map <String , String > params = new HashMap <String , String >();
params.put("images_background_color", "255,255,255")
params.put("images_bin_border_color", "59,59,59")
params.put("images_bin_fill_color", "230,230,230")
params.put("images_item_border_color", "22,22,22")
params.put("images_item_fill_color", "255,193,6")
params.put("images_item_back_border_color", "22,22,22")
params.put("images_sbs_last_item_fill_color", "177,14,14")
params.put("images_sbs_last_item_border_color", "22,22,22")
params.put("images_format", "svg")
params.put("images_width", "50")
params.put("images_height", "50")
params.put("images_source", "file")
params.put("stats", "0")
params.put("item_coordinates", "1")
params.put("images_complete", "1")
params.put("images_sbs", "1")
params.put("images_separated", "0")
//ADD ELEMENTS TO JSON
json.put("username", "YOUR_USERNAME");
json.put("api_key", "YOUR_API_KEY");
json.put("items", items);
json.put("bins", bins);
json.put("params", params);
//CALL QUERY
HttpURLConnection conn;
URL addr = new URL("https://global-api.3dbinpacking.com/packer/pack");
conn = (HttpURLConnection) addr.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.connect();
OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
// prepare POST body
String query = "query=" + json.toString();
osw.write(query);
osw.flush();
osw.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String response_json = br.readLine();
//DO SOMETHING COOL WITH THE RESPONSE
System.out.println(response_json);
}
}
string data;
System.Net.HttpWebRequest req = System.Net.WebRequest.Create("https://global-api.3dbinpacking.com/packer/pack") as System.Net.HttpWebRequest;
var request_data = new {username = "YOUR_USERNAME",
api_key = "YOUR_API_KEY",
items = new[] {
new { id = "Speakers", w = "3", h = "3", d = "3", wg = "2", q = "3", vr = "1"},
new { id = "Bigger item", w = "3", h = "3", d = "5", wg = "1", q = "2", vr = "1"}
},
bins = new[] {
new { id = "Pack M", h = "4", w = "4", d = "4", wg = "", max_wg = ""},
new { id = "Pack S", h = "3", w = "3", d = "6", wg = "", max_wg = ""}
},
@params = new { images_background_color = "255,255,255",
images_bin_border_color = "59,59,59",
images_bin_fill_color = "230,230,230",
images_item_border_color = "22,22,22",
images_item_fill_color = "255,193,6",
images_item_back_border_color = "22,22,22",
images_sbs_last_item_fill_color = "177,14,14",
images_sbs_last_item_border_color = "22,22,22",
images_format = "svg",
images_width = "50",
images_height = "50",
images_source = "file",
stats = "0",
item_coordinates = "1",
images_complete = "1",
images_sbs = "1",
images_separated = "0"
}
};
string json_str = JsonConvert.SerializeObject(request_data);
string queryParam = "query="+json_str;
byte[] postBytes = System.Text.Encoding.ASCII.GetBytes(queryParam);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postBytes.Length;
System.IO.Stream postStream = req.GetRequestStream();
postStream.Write(postBytes, 0, postBytes.Length);
postStream.Close();
X509Certificate Cert = X509Certificate2.CreateFromCertFile("path_to_pem_key\global-api.3dbinpacking.com.pem");
req.ClientCertificates.Add(Cert);
using (System.Net.HttpWebResponse response = req.GetResponse() as System.Net.HttpWebResponse)
{
System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
data = reader.ReadToEnd();
}
Nazwa parametru | Opis | Typ danych |
---|---|---|
username (wymagane) |
Nazwa użytkownika. Możesz ją znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
api_key (wymagane) |
Klucz API. Możesz go znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
[bins] (wymagane) |
Tablica parametrów przestrzeni ładunkowych | tablica |
[items] (wymagane) |
Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 | tablica |
params | Tablica parametrów dodatkowych zapytań of extra request parameters | tablica |
[bins] - Tablica przestrzeni ładunkowych
Nazwa parametru | Opis | Typ danych |
---|---|---|
id (wymagane) |
ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania | ciąg znaków |
w (wymagane) |
Szerokość przestrzeni ładunkowej | integer or float |
h (wymagane) |
wysokość przestrzeni ładunkowej | integer or float |
d (wymagane) |
Głębokość/długość przestrzeni ładunkowej | integer or float |
wg | Waga pojemnika | integer or float |
max_wg | Maksymalna waga przestrzeni ładunkowej. Wartość ustawiona na '0' (zero) oznacza, że nie ma limitu obciążenia | integer or float |
[items] - Tablica parametrów przedmiotów
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
id (wymagane) |
ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków | |
w (wymagane) |
Szerokość przedmiotu | integer or float | |
h (wymagane) |
Wysokość przedmiotu | integer or float | |
d (wymagane) |
Głębokość lub długość przedmiotu | integer or float | |
wg | Waga przedmiotu | integer or float | |
vr | Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. | integer | |
q (wymagane) |
Ilość przedmiotów o danych wymiarach do zapakowania | integer | |
item_colors_schema | Określa, który schemat kolorów zostanie użyty | ciąg znaków | Dopuszczalne wartości: default - użyte zostaną kolory ustawione w parametrach 'images_item_border_color' i 'images_bin_fill_color', 'random' - kolory zostaną ustawione losowo, 'item' - użyte zostaną kolory podane w sekcji 'item' w parametrach: 'item_fill_color' i 'item_border_color'. |
item_fill_color | Kolor wypełnienia przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
params - Dodatkowe parametry
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
images_width | Maks. szerokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_height | Maks. wysokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_background_color | Kolor tła | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_border_color | Kolor krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_dashed_line_color | Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_fill_color | Kolor wypełnienia przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_fill_color | Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_border_color | Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_format | Format plików zwracanych obrazków | ciąg znaków | Dopuszczalne wartości: [ png , svg ] |
images_sbs | Generuje obrazki pokazujące proces pakowania 'krok po kroku' | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana |
images_complete | Generuj grafikę przedstawiającą obrazek końcowy zapakowania | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana |
images_separated | Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana |
item_coordinates | Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów | integer | Dopuszczalne wartości: 0 [default] - oznacza, że współrzędne nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że współrzędne zostaną zwrócone w odpowiedzi |
stats | Zwraca statystyki procesu pakowania (np. czas generowania obrazków) | integer | Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi |
Paramtery odpowiedzi
RESPONSE
{
"response":{
"id":"response_id",
"bins_packed":[
{
"bin_data":{
"w":4,
"h":4,
"d":4,
"id":"Pack M",
"used_space":42.1875,
"weight":2,
"gross_weight":2,
"used_weight":100,
"stack_height":3
},
"image_complete":"image_url.svg",
"items":[
{
"id":"Speakers",
"w":3,
"h":3,
"d":3,
"wg":2,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}
}
],
"not_packed_items":[
{
"id":"Speakers",
"q":2
},
{
"id":"Bigger item",
"q":2
}
]
},{
"bin_data":{
"w":3,
"h":3,
"d":6,
"id":"Pack S",
"used_space":100,
"weight":4,
"gross_weight":4,
"used_weight":100,
"stack_height":3
},
"image_complete":"image_url.svg",
"items":[
{
"id":"Speakers",
"w":3,
"h":3,
"d":3,
"wg":2,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}
},{
"id":"Speakers",
"w":3,
"h":3,
"d":3,
"wg":2,
"image_sbs":"image_url.svg",
"coordinates":{"x1":0,"y1":0,"z1":3,"x2":3,"y2":3,"z2":6}
}
],
"not_packed_items":[
{
"id":"Speakers",
"q":1
},
{
"id":"Bigger item",
"q":2
}
]
}
],
"errors":[],
"status":1,
"not_packed_items":[]
}
}
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
[bins_packed] | Lista zapakowanych przestrzeni ładunkowych | tablica | |
errors | Lista możliwych błędów, które wystąpiły w zapytaniu | tablica | Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu |
status | Status odpowiedzi | integer | Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne. * błąd krytyczny - błąd uniemożliwiający pakowanie. Może nim być brak któregoś z wymaganych parametrów ('username','api_key') lub niewłaściwa wartość parametru (np. pole, które powinno zawierać liczbę, zawiera ciąg znaków). |
[not_packed_items] | “Przedmioty, które zawierały niewłaściwe parametry lub nie zostały zapakowane ze względu na wagę lub rozmiar | tablica |
[bins_packed] - Zapakowane przestrzenie ładunkowe
Nazwa parametru | Opis | Typ danych |
---|---|---|
bin_data | Detale zapakowanej przestrzeni ładunkowej | tablica |
image_complete | Grafika przedstawiająca zapakowany pojemnik | url |
[items] | Zapakowane przedmioty w pojemniku | tablica |
[not_packed_items] | Niezapakowane przedmioty w danym pojemniku | tablica |
[bin_data] - Szczegóły zapakowanej przestrzeni ładunkowej
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania | ciąg znaków |
w | Szerokość przestrzeni ładunkowej | integer or float |
h | wysokość przestrzeni ładunkowej | integer or float |
d | Głębokość/długość przestrzeni ładunkowej | integer or float |
used_space | Procent wykorzystania przestrzeni ładunkowej | integer or float |
weight | Waga zapakowanych przedmiotów | integer or float |
gross_weight | Waga zapakowanych przedmiotów + waga przestrzeni ładunkowej | integer or float |
used_weight | Procent wykorzystania dopuszczalnej wagi | integer or float |
stack_height | Wysokość, na jaką zastały ułożone przedmioty w przestrzeni ładunkowej | integer or float |
[items] - Zapakowane przedmioty
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
wg | Waga przedmiotu | integer or float |
image_separated | Grafika przedstawiająca położenie każdego przedmiotu | url |
image_sbs | Grafika pakowania “krok po kroku” | url |
coordinates | Koordynaty przedmiotu w przestrzeni ładunkowej | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - Przedmioty niezapakowane
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
q | Ilość przedmiotów o danych wymiarach do zapakowania | integer |
wg | Waga przedmiotu | integer or float |
Sprawdź maksymalne wypełnienie
Oblicz, ile przedmiotów możesz zapakować w dostępnej przestrzeni ładunkowej
URL
- https://global-api.3dbinpacking.com/packer/fillContainer
- https://us-east.api.3dbinpacking.com/packer/fillContainer
- https://eu.api.3dbinpacking.com/packer/fillContainer
- https://asia1.api.3dbinpacking.com/packer/fillContainer
Parametry zapytania
Wymagane parametry
REQUEST
{
"username":"_USERNAME_",
"api_key":"_API_KEY_",
"bins": [
{
"w": 5,
"h": 5,
"d": 5,
"max_wg": 0,
"id": "Bin1"
},
{
"w": 4,
"h": 3,
"d": 3,
"max_wg": 0,
"id": "Bin2"
}
],
"items": [
{
"w": 5,
"h": 3,
"d": 2,
"vr": 1,
"wg": 0,
"id": "Item1"
},
{
"w": 3,
"h": 3,
"d": 3,
"vr": 1,
"wg": 0,
"id": "Item2"
}
],
"params": {
"images_background_color": "255,255,255",
"images_bin_border_color": "59,59,59",
"images_bin_fill_color": "230,230,230",
"images_item_border_color": "214,79,79",
"images_item_fill_color": "177,14,14",
"images_item_back_border_color": "215,103,103",
"images_sbs_last_item_fill_color": "99,93,93",
"images_sbs_last_item_border_color": "145,133,133",
"images_width": 100,
"images_height": 100,
"images_source": "file",
"images_sbs": 1,
"item_coordinates": 1,
"images_complete": 1,
"images_separated": 1
}
}
curl -X POST \\
-H "Content-Type: application/json" \\
-d '{"username": "_USERNAME_", "api_key": "_API_KEY_", "bins": [{"w": 5,"h": 5,"d": 5,"max_wg": 0,"id": "Bin1"},{"w": 4,"h": 3,"d": 3,"max_wg": 0,"id": "Bin2"}],"items": [{"w": 5,"h": 3,"d": 2,"vr": 1,"wg": 0,"id": "Item1"},{"w": 3,"h": 3,"d": 3,"vr": 1,"wg": 0,"id": "Item2"}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}' \\
https://global-api.3dbinpacking.com/packer/fillContainer \\
-k
<?php
$data = array(
'bins' => array(
array(
'id' => 'Bin1',
'h' => '5',
'w' => '5',
'd' => '5',
'wg' => '',
'max_wg' => ''
),
array(
'id' => 'Bin2',
'h' => '4',
'w' => '3',
'd' => '3',
'wg' => '',
'max_wg' => ''
)
),
'items' => array(
array(
'id' => 'Item1',
'w' => '5',
'h' => '3',
'd' => '2',
'wg' => '0',
'vr' => '1'
),
array(
'id' => 'Item2',
'w' => '3',
'h' => '3',
'd' => '3',
'wg' => '0',
'vr' => '1'
)
),
'username' => 'YOUR_USERNAME',
'api_key' => 'YOUR_API_KEY',
'params' => array(
'images_background_color' => '255,255,255',
'images_bin_border_color' => '59,59,59',
'images_bin_fill_color' => '230,230,230',
'images_item_border_color' => '22,22,22',
'images_item_fill_color' => '255,193,6',
'images_item_back_border_color' => '22,22,22',
'images_sbs_last_item_fill_color' => '177,14,14',
'images_sbs_last_item_border_color' => '22,22,22',
'images_format' => 'svg',
'images_width' => '50',
'images_height' => '50',
'images_source' => 'file',
'stats' => '0',
'item_coordinates' => '1',
'images_complete' => '1',
'images_sbs' => '1',
'images_separated' => '0'
)
);
$query = json_encode($data);
$url = "https://global-api.3dbinpacking.com/packer/fillContainer";
$prepared_query = 'query='.$query;
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $prepared_query );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$resp = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error #' . curl_errno($ch) . ': ' . curl_error($ch).'<br>';
}
curl_close($ch);
$response = json_decode($resp,true);
// display errors
if(isset($response['response']['errors'])){
foreach($response['response']['errors'] as $error){
echo $error['message'].'<br>';
}
}
// display data
if( $response['response']['status'] > -1 ){
$b_packed= $response['response']['bins_packed'];
foreach ($b_packed as $bin){
echo "<h2>Bin id:{$bin['bin_data']['id']}</h2>
<p> {$bin['bin_data']['w']} x {$bin['bin_data']['h']} x {$bin['bin_data']['d']}</p>
<p> Weight:{$bin['bin_data']['weight']}</p>
<p> Used weight:{ $bin['bin_data']['used_weight'] }</p>
<img src=\"{$bin['image_complete']}\">
<h2>Items packed in this bin:</h2>";
$items = $bin['items'];
echo '<table style="text-align: center">
<tr><th>Item id</th>
<th>Item dimensions</th>
<th>Item weight</th>
<th>Separated item</th>
<th>Step by step</th></tr>';
foreach ( $items as $item){
echo "<tr><td>{$item['id']}</td>
<td> {$item['w']} x {$item['h']} x {$bin['bin_data']['d']}</td>
<td> {$item['wg']}</td>
<td><img src=\"{$item['image_separated']}\"></td>
<td><img src=\"{$item['image_sbs']}\"></td>
</tr>";
}
echo '</table>';
echo '<hr>';
}
}
#!/usr/bin/python
import httplib
import urllib
import json
conn = httplib.HTTPConnection(host='global-api.3dbinpacking.com', port=80)
data = {"username": "_USERNAME_", "api_key": "_API_KEY_", "bins": [{"w": 5,"h": 5,"d": 5,"max_wg": 0,"id": "Bin1"},{"w": 4,"h": 3,"d": 3,"max_wg": 0,"id": "Bin2"}],"items": [{"w": 5,"h": 3,"d": 2,"vr": 1,"wg": 0,"id": "Item1"},{"w": 3,"h": 3,"d": 3,"vr": 1,"wg": 0,"id": "Item2"}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}
params = urllib.urlencode( {'query':json.dumps(data)} )
headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
conn.request( "POST", "/packer/fillContainer", params, headers )
content = conn.getresponse( ).read( )
conn.close( )
print content
package javaapplication1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;;
import org.json.simple.JSONObject;
import org.springframework.web.client.RestTemplate;
public class JavaApplication1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws MalformedURLException, ProtocolException, IOException {
RestTemplate restTemplate = new RestTemplate();
JSONObject json = new JSONObject();
//SET BINS
List<Map<String , String>> bins = new ArrayList<Map<String,String>>();
Map<String, String> bin1 = new HashMap<String, String>();
bin1.put("id", "Bin1");
bin1.put("h", "5");
bin1.put("w", "5");
bin1.put("d", "5");
bin1.put("wg", "");
bin1.put("max_wg", "");
bins.add(bin1);
Map<String, String> bin2 = new HashMap<String, String>();
bin2.put("id", "Bin2");
bin2.put("h", "3");
bin2.put("w", "4");
bin2.put("d", "3");
bin2.put("wg", "");
bin2.put("max_wg", "");
bins.add(bin2);
//SET ITEMS
List<Map<String , String>> items = new ArrayList<Map<String,String>>();
Map<String, String> item1 = new HashMap<String, String>();
item1.put("id", "Item1");
item1.put("w", "5");
item1.put("h", "3");
item1.put("d", "2");
item1.put("wg", "0");
item1.put("vr", "1");
items.add(item1);
Map<String, String> item2 = new HashMap<String, String>();
item2.put("id", "Item2");
item2.put("w", "3");
item2.put("h", "3");
item2.put("d", "3");
item2.put("wg", "0");
item2.put("vr", "1");
items.add(item2);
//SET PARAMETERS
Map <String , String > params = new HashMap <String , String >();
params.put("images_background_color", "255,255,255")
params.put("images_bin_border_color", "59,59,59")
params.put("images_bin_fill_color", "230,230,230")
params.put("images_item_border_color", "22,22,22")
params.put("images_item_fill_color", "255,193,6")
params.put("images_item_back_border_color", "22,22,22")
params.put("images_sbs_last_item_fill_color", "177,14,14")
params.put("images_sbs_last_item_border_color", "22,22,22")
params.put("images_format", "svg")
params.put("images_width", "50")
params.put("images_height", "50")
params.put("images_source", "file")
params.put("stats", "0")
params.put("item_coordinates", "1")
params.put("images_complete", "1")
params.put("images_sbs", "1")
params.put("images_separated", "0")
//ADD ELEMENTS TO JSON
json.put("username", "YOUR_USERNAME");
json.put("api_key", "YOUR_API_KEY");
json.put("items", items);
json.put("bins", bins);
json.put("params", params);
//CALL QUERY
HttpURLConnection conn;
URL addr = new URL("https://global-api.3dbinpacking.com/packer/fillContainer");
conn = (HttpURLConnection) addr.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.connect();
OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
// prepare POST body
String query = "query=" + json.toString();
osw.write(query);
osw.flush();
osw.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String response_json = br.readLine();
//DO SOMETHING COOL WITH THE RESPONSE
System.out.println(response_json);
}
}
string data;
System.Net.HttpWebRequest req = System.Net.WebRequest.Create("https://global-api.3dbinpacking.com/packer/fillContainer") as System.Net.HttpWebRequest;
var request_data = new {username = "YOUR_USERNAME",
api_key = "YOUR_API_KEY",
items = new[] {
new { id = "Item1", w = "5", h = "3", d = "2", wg = "0", vr = "1"},
new { id = "Item2", w = "3", h = "3", d = "3", wg = "0", vr = "1"}
},
bins = new[] {
new { id = "Bin1", h = "5", w = "5", d = "5", wg = "", max_wg = ""},
new { id = "Bin2", h = "3", w = "4", d = "3", wg = "", max_wg = ""}
},
@params = new { images_background_color = "255,255,255",
images_bin_border_color = "59,59,59",
images_bin_fill_color = "230,230,230",
images_item_border_color = "22,22,22",
images_item_fill_color = "255,193,6",
images_item_back_border_color = "22,22,22",
images_sbs_last_item_fill_color = "177,14,14",
images_sbs_last_item_border_color = "22,22,22",
images_format = "svg",
images_width = "50",
images_height = "50",
images_source = "file",
stats = "0",
item_coordinates = "1",
images_complete = "1",
images_sbs = "1",
images_separated = "0"
}
};
string json_str = JsonConvert.SerializeObject(request_data);
string queryParam = "query="+json_str;
byte[] postBytes = System.Text.Encoding.ASCII.GetBytes(queryParam);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postBytes.Length;
System.IO.Stream postStream = req.GetRequestStream();
postStream.Write(postBytes, 0, postBytes.Length);
postStream.Close();
X509Certificate Cert = X509Certificate2.CreateFromCertFile("path_to_pem_key\global-api.3dbinpacking.com.pem");
req.ClientCertificates.Add(Cert);
using (System.Net.HttpWebResponse response = req.GetResponse() as System.Net.HttpWebResponse)
{
System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
data = reader.ReadToEnd();
}
Nazwa parametru | Opis | Typ danych |
---|---|---|
username (wymagane) |
Nazwa użytkownika. Możesz ją znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
api_key (wymagane) |
Klucz API. Możesz go znaleźć w sekcji '/Ustawienia profilu/Dostęp do API' po zalogowaniu. https://www.3dbinpacking.com/en/customer/api-data | ciąg znaków |
[bins] (wymagane) |
Tablica parametrów przestrzeni ładunkowych | tablica |
[items] (wymagane) |
Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 | tablica |
params | Tablica parametrów dodatkowych zapytań | tablica |
[bins] - Tablica przestrzeni ładunkowych
Nazwa parametru | Opis | Typ danych |
---|---|---|
id (wymagane) |
ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania | ciąg znaków |
w (wymagane) |
Szerokość przestrzeni ładunkowej | float |
h (wymagane) |
wysokość przestrzeni ładunkowej | float |
d (wymagane) |
Głębokość/długość przestrzeni ładunkowej | float |
wg | Waga pojemnika | integer or float |
max_wg | Maksymalna waga przestrzeni ładunkowej. Wartość ustawiona na '0' (zero) oznacza, że nie ma limitu obciążenia | integer or float |
[items] - Tablica parametrów przedmiotów
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
id (wymagane) |
ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków | |
w (wymagane) |
Szerokość przedmiotu | integer or float | |
h (wymagane) |
Wysokość przedmiotu | integer or float | |
d (wymagane) |
Głębokość lub długość przedmiotu | integer or float | |
wg | Waga przedmiotu | integer or float | |
vr | Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. | integer | Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. |
item_colors_schema | Określa, który schemat kolorów zostanie użyty | ciąg znaków | |
item_fill_color | Kolor wypełnienia przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
params - Dodatkowe parametry
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
images_width | Maks. szerokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_height | Maks. wysokość generowanych obrazków | integer | Dopuszczalne wartości: 1 - 250 |
images_background_color | Kolor tła | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_border_color | Kolor krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_dashed_line_color | Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_bin_fill_color | Kolor wypełnienia przestrzeni ładunkowej | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_item_border_color | Kolor krawędzi przedmiotu | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_fill_color | Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_sbs_last_item_border_color | Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' | ciąg znaków | Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10' |
images_format | Format plików zwracanych obrazków | ciąg znaków | Dopuszczalne wartości: [ png , svg ] |
images_sbs | Generuje obrazki pokazujące proces pakowania 'krok po kroku' | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana |
images_complete | Generuj grafikę przedstawiającą obrazek końcowy zapakowania | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana |
images_separated | Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana |
item_coordinates | Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów | integer | Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana |
stats | Zwraca statystyki procesu pakowania (np. czas generowania obrazków) | integer | Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi |
Paramtery odpowiedzi
RESPONSE
{
"response":{
"id":"response_id",
"bins_packed":[
{
"bin_data":{
"w":5,
"h":5,
"d":5,
"id":"Bin1",
"used_space":72,
"weight":0,
"gross_weight":0,
"used_weight":100,
"stack_height":5,
"order_id":null
},
"image_complete":"image_url.png",
"items":[
{
"id":"Item1",
"w":5,
"h":3,
"d":2,
"wg":0,
"image_separated":"image_url.png",
"image_sbs":"image_url.png",
"coordinates":{"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2}
},{
"id":"Item1",
"w":5,
"h":3,
"d":2,
"wg":0,
"image_separated":"image_url.png",
"image_sbs":"image_url.png",
"coordinates":{"x1":0,"y1":0,"z1":2,"x2":5,"y2":3,"z2":4}
},{
"id":"Item1",
"w":5,
"h":3,
"d":2,
"wg":0,
"image_separated":"image_url.png",
"image_sbs":"image_url.png",
"coordinates":{"x1":0,"y1":3,"z1":0,"x2":5,"y2":5,"z2":3}
}
]
},{
"bin_data":{
"w":4,
"h":3,
"d":3,
"id":"Bin2",
"used_space":75,
"weight":0,
"gross_weight":0,
"used_weight":100,
"stack_height":3
},
"image_complete":"image_url.png",
"items":[
{
"id":"Item2",
"w":3,
"h":3,
"d":3,
"wg":0,
"image_separated":"image_url.png",
"image_sbs":"image_url.png",
"coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}
}
]
}
],
"errors":[],
"status":1,
"not_packed_items":[]
}
}
Nazwa parametru | Opis | Typ danych | Dostępne wartości |
---|---|---|---|
[bins_packed] | Lista zapakowanych przestrzeni ładunkowych | tablica | |
errors | Lista możliwych błędów, które wystąpiły w zapytaniu | tablica | Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu |
status | Status odpowiedzi | integer | Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne. * błąd krytyczny - błąd uniemożliwiający pakowanie. Może nim być brak któregoś z wymaganych parametrów ('username','api_key') lub niewłaściwa wartość parametru (np. pole, które powinno zawierać liczbę, zawiera ciąg znaków). |
[not_packed_items] | “Przedmioty, które zawierały niewłaściwe parametry lub nie zostały zapakowane ze względu na wagę lub rozmiar | tablica |
[bins_packed] - Zapakowane przestrzenie ładunkowe
Nazwa parametru | Opis | Typ danych |
---|---|---|
bin_data | Detale zapakowanej przestrzeni ładunkowej | tablica |
image_complete | Grafika przedstawiająca zapakowany pojemnik | url |
[items] | Zapakowane przedmioty w pojemniku | tablica |
[bin_data] - Szczegóły zapakowanej przestrzeni ładunkowej
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania | ciąg znaków |
w | Szerokość przestrzeni ładunkowej | integer or float |
h | wysokość przestrzeni ładunkowej | integer or float |
d | Głębokość/długość przestrzeni ładunkowej | integer or float |
used_space | Procent wykorzystania przestrzeni ładunkowej | integer or float |
weight | Waga zapakowanych przedmiotów | integer or float |
gross_weight | Waga zapakowanych przedmiotów + waga przestrzeni ładunkowej | integer or float |
used_weight | Procent wykorzystania dopuszczalnej wagi | integer or float |
stack_height | Wysokość, na jaką zastały ułożone przedmioty w przestrzeni ładunkowej | integer or float |
[items] - Zapakowane przedmioty
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
wg | Waga przedmiotu | integer or float |
image_separated | Grafika przedstawiająca położenie każdego przedmiotu | url |
image_sbs | Grafika pakowania “krok po kroku” | url |
coordinates | Koordynaty przedmiotu w przestrzeni ładunkowej | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - Przedmioty niezapakowane
Nazwa parametru | Opis | Typ danych |
---|---|---|
id | ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. | ciąg znaków |
w | Szerokość przedmiotu | integer or float |
h | Wysokość przedmiotu | integer or float |
d | Głębokość lub długość przedmiotu | integer or float |
q | Ilość przedmiotów o danych wymiarach do zapakowania | integer |
wg | Waga przedmiotu | integer or float |
Errors
Error | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |