Picklist batches
Multiple picklists can be collected in a single run through the warehouse with picklist batches.
    
        | Name | Type | Description | 
    
        | idpicklist_batch | integer | Unique Picqer reference | 
    
        | picklist_batchid | string | Per-account batch ID | 
    
        | idwarehouse | integer | Linked to resource Warehouse | 
    
        | type | string | Type of batch: "singles" or "normal" | 
    
        | status | string | "open" or "completed" | 
    
        | assigned_to | array | Data of the assigned user (iduser, full_name, username) | 
    
        | completed_by | array | Data of the user that completed the batch (iduser, full_name, username) | 
    
        | total_products | integer | Total amount of products in the batch | 
    
        | total_picklists | integer | Amount of picklists in the batch | 
    
        | completed_at | datetime | Date and time from when the batch became completed | 
    
        | created_at | datetime | Date and time from when the batch was created | 
    
        | updated_at | datetime | Date and time from when the batch was last updated | 
    
        GET
        https://example.picqer.com/api/v1/picklists/batches
    
    HTTP/1.1 200 OK
[
    {
        "idpicklist_batch": 3,
        "idwarehouse": 1,
        "picklist_batchid": 3,
        "type": "singles",
        "status": "open",
        "assigned_to": {
            "iduser": 2,
            "full_name": "Casper Bakker",
            "username": "casper"
        },
        "completed_by": null,
        "total_products": 31,
        "total_picklists": 25,
        "completed_at": null,
        "created_at": "2020-03-18 12:21:25",
        "updated_at": "2020-03-18 12:21:25"
    }
]
    
 
You can filter the picklists with the following parameters. Add these filters as querystring parameters to the URL.
    
        | Attribute | Description | Example | 
    
        | idwarehouse | Get batches after this idwarehouse |  | 
    
        | assigned_to_iduser | Get batches assigned to this iduser |  | 
    
        | type | Get batches from only a single type, only "singles" or "normal" allowed | normal | 
    
        | status | Get batches with this status, only "open" and "completed" allowed | open | 
    
        | products | Array of products for this picklist batch, from all the picklists combined | open | 
    
        GET
        https://example.picqer.com/api/v1/picklists/batches/{idpicklist_batch}
    
    HTTP/1.1 200 OK
{
    "idpicklist_batch": 3,
    "idwarehouse": 1,
    "picklist_batchid": 3,
    "type": "singles",
    "status": "open",
    "assigned_to": {
        "iduser": 2,
        "full_name": "Casper Bakker",
        "username": "casper"
    },
    "completed_by": null,
    "total_products": 31,
    "total_picklists": 25,
    "completed_at": null,
    "created_at": "2020-03-18 12:21:25",
    "updated_at": "2020-03-18 12:21:25",
    "products": [
        {
            "idproduct": 262,
            "name": "Opel HC-V100 Lounge Black",
            "productcode": "TF748199",
            "productcode_supplier": "OPE-TF748199",
            "stock_location": "A.4.8.3",
            "image": "https:\/\/example.org\/original.jpg",
            "barcodes": [
                "9228161561252"
            ],
            "productfields": [],
            "amount": 2,
            "amount_picked": 0,
            "amount_collected": 0
        },
        {
            "idproduct": 236,
            "name": "Opel Record Needle Blue Wide-Format Black\/White",
            "productcode": "HQ725608",
            "productcode_supplier": "OPE-HQ725608",
            "stock_location": "A.5.1.2",
            "image": "https:\/\/example.org\/original.jpg",
            "barcodes": [
                "2699996573289"
            ],
            "productfields": [],
            "amount": 1,
            "amount_picked": 0,
            "amount_collected": 0
        }
    ],
    "picklists": [
        {
            "idpicklist": 422,
            "picklistid": "P2021-1002",
            "reference": null,
            "status": "new",
            "alias": "A",
            "picking_container": null,
            "total_products": 1,
            "delivery_name": "Stephan Groen",
            "has_notes": false,
            "has_customer_remarks": false,
            "customer_remarks": null,
            "created_at": "2021-07-29 10:53:18"
        },
        {
            "idpicklist": 763,
            "picklistid": "P2021-1003",
            "reference": null,
            "status": "new",
            "alias": "B",
            "picking_container": null,
            "total_products": 1,
            "delivery_name": "Stephan Groen",
            "has_notes": false,
            "has_customer_remarks": false,
            "customer_remarks": null,
            "created_at": "2021-07-29 11:34:28"
        }
    ]
}
 
