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":null,
"cost":0,
"type":"pallet"
},
{
"id":"Pack S",
"h":3,
"w":3,
"d":6,
"wg":"",
"max_wg":"",
"q":null,
"cost":0,
"type":"pallet"
}
],
"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",
"images_version":2
}
}
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":null, "cost":0, "type":"pallet"},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": "", "q":null, "cost":0, "type":"box"}], "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", "images_version":2}}' \
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'=>null,
'cost'=>0,
'type'=>'pallet'
),
array(
'id' => 'Pack S',
'h' => '3',
'w' => '3',
'd' => '6',
'wg' => '',
'max_wg' => '',
'q'=>null,
'cost'=>0,
'type'=>'pallet'
)
),
'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',
'images_version'=>2
)
);
$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":null, "cost":0, "type":"pallet"},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": "", "q":null, "cost":0 "type":"box"}], "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", "images_version":2}}
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", null);
bin1.put("cost", 0);
bin1.put("type","pallet");
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", "");
bin2.put("q", null);
bin2.put("cost", 0);
bin2.put("type", "pallet");
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")
params.put("images_version", "2")
//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" = null, "cost" = 0, "type" = "pallet"},
new { id = "Pack S", h = "3", w = "3", d = "6", wg = "", max_wg = "", "q" = null, "cost" = 0, "type" = "box"}
},
@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",
images_version = "2"
}
};
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 |
type Tylko z parametrem images_version: 2 |
Określa, czy grafika będzie przedstawiona w postaci kartonu lub palety | translation missing: pl.params_type_stringt |
[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_version |
Wersja generatora obrazków | integer | Dopuszczalne wartości: [ 1 | 2 ] |
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 Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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_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' |
images_item_border_color Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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":"",
"type":"pallet"
},
"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
"images_version":2
}
}
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 |
type Tylko z parametrem images_version: 2 |
Określa, czy grafika będzie przedstawiona w postaci kartonu lub palety | translation missing: pl.params_type_stringt |
[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_version |
Wersja generatora obrazków | integer | Dopuszczalne wartości: [ 1 | 2 ] |
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 Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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_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' |
images_item_border_color Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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",
"type":"pallet"
},
{
"w": 3,
"h": 30,
"d": 3,
"id": "Bin2",
"find": "h",
"type":"box"
}
],
"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,
"images_version": 2
}
}
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", "type":"pallet"},{"w": 3,"h": 30,"d": 3,"id": "Bin2","find": "h", "type":"box"}],"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, "images_version":2}}' \
https://global-api.3dbinpacking.com/packer/findSmallestBin \
-k
<?php
$data = array(
'bins' => array(
array(
'id' => 'Bin1',
'h' => '0',
'w' => '5',
'd' => '5',
'find' => 'h',
'type' => 'pallet'
),
array(
'id' => 'Pack S',
'h' => '30',
'w' => '3',
'd' => '3',
'find' => 'h',
'type' => 'box'
)
),
'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',
'images_version' => 2
)
);
$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", "type":"pallet"},{"w": 3,"h": 30,"d": 3,"id": "Bin2","find": "h", "type":"box"}],"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, "images_version":2}}
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");
bin1.put("type", "pallet");
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");
bin2.put("type", "pallet");
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")
params.put("images_version", 2)
//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", type = "pallet"},
new { id = "Bin2", h = "30", w = "5", d = "5", type = "box"}
},
@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",
images_version = "2"
}
};
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 |
type Tylko z parametrem images_version: 2 |
Określa, czy grafika będzie przedstawiona w postaci kartonu lub palety | translation missing: pl.params_type_stringt |
[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_version |
Wersja generatora obrazków | integer | Dopuszczalne wartości: [ 1 | 2 ] |
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 Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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_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' |
images_item_border_color Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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",
"type":"pallet"
}
],
"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,
"images_version": 2
}
}
curl -X POST \
-H "Content-Type: application/json" \
-d '{"username": "USERNAME", "api_key": "API_KEY", "bins": [{"w": 0,"h": 0,"d": 0,"id": "Bin1", "type":"pallet"}],"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, "images_version":2}}' \
https://global-api.3dbinpacking.com/packer/findBinSize \
-k
<?php
$data = array(
'bins' => array(
array(
'id' => 'Bin1',
'h' => '0',
'w' => '0',
'd' => '0',
'type' => 'pallet'
)
),
'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',
'images_version' => 2
)
);
$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", "type":"pallet"}],"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, "images_version":2}}
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");
bin1.put("type", "pallet");
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")
params.put("images_version", "2")
//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", type = "pallet"}
},
@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",
images_version = "1"
}
};
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 |
type Tylko z parametrem images_version: 2 |
Określa, czy grafika będzie przedstawiona w postaci kartonu lub palety | translation missing: pl.params_type_stringt |
[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_version |
Wersja generatora obrazków | integer | Dopuszczalne wartości: [ 1 | 2 ] |
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 Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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_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' |
images_item_border_color Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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":"", "type":"pallet"},
{"id":"Pack S","h":3,"w":3,"d":6,"wg":"","max_wg":"", "type":"box"}
],
"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,
"images_version":2
}
}
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": "", "type":"pallet"},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": "", "type":"box"}], "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, "images_version":2}}' \
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' => '',
'type' => 'pallet'
),
array(
'id' => 'Pack S',
'h' => '3',
'w' => '3',
'd' => '6',
'wg' => '',
'max_wg' => '',
'type' => 'pallet'
)
),
'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',
'images_version" => 2
)
);
$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": "", "type":"pallet"},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": "", "type":"box"}], "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, "images_version":2}}
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", "");
bin1.put("type", "pallet");
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", "");
bin2.put("type", "pallet");
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")
params.put("images_version", "2")
//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 = "", type = "pallet"},
new { id = "Pack S", h = "3", w = "3", d = "6", wg = "", max_wg = "", type = "box"}
},
@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",
images_version = "2"
}
};
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 |
type Tylko z parametrem images_version: 2 |
Określa, czy grafika będzie przedstawiona w postaci kartonu lub palety | translation missing: pl.params_type_stringt |
[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_version |
Wersja generatora obrazków | integer | Dopuszczalne wartości: [ 1 | 2 ] |
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 Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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_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' |
images_item_border_color Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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",
"type":"pallet"
},
{
"w": 4,
"h": 3,
"d": 3,
"max_wg": 0,
"id": "Bin2",
"type":"box"
}
],
"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_version": 2,
"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","type":"pallet"},{"w": 4,"h": 3,"d": 3,"max_wg": 0,"id": "Bin2","type":"box"}],"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, "images_version":2}}' \
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' => '',
'type' => pallet'
),
array(
'id' => 'Bin2',
'h' => '4',
'w' => '3',
'd' => '3',
'wg' => '',
'max_wg' => '',
'type' => 'pallet'
)
),
'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',
'images_vesrion' => 2
)
);
$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", "type":"pallet"},{"w": 4,"h": 3,"d": 3,"max_wg": 0,"id": "Bin2","type":"box"}],"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, "images_version":2}}
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", "");
bin1.put("type", "pallet");
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", "");
bin2.put("type":"box");
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")
params.put("images_version", "2")
//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 = "", type = "pallet"},
new { id = "Bin2", h = "3", w = "4", d = "3", wg = "", max_wg = "", type = "box"}
},
@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",
images_version = "2"
}
};
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 |
type Tylko z parametrem images_version: 2 |
Określa, czy grafika będzie przedstawiona w postaci kartonu lub palety | translation missing: pl.params_type_stringt |
[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_version |
Wersja generatora obrazków | integer | Dopuszczalne wartości: [ 1 | 2 ] |
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 Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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_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' |
images_item_border_color Tylko z parametrem images_version: 1 |
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 Tylko z parametrem images_version: 1 |
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 |
Obrazki
Poniżej przedstawione zostały różnice między obrazkami oraz opis niektórych parametrów requestów.
Różnice między wersją 1 i 2 generatora obrazków.
Główną różnicą między obrazkami jest sposób prezentacji wyników. W wersji pierwszej widok jest prezentowany w sposób dimetryczny. Wersja druga jest prezentowana w sposób izometryczny.
Pozostałe różnice:
- w wersji drugiej kolory dla poszczególnych boków oraz krawędzi przedstawianego przedmiotu i przestrzeni są dobierane automatyczne. W związku z tym, nie ma konieczności podawania tych parametrów w requeście
- druga wersja posiada grafikę taśmy zaklejającej górę przedmiotu. Pomaga to w ustaleniu orientacji przedmiotu w przestrzeni ładunkowej.
- w wersji drugiej poprawione zostało generowanie grafiki SVG
- wersja druga posiada możliwość generowania grafiki palety. Sposób wykorzystania tej funkcjonalności został opisany w jednym z poniższych parametrów.
Obrazek w zależności od typu pojemnika
"bins":
[
{
"id":"Pack M",
"h":50,
"w":120,
"d":80,
"wg":"",
"max_wg":"",
"q":null,
"cost":0,
"type":"pallet"
},
{
"id":"Pack S",
"h":3,
"w":3,
"d":6,
"wg":"",
"max_wg":"",
"q":null,
"cost":0
"type":"box"
}
],
W wersji drugiej obrazków (images_version: "2"
) określając typ pojemnika otrzymamy różne grafiki.
Do wyboru mamy jedną z dwóch opcji: [‘box’ | 'pallet’]
. Domyślna wartość to box
. W tym przypadku obrazek będzie przedstawiał przekrój przestrzeni ładunkowej z zapakowanymi przedmiotami.
Jeżeli parametr ten zostanie ustawiony na pallet
, wtedy obrazek będzie przedstawiał paletę z umieszczonymi na niej przedmiotami.
Poniżej przykład prezentujący różnicę między obrazkami.
type: "pallet"
type: "box"
Kompletnie zapakowany pojemnik
Obrazek przedstawiający końcowy wynik pakowania
Complete
Pakowanie krok po kroku
Obrazek ten przedstawia pakowanie przedmiotów krok po kroku. Na każdym kolejnym obrazku pokazane są wcześniej zapakowane przedmioty, oraz innym kolorem zaznaczony jest obecnie pakowany przedmiot.
Poniżej przedstawiona jest grafika w obu wersjach.
Step 1
Step 2
Step 3
Step 4
Przedmioty przedstawione pojedynczo
W tym przypadku grafika prezentuje pakowanie przedmiotu bez pokazywania wcześniej zapakowanych przedmiotów.
Dla ułatwienia identyfikacji położenia przedmiotu w pojemniku zostały użyte linie przerywane prezentujące jego umieszczenie względem podłoża.
Separated 1
Separated 2
Separated 3
Separated 4
translation missing: pl.images_how_to_scale_svg_h
translation missing: pl.images_how_to_scale_svg_d
Min: 100x100px; Max: 200x200px;
<img src="path_to_image/image.svg" alt="Step by step 3" style="min-width: 100px; max-width: 200px; min-height: 100px; max-height: 200px;">
Min: 300x300px; Max: 400x400px;
<img src="path_to_image/image.svg" alt="Step by step 3" style="min-width: 300px; max-width: 400px; min-height: 300px; max-height: 400px;">
Format obrazków
Do wyboru mamy możliwość generowania obrazków w formacie SVG lub PNG.
Dzięki zastosowaniu formatu SVG użytkownik ma możliwość dowolnego skalowania obrazków bez utraty ich jakości.
Errors
HTTP
Error | Meaning |
---|---|
400 | Bad Request - Your request is invalid. |
404 | Bad URL - Your request URL is invalid. |
500 | Server error. |
API
List of pssible API errors
Error lever | Message |
---|---|
TYPE_CRITICAL | No bins to pack. |
TYPE_CRITICAL | Exceeded maximum number of items per request. Maximum number is 4999 or less |
TYPE_CRITICAL | No items to pack. |
TYPE_CRITICAL | Pallet cannot be packed. - z powodu np błędnie podanych wymiarów |
TYPE_CRITICAL | Request parameter "query" can not be empty. |
TYPE_CRITICAL | Request parameter "query" has to be in JSON format! Example: query={"username":"your_username",....} |
TYPE_CRITICAL | Request parameter "query" not set! Correct request content format: query={...} |
TYPE_CRITICAL | Required parameter "bins" not set! |
TYPE_CRITICAL | Required parameter "username" not set! |
TYPE_CRITICAL | Required parameter "api_key" not set! |
TYPE_CRITICAL | Unknown optimization_mode in the request params! |
TYPE_CRITICAL | Required parameter "items" not set! |
TYPE_CRITICAL | Requested "bins" parameter is not an array! |
TYPE_CRITICAL | Each "strategy" data in "bins_strategies" parameter must be an array! |
TYPE_CRITICAL | Requested "bins_strategies" parameter is not an array! |
TYPE_CRITICAL | Missing "bins" key in strategy data! |
TYPE_CRITICAL | Requested "bins" parameter is not an array! |
TYPE_CRITICAL | Requested "items" parameter is not an array! |
TYPE_WARNING | Bin 'bin_id' can't be packed. Exceeded maximum number of items per simulation. The maximum number is 4999. |
TYPE_WARNING | Bin 'bin_id' has incorrect dimension(s) and is not packed. |
TYPE_WARNING | Bin 'bin_id' has incorrect 'find' value and is not packed. |
TYPE_WARNING | Bin 'bin_id' has incorrect dimension(s) and is not packed. |
TYPE_WARNING | Item 'item_id' has incorrect dimensions. |
TYPE_WARNING | Item 'item_id' has incorrect quantity value. |
TYPE_WARNING | Item 'item_id' has incorrect dimensions. |
TYPE_WARNING | Item 'item_id' has incorrect quantity value. |
TYPE_WARNING | Too many items or bins. |
TYPE_WARNING | Reached the maximum (100) pallets number per request. |
TYPE_WARNING | Pallet has incorrect dimension(s) and is not packed. |
TYPE_WARNING | Wrong color definition for parameter "item_fill_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong color definition for parameter "image_border_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong images_width parameter. [10-250] allowed. |
TYPE_WARNING | Wrong images_height parameter. [10-250] allowed |
TYPE_WARNING | Wrong color definition for parameter "images_background_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong color definition for parameter "images_bin_border_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong color definition for parameter "images_bin_fill_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong color definition for parameter "images_item_border_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong color definition for parameter "images_item_fill_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong color definition for parameter "images_filler_border_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong color definition for parameter "images_filler_fill_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong color definition for parameter "images_item_back_border_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong color definition for parameter "images_dashed_line_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong color definition for parameter "images_bin_dashed_line_color". [0-255] values range allowed, with comma separation. Example: 255,255,255 |
TYPE_WARNING | Wrong "images_source" parameter. [base64|file] allowed |
TYPE_WARNING | Wrong "images_format" parameter. [png|svg] allowed |
TYPE_NOTICE | Item 'item_id' can't be packed into bin 'bin_id' |
TYPE_NOTICE | Item 'item_id' can't be packed into any bin. |
TYPE_NOTICE | Item 'item_id' can't be packed into bin 'bin_id'. |
TYPE_NOTICE | Item 'item_id' can't be packed into any bin. |
TYPE_NOTICE | Parameters "item_fill_color" and "item_border_color" are required for item_colors_schema = "item" |
TYPE_NOTICE | Parameter "item_color_schema" - allowed values: [default|random|item]. Value "default" has been been used |