NAV
JSON cURL PHP Python JAVA C#

Wstęp

Ta strona zawiera informacje odnośnie integracji naszych algorytmów z Twoim systemem. Nasze algorytmy zostały zaprojektowane, aby optymalizowały proces pakowania przedmiotów w różnych przestrzeniach ładunkowych. Możesz łączyć się z naszymi algorytmami poprzez API, które akceptuje zapytania i zwraca odpowiedzi w formacie JSON.

Czym jest API?

API to akronim oznaczający interfejs programowania aplikacji (ang. Application Programming Interface). Jest to metoda komunikacji pomiędzy składnikami oprogramowania i aplikacjami sieciowymi oraz wymiany danych między oddzielnymi systemami.

Jak zacząć

Aby móc łączyć się z naszym API, należy zarejestrować konto na naszej stronie (www.3dbinpacking.com). Otrzymasz nazwę użytkownika oraz klucz API, które należy wkleić w odpowiednie miejsca w zapytaniu.

Jeżeli chciałbyś przetestować nasze API, zamień nazwę użytkownika i klucz API podane poniżej i wklej je w pole wyszukiwania twojej przeglądarki.

https://global-api.3dbinpacking.com/packer/fillContainer?query={"username":"USERNAME","api_key":"API_KEY","items":[{"id":"Speakers","w":3,"h":3,"d":3,"wg":2,"quantity":3,"vr":true},{"id":"Bigger item","w":3,"h":3,"d":5,"wg":1,"quantity":2,"vr":true}],"bins":[{"id":"Pack M","h":4,"w":4,"d":4,"wg":"","max_wg":""},{"id":"Pack S","h":3,"w":3,"d":6,"wg":"","max_wg":""}],"params":{"images_background_color":"255,255,255","images_bin_border_color":"59,59,59","images_bin_fill_color":"230,230,230","images_item_border_color":"22,22,22","images_item_fill_color":"255,193,6","images_item_back_border_color":"22,22,22","images_sbs_last_item_fill_color":"177,14,14","images_sbs_last_item_border_color":"22,22,22","images_format":"svg","images_width":50,"images_height":50,"images_source":"file","save_response":true,"stats":0,"item_coordinates":1,"images_complete":1,"images_sbs":1,"images_separated":0}}

Jeśli otrzymasz odpowiedź jak poniżej, oznacza to, że wszystko zrobiłeś poprawnie.

{"id":"1556529305_9ff402ed696d0a5a3d9f26b8987a3758","not_packed_items":[],"bins_packed":[{"bin_data":{"w":4,"h":4,"d":4,"id":"Pack M","used_space":42.1875,"weight":2,"used_weight":100,"stack_height":3,"order_id":null},"image_complete":"https:\/\/eu.api.3dbinpacking.com\/images\/file_hash1.svg","items":[{"id":"Speakers","w":3,"h":3,"d":3,"wg":2,"image_sbs":"https:\/\/eu.api.3dbinpacking.com\/images\/file_hash2.svg","coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}}]},{"bin_data":{"w":3,"h":3,"d":6,"id":"Pack S","used_space":100,"weight":4,"used_weight":100,"stack_height":3,"order_id":null},"image_complete":"https:\/\/eu.api.3dbinpacking.com\/images\/file_hash3.svg","items":[{"id":"Speakers","w":3,"h":3,"d":3,"wg":2,"image_sbs":"https:\/\/eu.api.3dbinpacking.com\/images\/file_hash4.svg","coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}},{"id":"Speakers","w":3,"h":3,"d":3,"wg":2,"image_sbs":"https:\/\/eu.api.3dbinpacking.com\/images\/file_hash5.svg","coordinates":{"x1":0,"y1":0,"z1":3,"x2":3,"y2":3,"z2":6}}]}]}

Serwery

Obecnie mamy uruchomione kilka serwerów w różnych lokalizacjach na całym świecie, aby zapewnić możliwie wysoką jakość usług - wysoką dostępność oraz niski współczynnik opóźnień.
Globalny serwer jest najbardziej uniwersalny, gdyż przekierowuje zapytania bezpośrednio do najbliższego, dostępnego serwera.
Lista dostępnych serwerów API 3DBinPacking:

PEM (X.509)

Zapytania

Poniżej znajdują się informacje odnośnie sposobów wysyłania zapytań do naszych serwerów API.

Dostępne sposoby wysyłania danych

Dostępne protokoły:

Metody wywoływania:

Algorytmy

Wypróbuj pojemniki

Użyj tego narzędzia, jeżeli chcesz porównać sposób pakowania przedmiotów w różnych przestrzeniach ładunkowych.

URL

Parametry zapytania

Wymagane parametry

REQUEST

{
    "username":"_USERNAME_",
    "api_key":"_API_KEY_",
    "items":
    [
       {"id":"Speakers","w":3,"h":3,"d":3,"wg":2,"q":3,"vr":true},
       {"id":"Bigger item","w":3,"h":3,"d":5,"wg":1,"q":2,"vr":true}
    ],
    "bins":
    [
       {"id":"Pack M","h":4,"w":4,"d":4,"wg":"","max_wg":""},
       {"id":"Pack S","h":3,"w":3,"d":6,"wg":"","max_wg":""}
    ],
    "params":
    {
       "images_background_color":"255,255,255",
       "images_bin_border_color":"59,59,59",
       "images_bin_fill_color":"230,230,230",
       "images_item_border_color":"22,22,22",
       "images_item_fill_color":"255,193,6",
       "images_item_back_border_color":"22,22,22",
       "images_sbs_last_item_fill_color":"177,14,14",
       "images_sbs_last_item_border_color":"22,22,22",
       "images_format":"svg",
       "images_width":50,
       "images_height":50,
       "images_source":"file",
       "stats":0,
       "item_coordinates":1,
       "images_complete":1,
       "images_sbs":1,
       "images_separated":0
    }
}
curl -X POST \\
-H "Content-Type: application/json" \\
-d '{"username": "_USERNAME_", "api_key": "_API_KEY_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}' \\
https://global-api.3dbinpacking.com/packer/pack \\
-k
<?php
$data = array(
    'bins' => array(
            array(
                    'id' => 'Pack M',
                    'h' => '4',
                    'w' => '4',
                    'd' => '4',
                    'wg' => '',
                    'max_wg' => ''
                ),
            array(
                    'id' => 'Pack S',
                    'h' => '3',
                    'w' => '3',
                    'd' => '6',
                    'wg' => '',
                    'max_wg' => ''
                )
        ),
    'items' => array(
            array(
                    'id' => 'Speakers',
                    'w' => '3',
                    'h' => '3',
                    'd' => '3',
                    'wg' => '2',
                    'q' => '3',
                    'vr' => '1'
                ),
            array(
                    'id' => 'Bigger item',
                    'w' => '3',
                    'h' => '3',
                    'd' => '5',
                    'wg' => '1',
                    'q' => '2',
                    'vr' => '1'
                )
        ),
    'username' => 'YOUR_USERNAME',
    'api_key' => 'YOUR_API_KEY',
    'params' => array(
            'images_background_color' => '255,255,255',
            'images_bin_border_color' => '59,59,59',
            'images_bin_fill_color' => '230,230,230',
            'images_item_border_color' => '22,22,22',
            'images_item_fill_color' => '255,193,6',
            'images_item_back_border_color' => '22,22,22',
            'images_sbs_last_item_fill_color' => '177,14,14',
            'images_sbs_last_item_border_color' => '22,22,22',
            'images_format' => 'svg',
            'images_width' => '50',
            'images_height' => '50',
            'images_source' => 'file',
            'stats' => '0',
            'item_coordinates' => '1',
            'images_complete' => '1',
            'images_sbs' => '1',
            'images_separated' => '0'
        )
);
$query = json_encode($data);

$url = "https://global-api.3dbinpacking.com/packer/pack";
$prepared_query = 'query='.$query;
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $prepared_query );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$resp = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error #' . curl_errno($ch) . ': ' . curl_error($ch).'<br>';
}
curl_close($ch);

$response = json_decode($resp,true);
// display errors
if(isset($response['response']['errors'])){
    foreach($response['response']['errors'] as $error){
    echo $error['message'].'<br>';
    }
}
// display data
if( $response['response']['status'] > -1 ){
    $b_packed= $response['response']['bins_packed'];
    foreach ($b_packed as $bin){
        echo "<h2>Bin id:{$bin['bin_data']['id']}</h2>
        <p> {$bin['bin_data']['w']} x {$bin['bin_data']['h']} x {$bin['bin_data']['d']}</p>
        <p> Weight:{$bin['bin_data']['weight']}</p>
        <p> Used weight:{ $bin['bin_data']['used_weight'] }</p>
        <img src=\"{$bin['image_complete']}\">
        <h2>Items packed in this bin:</h2>";
        $items = $bin['items'];
        echo '<table style="text-align: center">
        <tr><th>Item id</th>
            <th>Item dimensions</th>
            <th>Item weight</th>
            <th>Separated item</th>
            <th>Step by step</th></tr>';
        foreach ( $items as $item){
        echo "<tr><td>{$item['id']}</td>
                <td> {$item['w']} x {$item['h']} x {$bin['bin_data']['d']}</td>
                <td> {$item['wg']}</td>
                <td><img src=\"{$item['image_separated']}\"></td>
                <td><img src=\"{$item['image_sbs']}\"></td>
            </tr>";
        }
        echo '</table>';
        echo '<hr>';

    }
}
#!/usr/bin/python