PDF of a picklist batch can be retrieved as a direct PDF document from the API.
You will get different documents based on the type, a normal batch has a different format then a singles batch.
    
        GET
        https://example.picqer.com/api/v1/picklists/batches/{idpicklist_batch}/pdf
    
    HTTP/1.1 200 OK
--PDF Blob--
 
You can also get the batch PDF with the picklists or packinglists of the linked picklists included. There you can add the querystring parameter "includePicklists" or "includePackinglists", like "https://example.picqer.com/api/v1/picklists/batches/{idpicklist_batch}/pdf?includePicklists".
You can create a new batch via the API. You can create one based on a batch preset, or by providing specific picklists.
Use idpicklist_batch_preset to create a new batch based on a preset.
Use idpicklists to create a new batch with specific picklists in it.
    
        POST
        https://example.picqer.com/api/v1/picklists/batches
    
    {
    "idpicklists": [
        422,
        763
    ]
}
    HTTP/1.1 201 Created
{
    "idpicklist_batch": 9,
    "idwarehouse": 1,
    "picklist_batchid": 9,
    "type": "singles",
    "status": "open",
    "assigned_to": null,
    "completed_by": null,
    "total_products": 2,
    "total_picklists": 2,
    "completed_at": null,
    "created_at": "2021-07-30 16:13:53",
    "updated_at": "2021-07-30 16:13:53",
    "idfulfilment_customer": null,
    "products": [
        {
            "idproduct": 512,
            "name": "Juliana Short-Sleeve Tee-XL-Black",
            "productcode": "WS07-XL-Black",
            "productcode_supplier": null,
            "image": null,
            "barcodes": [
                "WS07-XL-Black"
            ],
            "productfields": [],
            "stock_location": "",
            "amount": 2,
            "amount_picked": 0,
            "amount_collected": 0
        }
    ],
    "picklists": [
        {
            "idpicklist": 422,
            "picklistid": "P2021-1002",
            "reference": null,
            "status": "new",
            "alias": "A",
            "picking_container": null,
            "total_products": 1,
            "delivery_name": "Stephan Groen",
            "has_notes": false,
            "has_customer_remarks": false,
            "customer_remarks": null,
            "created_at": "2021-07-29 10:53:18"
        },
        {
            "idpicklist": 763,
            "picklistid": "P2021-1003",
            "reference": null,
            "status": "new",
            "alias": "B",
            "picking_container": null,
            "total_products": 1,
            "delivery_name": "Stephan Groen",
            "has_notes": false,
            "has_customer_remarks": false,
            "customer_remarks": null,
            "created_at": "2021-07-29 11:34:28"
        }
    ]
}
 
You can only add open picklists to a batch. All picklists should be for the same warehouse.
If you want to add a picklist to an existing batch, use this endpoint.
The picklist should be for the same warehouse as the batch is linked to.
Picklists with more then 1 product can only be added to normal batches, not to singles batches.
    
        POST
        https://example.picqer.com/api/v1/picklists/batches/{idpicklist_batch}/picklists
    
    {
    "idpicklist": 382
}
    HTTP/1.1 201 Created
{
    "idpicklist_batch": 9,
    "idwarehouse": 1,
    ...
    "picklists": [
        {
            "idpicklist": 422,
            "picklistid": "P2021-1002",
            "reference": null,
            "status": "new",
            "alias": "A",
            "picking_container": null,
            "total_products": 1,
            "delivery_name": "Stephan Groen",
            "has_notes": false,
            "has_customer_remarks": false,
            "customer_remarks": null,
            "created_at": "2021-07-29 10:53:18"
        },
        {
            "idpicklist": 763,
            "picklistid": "P2021-1003",
            "reference": null,
            "status": "new",
            "alias": "B",
            "picking_container": null,
            "total_products": 1,
            "delivery_name": "Stephan Groen",
            "has_notes": false,
            "has_customer_remarks": false,
            "customer_remarks": null,
            "created_at": "2021-07-29 11:34:28"
        },
        {
            "idpicklist": 382,
            "picklistid": "P2021-1004",
            "reference": null,
            "status": "new",
            "alias": "C",
            "picking_container": null,
            "total_products": 1,
            "delivery_name": "Stephan Groen",
            "has_notes": false,
            "has_customer_remarks": false,
            "customer_remarks": null,
            "created_at": "2021-07-29 11:34:28"
        }
    ]
}
 
