Orders
Orders are sales you made to customers that now need to be fulfilled.
- Create an order. The order will be created with status 'concept'.
- If desired, add tags to the order.
- Mark the order as 'processing'. If the products are in stock, a picklist will be created automatically. If the products are not in stock, backorders will be created.
The optional fields will be filled based on the selected customer, if fields are empty.
Name |
Type |
Required |
Description |
idorder |
integer |
generated |
Unique Picqer reference |
idcustomer |
integer |
optional |
Linked to resource Customers, when idcustomer is not given, a guest-order will be created |
idtemplate |
integer |
optional |
Linked to resource Templates, if null the default template will be selected |
idshippingprovider_profile |
integer |
optional |
The preferred shipping provider profile for this order |
orderid |
integer |
generated |
Per-account order number |
deliveryname |
string |
optional* |
Name of delivery address |
deliverycontactname |
string |
optional |
Contact name of delivery address |
deliveryaddress |
string |
optional |
Address line of delivery address |
deliveryaddress2 |
string |
optional |
Second address line. Not accepted by all shipping providers |
deliveryzipcode |
string |
optional |
ZIP code of delivery address |
deliverycity |
string |
optional |
City of delivery address |
deliveryregion |
string |
optional |
Region, province or state of delivery address |
deliverycountry |
string |
optional* |
Country of delivery address (needs to be ISO 3166 2-char code) |
full_delivery_address |
string |
optional |
Delivery address formatted as they do locally |
invoicename |
string |
optional* |
Name of invoice address |
invoicecontactname |
string |
optional |
Contact name of invoice address |
invoiceaddress |
string |
optional |
Address line of invoice address |
invoiceaddress2 |
string |
optional |
Second address line. Not accepted by all invoice providers. |
invoicezipcode |
string |
optional |
ZIP code of invoice address |
invoicecity |
string |
optional |
City of invoice address |
invoiceregion |
string |
optional |
Region, state or province of invoice address |
invoicecountry |
string |
optional* |
Country of invoice address (needs to be ISO 3166 2-char code) |
full_invoice_address |
string |
optional |
Invoice address formatted as they do locally |
telephone |
string |
optional |
Telephone number of the customer |
emailaddress |
string |
optional |
Email address of the customer |
reference |
string |
optional |
Reference for customer, will be printed on invoice and picking list |
customer_remarks |
string |
optional |
Remarks from the customer, will be printed on picking and packing list |
partialdelivery |
boolean |
optional |
If Picqer AutoSplit is enabled, order can be split over multiple picklists over multiple warehouses. If disabled, it will wait for all products to be available |
discount |
float |
optional |
Discount percentage of order |
invoiced |
boolean |
optional |
If this order is already invoiced, set this to true. This will make sure Picqer will not invoice this order. |
status |
string |
generated |
Status of the order (concept, expected, processing, paused, completed or cancelled) |
via_portal |
boolean |
generated |
If this order was placed through the customer portal |
idfulfilment_customer |
integer |
optional |
Only for Picqer Fulfilment: Linked to belonging fulfilment customer |
warehouses |
array |
optional |
Warehouses that can be used to fulfil this order. If not provided, it will be filled with all warehouses that accept orders. |
tags |
array |
optional |
Tags linked to this order |
pickup_point_data |
array |
optional |
Information about pickup point for shipping provider See examples for pickup point data |
preferred_delivery_date |
date |
optional |
Customer supplied preferred delivery date, in format yyyy-mm-dd. |
language |
string |
optional |
Language used for communication with customer, 'nl' or 'en' |
products |
array |
required |
Products in this order |
products.idproduct |
integer |
required |
Linked to resource Products. Not required if the productcode is provided instead. |
products.amount |
integer |
required |
Amount of products |
products.productcode |
varchar |
optional |
Override the productcode |
products.name |
varchar |
optional |
Override the name |
products.remarks |
varchar |
optional |
Override the description of the product |
products.price |
float |
optional |
Override the price |
products.idvatgroup |
integer |
optional |
Override the vatgroup, linked to resource Vatgroups |
pricelists |
array |
optional |
Pricelists selected for this order |
picklists |
array |
optional |
Contains details of the picklists linked to the order |
*) These fields are required, but if an idcustomer is provided Picqer will copy these fields from the customer object.
GET
https://example.picqer.com/api/v1/orders
HTTP/1.1 200 OK
[
{
"idorder": 6576,
"idcustomer": 5633,
"idtemplate": 338,
"idshippingprovider_profile": null,
"orderid": "30130012",
"deliveryname": "Triangle B.V.",
"deliverycontactname": "Jos Triepels",
"deliveryaddress": "Koppeling 15",
"deliveryaddress2": null,
"deliveryzipcode": "6983 HX",
"deliverycity": "Doesburg",
"deliveryregion": null,
"deliverycountry": "NL",
"full_delivery_address": "Triangle B.V.\nJos Triepels\nKoppeling 15\n6983 HX Doesburg\nNederland",
"invoicename": "Triangle B.V.",
"invoicecontactname": "Crediteurenadministratie",
"invoiceaddress": "Koppeling 15",
"invoiceaddress2": null,
"invoicezipcode": "6983 HX",
"invoicecity": "Doesburg",
"invoiceregion": null,
"invoicecountry": "NL",
"full_invoice_address": "Triangle B.V.\nCrediteurenadministratie\nKoppeling 15\n6983 HX Doesburg\nNederland",
"telephone": null,
"emailaddress": null,
"reference": null,
"customer_remarks": null,
"pickup_point_data": null,
"partialdelivery": true,
"auto_split": true,
"invoiced": false,
"preferred_delivery_date": null,
"discount": 0,
"calculatevat": true,
"language": "nl",
"status": "processing",
"via_portal": false,
"public_status_page": "https://example.picqer.com/s/eB1KLYRIN41p5xt2",
"created": "2013-07-17 16:01:42",
"updated": "2013-07-17 16:02:14",
"warehouses": [
1829,
2811
],
"tags": {
"TopWebshop": {
"idtag": 1075,
"title": "TopWebshop",
"color": "#5993be",
"inherit": true,
"textColor": "#000000"
},
"SummerProducts": {
"idtag": 1156,
"title": "SummerProducts",
"color": "#c7b4f6",
"inherit": true,
"textColor": "#000000"
}
},
"products": [
{
"idorder_product": 86868,
"idproduct": 633,
"idvatgroup": 18,
"productcode": "6531-RB-7-9",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"remarks": "",
"price": 64.46,
"amount": 1,
"amount_cancelled": 0,
"weight": 283,
"partof_idorder_product": null,
"has_parts": true
},
{
"idorder_product": 86869,
"idproduct": 653,
"idvatgroup": 18,
"productcode": "6531-RE",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"remarks": "",
"price": 164.46,
"amount": 1,
"amount_cancelled": 0,
"weight": 1821,
"partof_idorder_product": null,
"has_parts": true
}
],
"pricelists": [],
"picklists": []
},
{
"idorder": 6754,
"idcustomer": 5633,
"orderid": "20130014",
"deliveryname": "Triangle B.V.",
"deliverycontactname": "Jos Triepels",
"deliveryaddress": "Koppeling 15",
"deliveryaddress2": null,
"deliveryzipcode": "6983 HX",
"deliverycity": "Doesburg",
"deliveryregion": null,
"deliverycountry": "NL",
"full_delivery_address": "Triangle B.V.\nJos Triepels\nKoppeling 15\n6983 HX Doesburg\nNederland",
"invoicename": "Triangle B.V.",
"invoicecontactname": "Crediteurenadministratie",
"invoiceaddress": "Koppeling 15",
"invoiceaddress2": null,
"invoicezipcode": "6983 HX",
"invoicecity": "Doesburg",
"invoiceregion": null,
"invoicecountry": "NL",
"full_invoice_address": "Triangle B.V.\nCrediteurenadministratie\nKoppeling 15\n6983 HX Doesburg\nNederland",
"telephone": null,
"emailaddress": null,
"reference": null,
"customer_remarks": null,
"pickup_point_data": null,
"partialdelivery": true,
"auto_split": true,
"invoiced": false,
"preferred_delivery_date": null,
"discount": 0,
"calculatevat": true,
"language": "nl",
"status": "processing",
"via_portal": false,
"public_status_page": "https://example.picqer.com/s/eB1KLYRIN41p5xt2",
"created": "2013-07-17 16:11:42",
"updated": "2013-07-17 16:12:14",
"warehouses": [
1829,
2811
],
"tags": {
"TopWebshop": {
"idtag": 1075,
"title": "TopWebshop",
"color": "#5993be",
"inherit": true,
"textColor": "#000000"
},
"SummerProducts": {
"idtag": 1156,
"title": "SummerProducts",
"color": "#c7b4f6",
"inherit": true,
"textColor": "#000000"
}
},
"products": [
{
"idorder_product": 86879,
"idproduct": 633,
"idvatgroup": 18,
"productcode": "6531-RB-7-9",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"remarks": "",
"price": 64.46,
"amount": 1,
"amount_cancelled": 0,
"weight": 9828,
"partof_idorder_product": null,
"has_parts": true
},
{
"idorder_product": 86880,
"idproduct": 653,
"idvatgroup": 18,
"productcode": "6531-RE",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"remarks": "",
"price": 164.46,
"amount": 1,
"amount_cancelled": 0,
"weight": 1821,
"partof_idorder_product": null,
"has_parts": true
}
],
"pricelists": [],
"picklists": [
{
"idpicklist": 53398250,
"picklistid": "P2013-1832",
"idcustomer": null,
"idorder": 6754,
"idreturn": null,
"idwarehouse": 2811,
"idtemplate": 6200,
"idshippingprovider_profile": 12638,
"deliveryname": "Triangle B.V.",
"deliverycontact": "Jos Triepels",
"deliveryaddress": "Koppeling 15",
"deliveryaddress2": "",
"deliveryzipcode": "6983 HX",
"deliverycity": "Doesburg",
"deliveryregion": "",
"deliverycountry": "NL",
"telephone": "",
"emailaddress": "",
"reference": "",
"assigned_to_iduser": null,
"invoiced": false,
"urgent": true,
"preferred_delivery_date": null,
"status": "new",
"totalproducts": 2,
"totalpicked": 2,
"snoozed_until": null,
"closed_by_iduser": null,
"closed_at": null,
"created": "2013-07-18 20:44:17",
"updated": "2013-07-19 13:58:54",
"idfulfilment_customer": null,
"comment_count": 0
}
]
}
]
You can filter the orders with the following parameters. Add these filters as querystring parameters to the URL.
Attribute |
Description |
Example |
search |
Search through the fields orderid, reference, customer name and customer contact name. |
|
sinceid |
Get the orders with a later idorder than given. |
201992 |
beforeid |
Get the orders with a smaller idorder than given. |
366672 |
sincedate |
Get the orders that are added after this date and time. |
2022-01-01 12:00:00 |
untildate |
Get the orders that are added before this date and time. |
2022-01-01 22:00:00 |
orderid |
Get the orders that have this value as orderid. |
O2015-29188 |
status |
Get the orders that have this status. |
concept |
reference |
Get the orders that have this value as reference. |
|
emailaddress |
Get the orders that have this value as email address. |
|
idcustomer |
Get all orders for this customer. |
|
idwarehouse |
Get the orders that can be delivered from this warehouse. |
|
GET
https://example.picqer.com/api/v1/orders/{idorder}
HTTP/1.1 200 OK
{
"idorder": 6576,
"idcustomer": 5633,
"idtemplate": 323,
"idshippingprovider_profile": null,
"orderid": "20130012",
"deliveryname": "Triangle B.V.",
"deliverycontactname": "Jos Triepels",
"deliveryaddress": "Koppeling 15",
"deliveryaddress2": null,
"deliveryzipcode": "6983 HX",
"deliverycity": "Doesburg",
"deliveryregion": null,
"deliverycountry": "NL",
"full_delivery_address": "Triangle B.V.\nJos Triepels\nKoppeling 15\n6983 HX Doesburg\nNederland",
"invoicename": "Triangle B.V.",
"invoicecontactname": "Crediteurenadministratie",
"invoiceaddress": "Koppeling 15",
"invoiceaddress2": null,
"invoicezipcode": "6983 HX",
"invoicecity": "Doesburg",
"invoiceregion": null,
"invoicecountry": "NL",
"full_invoice_address": "Triangle B.V.\nCrediteurenadministratie\nKoppeling 15\n6983 HX Doesburg\nNederland",
"telephone": null,
"emailaddress": null,
"reference": null,
"customer_remarks": null,
"pickup_point_data": null,
"partialdelivery": true,
"auto_split": true,
"invoiced": false,
"preferred_delivery_date": null,
"discount": 0,
"calculatevat": true,
"status": "complete",
"via_portal": false,
"public_status_page": "https://example.picqer.com/s/eB1KLYRIN41p5xt2",
"created": "2013-07-17 16:01:42",
"updated": "2013-07-17 16:02:14",
"warehouses": [
1829,
2811
],
"products": [
{
"idorder_product": 86868,
"idproduct": 633,
"idvatgroup": 18,
"productcode": "6531-RB-7-9",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"remarks": "",
"price": 64.46,
"amount": 1,
"amount_cancelled": 0,
"weight": 0,
"partof_idorder_product": null,
"has_parts": true
},
{
"idorder_product": 86879,
"idproduct": 653,
"idvatgroup": 18,
"productcode": "6531-RE",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"remarks": "",
"price": 164.46,
"amount": 1,
"amount_cancelled": 0,
"weight": 1821,
"partof_idorder_product": null,
"has_parts": true
}
],
"tags": {
"TopWebshop": {
"idtag": 1075,
"title": "TopWebshop",
"color": "#5993be",
"inherit": true,
"textColor": "#000000"
},
"SummerProducts": {
"idtag": 1156,
"title": "SummerProducts",
"color": "#c7b4f6",
"inherit": true,
"textColor": "#000000"
}
},
"orderfields": [
{
"idorderfield": 35,
"title": "Klantreferentie",
"value": "1029371980276"
}
],
"pricelists": [
1198
],
"picklists": [
{
"idpicklist": 53398250,
"picklistid": "P2013-1832",
"idcustomer": null,
"idorder": 6754,
"idreturn": null,
"idwarehouse": 2811,
"idtemplate": 6200,
"idshippingprovider_profile": 12638,
"deliveryname": "Triangle B.V.",
"deliverycontact": "Jos Triepels",
"deliveryaddress": "Koppeling 15",
"deliveryaddress2": "",
"deliveryzipcode": "6983 HX",
"deliverycity": "Doesburg",
"deliveryregion": "",
"deliverycountry": "NL",
"telephone": "",
"emailaddress": "",
"reference": "",
"assigned_to_iduser": null,
"invoiced": false,
"urgent": true,
"preferred_delivery_date": null,
"status": "new",
"totalproducts": 2,
"totalpicked": 2,
"snoozed_until": null,
"closed_by_iduser": null,
"closed_at": null,
"created": "2013-07-18 20:44:17",
"updated": "2013-07-19 13:58:54",
"idfulfilment_customer": null,
"comment_count": 0
}
]
}
An order will always be created with status ‘concept’. Once the order has status 'concept', you can process it. Tags can be added after the order has been created.
You can also provide 'productcode' instead of 'idproduct' to create an order.
POST
https://example.picqer.com/api/v1/orders
{
"idcustomer": 5633,
"products": [
{
"idproduct": 633,
"amount": 1
}
],
"orderfields": [
{
"idorderfield": 35,
"value": "1029371980276"
}
]
}
HTTP/1.1 201 Created
{
"idorder": 16860,
"idcustomer": 5633,
"orderid": "20130028",
"deliveryname": "Klaassen B.V.",
"deliverycontactname": null,
"deliveryaddress": "De Koppeling 15a",
"deliveryaddress2": null,
"deliveryzipcode": "6986 CS",
"deliverycity": "Doesburg",
"deliveryregion": null,
"deliverycountry": "NL",
"invoicename": "Klaassen B.V.",
"invoicecontactname": null,
"invoiceaddress": "De Koppeling 15a",
"invoiceaddress2": null,
"invoicezipcode": "6986 CS",
"invoicecity": "Doesburg",
"invoiceregion": null,
"invoicecountry": "NL",
"reference": null,
"partialdelivery": true,
"discount": 0,
"pickup_point_data": null,
"status": "concept",
"public_status_page": "https://example.picqer.com/s/eB1KLYRIN41p5xt2",
"created": "2013-07-17 21:28:17",
"updated": "2013-07-17 21:28:17",
"warehouses": [
1829,
2811
],
"products": [
{
"idproduct": 633,
"idvatgroup": 18,
"productcode": "6531-RB-7-9",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"remarks": "",
"price": 54.46,
"amount": 1,
"weight": 200
}
],
"orderfields": [
{
"idorderfield": 35,
"title": "Klantreferentie",
"value": "1029371980276"
}
],
"pricelists": [],
"picklists": []
}
Example of creating a guest order. Give idcustomer as null, but now you are required to provide the delivery and invoice name and address.
POST
https://example.picqer.com/api/v1/orders
{
"idcustomer": null,
"deliveryname": "John Strijbos",
"deliveryaddress": "Vrije Water 12",
"deliveryzipcode": "3928 DM",
"deliverycity": "Zeist",
"deliverycountry": "nl",
"invoicename": "John Strijbos",
"invoiceaddress": "Vrije Water 12",
"invoicezipcode": "3928 DM",
"invoicecity": "Zeist",
"invoicecountry": "nl",
"products": [
{
"idproduct": 633,
"amount": 1
}
]
}
You can change the order after you created it. This is helpful if you want to change the delivery address or you want to change the shipping method.
Only some parameters can be changed: idcustomer, idtemplate, deliveryname, deliverycontactname, deliveryaddress, deliveryaddress2, deliveryzipcode, deliverycity, deliveryregion, deliverycountry, invoicename, invoicecontactname, invoiceaddress, invoiceaddress2, invoicezipcode, invoicecity, invoiceregion, invoicecountry, telephone, emailaddress, calculatevat, discount, pickup_point_data, preferred_delivery_date, customer_remarks, reference, invoiced, idshippingprovider_profile, partialdelivery, language
PUT
https://example.picqer.com/api/v1/orders/{idorder}
{
"deliveryname": "Dirksen B.V.",
"reference": "Webshop order #9927882",
"idshippingprovider_profile": 821
}
HTTP/1.1 200 OK
{
"idorder": 16860,
"idcustomer": 5633,
"orderid": "20130028",
"deliveryname": "Dirksen B.V.",
"deliverycontactname": null,
"deliveryaddress": "De Koppeling 15a",
"deliveryaddress2": null,
"deliveryzipcode": "6986 CS",
"deliverycity": "Doesburg",
"deliveryregion": null,
"deliverycountry": "NL",
"invoicename": "Klaassen B.V.",
"invoicecontactname": null,
"invoiceaddress": "De Koppeling 15a",
"invoiceaddress2": null,
"invoicezipcode": "6986 CS",
"invoicecity": "Doesburg",
"invoicecountry": "NL",
"reference": "Webshop order #9927882",
"partialdelivery": true,
"discount": 0,
"pickup_point_data": null,
"status": "concept",
"via_portal": false,
"public_status_page": "https://example.picqer.com/s/eB1KLYRIN41p5xt2",
"idshippingprovider_profile": 821,
"created": "2013-07-17 21:28:17",
"updated": "2013-07-17 21:28:17",
"warehouses": [
1829,
2811
],
"products": [
{
"idproduct": 633,
"idvatgroup": 18,
"productcode": "6531-RB-7-9",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"remarks": "",
"price": 54.46,
"amount": 1,
"weight": 200
}
],
"orderfields": [
{
"idorderfield": 35,
"title": "Klantreferentie",
"value": "1029371980276"
}
],
"pricelists": [],
"picklists": []
}
Orders with the status 'expected' and 'concept' can be 'processed'. When you process an order it becomes final and cannot be edited anymore.
With processing Picqer will create a picklist or backorders for this order.
The processing itself will take place in the background after you received the response. This is why you still see the status 'concept' in the response. When you check back in after a minute or two, the order will be processed.
POST
https://example.picqer.com/api/v1/orders/{idorder}/process
HTTP/1.1 200 OK
{
"idorder": 16860,
"idcustomer": 5633,
"orderid": "20130028",
"deliveryname": "Klaassen B.V.",
"deliverycontactname": null,
"deliveryaddress": "De Koppeling 15a",
"deliveryaddress2": null,
"deliveryzipcode": "6986 CS",
"deliverycity": "Doesburg",
"deliveryregion": null,
"deliverycountry": "NL",
"invoicename": "Klaassen B.V.",
"invoicecontactname": null,
"invoiceaddress": "De Koppeling 15a",
"invoiceaddress2": null,
"invoicezipcode": "6986 CS",
"invoicecity": "Doesburg",
"invoicecountry": "NL",
"reference": null,
"partialdelivery": true,
"discount": 0,
"pickup_point_data": null,
"status": "concept",
"via_portal": false,
"public_status_page": "https://example.picqer.com/s/eB1KLYRIN41p5xt2",
"created": "2013-07-17 21:28:17",
"updated": "2013-07-17 21:31:09",
"warehouses": [
1829,
2811
],
"products": [
{
"idproduct": 633,
"idvatgroup": 18,
"productcode": "6531-RB-7-9",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"remarks": "",
"price": 54.46,
"amount": 1,
"weight": 200
}
],
"pricelists": [],
"picklists": []
}
Orders with the status 'processing' can be paused. For example, you can pause an order if the customer's address is incorrect, or if the customer contacts you to make changes to the order.
When you pause an order all underlying picklists will be paused, except if the picklist is snoozed. Future, newly created, picklists will also be automatically paused. Picklist that are unsnoozed will also be paused. Editing the order, as if it had the status 'processing', is still possible.
A reason for pausing is required. Read more about pausing in this support article
POST
https://example.picqer.com/api/v1/orders/{idorder}/pause
{
"reason": "A reason for pausing"
}
HTTP/1.1 200 OK
{
"idorder": 2918,
...
}
Orders that have the status 'paused' can be resumed. When you resume an order, the order status is put back to 'processing'. All underlying picklists will be resumed. Read more about pausing and resuming here
POST
https://example.picqer.com/api/v1/orders/{idorder}/resume
HTTP/1.1 200 OK
{
"idorder": 2918,
...
}
When you re-open an order, it will get the 'concept' status again and you can change the order. Only orders that are 'processing' without picklists can be reopend.
POST
https://example.picqer.com/api/v1/orders/{idorder}/reopen
HTTP/1.1 200 OK
{
"idorder": 2918,
...
}
Only orders with status 'concept' or 'expected' can be cancelled.
DELETE
https://example.picqer.com/api/v1/orders/{idorder}
HTTP/1.1 204 No Content
If you really want an order cancelled that is already processing or even completed, you can use the forced method. This will remove any attached picklists, even when they are already picked.
DELETE
https://example.picqer.com/api/v1/orders/{idorder}?force=true
HTTP/1.1 204 No Content
Only orders with status 'cancelled' can be used for undo cancellation.
POST
https://example.picqer.com/api/v1/orders/{idorder}/undo-cancellation
HTTP/1.1 200 OK
{
"idorder": 2918,
...
}
With this call you can get the status of all the order lines in the order. Per product you get the amount of products delivered, how many are in backorder, and how many are waiting to be picked.
GET
https://example.picqer.com/api/v1/orders/{idorder}/productstatus
HTTP/1.1 200 OK
{
"products": [
{
"idproduct": 633,
"productcode": "6531-RB-7-9",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"amount": 1,
"delivered": 1,
"backorder": 0,
"picklist": 0,
"allocated": 0
},
{
"idproduct": 653,
"productcode": "6531-RE",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"amount": 1,
"delivered": 0,
"backorder": 1,
"picklist": 0,
"allocated": 0
}
]
}
Do not use this endpoint for new implementations as it will be removed in the near future. Use the comments api instead.
Orders can have notes, which will be shown in the interface at the order and picklists. It will also show up on the printed picklists. It will never be shown to the customer.
GET
https://example.picqer.com/api/v1/orders/{idorder}/notes
HTTP/1.1 200 OK
[
{
"idorder_log":285078,
"iduser":24,
"idorder":119088,
"idpicklist":0,
"type":"note",
"action":null,
"description":"This is a special delivery, handle with care!",
"details":null,
"created_at":"2014-08-21 12:37:06"
}
]
Do not use this endpoint for new implementations as it will be removed in the near future. Use the comments api instead.
POST
https://example.picqer.com/api/v1/orders/{idorder}/notes
{
"note": "This is a special delivery, handle with care!"
}
HTTP/1.1 200 OK
{
"idorder_log":285078,
"iduser":24,
"idorder":119088,
"idpicklist":0,
"type":"comment",
"action":null,
"description":"This is a special delivery, handle with care!",
"details":null,
"created_at":"2014-08-21 12:37:06"
}
Orders can have tags linked to them.
GET
https://example.picqer.com/api/v1/orders/{idorder}/tags
HTTP/1.1 200 OK
[
{
"idtag":11,
"title":"Winter",
"color":"#03008a",
"inherit":false,
"textColor":"#FFFFFF"
},
{
"idtag":13,
"title":"Hoeden",
"color":"#03008a",
"inherit":false,
"textColor":"#FFFFFF"
}
]
Associate a tag with an order.
POST
https://example.picqer.com/api/v1/orders/{idorder}/tags
{
"idtag": 223
}
HTTP/1.1 201 Created
{
"idtag":223,
"title":"Zomer",
"color":"#03008a",
"inherit":false,
"textColor":"#FFFFFF"
}
DELETE
https://example.picqer.com/api/v1/orders/{idorder}/tags/{idtag}
HTTP/1.1 204 No Content
When an order has the status 'concept', there is no stock reserved for the order. With 'allocating' you can tell Picqer to lower the free stock, so your webshop will only show the actual available stock.
POST
https://example.picqer.com/api/v1/orders/{idorder}/allocate
HTTP/1.1 200 OK
{
"idorder": 2918,
...
}
When an order has allocated stock, you can release that allocation with a de-allocate.
POST
https://example.picqer.com/api/v1/orders/{idorder}/deallocate
HTTP/1.1 200 OK
{
"idorder": 2918,
...
}
When an order has backorders, you can prioritize all backorders of this order by sending this request. Any available stock will first be used for these backorders.
POST
https://example.picqer.com/api/v1/orders/{idorder}/prioritise
HTTP/1.1 200 OK
{
"idorder": 2918,
...
}
If there are available backorders, you can create a picklist for the available products by processing the backorders for a specific order. This will ignore the AutoSplit setting and always create a picklist for the available backorders.
Keep in mind that virtual compositions can only be placed on picklists if a whole composition is complete, so all parts are available for a composition.
POST
https://example.picqer.com/api/v1/orders/{idorder}/process-backorders
HTTP/1.1 200 OK
{
"idorder": 2918,
...
}
Orders older than 7 days can be anonymized. The name of the customer will be changed to 'Anonymous' and the addresses will be removed. If there is a customer linked to the order, the customer and any saved customer addresses will also be removed.
Documents regarding shipments and tracking URLs will be removed as well.
POST
https://example.picqer.com/api/v1/orders/{idorder}/anonymize
HTTP/1.1 200 OK
{
"idorder": 6576,
"idcustomer": 5633,
"idtemplate": 323,
"idshippingprovider_profile": null,
"orderid": "20130012",
"deliveryname": "Anonymous",
"deliverycontactname": "null",
"deliveryaddress": "null",
"deliveryaddress2": null,
"deliveryzipcode": "null",
"deliverycity": "null",
"deliveryregion": null,
"deliverycountry": "NL",
"full_delivery_address": "Anonymous\nNederland",
"invoicename": "Anonymous",
"invoicecontactname": "null",
"invoiceaddress": "null",
"invoiceaddress2": null,
"invoicezipcode": "null",
"invoicecity": "null",
"invoiceregion": null,
"invoicecountry": "NL",
"full_invoice_address": "Anonymous\nNederland",
"telephone": null,
"emailaddress": null,
"reference": null,
"customer_remarks": null,
"pickup_point_data": null,
"partialdelivery": true,
"auto_split": true,
"invoiced": false,
"preferred_delivery_date": null,
"discount": 0,
"calculatevat": true,
"status": "complete",
"public_status_page": "https://example.picqer.com/s/eB1KLYRIN41p5xt2",
"created": "2023-07-17 16:01:42",
"updated": "2023-07-17 16:02:14",
"warehouses": [
1829,
2811
],
"products": [
{
"idorder_product": 86868,
"idproduct": 633,
"idvatgroup": 18,
"productcode": "6531-RB-7-9",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"remarks": "",
"price": 64.46,
"amount": 1,
"amount_cancelled": 0,
"weight": 0,
"partof_idorder_product": null,
"has_parts": true
},
{
"idorder_product": 86879,
"idproduct": 653,
"idvatgroup": 18,
"productcode": "6531-RE",
"name": "Hyperkewl Evaporative Cooling Vest Ultra Blue 7-9yr",
"remarks": "",
"price": 164.46,
"amount": 1,
"amount_cancelled": 0,
"weight": 1821,
"partof_idorder_product": null,
"has_parts": true
}
],
"tags": {
"TopWebshop": {
"idtag": 1075,
"title": "TopWebshop",
"color": "#5993be",
"inherit": true,
"textColor": "#000000"
},
"SummerProducts": {
"idtag": 1156,
"title": "SummerProducts",
"color": "#c7b4f6",
"inherit": true,
"textColor": "#000000"
}
},
"orderfields": [
{
"idorderfield": 35,
"title": "Klantreferentie",
"value": "1029371980276"
}
],
"pricelists": [
1198
],
"picklists": [
{
"idpicklist": 53398250,
"picklistid": "P2013-1832",
"idcustomer": null,
"idorder": 6754,
"idreturn": null,
"idwarehouse": 2811,
"idtemplate": 6200,
"idshippingprovider_profile": 12638,
"deliveryname": "Anonymous",
"deliverycontact": "null",
"deliveryaddress": "null",
"deliveryaddress2": "null",
"deliveryzipcode": "null",
"deliverycity": "null",
"deliveryregion": "",
"deliverycountry": "NL",
"telephone": "",
"emailaddress": "",
"reference": "",
"assigned_to_iduser": null,
"invoiced": false,
"urgent": true,
"preferred_delivery_date": null,
"status": "new",
"totalproducts": 2,
"totalpicked": 2,
"snoozed_until": null,
"closed_by_iduser": null,
"closed_at": null,
"created": "2023-07-18 20:44:17",
"updated": "2023-07-19 13:58:54",
"idfulfilment_customer": null,
"comment_count": 0
}
]
}
You can use the endpoint /api/v1/orders/{idorder}/products to only get the details of ordered products for an order.
To add a new product to an existing order, you can POST that product with the following example.
You can only add 1 product per call. Required fields are: idproduct and amount. Picqer will auto-complete the name and price, but you can also override those. You can only add products to an order with status 'concept'.
POST
https://example.picqer.com/api/v1/orders/{idorder}/products
{
"idproduct": 1105257,
"price": 12.95,
"amount": 1
}
HTTP/1.1 200 OK
{
"idorder_product": 1272513,
"idproduct": 1105248,
"idvatgroup": 5,
"productcode": "AR2954212",
"name": "Philips Hue kit",
"remarks": null,
"price": 12.95,
"amount": 1,
"amount_cancelled": null,
"weight": 1793,
"partof_idorder_product": null,
"has_parts": null
}
To update a product, you can send a PUT request to endpoint /api/v1/orders/{idorder}/products/{idorder_product} to update name, price, amount or remarks. Amounts can only be changed if the order has status 'concept'.
To delete an ordered product, send a DELETE request to endpoint /api/v1/orders/{idorder}/products/{idorder_product}. You can only remove products from an order with the status 'concept'.
You can use the endpoint /api/v1/orders/{idorder}/orderfields to only get the details of orderfields for an order. We only show you orderfields that have values for this order.
You can add and update the value of orderfields with a PUT request with the idorderfield of an existing orderfield in the URL.
You can only add or update 1 orderfield per call. Required fields are: value.
PUT
https://example.picqer.com/api/v1/orders/{idorder}/orderfields/{idorderfield}
{
"value": "Johns"
}
HTTP/1.1 200 OK
{
"idorderfield": 3827,
"title": "Group",
"value": "Johns"
}
To delete an orderfield for an order, send a DELETE request to endpoint /api/v1/orders/{idorder}/orderfields/{idorderfield}. You can only update the field to value `null` to remove the value of an orderfield.
Comments are supported on orders.