import httplib
import urllib
import json

conn = httplib.HTTPConnection(host='global-api.3dbinpacking.com', port=80)
data = {"username": "_USERNAME_", "api_key": "_API_KEY_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}
params =  urllib.urlencode( {'query':json.dumps(data)} )
headers = {"Content-type": "application/x-www-form-urlencoded",
    "Accept": "text/plain"}
conn.request( "POST", "/packer/pack", params, headers )
content = conn.getresponse( ).read( )
conn.close( )
print content
package javaapplication1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;;
import org.json.simple.JSONObject;
import org.springframework.web.client.RestTemplate;

public class JavaApplication1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws MalformedURLException, ProtocolException, IOException {
        RestTemplate restTemplate = new RestTemplate();
        JSONObject json = new JSONObject();


        //SET BINS
        List<Map<String , String>> bins  = new ArrayList<Map<String,String>>();

        Map<String, String> bin1 = new HashMap<String, String>();
        bin1.put("id", "Pack M");
        bin1.put("h", "4");
        bin1.put("w", "4");
        bin1.put("d", "4");
        bin1.put("wg", "");
        bin1.put("max_wg", "");
        bins.add(bin1);
        Map<String, String> bin2 = new HashMap<String, String>();
        bin2.put("id", "Pack S");
        bin2.put("h", "3");
        bin2.put("w", "3");
        bin2.put("d", "6");
        bin2.put("wg", "");
        bin2.put("max_wg", "");
        bins.add(bin2);

        //SET ITEMS
        List<Map<String , String>> items  = new ArrayList<Map<String,String>>();
        Map<String, String> item1 = new HashMap<String, String>();
        item1.put("id", "Speakers");
        item1.put("w", "3");
        item1.put("h", "3");
        item1.put("d", "3");
        item1.put("wg", "2");
        item1.put("q", "3");
        item1.put("vr", "1");
        items.add(item1);
        Map<String, String> item2 = new HashMap<String, String>();
        item2.put("id", "Bigger item");
        item2.put("w", "3");
        item2.put("h", "3");
        item2.put("d", "5");
        item2.put("wg", "1");
        item2.put("q", "2");
        item2.put("vr", "1");
        items.add(item2);

        //SET PARAMETERS
        Map <String , String > params  = new HashMap <String , String >();
        params.put("images_background_color", "255,255,255")
        params.put("images_bin_border_color", "59,59,59")
        params.put("images_bin_fill_color", "230,230,230")
        params.put("images_item_border_color", "22,22,22")
        params.put("images_item_fill_color", "255,193,6")
        params.put("images_item_back_border_color", "22,22,22")
        params.put("images_sbs_last_item_fill_color", "177,14,14")
        params.put("images_sbs_last_item_border_color", "22,22,22")
        params.put("images_format", "svg")
        params.put("images_width", "50")
        params.put("images_height", "50")
        params.put("images_source", "file")
        params.put("stats", "0")
        params.put("item_coordinates", "1")
        params.put("images_complete", "1")
        params.put("images_sbs", "1")
        params.put("images_separated", "0")

        //ADD ELEMENTS TO JSON
        json.put("username", "YOUR_USERNAME");
        json.put("api_key", "YOUR_API_KEY");
        json.put("items", items);
        json.put("bins", bins);
        json.put("params", params);

        //CALL QUERY
        HttpURLConnection conn;
        URL addr = new URL("https://global-api.3dbinpacking.com/packer/pack");
        conn = (HttpURLConnection) addr.openConnection();
        conn.setRequestMethod("POST");
        conn.setDoOutput(true);
        conn.connect();
        OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());

        // prepare POST body
        String query = "query=" + json.toString();

        osw.write(query);
        osw.flush();
        osw.close();

        BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String response_json = br.readLine();

        //DO SOMETHING COOL WITH THE RESPONSE
        System.out.println(response_json);
    }
}
string data;
System.Net.HttpWebRequest req = System.Net.WebRequest.Create("https://global-api.3dbinpacking.com/packer/pack") as System.Net.HttpWebRequest;

var request_data = new {username = "YOUR_USERNAME",
                        api_key = "YOUR_API_KEY",
                        items = new[] {
                                        new { id = "Speakers", w = "3", h = "3", d = "3", wg = "2", q = "3", vr = "1"},
                                        new { id = "Bigger item", w = "3", h = "3", d = "5", wg = "1", q = "2", vr = "1"}
                                        },
                        bins = new[] {
                                        new { id = "Pack M", h = "4", w = "4", d = "4", wg = "", max_wg = ""},
                                        new { id = "Pack S", h = "3", w = "3", d = "6", wg = "", max_wg = ""}
                                        },

                        @params = new { images_background_color = "255,255,255",
                                        images_bin_border_color = "59,59,59",
                                        images_bin_fill_color = "230,230,230",
                                        images_item_border_color = "22,22,22",
                                        images_item_fill_color = "255,193,6",
                                        images_item_back_border_color = "22,22,22",
                                        images_sbs_last_item_fill_color = "177,14,14",
                                        images_sbs_last_item_border_color = "22,22,22",
                                        images_format = "svg",
                                        images_width = "50",
                                        images_height = "50",
                                        images_source = "file",
                                        stats = "0",
                                        item_coordinates = "1",
                                        images_complete = "1",
                                        images_sbs = "1",
                                        images_separated = "0"
                                        }
                    };

string json_str = JsonConvert.SerializeObject(request_data);

string queryParam = "query="+json_str;

byte[] postBytes = System.Text.Encoding.ASCII.GetBytes(queryParam);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postBytes.Length;

System.IO.Stream postStream = req.GetRequestStream();
postStream.Write(postBytes, 0, postBytes.Length);
postStream.Close();

X509Certificate Cert = X509Certificate2.CreateFromCertFile("path_to_pem_key\global-api.3dbinpacking.com.pem");
req.ClientCertificates.Add(Cert);

using (System.Net.HttpWebResponse response = req.GetResponse() as System.Net.HttpWebResponse)
{
    System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
    data = reader.ReadToEnd();
}

RESPONSE

{
    "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}
                }
            ]
        }
    ]
}
Nazwa parametru Opis Typ danych
username Nazwa użytkownika ciąg znaków
api_key Klucz API. Możesz go znaleźć w sekcji 'Dostęp do API' po zalogowaniu. ciąg znaków
bins Tablica parametrów przestrzeni ładunkowych tablica
items Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 tablica
params Tablica parametrów dodatkowych zapytań of extra request parameters tablica

Tablica przestrzeni ładunkowych

Nazwa parametru Opis Typ danych
id ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania ciąg znaków
w Szerokość przestrzeni ładunkowej integer or float
h wysokość przestrzeni ładunkowej integer or float
d Głębokość/długość przestrzeni ładunkowej integer or float
max_wg Maksymalna waga przestrzeni ładunkowej. Wartość ustawiona na '0' (zero) oznacza, że nie ma limitu obciążenia integer or float

Tablica parametrów przedmiotów

Nazwa parametru Opis Typ danych Dostępne wartości
id ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. ciąg znaków
w Szerokość przedmiotu integer or float
h Wysokość przedmiotu integer or float
d Głębokość lub długość przedmiotu integer or float
wg Waga przedmiotu integer or float
vr Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. integer
q Ilość przedmiotów o danych wymiarach do zapakowania integer
item_colors_schema Określa, który schemat kolorów zostanie użyty ciąg znaków Dopuszczalne wartości: default - użyte zostaną kolory ustawione w parametrach 'images_item_border_color' i 'images_bin_fill_color', random - kolory zostaną ustawione losowo, item - użyte zostaną kolory podane w sekcji 'items'.
item_fill_color Kolor wypełnienia przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'

Dodatkowe parametry

Nazwa parametru Opis Typ danych Dostępne wartości
images_width Maks. szerokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_height Maks. wysokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_background_color Kolor tła ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_border_color Kolor krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_dashed_line_color Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_fill_color Kolor wypełnienia przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_fill_color Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_border_color Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_format Format plików zwracanych obrazków ciąg znaków Dopuszczalne wartości: [ png , svg ]
images_sbs Generuje obrazki pokazujące proces pakowania 'krok po kroku' integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana
images_complete Generuj grafikę przedstawiającą obrazek końcowy zapakowania integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana
images_separated Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana
item_coordinates Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów integer Dopuszczalne wartości: 0 [default] - oznacza, że współrzędne nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że współrzędne zostaną zwrócone w odpowiedzi
stats Zwraca statystyki procesu pakowania (np. czas generowania obrazków) integer Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi

Paramtery odpowiedzi

Nazwa parametru Opis Typ danych Dostępne wartości
bins_packed Lista zapakowanych przestrzeni ładunkowych tablica
errors Lista możliwych błędów, które wystąpiły w zapytaniu tablica Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu
status Status odpowiedzi integer Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne.

Spakuj przesyłkę

