Introduction
Cette sous-page contient une description de l'implémentation de nos algorithmes dans votre système. Nos algorithmes ont été créés pour optimiser et visualiser l'emballage d'éléments cubes dans divers espaces de chargement de forme cubique. Chaque algorithme est possible pour se connecter via l'API qui accepte les demandes et renvoie les réponses au format JSON.
Qu'est-ce qu'une API?
Une API est un ensemble de code de programmation qui permet la transmission de données entre un produit logiciel et un autre. Il contient également les termes de cet échange de données.
démarrer
Pour utiliser notre API, vous devez vous inscrire sur notre site Web (www.3dbinpacking.com) et obtenir votre nom d'utilisateur et votre clé API.
Dans le cas où vous aimez tester notre API, veuillez remplacer le nom d'utilisateur et la clé de l'API donnés ci-dessous et collez-les dans la barre d'adresse du navigateur.
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 vous obtenez une réponse comme ci-dessous, cela signifie que vous avez tout fait correctement.
{"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}}]}]}
points de terminaison
Actuellement, nous avons quelques serveurs qui tournent dans le monde pour une haute disponibilité, une faible latence.
Notre serveur API global est le meilleur. Ce serveur redirigera votre demande vers le serveur disponible le plus proche.
- global-api.3dbinpacking.com - Adresse globale / chargeur d'équilibre
- us-east.api.3dbinpacking.com - USA (Virginie)
- eu.api.3dbinpacking.com - Europe (Irlande)
- asia1.api.3dbinpacking.com - Asie-Pacifique (Singapour)
PEM (X.509)
Demandes
En dessous vous pouvez lire les détails sur les méthodes d'envoi de demandes à nos serveurs API.
Méthodes disponibles pour envoyer des données
- POST - Recommandé
- GET (obtenir)
Protocoles disponibles:
- https - Recommended
- http
Méthodes d'appel:
- comme paramètre - Exemple GET: https://global-api.3dbinpacking.com/packer/pack?query={json_encoded_data}
- comme demande de contenu JSON
produits
Emballez une Expédition
Utilisez l’outil Emballez une Expédition pour optimiser votre emballage - par nombre de cartons, utilisation ou coût de l'espace.
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
Paramètres de demande
Paramètres requis
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();
}
nom de param | Description | type de données |
---|---|---|
username (requis) |
nom d'utilisateur. Vous pouvez trouver la touche API dans la section ' / Profile settings / API access' après la connexion dans https : //www.3dbinpacking.com/en/customer/api-data | chaîne |
api_key (requis) |
clé API. Vous pouvez trouver la clé API dans la section '/ Profile settings/API access' après la connexion dans https://www.3dbinpacking.com/en/customer/api-data | chaîne |
[bins] (requis) |
tableau des paramètres d'espace d'emballage | réseau |
[items] (requis) |
translation missing: fr.params_array_items | réseau |
params |
tableau des paramètres de demande supplémentaires of extra request parameters | réseau |
[bins] - Détails du tableau des espaces d'emballage
nom de param | Description | type de données |
---|---|---|
id (requis) |
ID d'espace d’emballage. Le numéro ou le code que vous utilisez pour identifier l'espace d'emballage. | chaîne |
w (requis) |
Largeur d'espace d'emballage | entier ou flottant |
h (requis) |
Hauteur d'espace d'emballage | entier ou flottant |
d (requis) |
Profondeur / longueur d'espace d'emballage | entier ou flottant |
wg |
le poids de l'espace d'emballage | entier ou flottant |
max_wg |
Le poids maximum que cet espace d'emballage peut contenir. Valeur définie sur '0' (zéro) signifie qu'il n'y a pas de limite de poids | entier ou flottant |
q |
Nombre maximum d'espaces d'emballage de dimensions données | nul ou entier; si la valeur n'est pas définie ou est définie sur nulle - cela signifie que le nombre d'espaces d'emballage est indéfini |
cost |
Coût d'expédition d'espace d'emballage. Cette valeur est utilisée lors de l'emballage avec des paramètres 'optimization_mode' définis sur 'coût' | entier ou flottant |
type Seulement avec images_version: 2 le paramètre |
Spécifie si l'image sera présentée sous la forme d'un carton ou d'une palette | translation missing: fr.params_type_stringt |
[items] - Détails du tableau des produits
nom de param | Description | type de données | info |
---|---|---|---|
id (requis) |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne | |
w (requis) |
La largeur de l'élément | entier ou flottant | |
h (requis) |
La hauteur de l'élément | entier ou flottant | |
d (requis) |
la profondeur ou la longueur de l'article | entier ou flottant | |
wg |
le poids de l'article | entier ou flottant | |
vr |
Rotation verticale. Les informations si l'article peut être tourné verticalement. | entier | Rotation verticale. Les informations si l'article peut être tourné verticalement. |
q (requis) |
la quantité des mêmes articles à emballer | entier | |
group |
Les articles groupés sont emballés ensemble, ce qui permet de séparer par exemple les produits alimentaires (groupe 'X' ) des détergents domestiques (groupe 'Y' ). | chaîne | |
separate |
Séparation des articles; les paramètres définis sur« 1 »signifie que les articles donnés ne peuvent pas être emballés avec d'autres éléments | entier | Valeurs disponibles: 1 - signifie que les articles seront séparés, 0 [par défaut] - signifie que les articles ne seront pas séparés |
limit_per_bin |
Définissez le nombre d'articles qui peuvent être emballés dans un seul espace d'emballage | entier | |
acceptable_bins |
Définissez les espaces d'emballage qui peuvent être utilisés pour emballer les éléments. Si le paramètre n'est pas défini, tous les espaces d'emballage peuvent être utilisés. Les valeurs étant donné doivent contenir l'ID des espaces d'emballage inclus dans le paramètre 'bacs'. | réseau | |
item_colors_schema |
Définissez quel type de schéma de couleur doit être utilisé | chaîne | Valeurs disponibles: Par défaut - Les couleurs définies dans les paramètres suivants seront utilisées 'images_item_border_color' et 'images_bin_fill_color', 'random' - x, 'item' - x |
item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
item_border_color |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
params - Paramètres optionnels
nom de param | Description | type de données | info |
---|---|---|---|
optimization_mode |
Définir une méthode d'optimisation d'emballage | chaîne | Valeurs disponibles: bins_number [par défaut] - le plus petit nombre possible d'espaces d'emballage; bins_utilisation - Max. Utilisation à l'intérieur des espaces d'emballage; Coût - le coût le plus bas de l'expédition ou du transport ('coût' Le paramètre doit être donné pour chaque espace d'emballage) |
images_version |
Version du générateur d'images | entier | Valeurs disponibles: [1 | 2] |
images_width |
translation missing: fr.images_width_d | entier | Valeurs disponibles: 1 - 250 |
images_height |
Hauteur maximale des images générées | entier | Valeurs disponibles: 1 - 250 |
images_background_color |
couleur d'arrière-plan | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_dashed_line_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure avant de l’espace d’emballage (en pointillés) | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_fill_color |
Couleur de remplissage d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_fill_color |
Remplissez la couleur du dernier élément sur les images montrant un processus d'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure du dernier élément sur des images montrant l'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_format |
format d'images | chaîne | Valeurs disponibles: [png, svg] |
images_sbs |
Générer des images montrant un processus d'emballage 'étape par étape' | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant un processus d'emballage 'étape par étape' ne seront pas générées, 1 - signifie que les images montrant un processus d'emballage 'étape par étape' seront générées |
images_complete |
Générer des images montrant un résultat d'emballage final | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le résultat de l'emballage final ne seront pas générées, 1 - signifie que les images montrant le résultat de l'emballage final seront générées |
images_separated |
Générez des images montrant séparément le placement de chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le placement de chaque élément séparément ne seront pas générées, 1 - signifie que les images montrant le placement de chaque élément séparément seront générées |
item_coordinates |
Retour Coordonnées (x, y, z) pour chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les coordonnées du placement de chaque élément ne seront pas retournées, 1 - que les coordonnées du placement de chaque élément seront retournées |
stats |
Renvoyez les statistiques d'un processus d'emballage (par exemple, temps de génération d'images) | entier | Valeurs disponibles: 0 [par défaut] - signifie que les statistiques d'un processus d'emballage ne seront pas retournées, 1 - signifie que les statistiques d'un processus d'emballage seront retournées |
translation missing: fr.response_parameters_h
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
}
]
}
}
nom de param | Description | type de données | info |
---|---|---|---|
[bins_packed] |
Liste des articles emballés | réseau | |
errors |
Liste des erreurs possibles qui peuvent survenir dans la demande | réseau | Exemple: [{'niveau'}]; Valeurs retournées possibles: 'critique' - erreur critique - désactivation de l'emballage, 'avertissement' - avertissement concernant les données incorrectes dans la demande |
status |
Statut de réponse | entier | Valeurs retournées possibles: 1 - La réponse n'a pas inclus d'erreurs critiques, 0 - La réponse a inclus des erreurs critiques. * Erreur critique - l'erreur de désactivation de l'emballage.Elle peut être due à l’absence d’un des paramètres requis ('username','api_key') ou à une valeure incorrecte du paramètre (par exemple: un champ, qui devrait contenir un nombre, contient une chaîne). |
[not_packed_items] |
la liste d’éléments incapables d'être emballés, par exemple Paramètres incorrects d’entrée, poids excessif ou taille | réseau |
[bins_packed] - la liste des espaces d'emballage à emballer
nom de param | Description | type de données |
---|---|---|
bin_data |
Détails de l'espace d'emballage à emballer | réseau |
image_complete |
translation missing: fr.response_image_complete | url |
[items] |
translation missing: fr.response_items | réseau |
[bin_data] - détails de l'espace d'emballage à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'espace d’emballage. Le numéro ou le code que vous utilisez pour identifier l'espace d'emballage. | chaîne |
w |
Largeur d'espace d'emballage | entier ou flottant |
h |
Hauteur d'espace d'emballage | entier ou flottant |
d |
Profondeur / longueur d'espace d'emballage | entier ou flottant |
used_space |
pourcentage d'espace d'emballage utilisé | entier ou flottant |
weight |
poids des éléments à emballer | entier ou flottant |
gross_weight |
poids des articles à emballer + poids de l'espace d'emballage | entier ou flottant |
used_weight |
pourcentage du poids autorisé utilisé | entier ou flottant |
stack_height |
la hauteur des éléments empilés | entier ou flottant |
[items] - la liste des éléments à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w |
La largeur de l'élément | entier ou flottant |
h |
La hauteur de l'élément | entier ou flottant |
d |
la profondeur ou la longueur de l'article | entier ou flottant |
wg |
le poids de l'article | entier ou flottant |
image_separated |
translation missing: fr.response_params_image_separated | url |
image_sbs |
translation missing: fr.response_params_image_sbs | url |
coordinates |
translation missing: fr.response_params_coordinates | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la liste des éléments incapables d'être emballés
nom de param | Description | type de données |
---|---|---|
id |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w |
La largeur de l'élément | entier ou flottant |
h |
La hauteur de l'élément | entier ou flottant |
d |
la profondeur ou la longueur de l'article | entier ou flottant |
q |
la quantité des mêmes articles à emballer | entier |
wg |
le poids de l'article | entier ou flottant |
Empiler les palettes
Utilisez l'outil Empiler les palettes pour optimiser la façon dont vous emballez vos palettes et réduisez leur nombre pour le transport et le stockage.
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
Paramètres de demande
Paramètres requis
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
}
}
nom de param | Description | type de données |
---|---|---|
username (requis) |
nom d'utilisateur. Vous pouvez trouver la touche API dans la section ' / Profile settings / API access' après la connexion dans https : //www.3dbinpacking.com/en/customer/api-data | chaîne |
api_key (requis) |
clé API. Vous pouvez trouver la clé API dans la section '/ Profile settings/API access' après la connexion dans https://www.3dbinpacking.com/en/customer/api-data | chaîne |
[pallet] (requis) |
Array of pallet parameters | réseau |
[items] (requis) |
translation missing: fr.params_array_items | réseau |
params |
tableau des paramètres de demande supplémentaires | réseau |
[pallet] - translation missing: fr.pallet_array_details
nom de param | Description | type de données |
---|---|---|
id (requis) |
ID de palette. Une palette sur laquelle vous souhaitez empiler vos articles | chaîne |
w (requis) |
largeur de palette | entier ou flottant |
h (requis) |
hauteur de palette | entier ou flottant |
d (requis) |
profondeur / longueur de palette | entier ou flottant |
wg |
le poids de l'espace d'emballage | entier ou flottant |
max_wg |
Le poids maximum que cet espace d'emballage peut contenir. Valeur définie sur '0' (zéro) signifie qu'il n'y a pas de limite de poids | entier ou flottant |
type Seulement avec images_version: 2 le paramètre |
Spécifie si l'image sera présentée sous la forme d'un carton ou d'une palette | translation missing: fr.params_type_stringt |
[items] - Détails du tableau des produits
nom de param | Description | type de données | info |
---|---|---|---|
id (requis) |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne | |
w (requis) |
La largeur de l'élément | entier ou flottant | |
h (requis) |
La hauteur de l'élément | entier ou flottant | |
d (requis) |
la profondeur ou la longueur de l'article | entier ou flottant | |
wg |
le poids de l'article | entier ou flottant | |
vr |
Rotation verticale. Les informations si l'article peut être tourné verticalement. | entier | Rotation verticale. Les informations si l'article peut être tourné verticalement. |
q (requis) |
la quantité des mêmes articles à emballer | entier | |
item_colors_schema |
Définissez quel type de schéma de couleur doit être utilisé | chaîne | |
item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
item_border_color |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
params - Paramètres optionnels
nom de param | Description | type de données | info |
---|---|---|---|
images_version |
Version du générateur d'images | entier | Valeurs disponibles: [1 | 2] |
images_width |
translation missing: fr.images_width_d | entier | Valeurs disponibles: 1 - 250 |
images_height |
Hauteur maximale des images générées | entier | Valeurs disponibles: 1 - 250 |
images_background_color |
couleur d'arrière-plan | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_dashed_line_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure avant de l’espace d’emballage (en pointillés) | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_fill_color |
Couleur de remplissage d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_fill_color |
Remplissez la couleur du dernier élément sur les images montrant un processus d'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure du dernier élément sur des images montrant l'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_format |
format d'images | chaîne | Valeurs disponibles: [png, svg] |
images_sbs |
Générer des images montrant un processus d'emballage 'étape par étape' | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant un processus d'emballage 'étape par étape' ne seront pas générées, 1 - signifie que les images montrant un processus d'emballage 'étape par étape' seront générées |
images_complete |
Générer des images montrant un résultat d'emballage final | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le résultat de l'emballage final ne seront pas générées, 1 - signifie que les images montrant le résultat de l'emballage final seront générées |
images_separated |
Générez des images montrant séparément le placement de chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le placement de chaque élément séparément ne seront pas générées, 1 - signifie que les images montrant le placement de chaque élément séparément seront générées |
item_coordinates |
Retour Coordonnées (x, y, z) pour chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les coordonnées du placement de chaque élément ne seront pas retournées, 1 - que les coordonnées du placement de chaque élément seront retournées |
stats |
Renvoyez les statistiques d'un processus d'emballage (par exemple, temps de génération d'images) | entier | Valeurs disponibles: 0 [par défaut] - signifie que les statistiques d'un processus d'emballage ne seront pas retournées, 1 - signifie que les statistiques d'un processus d'emballage seront retournées |
translation missing: fr.response_parameters_h
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
}
]
}
nom de param | Description | type de données | info |
---|---|---|---|
[pallets_packed] |
la liste des palettes à emballer | réseau | |
errors |
Liste des erreurs possibles qui peuvent survenir dans la demande | réseau | Exemple: [{'niveau'}]; Valeurs retournées possibles: 'critique' - erreur critique - désactivation de l'emballage, 'avertissement' - avertissement concernant les données incorrectes dans la demande |
status |
Statut de réponse | entier | Valeurs retournées possibles: 1 - La réponse n'a pas inclus d'erreurs critiques, 0 - La réponse a inclus des erreurs critiques. * Erreur critique - l'erreur de désactivation de l'emballage.Elle peut être due à l’absence d’un des paramètres requis ('username','api_key') ou à une valeure incorrecte du paramètre (par exemple: un champ, qui devrait contenir un nombre, contient une chaîne). |
[not_packed_items] |
la liste d’éléments incapables d'être emballés, par exemple Paramètres incorrects d’entrée, poids excessif ou taille | réseau |
[pallets_packed] - translation missing: fr.pallets_packed_parameters_h
nom de param | Description | type de données |
---|---|---|
pallet_data |
Détails de l'espace d'emballage à emballer | réseau |
image_complete |
translation missing: fr.response_image_complete | url |
[items] |
translation missing: fr.response_items | réseau |
[pallet_data] - détails de l'espace d'emballage à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'espace d’emballage. Le numéro ou le code que vous utilisez pour identifier l'espace d'emballage. | chaîne |
w |
Largeur d'espace d'emballage | entier ou flottant |
h |
Hauteur d'espace d'emballage | entier ou flottant |
d |
Profondeur / longueur d'espace d'emballage | entier ou flottant |
used_space |
pourcentage d'espace d'emballage utilisé | entier ou flottant |
weight |
poids des éléments à emballer | entier ou flottant |
gross_weight |
poids des articles à emballer + poids de l'espace d'emballage | entier ou flottant |
used_weight |
pourcentage du poids autorisé utilisé | entier ou flottant |
stack_height |
la hauteur des éléments empilés | entier ou flottant |
[items] - la liste des éléments à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w |
La largeur de l'élément | entier ou flottant |
h |
La hauteur de l'élément | entier ou flottant |
d |
la profondeur ou la longueur de l'article | entier ou flottant |
wg |
le poids de l'article | entier ou flottant |
image_separated |
translation missing: fr.response_params_image_separated | url |
image_sbs |
translation missing: fr.response_params_image_sbs | url |
coordinates |
translation missing: fr.response_params_coordinates | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la liste des éléments incapables d'être emballés
nom de param | Description | type de données |
---|---|---|
id |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w |
La largeur de l'élément | entier ou flottant |
h |
La hauteur de l'élément | entier ou flottant |
d |
la profondeur ou la longueur de l'article | entier ou flottant |
q |
la quantité des mêmes articles à emballer | entier |
wg |
le poids de l'article | entier ou flottant |
Trouver une Dimension Manquante
Utilisez l’outil Trouver une Dimension Manquante pour calculer les mesures et l’espace que votre emballage utilisera.
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
Paramètres de demande
Paramètres requis
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();
}
nom de param | Description | type de données |
---|---|---|
username (requis) |
nom d'utilisateur. Vous pouvez trouver la touche API dans la section ' / Profile settings / API access' après la connexion dans https : //www.3dbinpacking.com/en/customer/api-data | chaîne |
api_key (requis) |
clé API. Vous pouvez trouver la clé API dans la section '/ Profile settings/API access' après la connexion dans https://www.3dbinpacking.com/en/customer/api-data | chaîne |
[bins] (requis) |
tableau des paramètres d'espace d'emballage | réseau |
[items] (requis) |
translation missing: fr.params_array_items | réseau |
params |
tableau des paramètres de demande supplémentaires | réseau |
[bins] - Détails du tableau des espaces d'emballage
nom de param | Description | type de données | info |
---|---|---|---|
id (requis) |
ID d'espace d’emballage. Le numéro ou le code que vous utilisez pour identifier l'espace d'emballage. | chaîne | |
w (requis) |
Largeur d'espace d'emballage | flottant | |
h (requis) |
Hauteur d'espace d'emballage | flottant | |
d (requis) |
Profondeur / longueur d'espace d'emballage | flottant | |
find (requis) |
Il indique quelle dimension du conteneur doit être trouvée | chaîne | Valeurs disponibles: 'W' - signifie que l'algorithme calculera la largeur du conteneur, 'H' - signifie que l'algorithme calculera la hauteur du conteneur, 'D' – signifie que l'algorithme calculera la profondeur du conteneur |
type Seulement avec images_version: 2 le paramètre |
Spécifie si l'image sera présentée sous la forme d'un carton ou d'une palette | translation missing: fr.params_type_stringt |
[items] - Détails du tableau des produits
nom de param | Description | type de données | info |
---|---|---|---|
id (requis) |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne | |
w (requis) |
La largeur de l'élément | entier ou flottant | |
h (requis) |
La hauteur de l'élément | entier ou flottant | |
d (requis) |
la profondeur ou la longueur de l'article | entier ou flottant | |
wg |
le poids de l'article | entier ou flottant | |
vr |
Rotation verticale. Les informations si l'article peut être tourné verticalement. | entier | Rotation verticale. Les informations si l'article peut être tourné verticalement. |
q (requis) |
la quantité des mêmes articles à emballer | entier | |
acceptable_bins |
Définissez les espaces d'emballage qui peuvent être utilisés pour emballer les éléments. Si le paramètre n'est pas défini, tous les espaces d'emballage peuvent être utilisés. Les valeurs étant donné doivent contenir l'ID des espaces d'emballage inclus dans le paramètre 'bacs'. | réseau | |
item_colors_schema |
Définissez quel type de schéma de couleur doit être utilisé | chaîne | Valeurs disponibles: Par défaut - Les couleurs définies dans les paramètres suivants seront utilisées 'images_item_border_color' et 'images_bin_fill_color', 'random' - x, 'item' - x |
item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
item_border_color |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
params - Paramètres optionnels
nom de param | Description | type de données | info |
---|---|---|---|
images_version |
Version du générateur d'images | entier | Valeurs disponibles: [1 | 2] |
images_width |
translation missing: fr.images_width_d | entier | Valeurs disponibles: 1 - 250 |
images_height |
Hauteur maximale des images générées | entier | Valeurs disponibles: 1 - 250 |
images_background_color |
couleur d'arrière-plan | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_dashed_line_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure avant de l’espace d’emballage (en pointillés) | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_fill_color |
Couleur de remplissage d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_fill_color |
Remplissez la couleur du dernier élément sur les images montrant un processus d'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure du dernier élément sur des images montrant l'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_format |
format d'images | chaîne | Valeurs disponibles: [png, svg] |
images_sbs |
Générer des images montrant un processus d'emballage 'étape par étape' | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant un processus d'emballage 'étape par étape' ne seront pas générées, 1 - signifie que les images montrant un processus d'emballage 'étape par étape' seront générées |
images_complete |
Générer des images montrant un résultat d'emballage final | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le résultat de l'emballage final ne seront pas générées, 1 - signifie que les images montrant le résultat de l'emballage final seront générées |
images_separated |
Générez des images montrant séparément le placement de chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le placement de chaque élément séparément ne seront pas générées, 1 - signifie que les images montrant le placement de chaque élément séparément seront générées |
item_coordinates |
Retour Coordonnées (x, y, z) pour chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les coordonnées du placement de chaque élément ne seront pas retournées, 1 - que les coordonnées du placement de chaque élément seront retournées |
stats |
Renvoyez les statistiques d'un processus d'emballage (par exemple, temps de génération d'images) | entier | Valeurs disponibles: 0 [par défaut] - signifie que les statistiques d'un processus d'emballage ne seront pas retournées, 1 - signifie que les statistiques d'un processus d'emballage seront retournées |
translation missing: fr.response_parameters_h
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":[]
}
}
nom de param | Description | type de données | info |
---|---|---|---|
[bins_packed] |
Liste des articles emballés | réseau | |
errors |
Liste des erreurs possibles qui peuvent survenir dans la demande | réseau | Exemple: [{'niveau'}]; Valeurs retournées possibles: 'critique' - erreur critique - désactivation de l'emballage, 'avertissement' - avertissement concernant les données incorrectes dans la demande |
status |
Statut de réponse | entier | Valeurs retournées possibles: 1 - La réponse n'a pas inclus d'erreurs critiques, 0 - La réponse a inclus des erreurs critiques. * Erreur critique - l'erreur de désactivation de l'emballage.Elle peut être due à l’absence d’un des paramètres requis ('username','api_key') ou à une valeure incorrecte du paramètre (par exemple: un champ, qui devrait contenir un nombre, contient une chaîne). |
[not_packed_items] |
la liste d’éléments incapables d'être emballés, par exemple Paramètres incorrects d’entrée, poids excessif ou taille | réseau |
[bins_packed] - la liste des espaces d'emballage à emballer
nom de param | Description | type de données |
---|---|---|
bin_data |
Détails de l'espace d'emballage à emballer | réseau |
image_complete |
translation missing: fr.response_image_complete | url |
[items] |
translation missing: fr.response_items | réseau |
[not_packed_items] |
éléments incapables d'être emballés dans l'espace d'emballage | réseau |
[bin_data] - détails de l'espace d'emballage à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'espace d’emballage. Le numéro ou le code que vous utilisez pour identifier l'espace d'emballage. | chaîne |
w |
Largeur d'espace d'emballage | entier ou flottant |
h |
Hauteur d'espace d'emballage | entier ou flottant |
d |
Profondeur / longueur d'espace d'emballage | entier ou flottant |
used_space |
pourcentage d'espace d'emballage utilisé | entier ou flottant |
weight |
poids des éléments à emballer | entier ou flottant |
gross_weight |
poids des articles à emballer + poids de l'espace d'emballage | entier ou flottant |
used_weight |
pourcentage du poids autorisé utilisé | entier ou flottant |
stack_height |
la hauteur des éléments empilés | entier ou flottant |
[items] - la liste des éléments à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w |
La largeur de l'élément | entier ou flottant |
h |
La hauteur de l'élément | entier ou flottant |
d |
la profondeur ou la longueur de l'article | entier ou flottant |
wg |
le poids de l'article | entier ou flottant |
image_separated |
translation missing: fr.response_params_image_separated | url |
image_sbs |
translation missing: fr.response_params_image_sbs | url |
coordinates |
translation missing: fr.response_params_coordinates | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la liste des éléments incapables d'être emballés
nom de param | Description | type de données |
---|---|---|
id |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w |
La largeur de l'élément | entier ou flottant |
h |
La hauteur de l'élément | entier ou flottant |
d |
la profondeur ou la longueur de l'article | entier ou flottant |
q |
la quantité des mêmes articles à emballer | entier |
wg |
le poids de l'article | entier ou flottant |
Trouver une Taille de Carton
Utilisez l’outil Trouver une taille de Carton pour maximiser l'utilisation de l'espace et calculer la bonne taille de carton pour votre emballage.
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
Paramètres de demande
Paramètres requis
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();
}
nom de param | Description | type de données |
---|---|---|
username (requis) |
nom d'utilisateur. Vous pouvez trouver la touche API dans la section ' / Profile settings / API access' après la connexion dans https : //www.3dbinpacking.com/en/customer/api-data | chaîne |
api_key (requis) |
clé API. Vous pouvez trouver la clé API dans la section '/ Profile settings/API access' après la connexion dans https://www.3dbinpacking.com/en/customer/api-data | chaîne |
[bins] (requis) |
tableau des paramètres d'espace d'emballage | réseau |
[items] (requis) |
translation missing: fr.params_array_items | réseau |
params |
tableau des paramètres de demande supplémentaires | réseau |
[bins] - Détails du tableau des espaces d'emballage
nom de param | Description | type de données |
---|---|---|
id (requis) |
ID d'espace d’emballage. Le numéro ou le code que vous utilisez pour identifier l'espace d'emballage. | chaîne |
w (requis) |
Packing space max. width (requis) |
flottant |
h (requis) |
Packing space max. height | flottant |
d (requis) |
Packing space max. depth/length | flottant |
type Seulement avec images_version: 2 le paramètre |
Spécifie si l'image sera présentée sous la forme d'un carton ou d'une palette | translation missing: fr.params_type_stringt |
[items] - Détails du tableau des produits
nom de param | Description | type de données | info |
---|---|---|---|
id (requis) |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne | |
w (requis) |
La largeur de l'élément | entier ou flottant | |
h (requis) |
La hauteur de l'élément | entier ou flottant | |
d (requis) |
la profondeur ou la longueur de l'article | entier ou flottant | |
wg |
le poids de l'article | entier ou flottant | |
vr |
Rotation verticale. Les informations si l'article peut être tourné verticalement. | entier | Rotation verticale. Les informations si l'article peut être tourné verticalement. |
q (requis) |
la quantité des mêmes articles à emballer | entier | |
item_colors_schema |
Définissez quel type de schéma de couleur doit être utilisé | chaîne | |
item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
item_border_color |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
params - Paramètres optionnels
nom de param | Description | type de données | info |
---|---|---|---|
images_version |
Version du générateur d'images | entier | Valeurs disponibles: [1 | 2] |
images_width |
translation missing: fr.images_width_d | entier | Valeurs disponibles: 1 - 250 |
images_height |
Hauteur maximale des images générées | entier | Valeurs disponibles: 1 - 250 |
images_background_color |
couleur d'arrière-plan | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_dashed_line_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure avant de l’espace d’emballage (en pointillés) | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_fill_color |
Couleur de remplissage d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_fill_color |
Remplissez la couleur du dernier élément sur les images montrant un processus d'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure du dernier élément sur des images montrant l'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_format |
format d'images | chaîne | Valeurs disponibles: [png, svg] |
images_sbs |
Générer des images montrant un processus d'emballage 'étape par étape' | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant un processus d'emballage 'étape par étape' ne seront pas générées, 1 - signifie que les images montrant un processus d'emballage 'étape par étape' seront générées |
images_complete |
Générer des images montrant un résultat d'emballage final | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le résultat de l'emballage final ne seront pas générées, 1 - signifie que les images montrant le résultat de l'emballage final seront générées |
images_separated |
Générez des images montrant séparément le placement de chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le placement de chaque élément séparément ne seront pas générées, 1 - signifie que les images montrant le placement de chaque élément séparément seront générées |
item_coordinates |
Retour Coordonnées (x, y, z) pour chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les coordonnées du placement de chaque élément ne seront pas retournées, 1 - que les coordonnées du placement de chaque élément seront retournées |
stats |
Renvoyez les statistiques d'un processus d'emballage (par exemple, temps de génération d'images) | entier | Valeurs disponibles: 0 [par défaut] - signifie que les statistiques d'un processus d'emballage ne seront pas retournées, 1 - signifie que les statistiques d'un processus d'emballage seront retournées |
translation missing: fr.response_parameters_h
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":[]
}
}
nom de param | Description | type de données | info |
---|---|---|---|
[bins_packed] |
Liste des articles emballés | réseau | |
errors |
Liste des erreurs possibles qui peuvent survenir dans la demande | réseau | Exemple: [{'niveau'}]; Valeurs retournées possibles: 'critique' - erreur critique - désactivation de l'emballage, 'avertissement' - avertissement concernant les données incorrectes dans la demande |
status |
Statut de réponse | entier | Valeurs retournées possibles: 1 - La réponse n'a pas inclus d'erreurs critiques, 0 - La réponse a inclus des erreurs critiques. * Erreur critique - l'erreur de désactivation de l'emballage.Elle peut être due à l’absence d’un des paramètres requis ('username','api_key') ou à une valeure incorrecte du paramètre (par exemple: un champ, qui devrait contenir un nombre, contient une chaîne). |
[not_packed_items] |
la liste d’éléments incapables d'être emballés, par exemple Paramètres incorrects d’entrée, poids excessif ou taille | réseau |
[bins_packed] - la liste des espaces d'emballage à emballer
nom de param | Description | type de données |
---|---|---|
bin_data |
Détails de l'espace d'emballage à emballer | réseau |
image_complete |
translation missing: fr.response_image_complete | url |
[items] |
translation missing: fr.response_items | réseau |
[not_packed_items] |
éléments incapables d'être emballés dans l'espace d'emballage | réseau |
[bin_data] - détails de l'espace d'emballage à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'espace d’emballage. Le numéro ou le code que vous utilisez pour identifier l'espace d'emballage. | chaîne |
w |
Largeur d'espace d'emballage | entier ou flottant |
h |
Hauteur d'espace d'emballage | entier ou flottant |
d |
Profondeur / longueur d'espace d'emballage | entier ou flottant |
used_space |
pourcentage d'espace d'emballage utilisé | entier ou flottant |
weight |
poids des éléments à emballer | entier ou flottant |
gross_weight |
poids des articles à emballer + poids de l'espace d'emballage | entier ou flottant |
used_weight |
pourcentage du poids autorisé utilisé | entier ou flottant |
stack_height |
la hauteur des éléments empilés | entier ou flottant |
[items] - la liste des éléments à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w |
La largeur de l'élément | entier ou flottant |
h |
La hauteur de l'élément | entier ou flottant |
d |
la profondeur ou la longueur de l'article | entier ou flottant |
wg |
le poids de l'article | entier ou flottant |
image_separated |
translation missing: fr.response_params_image_separated | url |
image_sbs |
translation missing: fr.response_params_image_sbs | url |
coordinates |
translation missing: fr.response_params_coordinates | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la liste des éléments incapables d'être emballés
nom de param | Description | type de données |
---|---|---|
id |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w |
La largeur de l'élément | entier ou flottant |
h |
La hauteur de l'élément | entier ou flottant |
d |
la profondeur ou la longueur de l'article | entier ou flottant |
q |
la quantité des mêmes articles à emballer | entier |
wg |
le poids de l'article | entier ou flottant |
Essayez les Tailles de Carton
Utilisez l'outil Essayez les Tailles de Carton pour comparer l’emballage des produits dans des cartons ou des espaces d’emballage de différentes tailles.
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
Paramètres de demande
Paramètres requis
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();
}
nom de param | Description | type de données |
---|---|---|
username (requis) |
nom d'utilisateur. Vous pouvez trouver la touche API dans la section ' / Profile settings / API access' après la connexion dans https : //www.3dbinpacking.com/en/customer/api-data | chaîne |
api_key (requis) |
clé API. Vous pouvez trouver la clé API dans la section '/ Profile settings/API access' après la connexion dans https://www.3dbinpacking.com/en/customer/api-data | chaîne |
[bins] (requis) |
tableau des paramètres d'espace d'emballage | réseau |
[items] (requis) |
translation missing: fr.params_array_items | réseau |
params |
tableau des paramètres de demande supplémentaires of extra request parameters | réseau |
[bins] - Détails du tableau des espaces d'emballage
nom de param | Description | type de données |
---|---|---|
id (requis) |
ID d'espace d’emballage. Le numéro ou le code que vous utilisez pour identifier l'espace d'emballage. | chaîne |
w (requis) |
Largeur d'espace d'emballage | entier ou flottant |
h (requis) |
Hauteur d'espace d'emballage | entier ou flottant |
d (requis) |
Profondeur / longueur d'espace d'emballage | entier ou flottant |
wg |
le poids de l'espace d'emballage | entier ou flottant |
max_wg |
Le poids maximum que cet espace d'emballage peut contenir. Valeur définie sur '0' (zéro) signifie qu'il n'y a pas de limite de poids | entier ou flottant |
type Seulement avec images_version: 2 le paramètre |
Spécifie si l'image sera présentée sous la forme d'un carton ou d'une palette | translation missing: fr.params_type_stringt |
[items] - Détails du tableau des produits
nom de param | Description | type de données | info |
---|---|---|---|
id (requis) |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne | |
w (requis) |
La largeur de l'élément | entier ou flottant | |
h (requis) |
La hauteur de l'élément | entier ou flottant | |
d (requis) |
la profondeur ou la longueur de l'article | entier ou flottant | |
wg |
le poids de l'article | entier ou flottant | |
vr |
Rotation verticale. Les informations si l'article peut être tourné verticalement. | entier | |
q (requis) |
la quantité des mêmes articles à emballer | entier | |
item_colors_schema |
Définissez quel type de schéma de couleur doit être utilisé | chaîne | Valeurs disponibles: Par défaut - Les couleurs définies dans les paramètres suivants seront utilisées 'images_item_border_color' et 'images_bin_fill_color', 'random' - x, 'item' - x |
item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
item_border_color |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
params - Paramètres optionnels
nom de param | Description | type de données | info |
---|---|---|---|
images_version |
Version du générateur d'images | entier | Valeurs disponibles: [1 | 2] |
images_width |
translation missing: fr.images_width_d | entier | Valeurs disponibles: 1 - 250 |
images_height |
Hauteur maximale des images générées | entier | Valeurs disponibles: 1 - 250 |
images_background_color |
couleur d'arrière-plan | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_dashed_line_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure avant de l’espace d’emballage (en pointillés) | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_fill_color |
Couleur de remplissage d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_fill_color |
Remplissez la couleur du dernier élément sur les images montrant un processus d'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure du dernier élément sur des images montrant l'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_format |
format d'images | chaîne | Valeurs disponibles: [png, svg] |
images_sbs |
Générer des images montrant un processus d'emballage 'étape par étape' | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant un processus d'emballage 'étape par étape' ne seront pas générées, 1 - signifie que les images montrant un processus d'emballage 'étape par étape' seront générées |
images_complete |
Générer des images montrant un résultat d'emballage final | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le résultat de l'emballage final ne seront pas générées, 1 - signifie que les images montrant le résultat de l'emballage final seront générées |
images_separated |
Générez des images montrant séparément le placement de chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le placement de chaque élément séparément ne seront pas générées, 1 - signifie que les images montrant le placement de chaque élément séparément seront générées |
item_coordinates |
Retour Coordonnées (x, y, z) pour chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les coordonnées du placement de chaque élément ne seront pas retournées, 1 - que les coordonnées du placement de chaque élément seront retournées |
stats |
Renvoyez les statistiques d'un processus d'emballage (par exemple, temps de génération d'images) | entier | Valeurs disponibles: 0 [par défaut] - signifie que les statistiques d'un processus d'emballage ne seront pas retournées, 1 - signifie que les statistiques d'un processus d'emballage seront retournées |
translation missing: fr.response_parameters_h
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":[]
}
}
nom de param | Description | type de données | info |
---|---|---|---|
[bins_packed] |
Liste des articles emballés | réseau | |
errors |
Liste des erreurs possibles qui peuvent survenir dans la demande | réseau | Exemple: [{'niveau'}]; Valeurs retournées possibles: 'critique' - erreur critique - désactivation de l'emballage, 'avertissement' - avertissement concernant les données incorrectes dans la demande |
status |
Statut de réponse | entier | Valeurs retournées possibles: 1 - La réponse n'a pas inclus d'erreurs critiques, 0 - La réponse a inclus des erreurs critiques. * Erreur critique - l'erreur de désactivation de l'emballage.Elle peut être due à l’absence d’un des paramètres requis ('username','api_key') ou à une valeure incorrecte du paramètre (par exemple: un champ, qui devrait contenir un nombre, contient une chaîne). |
[not_packed_items] |
la liste d’éléments incapables d'être emballés, par exemple Paramètres incorrects d’entrée, poids excessif ou taille | réseau |
[bins_packed] - la liste des espaces d'emballage à emballer
nom de param | Description | type de données |
---|---|---|
bin_data |
Détails de l'espace d'emballage à emballer | réseau |
image_complete |
translation missing: fr.response_image_complete | url |
[items] |
translation missing: fr.response_items | réseau |
[not_packed_items] |
éléments incapables d'être emballés dans l'espace d'emballage | réseau |
[bin_data] - détails de l'espace d'emballage à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'espace d’emballage. Le numéro ou le code que vous utilisez pour identifier l'espace d'emballage. | chaîne |
w |
Largeur d'espace d'emballage | entier ou flottant |
h |
Hauteur d'espace d'emballage | entier ou flottant |
d |
Profondeur / longueur d'espace d'emballage | entier ou flottant |
used_space |
pourcentage d'espace d'emballage utilisé | entier ou flottant |
weight |
poids des éléments à emballer | entier ou flottant |
gross_weight |
poids des articles à emballer + poids de l'espace d'emballage | entier ou flottant |
used_weight |
pourcentage du poids autorisé utilisé | entier ou flottant |
stack_height |
la hauteur des éléments empilés | entier ou flottant |
[items] - la liste des éléments à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w |
La largeur de l'élément | entier ou flottant |
h |
La hauteur de l'élément | entier ou flottant |
d |
la profondeur ou la longueur de l'article | entier ou flottant |
wg |
le poids de l'article | entier ou flottant |
image_separated |
translation missing: fr.response_params_image_separated | url |
image_sbs |
translation missing: fr.response_params_image_sbs | url |
coordinates |
translation missing: fr.response_params_coordinates | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la liste des éléments incapables d'être emballés
nom de param | Description | type de données |
---|---|---|
id | ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w | La largeur de l'élément | entier ou flottant |
h | La hauteur de l'élément | entier ou flottant |
d | la profondeur ou la longueur de l'article | entier ou flottant |
q | la quantité des mêmes articles à emballer | entier |
wg | le poids de l'article | entier ou flottant |
Vérifier le Chargement Maximum
Utilisez Vérifier le Chargement maximum pour vérifier exactement le nombre d'articles qui rempliront un carton ou un espace d'emballage à pleine capacité.
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
Paramètres de demande
Paramètres requis
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();
}
nom de param | Description | type de données |
---|---|---|
username (requis) |
nom d'utilisateur. Vous pouvez trouver la touche API dans la section ' / Profile settings / API access' après la connexion dans https : //www.3dbinpacking.com/en/customer/api-data | chaîne |
api_key (requis) |
clé API. Vous pouvez trouver la clé API dans la section '/ Profile settings/API access' après la connexion dans https://www.3dbinpacking.com/en/customer/api-data | chaîne |
[bins] (requis) |
tableau des paramètres d'espace d'emballage | réseau |
[items] (requis) |
translation missing: fr.params_array_items | réseau |
params |
tableau des paramètres de demande supplémentaires | réseau |
[bins] - Détails du tableau des espaces d'emballage
nom de param | Description | type de données |
---|---|---|
id (requis) |
ID d'espace d’emballage. Le numéro ou le code que vous utilisez pour identifier l'espace d'emballage. | chaîne |
w (requis) |
Largeur d'espace d'emballage | flottant |
h (requis) |
Hauteur d'espace d'emballage | flottant |
d (requis) |
Profondeur / longueur d'espace d'emballage | flottant |
wg |
le poids de l'espace d'emballage | entier ou flottant |
max_wg |
Le poids maximum que cet espace d'emballage peut contenir. Valeur définie sur '0' (zéro) signifie qu'il n'y a pas de limite de poids | entier ou flottant |
type Seulement avec images_version: 2 le paramètre |
Spécifie si l'image sera présentée sous la forme d'un carton ou d'une palette | translation missing: fr.params_type_stringt |
[items] - Détails du tableau des produits
nom de param | Description | type de données | info |
---|---|---|---|
id (requis) |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne | |
w (requis) |
La largeur de l'élément | entier ou flottant | |
h (requis) |
La hauteur de l'élément | entier ou flottant | |
d (requis) |
la profondeur ou la longueur de l'article | entier ou flottant | |
wg |
le poids de l'article | entier ou flottant | |
vr |
Rotation verticale. Les informations si l'article peut être tourné verticalement. | entier | Rotation verticale. Les informations si l'article peut être tourné verticalement. |
item_colors_schema |
Définissez quel type de schéma de couleur doit être utilisé | chaîne | |
item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
item_border_color |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
params - Paramètres optionnels
nom de param | Description | type de données | info |
---|---|---|---|
images_version |
Version du générateur d'images | entier | Valeurs disponibles: [1 | 2] |
images_width |
translation missing: fr.images_width_d | entier | Valeurs disponibles: 1 - 250 |
images_height |
Hauteur maximale des images générées | entier | Valeurs disponibles: 1 - 250 |
images_background_color |
couleur d'arrière-plan | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_dashed_line_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure avant de l’espace d’emballage (en pointillés) | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_bin_fill_color |
Couleur de remplissage d'espace d'emballage | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_fill_color |
Couleur de remplissage d'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de la bordure de l'élément | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_fill_color |
Remplissez la couleur du dernier élément sur les images montrant un processus d'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_sbs_last_item_border_color Seulement avec images_version: 1 le paramètre |
Couleur de bordure du dernier élément sur des images montrant l'emballage 'étape par étape' | chaîne | Valeurs disponibles: Valeurs RVB des points de couleurs séparés 'rouge, vert, bleu', valeurs autorisées 0-255; Exemple: '255,120,10' |
images_format |
format d'images | chaîne | Valeurs disponibles: [png, svg] |
images_sbs |
Générer des images montrant un processus d'emballage 'étape par étape' | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant un processus d'emballage 'étape par étape' ne seront pas générées, 1 - signifie que les images montrant un processus d'emballage 'étape par étape' seront générées |
images_complete |
Générer des images montrant un résultat d'emballage final | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le résultat de l'emballage final ne seront pas générées, 1 - signifie que les images montrant le résultat de l'emballage final seront générées |
images_separated |
Générez des images montrant séparément le placement de chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le placement de chaque élément séparément ne seront pas générées, 1 - signifie que les images montrant le placement de chaque élément séparément seront générées |
item_coordinates |
Retour Coordonnées (x, y, z) pour chaque élément | entier | Valeurs disponibles: 0 [par défaut] - signifie que les images montrant le placement de chaque élément séparément ne seront pas générées, 1 - signifie que les images montrant le placement de chaque élément séparément seront générées |
stats |
Renvoyez les statistiques d'un processus d'emballage (par exemple, temps de génération d'images) | entier | Valeurs disponibles: 0 [par défaut] - signifie que les statistiques d'un processus d'emballage ne seront pas retournées, 1 - signifie que les statistiques d'un processus d'emballage seront retournées |
translation missing: fr.response_parameters_h
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":[]
}
}
nom de param | Description | type de données | info |
---|---|---|---|
[bins_packed] |
Liste des articles emballés | réseau | |
errors |
Liste des erreurs possibles qui peuvent survenir dans la demande | réseau | Exemple: [{'niveau'}]; Valeurs retournées possibles: 'critique' - erreur critique - désactivation de l'emballage, 'avertissement' - avertissement concernant les données incorrectes dans la demande |
status |
Statut de réponse | entier | Valeurs retournées possibles: 1 - La réponse n'a pas inclus d'erreurs critiques, 0 - La réponse a inclus des erreurs critiques. * Erreur critique - l'erreur de désactivation de l'emballage.Elle peut être due à l’absence d’un des paramètres requis ('username','api_key') ou à une valeure incorrecte du paramètre (par exemple: un champ, qui devrait contenir un nombre, contient une chaîne). |
[not_packed_items] |
la liste d’éléments incapables d'être emballés, par exemple Paramètres incorrects d’entrée, poids excessif ou taille | réseau |
[bins_packed] - la liste des espaces d'emballage à emballer
nom de param | Description | type de données |
---|---|---|
bin_data |
Détails de l'espace d'emballage à emballer | réseau |
image_complete |
translation missing: fr.response_image_complete | url |
[items] |
translation missing: fr.response_items | réseau |
[bin_data] - détails de l'espace d'emballage à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'espace d’emballage. Le numéro ou le code que vous utilisez pour identifier l'espace d'emballage. | chaîne |
w |
Largeur d'espace d'emballage | entier ou flottant |
h |
Hauteur d'espace d'emballage | entier ou flottant |
d |
Profondeur / longueur d'espace d'emballage | entier ou flottant |
used_space |
pourcentage d'espace d'emballage utilisé | entier ou flottant |
weight |
poids des éléments à emballer | entier ou flottant |
gross_weight |
poids des articles à emballer + poids de l'espace d'emballage | entier ou flottant |
used_weight |
pourcentage du poids autorisé utilisé | entier ou flottant |
stack_height |
la hauteur des éléments empilés | entier ou flottant |
[items] - la liste des éléments à emballer
nom de param | Description | type de données |
---|---|---|
id |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w |
La largeur de l'élément | entier ou flottant |
h |
La hauteur de l'élément | entier ou flottant |
d |
la profondeur ou la longueur de l'article | entier ou flottant |
wg |
le poids de l'article | entier ou flottant |
image_separated |
translation missing: fr.response_params_image_separated | url |
image_sbs |
translation missing: fr.response_params_image_sbs | url |
coordinates |
translation missing: fr.response_params_coordinates | {"x1":0,"y1":0,"z1":0,"x2":5,"y2":3,"z2":2} |
[not_packed_items] - la liste des éléments incapables d'être emballés
nom de param | Description | type de données |
---|---|---|
id |
ID d'élément / sku. Le numéro ou le code que vous utilisez pour identifier ce qui est emballé. | chaîne |
w |
La largeur de l'élément | entier ou flottant |
h |
La hauteur de l'élément | entier ou flottant |
d |
la profondeur ou la longueur de l'article | entier ou flottant |
q |
la quantité des mêmes articles à emballer | entier |
wg |
le poids de l'article | entier ou flottant |
graphiques
Vous trouverez ci-dessous les différences entre les images et une description de certains paramètres de demande.
Différences entre les version 1 et 2 du générateur d'images.
La principale différence entre les images est la façon dont les résultats sont présentés. Dans la première version, la vue est présentée de manière dimétrique. La deuxième version est présentée de manière isométrique.
D'autres différences sont:
- Dans la 2ème version, les couleurs pour les côtés et les bords individuels de l'objet et de l'espace présentés sont automatiquement sélectionnés. Par conséquent, il n'est pas nécessaire de fournir ces paramètres dans la demande
- La 2ème version a un graphique avec la bande adhésive scellant le haut de l'élément. Cela aide à déterminer l'orientation de l'élément dans l'espace d'emballage.
- Dans la 2ème version, le générateur d'images SVG a été amélioré
- Dans la 2ème version, il est possible de générer les graphiques d'une palette. La manière d’utiliser cette fonctionnalité est décrit dans l'un des paramètres ci-dessous.
Images en fonction du type d'espace d'emballage
"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"
}
],
Dans la 2ème version des images ( images_version: "2"
), nous pouvons générer des images montrant le type d'espace d'emballage que nous définissons.
Il existe 2 options disponibles: [‘box’ | 'pallet’]
. La valeur par défaut est box
.Dans ce cas, l’image montrera une coupe transversale d’espace d’emballage avec des articles emballés.
Si le paramètre est défini sur pallet
, la palette sera générée avec des éléments empilés dessus.
Il y a un exemple ci-dessous montrant la différence entre les images.
type: "pallet"
type: "box"
translation missing: fr.images_complete_h
Images montrant le résultat final d'emballage
Complete
Instructions d'emballage étape par étape
Ce graphique montre le processus d'emballage étape par étape. Dans chaque image suivante, les éléments précédemment emballés sont marqués d'une couleur différente de l'élément actuellement emballé.
En dessous les deux versions d'images sont présentées.
Step 1
Step 2
Step 3
Step 4
translation missing: fr.images_separated_h
translation missing: fr.images_separated_d
Separated 1
Separated 2
Separated 3
Separated 4
Mise à l’échelle des images SVG
Grâce au format SVG, il est possible de les dimensionner librement sans perdre leur qualité.
L'exemple suivant montre la même image dans différentes tailles.
Le 1er a les dimensions minimales définies sur 200x200px
et les dims max définies sur 400x400px
.
Le 2e a les dimensions minimales définies sur 300x300px
et les dims max définies sur 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;">
format d'images
Il est possible de générer des images au format SVG ou PNG.
Grâce au format SVG, l'utilisateur peut librement dimensionner les images sans perdre leurs qualités.
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 |