Introducción
Esta subpaga contiene una descripción sobre la implementación de nuestros algoritmos en su sistema. Nuestros alghoritmos se crearon para optimizar y visualizar el embalaje de elementos cúbicos en varios espacios de carga de forma cúbica. Cada uno es posible conectarse a través de la API que acepta solicitudes. y devuelve respuestas en formato JSON.
¿Qué es una API?
Una API es un conjunto de código de programación que permite la transmisión de datos entre un producto de software y otro. También contiene los términos de este intercambio de datos.
comenzar
Para usar nuestra API, debe registrarse en nuestro sitio web (www.3dbinpacking.com) y obtener su nombre de usuario y clave API.
En caso de que desee probar nuestra API, reemplace la tecla de nombre de usuario y API que se proporciona a continuación y péguelos en la barra de direcciones del navegador.
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}}
Si obtienes una respuesta como se muestra a continuación, significará que hiciste todo correctamente.
{"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}}]}]}
puntos finales
Actualmente tenemos algunos servidores que se ejecutan en todo el mundo para alta disponibilidad, baja latencia.
Nuestro servidor API global es el mejor. Este servidor redirigirá su solicitud al servidor disponible más cercano.
La lista de puntos finales de API 3DBInpacking:
- global-api.3dbinpacking.com - Dirección global/cargador de balance
- us-east.api.3dbinpacking.com - USA (Virginia)
- eu.api.3dbinpacking.com - Europa (Irlanda)
- asia1.api.3dbinpacking.com - Asia Pacific (Singapur)
PEM (X.509)
Solicitudes
A continuación puede leer los detalles sobre los métodos de envío de solicitudes a nuestros servidores API.
Métodos disponibles para enviar datos
- Publicación - Recomendado
- CONSEGUIR
Protocolos disponibles:
- https - recomendado
- http
Métodos de llamada:
- como parámetro - Ejemplo Get: https://global-api.3dbinpacking.com/packer/pack?Query= =json_encoded_data}
- como solicitud de contenido JSON
productos
Empacar un envío
Use la herramienta Empacar un envío para optimizar tu embalaje, por número de cuadros, utilización de espacio o costo.
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
Parámetros de solicitud
Parámetros requeridos
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();
}
Nombre de param | descripción | Tipo de datos |
---|---|---|
username (requerido) |
Nombre de usuario. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión https : //www.3dbinpacking.com/en/customer/api-data | cadena |
api_key (requerido) |
API Key. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión > https://www.3dbinpacking.com/en/customer/api-data | cadena |
[bins] (requerido) |
matriz de parámetros de espacios de embalaje | array |
[items] (requerido) |
matriz de elementos parámetros. límite: número total máximo de elementos por solicitud = 4999 | array |
params |
matriz de parámetros de solicitud adicionales of extra request parameters | array |
[bins] - Detalles de la matriz de espacios de embalaje
Nombre de param | descripción | Tipo de datos |
---|---|---|
id (requerido) |
ID de espacio de embalaje. El número o código que usa para identificar el espacio de embalaje. | cadena |
w (requerido) |
ancho del espacio de embalaje | entero o flotante |
h (requerido) |
Altura del espacio de embalaje | entero o flotante |
d (requerido) |
Profundidad/longitud del espacio de embalaje | entero o flotante |
wg |
El peso del espacio de embalaje | entero o flotante |
max_wg |
El peso máximo que este espacio de embalaje puede contener. Valor establecido en '0' (cero) significa que no hay límite de peso | entero o flotante |
q |
Número máximo de espacios de embalaje de dimensiones dadas | nulo o entero; si el valor no se establece o se establece en nulo, significa que el número de espacios de embalaje es indefinido |
cost |
Costo de envío del espacio de embalaje. Este valor se usa mientras se empaca con el parámetro 'Optimization_mode' establecido en 'Costo' | entero o flotante |
type Solo con images_version: 2 parámetro |
Especifica si la imagen se presentará en forma de caja o palé | translation missing: es.params_type_stringt |
[items] - Detalles de la matriz de elementos
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
id (requerido) |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena | |
w (requerido) |
El ancho del elemento | entero o flotante | |
h (requerido) |
La altura del elemento | entero o flotante | |
d (requerido) |
La profundidad o longitud del elemento | entero o flotante | |
wg |
El peso del elemento | entero o flotante | |
vr |
Rotación vertical. La información si el elemento se puede girar verticalmente. | entero | Rotación vertical. La información si el elemento se puede girar verticalmente. |
q (requerido) |
La cantidad de los mismos elementos para empacar | entero | |
group |
Los artículos agrupados están empacados, lo que permite separar, por ejemplo, productos alimenticios (grupo 'x') de detergentes domésticos (grupo 'y'). | cadena | |
separate |
Separación de elementos; parámetro establecido en '1' significa que los elementos dados no se pueden empacar junto con otros elementos | entero | Valores disponibles: 1 significa que los elementos se separarán, 0 [predeterminado] - significa que los elementos no se separarán |
limit_per_bin |
Defina cuántos elementos se pueden empacar en un espacio de embalaje | entero | |
acceptable_bins |
Defina qué espacios de embalaje se pueden usar para empacar elementos. Si el parámetro no está configurado, entonces se pueden usar todos los espacios de embalaje. Los valores dados tienen que contener espacios de empaque ID incluido en el parámetro 'Bins'. | array | |
item_colors_schema |
Defina qué tipo de esquema de color se debe usar | cadena | Valores disponibles: predeterminado - Los colores establecidos en los siguientes parámetros se utilizarán 'images_item_border_color' y 'images_bin_fill_color', 'random' - x, 'item' - x |
item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
item_border_color |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
params - translation missing: es.optional_parameters_h
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
optimization_mode |
Defina un método de optimización de embalaje | cadena | Valores disponibles: bins_number [predeterminado] - el número más pequeño posible de espacios de embalaje; bins_utilization - máxima. Utilización dentro de los espacios de embalaje; Costo - el costo más bajo de envío o transporte ('costo' Se requiere que el parámetro se administre para cada espacio de embalaje) |
images_version |
Versión del generador de imágenes | entero | Valores disponibles: [1 | 2] |
images_width |
Ancho máximo de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_height |
Altura máxima de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_background_color |
Color de fondo | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_border_color Solo con imágenes_version: 1 parámetro |
Embalaje del color del borde del espacio | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_dashed_line_color Solo con imágenes_version: 1 parámetro |
Color de borde delantero del espacio de embalaje (discontinuo) | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_fill_color |
Color de llenado de espacio de embalaje | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_fill_color |
Llene el color del último elemento en las imágenes que muestran un proceso de embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del último elemento en las imágenes que muestran el embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_format |
Formato de imágenes | cadena | Valores disponibles: [PNG, SVG] |
images_sbs |
translation missing: es.images_sbs | entero | Valores disponibles: 0 [predeterminado]-significa que las imágenes que muestran un proceso de empaque 'paso a paso' no se generarán, 1-significa que las imágenes muestran un proceso de embalaje 'paso a paso- se generará paso' |
images_complete |
Genere imágenes que muestren un resultado final de embalaje | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran el resultado final del embalaje no se generarán, 1 - significa que las imágenes que muestran el resultado del empaque final se generarán |
images_separated |
Genere imágenes que muestren la colocación de cada elemento por separado | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran la colocación de cada elemento por separado no se generarán, 1 significa que las imágenes que muestran la ubicación de cada elemento por separado se generarán |
item_coordinates |
Coordenadas de retorno (x, y, z) para cada elemento | entero | Valores disponibles: 0 [predeterminado] - significa que las coordenadas de la colocación de cada elemento no se devolverán, 1 - que las coordenadas de la ubicación de cada elemento se devolverán |
stats |
Devolver las estadísticas de un proceso de embalaje (por ejemplo, tiempo de generación de imágenes) | entero | Valores disponibles: 0 [predeterminado] - significa que las estadísticas de un proceso de embalaje no se devolverán, 1 - significa que las estadísticas de un proceso de embalaje se devolverán |
Parámetros de respuesta
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
}
]
}
}
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
[bins_packed] |
Lista de artículos repletos | array | |
errors |
Lista de posibles errores que pueden ocurrir en solicitud | array | Ejemplo: [{'level'}]; valores posibles devueltos: 'critical' - error crítico - desactivación de embalaje, 'warning' - advertencia sobre datos incorrectos en solicitud |
status |
Estado de respuesta | entero | Posibles valores devueltos: 1 - La respuesta no ha incluido errores críticos, 0 - La respuesta ha incluido errores críticos. *Error crítico - El error de deshabilitación del empaque. Podría ser causado por la falta de uno de los Parámetros requeridos ('username','api_key') o valor incorrecto del parámetro (por ejemplo, un campo, que debe contener el número, contiene cadena). |
[not_packed_items] |
la lista de elementos no se puede empacar, p. Entrada de parámetros incorrectos, peso o tamaño excesivo | array |
[bins_packed] - la lista de espacios de embalaje a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
bin_data |
detalles del espacio de embalaje a empaquetarse | array |
image_complete |
Imagen del espacio de embalaje a empaquetarse | url |
[items] |
información sobre los elementos que se empacarán en el espacio de embalaje | array |
[bin_data] - detalles del espacio de embalaje a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de espacio de embalaje. El número o código que usa para identificar el espacio de embalaje. | cadena |
w |
ancho del espacio de embalaje | entero o flotante |
h |
Altura del espacio de embalaje | entero o flotante |
d |
Profundidad/longitud del espacio de embalaje | entero o flotante |
used_space |
porcentaje del espacio de embalaje utilizado | entero o flotante |
weight |
peso de los elementos a empaquetarse | entero o flotante |
gross_weight |
peso de los elementos a empaquetarse + peso del espacio de embalaje | entero o flotante |
used_weight |
porcentaje del peso permitido utilizado | entero o flotante |
stack_height |
la altura de los elementos apilados | entero o flotante |
[items] - la lista de elementos a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w |
El ancho del elemento | entero o flotante |
h |
La altura del elemento | entero o flotante |
d |
La profundidad o longitud del elemento | entero o flotante |
wg |
El peso del elemento | entero o flotante |
image_separated |
Imagen que muestra la posición de cada elemento | url |
image_sbs |
Imágenes que muestran el proceso de embalaje paso a paso | url |
coordinates |
coordenadas de elementos en el espacio de embalaje | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la lista de elementos no se puede empacar
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w |
El ancho del elemento | entero o flotante |
h |
La altura del elemento | entero o flotante |
d |
La profundidad o longitud del elemento | entero o flotante |
q |
La cantidad de los mismos elementos para empacar | entero |
wg |
El peso del elemento | entero o flotante |
pilas de palés
Use la herramienta de palés de pila para optimizar cómo empaca sus palés y reducir su número para el transporte y el almacenamiento.
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
Parámetros de solicitud
Parámetros requeridos
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
}
}
Nombre de param | descripción | Tipo de datos |
---|---|---|
username (requerido) |
Nombre de usuario. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión https : //www.3dbinpacking.com/en/customer/api-data | cadena |
api_key (requerido) |
API Key. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión > https://www.3dbinpacking.com/en/customer/api-data | cadena |
[pallet] (requerido) |
Array of pallet parameters | array |
[items] (requerido) |
matriz de elementos parámetros. límite: número total máximo de elementos por solicitud = 4999 | array |
params |
matriz de parámetros de solicitud adicionales | array |
[pallet] - Detalles de la matriz de palés
Nombre de param | descripción | Tipo de datos |
---|---|---|
id (requerido) |
ID de palé. Una palé en la que desea apilar sus elementos | cadena |
w (requerido) |
Ancho de palé | entero o flotante |
h (requerido) |
Altura de palé | entero o flotante |
d (requerido) |
Profundidad/longitud de palé | entero o flotante |
wg |
El peso del espacio de embalaje | entero o flotante |
max_wg |
El peso máximo que este espacio de embalaje puede contener. Valor establecido en '0' (cero) significa que no hay límite de peso | entero o flotante |
type Solo con images_version: 2 parámetro |
Especifica si la imagen se presentará en forma de caja o palé | translation missing: es.params_type_stringt |
[items] - Detalles de la matriz de elementos
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
id (requerido) |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena | |
w (requerido) |
El ancho del elemento | entero o flotante | |
h (requerido) |
La altura del elemento | entero o flotante | |
d (requerido) |
La profundidad o longitud del elemento | entero o flotante | |
wg |
El peso del elemento | entero o flotante | |
vr |
Rotación vertical. La información si el elemento se puede girar verticalmente. | entero | Rotación vertical. La información si el elemento se puede girar verticalmente. |
q (requerido) |
La cantidad de los mismos elementos para empacar | entero | |
item_colors_schema |
Defina qué tipo de esquema de color se debe usar | cadena | |
item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
item_border_color |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
params - translation missing: es.optional_parameters_h
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
images_version |
Versión del generador de imágenes | entero | Valores disponibles: [1 | 2] |
images_width |
Ancho máximo de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_height |
Altura máxima de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_background_color |
Color de fondo | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_border_color Solo con imágenes_version: 1 parámetro |
Embalaje del color del borde del espacio | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_dashed_line_color Solo con imágenes_version: 1 parámetro |
Color de borde delantero del espacio de embalaje (discontinuo) | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_fill_color |
Color de llenado de espacio de embalaje | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_fill_color |
Llene el color del último elemento en las imágenes que muestran un proceso de embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del último elemento en las imágenes que muestran el embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_format |
Formato de imágenes | cadena | Valores disponibles: [PNG, SVG] |
images_sbs |
translation missing: es.images_sbs | entero | Valores disponibles: 0 [predeterminado]-significa que las imágenes que muestran un proceso de empaque 'paso a paso' no se generarán, 1-significa que las imágenes muestran un proceso de embalaje 'paso a paso- se generará paso' |
images_complete |
Genere imágenes que muestren un resultado final de embalaje | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran el resultado final del embalaje no se generarán, 1 - significa que las imágenes que muestran el resultado del empaque final se generarán |
images_separated |
Genere imágenes que muestren la colocación de cada elemento por separado | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran la colocación de cada elemento por separado no se generarán, 1 significa que las imágenes que muestran la ubicación de cada elemento por separado se generarán |
item_coordinates |
Coordenadas de retorno (x, y, z) para cada elemento | entero | Valores disponibles: 0 [predeterminado] - significa que las coordenadas de la colocación de cada elemento no se devolverán, 1 - que las coordenadas de la ubicación de cada elemento se devolverán |
stats |
Devolver las estadísticas de un proceso de embalaje (por ejemplo, tiempo de generación de imágenes) | entero | Valores disponibles: 0 [predeterminado] - significa que las estadísticas de un proceso de embalaje no se devolverán, 1 - significa que las estadísticas de un proceso de embalaje se devolverán |
Parámetros de respuesta
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
}
]
}
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
[pallets_packed] |
la lista de palés a empaquetarse | array | |
errors |
Lista de posibles errores que pueden ocurrir en solicitud | array | Ejemplo: [{'level'}]; valores posibles devueltos: 'critical' - error crítico - desactivación de embalaje, 'warning' - advertencia sobre datos incorrectos en solicitud |
status |
Estado de respuesta | entero | Posibles valores devueltos: 1 - La respuesta no ha incluido errores críticos, 0 - La respuesta ha incluido errores críticos. *Error crítico - El error de deshabilitación del empaque. Podría ser causado por la falta de uno de los Parámetros requeridos ('username','api_key') o valor incorrecto del parámetro (por ejemplo, un campo, que debe contener el número, contiene cadena). |
[not_packed_items] |
la lista de elementos no se puede empacar, p. Entrada de parámetros incorrectos, peso o tamaño excesivo | array |
[pallets_packed] - la lista de palés a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
pallet_data |
detalles del espacio de embalaje a empaquetarse | array |
image_complete |
Imagen del espacio de embalaje a empaquetarse | url |
[items] |
información sobre los elementos que se empacarán en el espacio de embalaje | array |
[pallet_data] - detalles del espacio de embalaje a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de espacio de embalaje. El número o código que usa para identificar el espacio de embalaje. | cadena |
w |
ancho del espacio de embalaje | entero o flotante |
h |
Altura del espacio de embalaje | entero o flotante |
d |
Profundidad/longitud del espacio de embalaje | entero o flotante |
used_space |
porcentaje del espacio de embalaje utilizado | entero o flotante |
weight |
peso de los elementos a empaquetarse | entero o flotante |
gross_weight |
peso de los elementos a empaquetarse + peso del espacio de embalaje | entero o flotante |
used_weight |
porcentaje del peso permitido utilizado | entero o flotante |
stack_height |
la altura de los elementos apilados | entero o flotante |
[items] - la lista de elementos a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w |
El ancho del elemento | entero o flotante |
h |
La altura del elemento | entero o flotante |
d |
La profundidad o longitud del elemento | entero o flotante |
wg |
El peso del elemento | entero o flotante |
image_separated |
Imagen que muestra la posición de cada elemento | url |
image_sbs |
Imágenes que muestran el proceso de embalaje paso a paso | url |
coordinates |
coordenadas de elementos en el espacio de embalaje | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la lista de elementos no se puede empacar
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w |
El ancho del elemento | entero o flotante |
h |
La altura del elemento | entero o flotante |
d |
La profundidad o longitud del elemento | entero o flotante |
q |
La cantidad de los mismos elementos para empacar | entero |
wg |
El peso del elemento | entero o flotante |
Encuentra una dimensión faltante
Use Encuentra una dimensión faltante para calcular las mediciones y el área que utilizará su embalaje.
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
Parámetros de solicitud
Parámetros requeridos
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();
}
Nombre de param | descripción | Tipo de datos |
---|---|---|
username (requerido) |
Nombre de usuario. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión https : //www.3dbinpacking.com/en/customer/api-data | cadena |
api_key (requerido) |
API Key. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión > https://www.3dbinpacking.com/en/customer/api-data | cadena |
[bins] (requerido) |
matriz de parámetros de espacios de embalaje | array |
[items] (requerido) |
matriz de elementos parámetros. límite: número total máximo de elementos por solicitud = 4999 | array |
params |
matriz de parámetros de solicitud adicionales | array |
[bins] - Detalles de la matriz de espacios de embalaje
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
id (requerido) |
ID de espacio de embalaje. El número o código que usa para identificar el espacio de embalaje. | cadena | |
w (requerido) |
ancho del espacio de embalaje | float | |
h (requerido) |
Altura del espacio de embalaje | float | |
d (requerido) |
Profundidad/longitud del espacio de embalaje | float | |
find (requerido) |
Indica qué dimensión del contenedor se debe encontrar | cadena | Valores disponibles: 'w' - menas que el algoritmo calculará el ancho del contenedor, 'h' - menas que el algoritmo calculará la altura del contenedor, 'd' El algoritmo calculará la profundidad del contenedor |
type Solo con images_version: 2 parámetro |
Especifica si la imagen se presentará en forma de caja o palé | translation missing: es.params_type_stringt |
[items] - Detalles de la matriz de elementos
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
id (requerido) |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena | |
w (requerido) |
El ancho del elemento | entero o flotante | |
h (requerido) |
La altura del elemento | entero o flotante | |
d (requerido) |
La profundidad o longitud del elemento | entero o flotante | |
wg |
El peso del elemento | entero o flotante | |
vr |
Rotación vertical. La información si el elemento se puede girar verticalmente. | entero | Rotación vertical. La información si el elemento se puede girar verticalmente. |
q (requerido) |
La cantidad de los mismos elementos para empacar | entero | |
acceptable_bins |
Defina qué espacios de embalaje se pueden usar para empacar elementos. Si el parámetro no está configurado, entonces se pueden usar todos los espacios de embalaje. Los valores dados tienen que contener espacios de empaque ID incluido en el parámetro 'Bins'. | array | |
item_colors_schema |
Defina qué tipo de esquema de color se debe usar | cadena | Valores disponibles: predeterminado - Los colores establecidos en los siguientes parámetros se utilizarán 'images_item_border_color' y 'images_bin_fill_color', 'random' - x, 'item' - x |
item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
item_border_color |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
params - translation missing: es.optional_parameters_h
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
images_version |
Versión del generador de imágenes | entero | Valores disponibles: [1 | 2] |
images_width |
Ancho máximo de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_height |
Altura máxima de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_background_color |
Color de fondo | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_border_color Solo con imágenes_version: 1 parámetro |
Embalaje del color del borde del espacio | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_dashed_line_color Solo con imágenes_version: 1 parámetro |
Color de borde delantero del espacio de embalaje (discontinuo) | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_fill_color |
Color de llenado de espacio de embalaje | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_fill_color |
Llene el color del último elemento en las imágenes que muestran un proceso de embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del último elemento en las imágenes que muestran el embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_format |
Formato de imágenes | cadena | Valores disponibles: [PNG, SVG] |
images_sbs |
translation missing: es.images_sbs | entero | Valores disponibles: 0 [predeterminado]-significa que las imágenes que muestran un proceso de empaque 'paso a paso' no se generarán, 1-significa que las imágenes muestran un proceso de embalaje 'paso a paso- se generará paso' |
images_complete |
Genere imágenes que muestren un resultado final de embalaje | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran el resultado final del embalaje no se generarán, 1 - significa que las imágenes que muestran el resultado del empaque final se generarán |
images_separated |
Genere imágenes que muestren la colocación de cada elemento por separado | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran la colocación de cada elemento por separado no se generarán, 1 significa que las imágenes que muestran la ubicación de cada elemento por separado se generarán |
item_coordinates |
Coordenadas de retorno (x, y, z) para cada elemento | entero | Valores disponibles: 0 [predeterminado] - significa que las coordenadas de la colocación de cada elemento no se devolverán, 1 - que las coordenadas de la ubicación de cada elemento se devolverán |
stats |
Devolver las estadísticas de un proceso de embalaje (por ejemplo, tiempo de generación de imágenes) | entero | Valores disponibles: 0 [predeterminado] - significa que las estadísticas de un proceso de embalaje no se devolverán, 1 - significa que las estadísticas de un proceso de embalaje se devolverán |
Parámetros de respuesta
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":[]
}
}
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
[bins_packed] |
Lista de artículos repletos | array | |
errors |
Lista de posibles errores que pueden ocurrir en solicitud | array | Ejemplo: [{'level'}]; valores posibles devueltos: 'critical' - error crítico - desactivación de embalaje, 'warning' - advertencia sobre datos incorrectos en solicitud |
status |
Estado de respuesta | entero | Posibles valores devueltos: 1 - La respuesta no ha incluido errores críticos, 0 - La respuesta ha incluido errores críticos. *Error crítico - El error de deshabilitación del empaque. Podría ser causado por la falta de uno de los Parámetros requeridos ('username','api_key') o valor incorrecto del parámetro (por ejemplo, un campo, que debe contener el número, contiene cadena). |
[not_packed_items] |
la lista de elementos no se puede empacar, p. Entrada de parámetros incorrectos, peso o tamaño excesivo | array |
[bins_packed] - la lista de espacios de embalaje a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
bin_data |
detalles del espacio de embalaje a empaquetarse | array |
image_complete |
Imagen del espacio de embalaje a empaquetarse | url |
[items] |
información sobre los elementos que se empacarán en el espacio de embalaje | array |
[not_packed_items] |
los elementos no se pueden empacar en el espacio de embalaje | array |
[bin_data] - detalles del espacio de embalaje a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de espacio de embalaje. El número o código que usa para identificar el espacio de embalaje. | cadena |
w |
ancho del espacio de embalaje | entero o flotante |
h |
Altura del espacio de embalaje | entero o flotante |
d |
Profundidad/longitud del espacio de embalaje | entero o flotante |
used_space |
porcentaje del espacio de embalaje utilizado | entero o flotante |
weight |
peso de los elementos a empaquetarse | entero o flotante |
gross_weight |
peso de los elementos a empaquetarse + peso del espacio de embalaje | entero o flotante |
used_weight |
porcentaje del peso permitido utilizado | entero o flotante |
stack_height |
la altura de los elementos apilados | entero o flotante |
[items] - la lista de elementos a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w |
El ancho del elemento | entero o flotante |
h |
La altura del elemento | entero o flotante |
d |
La profundidad o longitud del elemento | entero o flotante |
wg |
El peso del elemento | entero o flotante |
image_separated |
Imagen que muestra la posición de cada elemento | url |
image_sbs |
Imágenes que muestran el proceso de embalaje paso a paso | url |
coordinates |
coordenadas de elementos en el espacio de embalaje | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la lista de elementos no se puede empacar
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w |
El ancho del elemento | entero o flotante |
h |
La altura del elemento | entero o flotante |
d |
La profundidad o longitud del elemento | entero o flotante |
q |
La cantidad de los mismos elementos para empacar | entero |
wg |
El peso del elemento | entero o flotante |
Encuentra un tamaño de caja
Use la herramienta Encuentra un tamaño de caja para maximizar el uso del espacio y calcular el cuadro de tamaño derecho para su embalaje.
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
Parámetros de solicitud
Parámetros requeridos
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();
}
Nombre de param | descripción | Tipo de datos |
---|---|---|
username (requerido) |
Nombre de usuario. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión https : //www.3dbinpacking.com/en/customer/api-data | cadena |
api_key (requerido) |
API Key. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión > https://www.3dbinpacking.com/en/customer/api-data | cadena |
[bins] (requerido) |
matriz de parámetros de espacios de embalaje | array |
[items] (requerido) |
matriz de elementos parámetros. límite: número total máximo de elementos por solicitud = 4999 | array |
params |
matriz de parámetros de solicitud adicionales | array |
[bins] - Detalles de la matriz de espacios de embalaje
Nombre de param | descripción | Tipo de datos |
---|---|---|
id (requerido) |
ID de espacio de embalaje. El número o código que usa para identificar el espacio de embalaje. | cadena |
w (requerido) |
Packing space max. width (requerido) |
float |
h (requerido) |
Packing space max. height | float |
d (requerido) |
Packing space max. depth/length | float |
type Solo con images_version: 2 parámetro |
Especifica si la imagen se presentará en forma de caja o palé | translation missing: es.params_type_stringt |
[items] - Detalles de la matriz de elementos
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
id (requerido) |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena | |
w (requerido) |
El ancho del elemento | entero o flotante | |
h (requerido) |
La altura del elemento | entero o flotante | |
d (requerido) |
La profundidad o longitud del elemento | entero o flotante | |
wg |
El peso del elemento | entero o flotante | |
vr |
Rotación vertical. La información si el elemento se puede girar verticalmente. | entero | Rotación vertical. La información si el elemento se puede girar verticalmente. |
q (requerido) |
La cantidad de los mismos elementos para empacar | entero | |
item_colors_schema |
Defina qué tipo de esquema de color se debe usar | cadena | |
item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
item_border_color |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
params - translation missing: es.optional_parameters_h
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
images_version |
Versión del generador de imágenes | entero | Valores disponibles: [1 | 2] |
images_width |
Ancho máximo de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_height |
Altura máxima de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_background_color |
Color de fondo | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_border_color Solo con imágenes_version: 1 parámetro |
Embalaje del color del borde del espacio | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_dashed_line_color Solo con imágenes_version: 1 parámetro |
Color de borde delantero del espacio de embalaje (discontinuo) | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_fill_color |
Color de llenado de espacio de embalaje | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_fill_color |
Llene el color del último elemento en las imágenes que muestran un proceso de embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del último elemento en las imágenes que muestran el embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_format |
Formato de imágenes | cadena | Valores disponibles: [PNG, SVG] |
images_sbs |
translation missing: es.images_sbs | entero | Valores disponibles: 0 [predeterminado]-significa que las imágenes que muestran un proceso de empaque 'paso a paso' no se generarán, 1-significa que las imágenes muestran un proceso de embalaje 'paso a paso- se generará paso' |
images_complete |
Genere imágenes que muestren un resultado final de embalaje | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran el resultado final del embalaje no se generarán, 1 - significa que las imágenes que muestran el resultado del empaque final se generarán |
images_separated |
Genere imágenes que muestren la colocación de cada elemento por separado | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran la colocación de cada elemento por separado no se generarán, 1 significa que las imágenes que muestran la ubicación de cada elemento por separado se generarán |
item_coordinates |
Coordenadas de retorno (x, y, z) para cada elemento | entero | Valores disponibles: 0 [predeterminado] - significa que las coordenadas de la colocación de cada elemento no se devolverán, 1 - que las coordenadas de la ubicación de cada elemento se devolverán |
stats |
Devolver las estadísticas de un proceso de embalaje (por ejemplo, tiempo de generación de imágenes) | entero | Valores disponibles: 0 [predeterminado] - significa que las estadísticas de un proceso de embalaje no se devolverán, 1 - significa que las estadísticas de un proceso de embalaje se devolverán |
Parámetros de respuesta
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":[]
}
}
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
[bins_packed] |
Lista de artículos repletos | array | |
errors |
Lista de posibles errores que pueden ocurrir en solicitud | array | Ejemplo: [{'level'}]; valores posibles devueltos: 'critical' - error crítico - desactivación de embalaje, 'warning' - advertencia sobre datos incorrectos en solicitud |
status |
Estado de respuesta | entero | Posibles valores devueltos: 1 - La respuesta no ha incluido errores críticos, 0 - La respuesta ha incluido errores críticos. *Error crítico - El error de deshabilitación del empaque. Podría ser causado por la falta de uno de los Parámetros requeridos ('username','api_key') o valor incorrecto del parámetro (por ejemplo, un campo, que debe contener el número, contiene cadena). |
[not_packed_items] |
la lista de elementos no se puede empacar, p. Entrada de parámetros incorrectos, peso o tamaño excesivo | array |
[bins_packed] - la lista de espacios de embalaje a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
bin_data |
detalles del espacio de embalaje a empaquetarse | array |
image_complete |
Imagen del espacio de embalaje a empaquetarse | url |
[items] |
información sobre los elementos que se empacarán en el espacio de embalaje | array |
[not_packed_items] |
los elementos no se pueden empacar en el espacio de embalaje | array |
[bin_data] - detalles del espacio de embalaje a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de espacio de embalaje. El número o código que usa para identificar el espacio de embalaje. | cadena |
w |
ancho del espacio de embalaje | entero o flotante |
h |
Altura del espacio de embalaje | entero o flotante |
d |
Profundidad/longitud del espacio de embalaje | entero o flotante |
used_space |
porcentaje del espacio de embalaje utilizado | entero o flotante |
weight |
peso de los elementos a empaquetarse | entero o flotante |
gross_weight |
peso de los elementos a empaquetarse + peso del espacio de embalaje | entero o flotante |
used_weight |
porcentaje del peso permitido utilizado | entero o flotante |
stack_height |
la altura de los elementos apilados | entero o flotante |
[items] - la lista de elementos a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w |
El ancho del elemento | entero o flotante |
h |
La altura del elemento | entero o flotante |
d |
La profundidad o longitud del elemento | entero o flotante |
wg |
El peso del elemento | entero o flotante |
image_separated |
Imagen que muestra la posición de cada elemento | url |
image_sbs |
Imágenes que muestran el proceso de embalaje paso a paso | url |
coordinates |
coordenadas de elementos en el espacio de embalaje | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la lista de elementos no se puede empacar
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w |
El ancho del elemento | entero o flotante |
h |
La altura del elemento | entero o flotante |
d |
La profundidad o longitud del elemento | entero o flotante |
q |
La cantidad de los mismos elementos para empacar | entero |
wg |
El peso del elemento | entero o flotante |
Prueba de tamaños de caja
Use la herramienta de tamaños de prueba de prueba para comparar los elementos de embalaje en cajas o espacios de embalaje de diferentes tamaños.
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
Parámetros de solicitud
Parámetros requeridos
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();
}
Nombre de param | descripción | Tipo de datos |
---|---|---|
username (requerido) |
Nombre de usuario. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión https : //www.3dbinpacking.com/en/customer/api-data | cadena |
api_key (requerido) |
API Key. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión > https://www.3dbinpacking.com/en/customer/api-data | cadena |
[bins] (requerido) |
matriz de parámetros de espacios de embalaje | array |
[items] (requerido) |
matriz de elementos parámetros. límite: número total máximo de elementos por solicitud = 4999 | array |
params |
matriz de parámetros de solicitud adicionales of extra request parameters | array |
[bins] - Detalles de la matriz de espacios de embalaje
Nombre de param | descripción | Tipo de datos |
---|---|---|
id (requerido) |
ID de espacio de embalaje. El número o código que usa para identificar el espacio de embalaje. | cadena |
w (requerido) |
ancho del espacio de embalaje | entero o flotante |
h (requerido) |
Altura del espacio de embalaje | entero o flotante |
d (requerido) |
Profundidad/longitud del espacio de embalaje | entero o flotante |
wg |
El peso del espacio de embalaje | entero o flotante |
max_wg |
El peso máximo que este espacio de embalaje puede contener. Valor establecido en '0' (cero) significa que no hay límite de peso | entero o flotante |
type Solo con images_version: 2 parámetro |
Especifica si la imagen se presentará en forma de caja o palé | translation missing: es.params_type_stringt |
[items] - Detalles de la matriz de elementos
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
id (requerido) |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena | |
w (requerido) |
El ancho del elemento | entero o flotante | |
h (requerido) |
La altura del elemento | entero o flotante | |
d (requerido) |
La profundidad o longitud del elemento | entero o flotante | |
wg |
El peso del elemento | entero o flotante | |
vr |
Rotación vertical. La información si el elemento se puede girar verticalmente. | entero | |
q (requerido) |
La cantidad de los mismos elementos para empacar | entero | |
item_colors_schema |
Defina qué tipo de esquema de color se debe usar | cadena | Valores disponibles: predeterminado - Los colores establecidos en los siguientes parámetros se utilizarán 'images_item_border_color' y 'images_bin_fill_color', 'random' - x, 'item' - x |
item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
item_border_color |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
params - translation missing: es.optional_parameters_h
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
images_version |
Versión del generador de imágenes | entero | Valores disponibles: [1 | 2] |
images_width |
Ancho máximo de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_height |
Altura máxima de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_background_color |
Color de fondo | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_border_color Solo con imágenes_version: 1 parámetro |
Embalaje del color del borde del espacio | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_dashed_line_color Solo con imágenes_version: 1 parámetro |
Color de borde delantero del espacio de embalaje (discontinuo) | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_fill_color |
Color de llenado de espacio de embalaje | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_fill_color |
Llene el color del último elemento en las imágenes que muestran un proceso de embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del último elemento en las imágenes que muestran el embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_format |
Formato de imágenes | cadena | Valores disponibles: [PNG, SVG] |
images_sbs |
translation missing: es.images_sbs | entero | Valores disponibles: 0 [predeterminado]-significa que las imágenes que muestran un proceso de empaque 'paso a paso' no se generarán, 1-significa que las imágenes muestran un proceso de embalaje 'paso a paso- se generará paso' |
images_complete |
Genere imágenes que muestren un resultado final de embalaje | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran el resultado final del embalaje no se generarán, 1 - significa que las imágenes que muestran el resultado del empaque final se generarán |
images_separated |
Genere imágenes que muestren la colocación de cada elemento por separado | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran la colocación de cada elemento por separado no se generarán, 1 significa que las imágenes que muestran la ubicación de cada elemento por separado se generarán |
item_coordinates |
Coordenadas de retorno (x, y, z) para cada elemento | entero | Valores disponibles: 0 [predeterminado] - significa que las coordenadas de la colocación de cada elemento no se devolverán, 1 - que las coordenadas de la ubicación de cada elemento se devolverán |
stats |
Devolver las estadísticas de un proceso de embalaje (por ejemplo, tiempo de generación de imágenes) | entero | Valores disponibles: 0 [predeterminado] - significa que las estadísticas de un proceso de embalaje no se devolverán, 1 - significa que las estadísticas de un proceso de embalaje se devolverán |
Parámetros de respuesta
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":[]
}
}
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
[bins_packed] |
Lista de artículos repletos | array | |
errors |
Lista de posibles errores que pueden ocurrir en solicitud | array | Ejemplo: [{'level'}]; valores posibles devueltos: 'critical' - error crítico - desactivación de embalaje, 'warning' - advertencia sobre datos incorrectos en solicitud |
status |
Estado de respuesta | entero | Posibles valores devueltos: 1 - La respuesta no ha incluido errores críticos, 0 - La respuesta ha incluido errores críticos. *Error crítico - El error de deshabilitación del empaque. Podría ser causado por la falta de uno de los Parámetros requeridos ('username','api_key') o valor incorrecto del parámetro (por ejemplo, un campo, que debe contener el número, contiene cadena). |
[not_packed_items] |
la lista de elementos no se puede empacar, p. Entrada de parámetros incorrectos, peso o tamaño excesivo | array |
[bins_packed] - la lista de espacios de embalaje a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
bin_data |
detalles del espacio de embalaje a empaquetarse | array |
image_complete |
Imagen del espacio de embalaje a empaquetarse | url |
[items] |
información sobre los elementos que se empacarán en el espacio de embalaje | array |
[not_packed_items] |
los elementos no se pueden empacar en el espacio de embalaje | array |
[bin_data] - detalles del espacio de embalaje a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de espacio de embalaje. El número o código que usa para identificar el espacio de embalaje. | cadena |
w |
ancho del espacio de embalaje | entero o flotante |
h |
Altura del espacio de embalaje | entero o flotante |
d |
Profundidad/longitud del espacio de embalaje | entero o flotante |
used_space |
porcentaje del espacio de embalaje utilizado | entero o flotante |
weight |
peso de los elementos a empaquetarse | entero o flotante |
gross_weight |
peso de los elementos a empaquetarse + peso del espacio de embalaje | entero o flotante |
used_weight |
porcentaje del peso permitido utilizado | entero o flotante |
stack_height |
la altura de los elementos apilados | entero o flotante |
[items] - la lista de elementos a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w |
El ancho del elemento | entero o flotante |
h |
La altura del elemento | entero o flotante |
d |
La profundidad o longitud del elemento | entero o flotante |
wg |
El peso del elemento | entero o flotante |
image_separated |
Imagen que muestra la posición de cada elemento | url |
image_sbs |
Imágenes que muestran el proceso de embalaje paso a paso | url |
coordinates |
coordenadas de elementos en el espacio de embalaje | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la lista de elementos no se puede empacar
Nombre de param | descripción | Tipo de datos |
---|---|---|
id | ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w | El ancho del elemento | entero o flotante |
h | La altura del elemento | entero o flotante |
d | La profundidad o longitud del elemento | entero o flotante |
q | La cantidad de los mismos elementos para empacar | entero |
wg | El peso del elemento | entero o flotante |
Verifique la carga máxima
Use la herramienta Verifique la carga máxima para verificar exactamente cuántos elementos llenarán una casilla o espacio de embalaje a su capacidad.
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
Parámetros de solicitud
Parámetros requeridos
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();
}
Nombre de param | descripción | Tipo de datos |
---|---|---|
username (requerido) |
Nombre de usuario. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión https : //www.3dbinpacking.com/en/customer/api-data | cadena |
api_key (requerido) |
API Key. Puede encontrar la clave API en la sección '/Configuración de perfil/API' API 'después de iniciar sesión > https://www.3dbinpacking.com/en/customer/api-data | cadena |
[bins] (requerido) |
matriz de parámetros de espacios de embalaje | array |
[items] (requerido) |
matriz de elementos parámetros. límite: número total máximo de elementos por solicitud = 4999 | array |
params |
matriz de parámetros de solicitud adicionales | array |
[bins] - Detalles de la matriz de espacios de embalaje
Nombre de param | descripción | Tipo de datos |
---|---|---|
id (requerido) |
ID de espacio de embalaje. El número o código que usa para identificar el espacio de embalaje. | cadena |
w (requerido) |
ancho del espacio de embalaje | float |
h (requerido) |
Altura del espacio de embalaje | float |
d (requerido) |
Profundidad/longitud del espacio de embalaje | float |
wg |
El peso del espacio de embalaje | entero o flotante |
max_wg |
El peso máximo que este espacio de embalaje puede contener. Valor establecido en '0' (cero) significa que no hay límite de peso | entero o flotante |
type Solo con images_version: 2 parámetro |
Especifica si la imagen se presentará en forma de caja o palé | translation missing: es.params_type_stringt |
[items] - Detalles de la matriz de elementos
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
id (requerido) |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena | |
w (requerido) |
El ancho del elemento | entero o flotante | |
h (requerido) |
La altura del elemento | entero o flotante | |
d (requerido) |
La profundidad o longitud del elemento | entero o flotante | |
wg |
El peso del elemento | entero o flotante | |
vr |
Rotación vertical. La información si el elemento se puede girar verticalmente. | entero | Rotación vertical. La información si el elemento se puede girar verticalmente. |
item_colors_schema |
Defina qué tipo de esquema de color se debe usar | cadena | |
item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
item_border_color |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
params - translation missing: es.optional_parameters_h
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
images_version |
Versión del generador de imágenes | entero | Valores disponibles: [1 | 2] |
images_width |
Ancho máximo de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_height |
Altura máxima de imágenes generadas | entero | Valores disponibles: 1 - 250 |
images_background_color |
Color de fondo | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_border_color Solo con imágenes_version: 1 parámetro |
Embalaje del color del borde del espacio | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_dashed_line_color Solo con imágenes_version: 1 parámetro |
Color de borde delantero del espacio de embalaje (discontinuo) | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_bin_fill_color |
Color de llenado de espacio de embalaje | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_fill_color |
Color de relleno de elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del elemento | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_fill_color |
Llene el color del último elemento en las imágenes que muestran un proceso de embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_sbs_last_item_border_color Solo con imágenes_version: 1 parámetro |
Color de borde del último elemento en las imágenes que muestran el embalaje 'paso a paso' | cadena | Valores disponibles: valores RGB de puntos de colores separados 'rojo, verde, azul', valores permitidos 0-255; ejemplo: '255,120,10' |
images_format |
Formato de imágenes | cadena | Valores disponibles: [PNG, SVG] |
images_sbs |
translation missing: es.images_sbs | entero | Valores disponibles: 0 [predeterminado]-significa que las imágenes que muestran un proceso de empaque 'paso a paso' no se generarán, 1-significa que las imágenes muestran un proceso de embalaje 'paso a paso- se generará paso' |
images_complete |
Genere imágenes que muestren un resultado final de embalaje | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran el resultado final del embalaje no se generarán, 1 - significa que las imágenes que muestran el resultado del empaque final se generarán |
images_separated |
Genere imágenes que muestren la colocación de cada elemento por separado | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran la colocación de cada elemento por separado no se generarán, 1 significa que las imágenes que muestran la ubicación de cada elemento por separado se generarán |
item_coordinates |
Coordenadas de retorno (x, y, z) para cada elemento | entero | Valores disponibles: 0 [predeterminado] - significa que las imágenes que muestran la colocación de cada elemento por separado no se generarán, 1 significa que las imágenes que muestran la ubicación de cada elemento por separado se generarán |
stats |
Devolver las estadísticas de un proceso de embalaje (por ejemplo, tiempo de generación de imágenes) | entero | Valores disponibles: 0 [predeterminado] - significa que las estadísticas de un proceso de embalaje no se devolverán, 1 - significa que las estadísticas de un proceso de embalaje se devolverán |
Parámetros de respuesta
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":[]
}
}
Nombre de param | descripción | Tipo de datos | info |
---|---|---|---|
[bins_packed] |
Lista de artículos repletos | array | |
errors |
Lista de posibles errores que pueden ocurrir en solicitud | array | Ejemplo: [{'level'}]; valores posibles devueltos: 'critical' - error crítico - desactivación de embalaje, 'warning' - advertencia sobre datos incorrectos en solicitud |
status |
Estado de respuesta | entero | Posibles valores devueltos: 1 - La respuesta no ha incluido errores críticos, 0 - La respuesta ha incluido errores críticos. *Error crítico - El error de deshabilitación del empaque. Podría ser causado por la falta de uno de los Parámetros requeridos ('username','api_key') o valor incorrecto del parámetro (por ejemplo, un campo, que debe contener el número, contiene cadena). |
[not_packed_items] |
la lista de elementos no se puede empacar, p. Entrada de parámetros incorrectos, peso o tamaño excesivo | array |
[bins_packed] - la lista de espacios de embalaje a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
bin_data |
detalles del espacio de embalaje a empaquetarse | array |
image_complete |
Imagen del espacio de embalaje a empaquetarse | url |
[items] |
información sobre los elementos que se empacarán en el espacio de embalaje | array |
[bin_data] - detalles del espacio de embalaje a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de espacio de embalaje. El número o código que usa para identificar el espacio de embalaje. | cadena |
w |
ancho del espacio de embalaje | entero o flotante |
h |
Altura del espacio de embalaje | entero o flotante |
d |
Profundidad/longitud del espacio de embalaje | entero o flotante |
used_space |
porcentaje del espacio de embalaje utilizado | entero o flotante |
weight |
peso de los elementos a empaquetarse | entero o flotante |
gross_weight |
peso de los elementos a empaquetarse + peso del espacio de embalaje | entero o flotante |
used_weight |
porcentaje del peso permitido utilizado | entero o flotante |
stack_height |
la altura de los elementos apilados | entero o flotante |
[items] - la lista de elementos a empaquetarse
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w |
El ancho del elemento | entero o flotante |
h |
La altura del elemento | entero o flotante |
d |
La profundidad o longitud del elemento | entero o flotante |
wg |
El peso del elemento | entero o flotante |
image_separated |
Imagen que muestra la posición de cada elemento | url |
image_sbs |
Imágenes que muestran el proceso de embalaje paso a paso | url |
coordinates |
coordenadas de elementos en el espacio de embalaje | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la lista de elementos no se puede empacar
Nombre de param | descripción | Tipo de datos |
---|---|---|
id |
ID de elemento/sku. El número o código que usa para identificar lo que se está empacando. | cadena |
w |
El ancho del elemento | entero o flotante |
h |
La altura del elemento | entero o flotante |
d |
La profundidad o longitud del elemento | entero o flotante |
q |
La cantidad de los mismos elementos para empacar | entero |
wg |
El peso del elemento | entero o flotante |
Gráficos
A continuación se muestran las diferencias entre las imágenes y una descripción de algunos parámetros de solicitudes.
Diferencias entre la versión 1 y 2 del generador de imágenes.
La principal diferencia entre las imágenes es la forma en que se presentan los resultados. En la primera versión, la vista se presenta de manera dimétrica. La segunda versión se presenta de manera isométrica.
Otras diferencias son:
- En la segunda versión, los colores para lados y bordes individuales del objeto y espacio presentados se seleccionan automáticamente. Por lo tanto, no es necesario proporcionar estos parámetros en la solicitud
- La segunda versión tiene un gráfico de la cinta que sellan la parte superior del elemento. Esto ayuda a determinar la orientación del artículo en el espacio de embalaje.
- En la segunda versión, el generador de imágenes SVG se ha mejorado
- En la segunda versión, es posible generar los gráficos de una palé. Cómo usar esta función se describe en uno de los siguientes parámetros.
Imágenes dependiendo del tipo de espacio de embalaje
"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"
}
],
En la segunda versión de las imágenes ( images_version: "2"
) podemos generar imágenes que muestren el tipo de espacio de embalaje que definimos.
Hay 2 opciones disponibles: [‘box’ | 'pallet’]
. El valor predeterminado es caja
. En este caso, la imagen mostrará una sección transversal del espacio de embalaje junto con artículos empacados.
Si el parámetro se establece en palet
, la palé se generará junto con elementos apilados en él.
Hay un ejemplo a continuación que muestra la diferencia entre las imágenes.
type: "pallet"
type: "box"
espacio de embalaje completamente lleno
Imágenes que muestran el resultado final del embalaje
Complete
Instrucciones de embalaje paso a paso
Este gráfico muestra el proceso de embalaje paso a paso. En cada imagen posterior, los elementos previamente empaquetados están marcados con un color diferente al elemento que actualmente se está empacando.
Debajo de ambas versiones de las imágenes se presentan.
Step 1
Step 2
Step 3
Step 4
elementos presentados individualmente
En este caso, la imagen muestra un solo elemento sin mostrar los elementos previamente repletos.
Las líneas discontinuas que presentan la posición de un elemento en relación con el suelo se utilizan para ayudar a identificar la posición del elemento en el espacio de embalaje.
Separated 1
Separated 2
Separated 3
Separated 4
Escalar imágenes SVG
Gracias al formato SVG, es posible escalarlos libremente sin perder su calidad.
El siguiente ejemplo muestra la misma imagen en diferentes tamaños.
La primera tiene las dimensiones mínimas establecidas en 200x200px
y el máximo de dimensiones configurado en 400x400px
.
El segundo tiene las dimensiones mínimas establecidas en 300x300px
y el máximo de las dims establecido en 400x400px
.
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;">
Formato de imágenes
Es posible generar imágenes en formatos SVG o PNG.
Gracias al formato SVG, el usuario puede escalar libremente las imágenes sin perder su calidad.
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 |