Użyj narzędzia Spakuj przesyłkę, aby optymalizować proces pakowania w różnych przestrzeniach ładunkowych. Zmniejszaj liczbę pojemników podczas transportu, wykorzystaj maksymalnie przestrzeń wewnątrz pojemników lub uzyskaj jak najniższy koszt wysyłki.

URL

Parametry zapytania

Wymagane parametry

REQUEST

{
    "username":"_USERNAME_",
    "api_key":"_API_KEY_",
    "items":
    [
        {
            "id":"Speakers",
            "w":3,
            "h":3,
            "d":3,
            "wg":2,
            "q":3,
            "vr":true
        },
        {
            "id":"Bigger item",
            "w":3,
            "h":3,
            "d":5,
            "wg":1,
            "q":2,
            "vr":true
        }
    ],
    "bins":
    [
        {
            "id":"Pack M",
            "h":4,
            "w":4,
            "d":4,
            "wg":"",
            "max_wg":""
        },
        {
            "id":"Pack S",
            "h":3,
            "w":3,
            "d":6,
            "wg":"",
            "max_wg":""
        }
    ],
    "params":
    {
        "images_background_color":"255,255,255",
        "images_bin_border_color":"59,59,59",
        "images_bin_fill_color":"230,230,230",
        "images_item_border_color":"22,22,22",
        "images_item_fill_color":"255,193,6",
        "images_item_back_border_color":"22,22,22",
        "images_sbs_last_item_fill_color":"177,14,14",
        "images_sbs_last_item_border_color":"22,22,22",
        "images_format":"svg",
        "images_width":50,
        "images_height":50,
        "images_source":"file",
        "stats":0,
        "item_coordinates":1,
        "images_complete":1,
        "images_sbs":1,
        "images_separated":0,
        "optimization_mode":"bins_number"
    }
}
curl -X POST \\
-H "Content-Type: application/json" \\
-d '{"username": "_USERNAME_", "api_key": "_API_KEY_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0, "optimization_mode":"bins_number"}}' \\
https://global-api.3dbinpacking.com/packer/packIntoMany \\
-k
<?php
$data = array(
    'bins' => array(
            array(
                    'id' => 'Pack M',
                    'h' => '4',
                    'w' => '4',
                    'd' => '4',
                    'wg' => '',
                    'max_wg' => ''
                ),
            array(
                    'id' => 'Pack S',
                    'h' => '3',
                    'w' => '3',
                    'd' => '6',
                    'wg' => '',
                    'max_wg' => ''
                )
        ),
    'items' => array(
            array(
                    'id' => 'Speakers',
                    'w' => '3',
                    'h' => '3',
                    'd' => '3',
                    'wg' => '2',
                    'q' => '3',
                    'vr' => '1'
                ),
            array(
                    'id' => 'Bigger item',
                    'w' => '3',
                    'h' => '3',
                    'd' => '5',
                    'wg' => '1',
                    'q' => '2',
                    'vr' => '1'
                )
        ),
    'username' => 'YOUR_USERNAME',
    'api_key' => 'YOUR_API_KEY',
    'params' => array(
            'images_background_color' => '255,255,255',
            'images_bin_border_color' => '59,59,59',
            'images_bin_fill_color' => '230,230,230',
            'images_item_border_color' => '22,22,22',
            'images_item_fill_color' => '255,193,6',
            'images_item_back_border_color' => '22,22,22',
            'images_sbs_last_item_fill_color' => '177,14,14',
            'images_sbs_last_item_border_color' => '22,22,22',
            'images_format' => 'svg',
            'images_width' => '50',
            'images_height' => '50',
            'images_source' => 'file',
            'stats' => '0',
            'item_coordinates' => '1',
            'images_complete' => '1',
            'images_sbs' => '1',
            'images_separated' => '0',
            'optimization_mode'=>'bins_number'
        )
);
$query = json_encode($data);

$url = "https://global-api.3dbinpacking.com/packer/packIntoMany";
$prepared_query = 'query='.$query;
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $prepared_query );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$resp = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error #' . curl_errno($ch) . ': ' . curl_error($ch).'<br>';
}
curl_close($ch);

$response = json_decode($resp,true);
// display errors
if(isset($response['response']['errors'])){
    foreach($response['response']['errors'] as $error){
    echo $error['message'].'<br>';
    }
}
// display data
if( $response['response']['status'] > -1 ){
    $b_packed= $response['response']['bins_packed'];
    foreach ($b_packed as $bin){
        echo "<h2>Bin id:{$bin['bin_data']['id']}</h2>
        <p> {$bin['bin_data']['w']} x {$bin['bin_data']['h']} x {$bin['bin_data']['d']}</p>
        <p> Weight:{$bin['bin_data']['weight']}</p>
        <p> Used weight:{ $bin['bin_data']['used_weight'] }</p>
        <img src=\"{$bin['image_complete']}\">
        <h2>Items packed in this bin:</h2>";
        $items = $bin['items'];
        echo '<table style="text-align: center">
        <tr><th>Item id</th>
            <th>Item dimensions</th>
            <th>Item weight</th>
            <th>Separated item</th>
            <th>Step by step</th></tr>';
        foreach ( $items as $item){
        echo "<tr><td>{$item['id']}</td>
                <td> {$item['w']} x {$item['h']} x {$bin['bin_data']['d']}</td>
                <td> {$item['wg']}</td>
                <td><img src=\"{$item['image_separated']}\"></td>
                <td><img src=\"{$item['image_sbs']}\"></td>
            </tr>";
        }
        echo '</table>';
        echo '<hr>';

    }
}
#!/usr/bin/python

import httplib
import urllib
import json

conn = httplib.HTTPConnection(host='global-api.3dbinpacking.com', port=80)
data = {"username": "_USERNAME_", "api_key": "_API_KEY_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0, "optimization_mode":"bins_number"}}
params =  urllib.urlencode( {'query':json.dumps(data)} )
headers = {"Content-type": "application/x-www-form-urlencoded",
    "Accept": "text/plain"}
conn.request( "POST", "/packer/packIntoMany", params, headers )
content = conn.getresponse( ).read( )
conn.close( )
print content
package javaapplication1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;;
import org.json.simple.JSONObject;
import org.springframework.web.client.RestTemplate;

public class JavaApplication1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws MalformedURLException, ProtocolException, IOException {
        RestTemplate restTemplate = new RestTemplate();
        JSONObject json = new JSONObject();


        //SET BINS
        List<Map<String , String>> bins  = new ArrayList<Map<String,String>>();

        Map<String, String> bin1 = new HashMap<String, String>();
        bin1.put("id", "Pack M");
        bin1.put("h", "4");
        bin1.put("w", "4");
        bin1.put("d", "4");
        bin1.put("wg", "");
        bin1.put("max_wg", "");
        bins.add(bin1);
        Map<String, String> bin2 = new HashMap<String, String>();
        bin2.put("id", "Pack S");
        bin2.put("h", "3");
        bin2.put("w", "3");
        bin2.put("d", "6");
        bin2.put("wg", "");
        bin2.put("max_wg", "");
        bins.add(bin2);

        //SET ITEMS
        List<Map<String , String>> items  = new ArrayList<Map<String,String>>();
        Map<String, String> item1 = new HashMap<String, String>();
        item1.put("id", "Speakers");
        item1.put("w", "3");
        item1.put("h", "3");
        item1.put("d", "3");
        item1.put("wg", "2");
        item1.put("q", "3");
        item1.put("vr", "1");
        items.add(item1);
        Map<String, String> item2 = new HashMap<String, String>();
        item2.put("id", "Bigger item");
        item2.put("w", "3");
        item2.put("h", "3");
        item2.put("d", "5");
        item2.put("wg", "1");
        item2.put("q", "2");
        item2.put("vr", "1");
        items.add(item2);

        //SET PARAMETERS
        Map <String , String > params  = new HashMap <String , String >();
        params.put("images_background_color", "255,255,255")
        params.put("images_bin_border_color", "59,59,59")
        params.put("images_bin_fill_color", "230,230,230")
        params.put("images_item_border_color", "22,22,22")
        params.put("images_item_fill_color", "255,193,6")
        params.put("images_item_back_border_color", "22,22,22")
        params.put("images_sbs_last_item_fill_color", "177,14,14")
        params.put("images_sbs_last_item_border_color", "22,22,22")
        params.put("images_format", "svg")
        params.put("images_width", "50")
        params.put("images_height", "50")
        params.put("images_source", "file")
        params.put("stats", "0")
        params.put("item_coordinates", "1")
        params.put("images_complete", "1")
        params.put("images_sbs", "1")
        params.put("images_separated", "0")
        params.put("optimization_mode", "bins_number")

        //ADD ELEMENTS TO JSON
        json.put("username", "YOUR_USERNAME");
        json.put("api_key", "YOUR_API_KEY");
        json.put("items", items);
        json.put("bins", bins);
        json.put("params", params);

        //CALL QUERY
        HttpURLConnection conn;
        URL addr = new URL("https://global-api.3dbinpacking.com/packer/packIntoMany");
        conn = (HttpURLConnection) addr.openConnection();
        conn.setRequestMethod("POST");
        conn.setDoOutput(true);
        conn.connect();
        OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());

        // prepare POST body
        String query = "query=" + json.toString();

        osw.write(query);
        osw.flush();
        osw.close();

        BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String response_json = br.readLine();

        //DO SOMETHING COOL WITH THE RESPONSE
        System.out.println(response_json);
    }
}
string data;
System.Net.HttpWebRequest req = System.Net.WebRequest.Create("https://global-api.3dbinpacking.com/packer/packIntoMany") as System.Net.HttpWebRequest;