You can remove (or unlink) a picklist from a batch. The picklist will still exist, but it is unlinked from the batch.
    
        DELETE
        https://example.picqer.com/api/v1/picklists/batches/{idpicklist_batch}/picklists/{idpicklist}
    
    HTTP/1.1 200 OK
{
    "idpicklist_batch": 9,
    "idwarehouse": 1,
    ...
    "picklists": [
        {
            "idpicklist": 422,
            "picklistid": "P2021-1002",
            "reference": null,
            "status": "new",
            "alias": "A",
            "picking_container": null,
            "total_products": 1,
            "delivery_name": "Stephan Groen",
            "has_notes": false,
            "has_customer_remarks": false,
            "customer_remarks": null,
            "created_at": "2021-07-29 10:53:18"
        }
    ]
}
 
You can assign (or unassign) a batch to a user. This will also assign all included picklists to the same user.
Use the iduser of the user to assign, or use `null` to unassign the batch.
    
        POST
        https://example.picqer.com/api/v1/picklists/batches/{idpicklist_batch}/assign
    
    {
    "iduser": 233
}
    HTTP/1.1 200 OK
{
    "idpicklist_batch": 9,
    "idwarehouse": 1,
    "assigned_to": {
        "iduser": 2,
        "full_name": "John Vorhees",
        "username": "john"
    },
    ...
}
 
If you want to view all picklists of a specific product in a picklist batch, you can retrieve this through the API.
    
        GET
        https://example.picqer.com/api/v1/picklists/batches/{idpicklist_batch}/products/{idproduct}/picklists
    
    
[
    {
        "idpicklist": 1,
        "picklistid": "P2024-1001",
        "idcustomer": 44,
        "idorder": 776,
        "idreturn": null,
        "idwarehouse": 1,
        "idtemplate": 1,
        "idpicklist_batch": 83,
        "idshippingprovider_profile": null,
        "deliveryname": "Amelia Zevenboom",
        "deliverycontact": null,
        "deliveryaddress": "Kuipershof 85",
        "deliveryaddress2": null,
        "deliveryzipcode": "6461JD",
        "deliverycity": "Koningsbosch",
        "deliveryregion": "Noord-Brabant",
        "deliverycountry": "NL",
        ...
        "products": [
            {
                "idpicklist_product": 409,
                "idproduct": 69,
                "idorder_product": 1039,
                "idreturn_product_replacement": null,
                "idvatgroup": 1,
                "productcode": "ZV329330",
                "name": "Panasonic Eco Drive Black/White",
                "remarks": null,
                "amount": 1,
                "amountpicked": 0,
                "amount_picked": 0,
                "price": 300.73,
                "weight": 2930,
                "stocklocation": "B.2.3.3",
                "stock_location": "B.2.3.3",
                "partof_idpicklist_product": null,
                "has_parts": false,
                "pick_locations": [
                    {
                        "idlocation": 404,
                        "name": "B.2.3.3",
                        "amount": 1
                    }
                ]
            }
        ],
        "comment_count": 0
    },
    {
        "idpicklist": 2,
        "picklistid": "P2024-1001",
        "idcustomer": 5,
        "idorder": 684,
        "idreturn": null,
        "idwarehouse": 1,
        "idtemplate": 1,
        "idpicklist_batch": 83,
        "idshippingprovider_profile": null,
        "deliveryname": "Seth Olykan",
        "deliverycontact": null,
        "deliveryaddress": "Erhoutlaan 24-d",
        "deliveryaddress2": null,
        "deliveryzipcode": "3132CS",
        "deliverycity": "Barsingerhorn",
        "deliveryregion": "Drenthe",
        "deliverycountry": "NL",
        ...
        "products": [
            {
                "idpicklist_product": 516,
                "idproduct": 69,
                "idorder_product": 902,
                "idreturn_product_replacement": null,
                "idvatgroup": 1,
                "productcode": "ZV329330",
                "name": "Panasonic Eco Drive Black/White",
                "remarks": null,
                "amount": 1,
                "amountpicked": 1,
                "amount_picked": 1,
                "price": 300.73,
                "weight": 2930,
                "stocklocation": "B.2.3.3",
                "stock_location": "B.2.3.3",
                "partof_idpicklist_product": null,
                "has_parts": false,
                "pick_locations": [
                    {
                        "idlocation": 404,
                        "name": "B.2.3.3",
                        "amount": 1
                    }
                ]
            }
        ],
        "comment_count": 0
    }
]