var request_data = new {username = "YOUR_USERNAME",
                        api_key = "YOUR_API_KEY",
                        items = new[] {
                                        new { id = "Speakers", w = "3", h = "3", d = "3", wg = "2", q = "3", vr = "1"},
                                        new { id = "Bigger item", w = "3", h = "3", d = "5", wg = "1", q = "2", vr = "1"}
                                        },
                        bins = new[] {
                                        new { id = "Pack M", h = "4", w = "4", d = "4", wg = "", max_wg = ""},
                                        new { id = "Pack S", h = "3", w = "3", d = "6", wg = "", max_wg = ""}
                                        },

                        @params = new { images_background_color = "255,255,255",
                                        images_bin_border_color = "59,59,59",
                                        images_bin_fill_color = "230,230,230",
                                        images_item_border_color = "22,22,22",
                                        images_item_fill_color = "255,193,6",
                                        images_item_back_border_color = "22,22,22",
                                        images_sbs_last_item_fill_color = "177,14,14",
                                        images_sbs_last_item_border_color = "22,22,22",
                                        images_format = "svg",
                                        images_width = "50",
                                        images_height = "50",
                                        images_source = "file",
                                        stats = "0",
                                        item_coordinates = "1",
                                        images_complete = "1",
                                        images_sbs = "1",
                                        images_separated = "0",
                                        optimization_mode= "bins_number"
                                        }
                    };

string json_str = JsonConvert.SerializeObject(request_data);

string queryParam = "query="+json_str;

byte[] postBytes = System.Text.Encoding.ASCII.GetBytes(queryParam);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postBytes.Length;

System.IO.Stream postStream = req.GetRequestStream();
postStream.Write(postBytes, 0, postBytes.Length);
postStream.Close();

X509Certificate Cert = X509Certificate2.CreateFromCertFile("path_to_pem_key\global-api.3dbinpacking.com.pem");
req.ClientCertificates.Add(Cert);

using (System.Net.HttpWebResponse response = req.GetResponse() as System.Net.HttpWebResponse)
{
    System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
    data = reader.ReadToEnd();
}

RESPONSE

{
    "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}
                }
            ]
        }
    ]
}
Nazwa parametru Opis Typ danych
username Nazwa użytkownika ciąg znaków
api_key Klucz API. Możesz go znaleźć w sekcji 'Dostęp do API' po zalogowaniu. ciąg znaków
bins Tablica parametrów przestrzeni ładunkowych tablica
items Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 tablica
params Tablica parametrów dodatkowych zapytań of extra request parameters tablica

Tablica przestrzeni ładunkowych

Nazwa parametru Opis Typ danych
id ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania ciąg znaków
w Szerokość przestrzeni ładunkowej integer or float
h wysokość przestrzeni ładunkowej integer or float
d Głębokość/długość przestrzeni ładunkowej integer or float
max_wg Maksymalna waga przestrzeni ładunkowej. Wartość ustawiona na '0' (zero) oznacza, że nie ma limitu obciążenia integer or float

Tablica parametrów przedmiotów

Nazwa parametru Opis Typ danych Dostępne wartości
id ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. ciąg znaków
w Szerokość przedmiotu integer or float
h Wysokość przedmiotu integer or float
d Głębokość lub długość przedmiotu integer or float
wg Waga przedmiotu integer or float
vr Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. integer Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania.
q Ilość przedmiotów o danych wymiarach do zapakowania integer
group Przedmioty zostaną zapakowane według utworzonych grup. Parametr umożliwia oddzielenie np. produktów spożywczych (grupa 'X') od chemii gospodarczej (grupa 'Y'). ciąg znaków
separate Odseparowanie przedmiotów. Ustawienie tego parametru na '1' oznacza, że dane przedmioty nie mogą być pakowane razem z innymi przedmiotami integer Dopuszczalne wartości: 1 - oznacza, że przedmioty będą odseparowane, 0 [domyślnie] - oznacza, że przedmioty nie będą odseparowane
limit_per_bin Ogranicza liczbę przedmiotów danych wymiarów w jednej przestrzeni ładunkowej podczas pakowania. integer
acceptable_bins Określa, które pojemniki mogą zostać użyte do zapakowania przedmiotów. Jeżeli parametr nie jest ustawiony, wtedy wszystkie pojemniki zostaną użyte. Podane wartości muszą zawierać ID pojemników podanych w parametrze 'bins'. tablica
item_colors_schema Określa, który schemat kolorów zostanie użyty ciąg znaków Dopuszczalne wartości: default - użyte zostaną kolory ustawione w parametrach 'images_item_border_color' i 'images_bin_fill_color', random - kolory zostaną ustawione losowo, item - użyte zostaną kolory podane w sekcji 'items'.
item_fill_color Kolor wypełnienia przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'

Dodatkowe parametry

Nazwa parametru Opis Typ danych Dostępne wartości
optimization_mode Określa metodę optymalizacji pakowania ciąg znaków Dopuszczalne wartości: bins_number [default] - jak najmniejsza liczba przestrzeni ładunkowych; bins_utilization - jak najmniejsza ilość wolnej przestrzeni w przestrzeniach ładunkowych; cost - najmniejszy koszt przesyłki lub transportu (wymaga podania parametru 'cost' dla każdej przestrzeni ładunkowej)
images_width Maks. szerokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_height Maks. wysokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_background_color Kolor tła ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_border_color Kolor krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_dashed_line_color Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_fill_color Kolor wypełnienia przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_fill_color Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_border_color Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_format Format plików zwracanych obrazków ciąg znaków Dopuszczalne wartości: [ png , svg ]
images_sbs Generuje obrazki pokazujące proces pakowania 'krok po kroku' integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana
images_complete Generuj grafikę przedstawiającą obrazek końcowy zapakowania integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana
images_separated Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana
item_coordinates Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów integer Dopuszczalne wartości: 0 [default] - oznacza, że współrzędne nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że współrzędne zostaną zwrócone w odpowiedzi
stats Zwraca statystyki procesu pakowania (np. czas generowania obrazków) integer Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi

Paramtery odpowiedzi

Nazwa parametru Opis Typ danych Dostępne wartości
bins_packed Lista zapakowanych przestrzeni ładunkowych tablica
errors Lista możliwych błędów, które wystąpiły w zapytaniu tablica Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu
status Status odpowiedzi integer Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne.

Spakuj paletę

Użyj narzędzia Spakuj paletę, aby optymalnie wykorzystać przestrzeń i zmniejszyć liczbę palet potrzebną do transportu.

URL

Parametry zapytania

Wymagane parametry

REQUEST

{
    "username":"_USERNAME_",
    "api_key":"_API_KEY_",
    "items":
    [
        {
            "id":"Speakers",
            "w":3,
            "h":3,
            "d":3,
            "wg":2,
            "q":3,
            "vr":true
        },
        {
            "id":"Bigger item",
            "w":3,
            "h":3,
            "d":5,
            "wg":1,
            "q":2,
            "vr":true
        }
    ],
    "pallet":
    {
        "id":"Paleta M",
        "h":4,
        "w":4,
        "d":4,
        "wg":"",
        "max_wg":""
    },
    "params":
    {
        "images_background_color":"255,255,255",
        "images_bin_border_color":"59,59,59",
        "images_bin_fill_color":"230,230,230",
        "images_item_border_color":"22,22,22",
        "images_item_fill_color":"255,193,6",
        "images_item_back_border_color":"22,22,22",
        "images_sbs_last_item_fill_color":"177,14,14",
        "images_sbs_last_item_border_color":"22,22,22",
        "images_format":"svg",
        "images_width":50,
        "images_height":50,
        "images_source":"file",
        "stats":0,
        "item_coordinates":1,
        "images_complete":1,
        "images_sbs":1,
        "images_separated":0
    }
}

RESPONSE

{
    "id":"1642627848_d3dc0ae1eebdaffb812a9eefaf1e2845",
    "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":"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}
                }
            ]
        },
        {
            "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":"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}
                }
            ]
        },
        {
            "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":"https://eu.api.3dbinpacking.com/images/file_hash5.svg",
            "items":
            [
                {
                    "id":"Speakers",
                    "w":3,
                    "h":3,
                    "d":3,
                    "wg":2,
                    "image_sbs":"https://eu.api.3dbinpacking.com/images/file_hash6.svg",
                    "coordinates":{"x1":0,"y1":0,"z1":0,"x2":3,"y2":3,"z2":3}
                }
            ]
        }
    ],
    "errors":[],
    "status":1,
    "not_packed_items":
    [
        {
            "id":"Bigger item",
            "q":2,
            "w":3,"h":3,
            "d":5,
            "wg":1
        }
    ]
}
Nazwa parametru Opis Typ danych
username Nazwa użytkownika ciąg znaków
api_key Klucz API. Możesz go znaleźć w sekcji 'Dostęp do API' po zalogowaniu. ciąg znaków
pallet Array of pallet parameters tablica
items Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 tablica
params Tablica parametrów dodatkowych zapytań tablica

Tablica parametrów palety

Nazwa parametru Opis Typ danych
id ID palety, na której zostaną zapakowane przedmioty ciąg znaków
w Szerokość palety integer or float
h Wysokość palety integer or float
d Głębokość/długość palety integer or float

Tablica parametrów przedmiotów

Nazwa parametru Opis Typ danych Dostępne wartości
id ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. ciąg znaków
w Szerokość przedmiotu integer or float
h Wysokość przedmiotu integer or float
d Głębokość lub długość przedmiotu integer or float
wg Waga przedmiotu integer or float
vr Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. integer Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania.
q Ilość przedmiotów o danych wymiarach do zapakowania integer
item_colors_schema Określa, który schemat kolorów zostanie użyty ciąg znaków
item_fill_color Kolor wypełnienia przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'

Dodatkowe parametry

Nazwa parametru Opis Typ danych Dostępne wartości
images_width Maks. szerokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_height Maks. wysokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_background_color Kolor tła ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_border_color Kolor krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_dashed_line_color Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_fill_color Kolor wypełnienia przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_fill_color Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_border_color Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_format Format plików zwracanych obrazków ciąg znaków Dopuszczalne wartości: [ png , svg ]
images_sbs Generuje obrazki pokazujące proces pakowania 'krok po kroku' integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana
images_complete Generuj grafikę przedstawiającą obrazek końcowy zapakowania integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana
images_separated Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana
item_coordinates Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów integer Dopuszczalne wartości: 0 [default] - oznacza, że współrzędne nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że współrzędne zostaną zwrócone w odpowiedzi
stats Zwraca statystyki procesu pakowania (np. czas generowania obrazków) integer Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi

Paramtery odpowiedzi

Nazwa parametru Opis Typ danych Dostępne wartości
bins_packed Lista zapakowanych przestrzeni ładunkowych tablica
errors Lista możliwych błędów, które wystąpiły w zapytaniu tablica Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu
status Status odpowiedzi integer Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne.

Znajdź brakujący wymiar

Użyj narzędzia Znajdź brakujący wymiar, jeżeli znasz dwa wymiary przestrzeni ładunkowej i chcesz obliczyć jej trzeci wymiar.

URL

Parametry zapytania

Wymagane parametry

REQUEST

{
    "username":"_USERNAME_",
    "api_key":"_API_KEY_",
    "items":
    [
        {
            "id":"Speakers",
            "w":3,
            "h":3,
            "d":3,
            "wg":2,
            "q":3,
            "vr":true
        },
        {
            "id":"Bigger item",
            "w":3,
            "h":3,
            "d":5,
            "wg":1,
            "q":2,
            "vr":true
        }
    ],
    "bins":
    [
        {
            "id":"Pack M",
            "h":4,
            "w":4,
            "d":4,
            "wg":"",
            "max_wg":""
        },
        {
            "id":"Pack S",
            "h":3,
            "w":3,
            "d":6,
            "wg":"",
            "max_wg":""
        }
    ],
    "params":
    {
        "images_background_color":"255,255,255",
        "images_bin_border_color":"59,59,59",
        "images_bin_fill_color":"230,230,230",
        "images_item_border_color":"22,22,22",
        "images_item_fill_color":"255,193,6",
        "images_item_back_border_color":"22,22,22",
        "images_sbs_last_item_fill_color":"177,14,14",
        "images_sbs_last_item_border_color":"22,22,22",
        "images_format":"svg",
        "images_width":50,
        "images_height":50,
        "images_source":"file",
        "stats":0,
        "item_coordinates":1,
        "images_complete":1,
        "images_sbs":1,
        "images_separated":0
    }
}
curl -X POST \\
-H "Content-Type: application/json" \\
-d '{"username": "_USERNAME_", "api_key": "_API_KEY_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}' \\
https://global-api.3dbinpacking.com/packer/findSmallestBin \\
-k
<?php

$data = array(
    'bins' => array(
            array(
                    'id' => 'Pack M',
                    'h' => '4',
                    'w' => '4',
                    'd' => '4',
                    'wg' => '',
                    'max_wg' => ''
                ),
            array(
                    'id' => 'Pack S',
                    'h' => '3',
                    'w' => '3',
                    'd' => '6',
                    'wg' => '',
                    'max_wg' => ''
                )
        ),
    'items' => array(
            array(
                    'id' => 'Speakers',
                    'w' => '3',
                    'h' => '3',
                    'd' => '3',
                    'wg' => '2',
                    'q' => '3',
                    'vr' => '1'
                ),
            array(
                    'id' => 'Bigger item',
                    'w' => '3',
                    'h' => '3',
                    'd' => '5',
                    'wg' => '1',
                    'q' => '2',
                    'vr' => '1'
                )
        ),
    'username' => 'YOUR_USERNAME',
    'api_key' => 'YOUR_API_KEY',
    'params' => array(
            'images_background_color' => '255,255,255',
            'images_bin_border_color' => '59,59,59',
            'images_bin_fill_color' => '230,230,230',
            'images_item_border_color' => '22,22,22',
            'images_item_fill_color' => '255,193,6',
            'images_item_back_border_color' => '22,22,22',
            'images_sbs_last_item_fill_color' => '177,14,14',
            'images_sbs_last_item_border_color' => '22,22,22',
            'images_format' => 'svg',
            'images_width' => '50',
            'images_height' => '50',
            'images_source' => 'file',
            'stats' => '0',
            'item_coordinates' => '1',
            'images_complete' => '1',
            'images_sbs' => '1',
            'images_separated' => '0'
        )
);
$query = json_encode($data);

$url = "https://global-api.3dbinpacking.com/packer/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_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}
params =  urllib.urlencode( {'query':json.dumps(data)} )
headers = {"Content-type": "application/x-www-form-urlencoded",
    "Accept": "text/plain"}
conn.request( "POST", "/packer/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", "Pack M");
        bin1.put("h", "4");
        bin1.put("w", "4");
        bin1.put("d", "4");
        bin1.put("wg", "");
        bin1.put("max_wg", "");
        bins.add(bin1);
        Map<String, String> bin2 = new HashMap<String, String>();
        bin2.put("id", "Pack S");
        bin2.put("h", "3");
        bin2.put("w", "3");
        bin2.put("d", "6");
        bin2.put("wg", "");
        bin2.put("max_wg", "");
        bins.add(bin2);

        //SET ITEMS
        List<Map<String , String>> items  = new ArrayList<Map<String,String>>();
        Map<String, String> item1 = new HashMap<String, String>();
        item1.put("id", "Speakers");
        item1.put("w", "3");
        item1.put("h", "3");
        item1.put("d", "3");
        item1.put("wg", "2");
        item1.put("q", "3");
        item1.put("vr", "1");
        items.add(item1);
        Map<String, String> item2 = new HashMap<String, String>();
        item2.put("id", "Bigger item");
        item2.put("w", "3");
        item2.put("h", "3");
        item2.put("d", "5");
        item2.put("wg", "1");
        item2.put("q", "2");
        item2.put("vr", "1");
        items.add(item2);

        //SET PARAMETERS
        Map <String , String > params  = new HashMap <String , String >();
        params.put("images_background_color", "255,255,255")
        params.put("images_bin_border_color", "59,59,59")
        params.put("images_bin_fill_color", "230,230,230")
        params.put("images_item_border_color", "22,22,22")
        params.put("images_item_fill_color", "255,193,6")
        params.put("images_item_back_border_color", "22,22,22")
        params.put("images_sbs_last_item_fill_color", "177,14,14")
        params.put("images_sbs_last_item_border_color", "22,22,22")
        params.put("images_format", "svg")
        params.put("images_width", "50")
        params.put("images_height", "50")
        params.put("images_source", "file")
        params.put("stats", "0")
        params.put("item_coordinates", "1")
        params.put("images_complete", "1")
        params.put("images_sbs", "1")
        params.put("images_separated", "0")

        //ADD ELEMENTS TO JSON
        json.put("username", "YOUR_USERNAME");
        json.put("api_key", "YOUR_API_KEY");
        json.put("items", items);
        json.put("bins", bins);
        json.put("params", params);

        //CALL QUERY
        HttpURLConnection conn;
        URL addr = new URL("https://global-api.3dbinpacking.com/packer/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 = "Speakers", w = "3", h = "3", d = "3", wg = "2", q = "3", vr = "1"},
                                        new { id = "Bigger item", w = "3", h = "3", d = "5", wg = "1", q = "2", vr = "1"}
                                        },
                        bins = new[] {
                                        new { id = "Pack M", h = "4", w = "4", d = "4", wg = "", max_wg = ""},
                                        new { id = "Pack S", h = "3", w = "3", d = "6", wg = "", max_wg = ""}
                                        },

                        @params = new { images_background_color = "255,255,255",
                                        images_bin_border_color = "59,59,59",
                                        images_bin_fill_color = "230,230,230",
                                        images_item_border_color = "22,22,22",
                                        images_item_fill_color = "255,193,6",
                                        images_item_back_border_color = "22,22,22",
                                        images_sbs_last_item_fill_color = "177,14,14",
                                        images_sbs_last_item_border_color = "22,22,22",
                                        images_format = "svg",
                                        images_width = "50",
                                        images_height = "50",
                                        images_source = "file",
                                        stats = "0",
                                        item_coordinates = "1",
                                        images_complete = "1",
                                        images_sbs = "1",
                                        images_separated = "0"
                                        }
                    };

string json_str = JsonConvert.SerializeObject(request_data);

string queryParam = "query="+json_str;

byte[] postBytes = System.Text.Encoding.ASCII.GetBytes(queryParam);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postBytes.Length;

System.IO.Stream postStream = req.GetRequestStream();
postStream.Write(postBytes, 0, postBytes.Length);
postStream.Close();

X509Certificate Cert = X509Certificate2.CreateFromCertFile("path_to_pem_key\global-api.3dbinpacking.com.pem");
req.ClientCertificates.Add(Cert);

using (System.Net.HttpWebResponse response = req.GetResponse() as System.Net.HttpWebResponse)
{
    System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
    data = reader.ReadToEnd();
}

RESPONSE

{
    "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}
                }
            ]
        }
    ]
}
Nazwa parametru Opis Typ danych
username Nazwa użytkownika ciąg znaków
api_key Klucz API. Możesz go znaleźć w sekcji 'Dostęp do API' po zalogowaniu. ciąg znaków
bins Tablica parametrów przestrzeni ładunkowych tablica
items Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 tablica
params Tablica parametrów dodatkowych zapytań tablica

Tablica przestrzeni ładunkowych

Nazwa parametru Opis Typ danych
id ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania ciąg znaków
w Szerokość przestrzeni ładunkowej float
h wysokość przestrzeni ładunkowej float
d Głębokość/długość przestrzeni ładunkowej float

Tablica parametrów przedmiotów

Nazwa parametru Opis Typ danych Dostępne wartości
id ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. ciąg znaków
w Szerokość przedmiotu integer or float
h Wysokość przedmiotu integer or float
d Głębokość lub długość przedmiotu integer or float
wg Waga przedmiotu integer or float
vr Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. integer Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania.
q Ilość przedmiotów o danych wymiarach do zapakowania integer
acceptable_bins Określa, które pojemniki mogą zostać użyte do zapakowania przedmiotów. Jeżeli parametr nie jest ustawiony, wtedy wszystkie pojemniki zostaną użyte. Podane wartości muszą zawierać ID pojemników podanych w parametrze 'bins'. tablica
item_colors_schema Określa, który schemat kolorów zostanie użyty ciąg znaków Dopuszczalne wartości: default - użyte zostaną kolory ustawione w parametrach 'images_item_border_color' i 'images_bin_fill_color', random - kolory zostaną ustawione losowo, item - użyte zostaną kolory podane w sekcji 'items'.
item_fill_color Kolor wypełnienia przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'

Dodatkowe parametry

Nazwa parametru Opis Typ danych Dostępne wartości
images_width Maks. szerokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_height Maks. wysokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_background_color Kolor tła ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_border_color Kolor krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_dashed_line_color Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_fill_color Kolor wypełnienia przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_fill_color Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_border_color Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_format Format plików zwracanych obrazków ciąg znaków Dopuszczalne wartości: [ png , svg ]
images_sbs Generuje obrazki pokazujące proces pakowania 'krok po kroku' integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana
images_complete Generuj grafikę przedstawiającą obrazek końcowy zapakowania integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana
images_separated Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana
item_coordinates Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów integer Dopuszczalne wartości: 0 [default] - oznacza, że współrzędne nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że współrzędne zostaną zwrócone w odpowiedzi
stats Zwraca statystyki procesu pakowania (np. czas generowania obrazków) integer Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi

Paramtery odpowiedzi

Nazwa parametru Opis Typ danych Dostępne wartości
bins_packed Lista zapakowanych przestrzeni ładunkowych tablica
errors Lista możliwych błędów, które wystąpiły w zapytaniu tablica Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu
status Status odpowiedzi integer Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne.

Znajdź pojemnik

Użyj narzędzia Znajdź pojemnik, aby obliczyć optymalny rozmiar pojemnika dla spakowania Twoich przedmiotów.

URL

Parametry zapytania

Wymagane parametry

REQUEST

{
    "username":"_USERNAME_",
    "api_key":"_API_KEY_",
    "items":
    [
        {
            "id":"Speakers",
            "w":3,
            "h":3,
            "d":3,
            "wg":2,
            "q":3,
            "vr":true
        },
        {
            "id":"Bigger item",
            "w":3,
            "h":3,
            "d":5,
            "wg":1,
            "q":2,
            "vr":true
        }
    ],
    "bins":
    [
        {
            "id":"Pack M",
            "h":4,
            "w":4,
            "d":4,
            "wg":"",
            "max_wg":""
        },
        {
            "id":"Pack S",
            "h":3,
            "w":3,
            "d":6,
            "wg":"",
            "max_wg":""
        }
    ],
    "params":
    {
        "images_background_color":"255,255,255",
        "images_bin_border_color":"59,59,59",
        "images_bin_fill_color":"230,230,230",
        "images_item_border_color":"22,22,22",
        "images_item_fill_color":"255,193,6",
        "images_item_back_border_color":"22,22,22",
        "images_sbs_last_item_fill_color":"177,14,14",
        "images_sbs_last_item_border_color":"22,22,22",
        "images_format":"svg",
        "images_width":50,
        "images_height":50,
        "images_source":"file",
        "stats":0,
        "item_coordinates":1,
        "images_complete":1,
        "images_sbs":1,
        "images_separated":0
    }
}
curl -X POST \\
-H "Content-Type: application/json" \\
-d '{"username": "_USERNAME_", "api_key": "_API_KEY_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}' \\
https://global-api.3dbinpacking.com/packer/findBinSize \\
-k
<?php

$data = array(
    'bins' => array(
            array(
                    'id' => 'Pack M',
                    'h' => '4',
                    'w' => '4',
                    'd' => '4',
                    'wg' => '',
                    'max_wg' => ''
                ),
            array(
                    'id' => 'Pack S',
                    'h' => '3',
                    'w' => '3',
                    'd' => '6',
                    'wg' => '',
                    'max_wg' => ''
                )
        ),
    'items' => array(
            array(
                    'id' => 'Speakers',
                    'w' => '3',
                    'h' => '3',
                    'd' => '3',
                    'wg' => '2',
                    'q' => '3',
                    'vr' => '1'
                ),
            array(
                    'id' => 'Bigger item',
                    'w' => '3',
                    'h' => '3',
                    'd' => '5',
                    'wg' => '1',
                    'q' => '2',
                    'vr' => '1'
                )
        ),
    'username' => 'YOUR_USERNAME',
    'api_key' => 'YOUR_API_KEY',
    'params' => array(
            'images_background_color' => '255,255,255',
            'images_bin_border_color' => '59,59,59',
            'images_bin_fill_color' => '230,230,230',
            'images_item_border_color' => '22,22,22',
            'images_item_fill_color' => '255,193,6',
            'images_item_back_border_color' => '22,22,22',
            'images_sbs_last_item_fill_color' => '177,14,14',
            'images_sbs_last_item_border_color' => '22,22,22',
            'images_format' => 'svg',
            'images_width' => '50',
            'images_height' => '50',
            'images_source' => 'file',
            'stats' => '0',
            'item_coordinates' => '1',
            'images_complete' => '1',
            'images_sbs' => '1',
            'images_separated' => '0'
        )
);
$query = json_encode($data);

$url = "https://global-api.3dbinpacking.com/packer/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_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}
params =  urllib.urlencode( {'query':json.dumps(data)} )
headers = {"Content-type": "application/x-www-form-urlencoded",
    "Accept": "text/plain"}
conn.request( "POST", "/packer/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", "Pack M");
        bin1.put("h", "4");
        bin1.put("w", "4");
        bin1.put("d", "4");
        bin1.put("wg", "");
        bin1.put("max_wg", "");
        bins.add(bin1);
        Map<String, String> bin2 = new HashMap<String, String>();
        bin2.put("id", "Pack S");
        bin2.put("h", "3");
        bin2.put("w", "3");
        bin2.put("d", "6");
        bin2.put("wg", "");
        bin2.put("max_wg", "");
        bins.add(bin2);

        //SET ITEMS
        List<Map<String , String>> items  = new ArrayList<Map<String,String>>();
        Map<String, String> item1 = new HashMap<String, String>();
        item1.put("id", "Speakers");
        item1.put("w", "3");
        item1.put("h", "3");
        item1.put("d", "3");
        item1.put("wg", "2");
        item1.put("q", "3");
        item1.put("vr", "1");
        items.add(item1);
        Map<String, String> item2 = new HashMap<String, String>();
        item2.put("id", "Bigger item");
        item2.put("w", "3");
        item2.put("h", "3");
        item2.put("d", "5");
        item2.put("wg", "1");
        item2.put("q", "2");
        item2.put("vr", "1");
        items.add(item2);

        //SET PARAMETERS
        Map <String , String > params  = new HashMap <String , String >();
        params.put("images_background_color", "255,255,255")
        params.put("images_bin_border_color", "59,59,59")
        params.put("images_bin_fill_color", "230,230,230")
        params.put("images_item_border_color", "22,22,22")
        params.put("images_item_fill_color", "255,193,6")
        params.put("images_item_back_border_color", "22,22,22")
        params.put("images_sbs_last_item_fill_color", "177,14,14")
        params.put("images_sbs_last_item_border_color", "22,22,22")
        params.put("images_format", "svg")
        params.put("images_width", "50")
        params.put("images_height", "50")
        params.put("images_source", "file")
        params.put("stats", "0")
        params.put("item_coordinates", "1")
        params.put("images_complete", "1")
        params.put("images_sbs", "1")
        params.put("images_separated", "0")

        //ADD ELEMENTS TO JSON
        json.put("username", "YOUR_USERNAME");
        json.put("api_key", "YOUR_API_KEY");
        json.put("items", items);
        json.put("bins", bins);
        json.put("params", params);

        //CALL QUERY
        HttpURLConnection conn;
        URL addr = new URL("https://global-api.3dbinpacking.com/packer/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 = "Speakers", w = "3", h = "3", d = "3", wg = "2", q = "3", vr = "1"},
                                        new { id = "Bigger item", w = "3", h = "3", d = "5", wg = "1", q = "2", vr = "1"}
                                        },
                        bins = new[] {
                                        new { id = "Pack M", h = "4", w = "4", d = "4", wg = "", max_wg = ""},
                                        new { id = "Pack S", h = "3", w = "3", d = "6", wg = "", max_wg = ""}
                                        },

                        @params = new { images_background_color = "255,255,255",
                                        images_bin_border_color = "59,59,59",
                                        images_bin_fill_color = "230,230,230",
                                        images_item_border_color = "22,22,22",
                                        images_item_fill_color = "255,193,6",
                                        images_item_back_border_color = "22,22,22",
                                        images_sbs_last_item_fill_color = "177,14,14",
                                        images_sbs_last_item_border_color = "22,22,22",
                                        images_format = "svg",
                                        images_width = "50",
                                        images_height = "50",
                                        images_source = "file",
                                        stats = "0",
                                        item_coordinates = "1",
                                        images_complete = "1",
                                        images_sbs = "1",
                                        images_separated = "0"
                                        }
                    };

string json_str = JsonConvert.SerializeObject(request_data);

string queryParam = "query="+json_str;

byte[] postBytes = System.Text.Encoding.ASCII.GetBytes(queryParam);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postBytes.Length;

System.IO.Stream postStream = req.GetRequestStream();
postStream.Write(postBytes, 0, postBytes.Length);
postStream.Close();

X509Certificate Cert = X509Certificate2.CreateFromCertFile("path_to_pem_key\global-api.3dbinpacking.com.pem");
req.ClientCertificates.Add(Cert);

using (System.Net.HttpWebResponse response = req.GetResponse() as System.Net.HttpWebResponse)
{
    System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
    data = reader.ReadToEnd();
}

RESPONSE

{
    "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}
                }
            ]
        }
    ]
}
Nazwa parametru Opis Typ danych
username Nazwa użytkownika ciąg znaków
api_key Klucz API. Możesz go znaleźć w sekcji 'Dostęp do API' po zalogowaniu. ciąg znaków
bins Tablica parametrów przestrzeni ładunkowych tablica
items Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 tablica
params Tablica parametrów dodatkowych zapytań tablica

| Tablica przestrzeni ładunkowych

Nazwa parametru Opis Typ danych
id ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania ciąg znaków
w Packing space max. width float
h Packing space max. height float
d Packing space max. depth/length float

Tablica parametrów przedmiotów

Nazwa parametru Opis Typ danych Dostępne wartości
id ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. ciąg znaków
w Szerokość przedmiotu integer or float
h Wysokość przedmiotu integer or float
d Głębokość lub długość przedmiotu integer or float
wg Waga przedmiotu integer or float
vr Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. integer Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania.
q Ilość przedmiotów o danych wymiarach do zapakowania integer
item_colors_schema Określa, który schemat kolorów zostanie użyty ciąg znaków
item_fill_color Kolor wypełnienia przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'

Dodatkowe parametry

Nazwa parametru Opis Typ danych Dostępne wartości
images_width Maks. szerokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_height Maks. wysokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_background_color Kolor tła ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_border_color Kolor krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_dashed_line_color Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_fill_color Kolor wypełnienia przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_fill_color Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_border_color Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_format Format plików zwracanych obrazków ciąg znaków Dopuszczalne wartości: [ png , svg ]
images_sbs Generuje obrazki pokazujące proces pakowania 'krok po kroku' integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana
images_complete Generuj grafikę przedstawiającą obrazek końcowy zapakowania integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana
images_separated Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana
item_coordinates Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów integer Dopuszczalne wartości: 0 [default] - oznacza, że współrzędne nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że współrzędne zostaną zwrócone w odpowiedzi
stats Zwraca statystyki procesu pakowania (np. czas generowania obrazków) integer Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi

Paramtery odpowiedzi

Nazwa parametru Opis Typ danych Dostępne wartości
bins_packed Lista zapakowanych przestrzeni ładunkowych tablica
errors Lista możliwych błędów, które wystąpiły w zapytaniu tablica Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu
status Status odpowiedzi integer Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne.

Sprawdź maksymalne wypełnienie

Oblicz, ile przedmiotów możesz zapakować w dostępnej przestrzeni ładunkowej

URL

Parametry zapytania

Wymagane parametry

REQUEST

{
    "username":"_USERNAME_",
    "api_key":"_API_KEY_",
    "items":
    [
        {
            "id":"Speakers",
            "w":3,
            "h":3,
            "d":3,
            "wg":2,
            "q":3,
            "vr":true
        },
        {
            "id":"Bigger item",
            "w":3,
            "h":3,
            "d":5,
            "wg":1,
            "q":2,
            "vr":true
        }
    ],
    "bins":
    [
        {
            "id":"Pack M",
            "h":4,
            "w":4,
            "d":4,
            "wg":"",
            "max_wg":""
        },
        {
            "id":"Pack S",
            "h":3,
            "w":3,
            "d":6,
            "wg":"",
            "max_wg":""
        }
    ],
    "params":
    {
        "images_background_color":"255,255,255",
        "images_bin_border_color":"59,59,59",
        "images_bin_fill_color":"230,230,230",
        "images_item_border_color":"22,22,22",
        "images_item_fill_color":"255,193,6",
        "images_item_back_border_color":"22,22,22",
        "images_sbs_last_item_fill_color":"177,14,14",
        "images_sbs_last_item_border_color":"22,22,22",
        "images_format":"svg",
        "images_width":50,
        "images_height":50,
        "images_source":"file",
        "stats":0,
        "item_coordinates":1,
        "images_complete":1,
        "images_sbs":1,
        "images_separated":0
    }
}
curl -X POST \\
-H "Content-Type: application/json" \\
-d '{"username": "_USERNAME_", "api_key": "_API_KEY_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}' \\
https://global-api.3dbinpacking.com/packer/fillContainer \\
-k
<?php

$data = array(
    'bins' => array(
            array(
                    'id' => 'Pack M',
                    'h' => '4',
                    'w' => '4',
                    'd' => '4',
                    'wg' => '',
                    'max_wg' => ''
                ),
            array(
                    'id' => 'Pack S',
                    'h' => '3',
                    'w' => '3',
                    'd' => '6',
                    'wg' => '',
                    'max_wg' => ''
                )
        ),
    'items' => array(
            array(
                    'id' => 'Speakers',
                    'w' => '3',
                    'h' => '3',
                    'd' => '3',
                    'wg' => '2',
                    'q' => '3',
                    'vr' => '1'
                ),
            array(
                    'id' => 'Bigger item',
                    'w' => '3',
                    'h' => '3',
                    'd' => '5',
                    'wg' => '1',
                    'q' => '2',
                    'vr' => '1'
                )
        ),
    'username' => 'YOUR_USERNAME',
    'api_key' => 'YOUR_API_KEY',
    'params' => array(
            'images_background_color' => '255,255,255',
            'images_bin_border_color' => '59,59,59',
            'images_bin_fill_color' => '230,230,230',
            'images_item_border_color' => '22,22,22',
            'images_item_fill_color' => '255,193,6',
            'images_item_back_border_color' => '22,22,22',
            'images_sbs_last_item_fill_color' => '177,14,14',
            'images_sbs_last_item_border_color' => '22,22,22',
            'images_format' => 'svg',
            'images_width' => '50',
            'images_height' => '50',
            'images_source' => 'file',
            'stats' => '0',
            'item_coordinates' => '1',
            'images_complete' => '1',
            'images_sbs' => '1',
            'images_separated' => '0'
        )
);
$query = json_encode($data);

$url = "https://global-api.3dbinpacking.com/packer/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_", "items": [{"id": "Speakers", "w": 3, "h": 3, "d": 3, "wg": 2, "q": 3, "vr": true},{"id": "Bigger item", "w": 3, "h": 3, "d": 5, "wg": 1, "q": 2, "vr": true}], "bins": [{"id": "Pack M", "h": 4, "w": 4, "d": 4, "wg": "", "max_wg": ""},{"id": "Pack S", "h": 3, "w": 3, "d": 6, "wg": "", "max_wg": ""}], "params": {"images_background_color": "255,255,255", "images_bin_border_color": "59,59,59", "images_bin_fill_color": "230,230,230", "images_item_border_color": "22,22,22", "images_item_fill_color": "255,193,6", "images_item_back_border_color": "22,22,22", "images_sbs_last_item_fill_color": "177,14,14", "images_sbs_last_item_border_color": "22,22,22", "images_format": "svg", "images_width": 50, "images_height": 50, "images_source": "file", "stats": 0, "item_coordinates": 1, "images_complete": 1, "images_sbs": 1, "images_separated": 0}}
params =  urllib.urlencode( {'query':json.dumps(data)} )
headers = {"Content-type": "application/x-www-form-urlencoded",
    "Accept": "text/plain"}
conn.request( "POST", "/packer/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", "Pack M");
        bin1.put("h", "4");
        bin1.put("w", "4");
        bin1.put("d", "4");
        bin1.put("wg", "");
        bin1.put("max_wg", "");
        bins.add(bin1);
        Map<String, String> bin2 = new HashMap<String, String>();
        bin2.put("id", "Pack S");
        bin2.put("h", "3");
        bin2.put("w", "3");
        bin2.put("d", "6");
        bin2.put("wg", "");
        bin2.put("max_wg", "");
        bins.add(bin2);

        //SET ITEMS
        List<Map<String , String>> items  = new ArrayList<Map<String,String>>();
        Map<String, String> item1 = new HashMap<String, String>();
        item1.put("id", "Speakers");
        item1.put("w", "3");
        item1.put("h", "3");
        item1.put("d", "3");
        item1.put("wg", "2");
        item1.put("q", "3");
        item1.put("vr", "1");
        items.add(item1);
        Map<String, String> item2 = new HashMap<String, String>();
        item2.put("id", "Bigger item");
        item2.put("w", "3");
        item2.put("h", "3");
        item2.put("d", "5");
        item2.put("wg", "1");
        item2.put("q", "2");
        item2.put("vr", "1");
        items.add(item2);

        //SET PARAMETERS
        Map <String , String > params  = new HashMap <String , String >();
        params.put("images_background_color", "255,255,255")
        params.put("images_bin_border_color", "59,59,59")
        params.put("images_bin_fill_color", "230,230,230")
        params.put("images_item_border_color", "22,22,22")
        params.put("images_item_fill_color", "255,193,6")
        params.put("images_item_back_border_color", "22,22,22")
        params.put("images_sbs_last_item_fill_color", "177,14,14")
        params.put("images_sbs_last_item_border_color", "22,22,22")
        params.put("images_format", "svg")
        params.put("images_width", "50")
        params.put("images_height", "50")
        params.put("images_source", "file")
        params.put("stats", "0")
        params.put("item_coordinates", "1")
        params.put("images_complete", "1")
        params.put("images_sbs", "1")
        params.put("images_separated", "0")

        //ADD ELEMENTS TO JSON
        json.put("username", "YOUR_USERNAME");
        json.put("api_key", "YOUR_API_KEY");
        json.put("items", items);
        json.put("bins", bins);
        json.put("params", params);

        //CALL QUERY
        HttpURLConnection conn;
        URL addr = new URL("https://global-api.3dbinpacking.com/packer/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 = "Speakers", w = "3", h = "3", d = "3", wg = "2", q = "3", vr = "1"},
                                        new { id = "Bigger item", w = "3", h = "3", d = "5", wg = "1", q = "2", vr = "1"}
                                        },
                        bins = new[] {
                                        new { id = "Pack M", h = "4", w = "4", d = "4", wg = "", max_wg = ""},
                                        new { id = "Pack S", h = "3", w = "3", d = "6", wg = "", max_wg = ""}
                                        },

                        @params = new { images_background_color = "255,255,255",
                                        images_bin_border_color = "59,59,59",
                                        images_bin_fill_color = "230,230,230",
                                        images_item_border_color = "22,22,22",
                                        images_item_fill_color = "255,193,6",
                                        images_item_back_border_color = "22,22,22",
                                        images_sbs_last_item_fill_color = "177,14,14",
                                        images_sbs_last_item_border_color = "22,22,22",
                                        images_format = "svg",
                                        images_width = "50",
                                        images_height = "50",
                                        images_source = "file",
                                        stats = "0",
                                        item_coordinates = "1",
                                        images_complete = "1",
                                        images_sbs = "1",
                                        images_separated = "0"
                                        }
                    };

string json_str = JsonConvert.SerializeObject(request_data);

string queryParam = "query="+json_str;

byte[] postBytes = System.Text.Encoding.ASCII.GetBytes(queryParam);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postBytes.Length;

System.IO.Stream postStream = req.GetRequestStream();
postStream.Write(postBytes, 0, postBytes.Length);
postStream.Close();

X509Certificate Cert = X509Certificate2.CreateFromCertFile("path_to_pem_key\global-api.3dbinpacking.com.pem");
req.ClientCertificates.Add(Cert);

using (System.Net.HttpWebResponse response = req.GetResponse() as System.Net.HttpWebResponse)
{
    System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
    data = reader.ReadToEnd();
}

RESPONSE

{
    "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}
                }
            ]
        }
    ]
}
Nazwa parametru Opis Typ danych
username Nazwa użytkownika ciąg znaków
api_key Klucz API. Możesz go znaleźć w sekcji 'Dostęp do API' po zalogowaniu. ciąg znaków
bins Tablica parametrów przestrzeni ładunkowych tablica
items Tablica parametrów przedmiotów. Maksymalna liczba przedmiotów w jednym zapytaniu = 4999 tablica
params Tablica parametrów dodatkowych zapytań tablica

Tablica przestrzeni ładunkowych

Nazwa parametru Opis Typ danych
id ID przestrzeni ładunkowej. Dzięki niemu będzie możliwa jego identyfikacja w wynikach pakowania ciąg znaków
w Szerokość przestrzeni ładunkowej float
h wysokość przestrzeni ładunkowej float
d Głębokość/długość przestrzeni ładunkowej float

Tablica parametrów przedmiotów

Nazwa parametru Opis Typ danych Dostępne wartości
id ID/SKU przedmiotu, dzięki któremy zidentyfikujesz przedmiot po zapakowaniu. ciąg znaków
w Szerokość przedmiotu integer or float
h Wysokość przedmiotu integer or float
d Głębokość lub długość przedmiotu integer or float
wg Waga przedmiotu integer or float
vr Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania. integer Obracanie w pionie. Informacja, czy dany przedmioty może być obracany w pionie w procesie pakowania.
item_colors_schema Określa, który schemat kolorów zostanie użyty ciąg znaków
item_fill_color Kolor wypełnienia przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'

Dodatkowe parametry

Nazwa parametru Opis Typ danych Dostępne wartości
images_width Maks. szerokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_height Maks. wysokość generowanych obrazków integer Dopuszczalne wartości: 1 - 250
images_background_color Kolor tła ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_border_color Kolor krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_dashed_line_color Kolor przedniej (przerywanej) krawędzi przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_bin_fill_color Kolor wypełnienia przestrzeni ładunkowej ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_item_border_color Kolor krawędzi przedmiotu ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_fill_color Kolor wypełnienia ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_sbs_last_item_border_color Kolor krawędzi ostatniego przedmiotu na obrazku 'krok po kroku' ciąg znaków Dopuszczalne wartości: wartości kolorów RGB odseparowane przecinkami 'czerowny,zielony,niebieski', wartości 0-255; Przykład: '255,120,10'
images_format Format plików zwracanych obrazków ciąg znaków Dopuszczalne wartości: [ png , svg ]
images_sbs Generuje obrazki pokazujące proces pakowania 'krok po kroku' integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' nie będzie generowana, 1 - oznacza, że grafika pokazująca proces pakowania 'krok po kroku' będzie generowana
images_complete Generuj grafikę przedstawiającą obrazek końcowy zapakowania integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów nie będzie generowana, 1 - oznacza, że grafika przedstawiająca zapakowanie wszystkich przedmiotów będzie generowana
images_separated Generuj grafikę przedstawiającą umiejscowienie każdego przedmiotu osobno integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana
item_coordinates Zwraca współrzędne położenia (x, y, z) dla każdego z przedmiotów integer Dopuszczalne wartości: 0 [default] - oznacza, że grafika nie będzie generowana, 1 - oznacza, że grafika będzie generowana
stats Zwraca statystyki procesu pakowania (np. czas generowania obrazków) integer Dopuszczalne wartości: 0 [default] - oznacza, że statystyki nie zostaną zwrócone w odpowiedzi, 1 - oznacza, że statystyki zostaną zwrócone w odpowiedzi

Paramtery odpowiedzi

Nazwa parametru Opis Typ danych Dostępne wartości
bins_packed Lista zapakowanych przestrzeni ładunkowych tablica
errors Lista możliwych błędów, które wystąpiły w zapytaniu tablica Przykład: [{'level'}]; Możliwe zwracane wartości:'critical' - błąd krytyczy uniemożliwiający przeprowadzenie procesu pakowania, 'warning' - ostrzeżenie o nieprawidłowych danych w zapytaniu
status Status odpowiedzi integer Możliwe zwracane wartości: 1 - odpowiedź nie zawierała błędów krytycznych, 0 - odpowiedź zawierała błędy krytyczne.

Errors

Error Meaning
400 Bad Request -- Your request is invalid.