An order is a request from the merchant for an outbound shipment of the merchant’s inventory. Each order is closely tracked through picking and packing all of the way to the time it is placed on the carrier’s truck, even including which pallet the packages were loaded onto. When an order has begun picking it is split (if needed) into “Shipments” based on the most efficient way to meet carrier size and weight limitations. Each “shipment” therefore typically results in only one package although under some circumstances may still require more than one package.
order.create (string|null $storeCode, object|array $items, object $address, object $info, object $flags = [])Create a new order. This operation will only be successful if the inventory is available and the unique_id is unique (if specified).
Store code. If not specified will default to the configured default store. Merchants with multiple stores may specify which store the order belongs to.
Use to specify the Barcode of the item being ordered as an alternative to using a SKU. The fields sku, barcode, and vendor_sku will be evaluated in that order, and the first matching product found will be selected.
Use to specify the Vendor SKU of the item being ordered as an alternative to using a SKU or Barcode. The fields sku, barcode, and vendor_sku will be evaluated in that order, and the first matching product found will be selected. As Vendor SKUs are not unique, if the value matches multiple products then an error will be thrown.
Specify a declared unit value. Specifying the unit declared value is preferred over specifying only the entire order declared value so that an accurate amount can be computed for partial fulfillments. If a value is specified for an order item, then "declared_value_service": true will need to be sent in with the $info object section.
Specify a customs unit value. Specifying the unit customs value is preferred over specifying only the entire order customs value so that an accurate amount can be computed for partial fulfillments.
The number of inner containers, or number of eaches if there are no inner containers, per outer container. Must be a positive whole number. If no BOM is found, individual units will be added.
This field is optional and if not specified an auto-incrementing number will be assigned. Uniqueness based on this field is enforced so an error will be given if an order with the same unique_id already exists. This ‘unique_id’ is the id used for other API calls such as “order.info”.
This field is optional and if not specified will be left blank. Uniqueness based on this field is not enforced (two orders may have the same order_ref value). If specified, this number will appear on packing slips in place of the unique_id.
The “Note” adds a status history to the order that only you and the warehouse staff may see. Adding a note will not affect the way the order is picked and packed and is not required.
Values can be none, any, adult, indirect, or default.
*Supported by FedEx.
none — No signature requirement.
any — The package(s) will be shipped with the “Direct” signature required (recipient of any age).
adult — The package(s) will be shipped with the Adult Signature Required option (21 years or older).
indirect — The package(s) will be shipped with the indirect signature required (If indirect is not supported by the carrier, this option will fall back to any).
default — May be used to defer to the default based on the carrier service type (If default is not supported by the carrier, this option will fall back to none).
If the signature requirement is not specified it will fall back to default for HazMat orders or none for all others.
Reason for export. Values can be sold, not_sold, gift, sample, repair_return, personal_effects. If not specified will default to sold. Only applicable to international orders.
If ‘true’ then the order or the package(s) will be shipped with declared_value_service requested. Only the unit_declared_value must be specified for at least one SKU or declared_value for the order, but not both. If not specified will default to ‘false’.
Needs to be set if "declared_value_service": true and "unit_declared_value" is not set on any individual product SKU being ordered. e.g. "declared_value": "40.50"
If specified, sets this order’s backorder policy. Order will use specified policy instead of store’s default policy. Values can be default, all_or_nothing, as_available, or up_to_X. If not specified will default to "default".
all_or_nothing - Accept order but do not ship anything until all items are in stock.
as_available - No limit to number or frequency of additional shipments.
up_to_X shipments - Same as “As Available”, but changes to All or Nothing before shipping Xth shipment.
When using up_to_X, “X” represent a positive integer number. Example: { "backorder_policy": "up_to_3" }
If specified, sets this order’s priority. Setting the priority will boost or suppress this order’s priority in relation to other orders for the same products. Valid input are values in the range 0 -100. Lower numbers are higher in priority. If not specified will default to 50.
If specified, the requested ship date will determine if the merchant wishes for the item to be shipped on the same day or not. Whether or not this date becomes the Target Ship Date depends on the merchant’s target ship date cutoff time and the time the order is placed. Format: YYYY-MM-DD
If specified, the order will be placed in “hold” status until this date and time. May be specified as a date or a date and time. The timezone is assumed to be the global default timezone if not specified. If a time is not specified it is assumed to be 00:00:00 (12:00 am). Format: YYYY-MM-DD or YYYY-MM-DDThh:mm:ss or YYYY-MM-DDThh:mm:ssZ
The ID number of a Third Party Billing Account Group. If unset or null, and a default group is configured, the default group will be used. Set to 0 to disable third party billing.
Duties Payor. Values can be default, shipper, recipient, third_party. If not specified will default to default. Only applicable to international orders.
order.bulk_create (object $orders)Create multiple new orders in a single request. This method is significantly faster than submitting orders one at a time. If an error occurs while processing an order, processing will continue with the next order.
An object with keys providing a reference for each order, which will be used in the response, and values which are an array of arguments as accepted by the order.create endpoint.
Copy
{ "mykey1": [ /* First order arguments */ ], "mykey2": [ /* Second order arguments */ ], "mykey3": [ /* Etc */ ]}
order.edit (string $orderUniqueId, object $address, object $info, object $customFields)Modify the Shipping Address and/or the Order Additional Data for the existing order.
An object with an operation name as the key and an object containing the Order Custom Field data for all operations except the remove operation. The remove operation only requires a list of custom field codes.
Allowed operations: set, add, remove, add_option, remove_option.
set - Replace all values.
add - Add new fields to existing, replace old values.
remove - Remove only fields specified.
add_option - Multi-selects only. Add an option without unsetting existing options.
remove_option - Multi-selects only. Remove an option without unsetting other options not listed.
order.search (null|object $filters, array $options = [], null|string|object $fields = [])Retrieve list of orders by filters. Order data can be customized by specifying properties to retrieve.
results - The matching records as an array of objects. Each object will contain the specified (or default if no fields parameter was given) Order Properties.
totalCount - The total number of records that match the query - this may be more than the number of records returned.
numPages - The number of pages of records with the given page size.
order.cancel (string $uniqueOrderId, array $options, null|string|object $fields = [])Cancel an existing order. This operation will only be successful if the order exists, and at least one of the cancellation options is permitted for the order’s current status and the store configuration.
A list of the following properties, at least one of which must be set to true.
backordered_items - If the order has back ordered items, attempt to cancel them. If all items on the order are back ordered, then the entire order will be canceled.
unfulfilled_items - If the order has unfulfilled items, attempt to cancel them. If all items on the order are unfulfilled, then the entire order will be canceled. An unfulfilled item is an item that has not yet been added to a shipment for picking, including backordered items.
all_items - Attempt to cancel the entire order. If the order state is processing or complete then you will only be able to cancel the order if the store configuration allows it. If any items on the order have been fulfilled, then you must also set cancellation_request to true.
cancellation_request - If the all_items option is not available, you can use this option send a cancellation request instead.
Example:
The unique id for the order. This will be auto-assigned if not specified by the merchant at order creation time. This “unique_id” is the ID used for other API calls such as “order.info”.
Reason for export. Values can be sold, not_sold, gift, sample, repair_return, personal_effects. If not specified will default to sold. Only applicable to international orders.
This order’s backorder policy. Order will use specified policy instead of store’s default policy. Values can be default, all_or_nothing, as_available, or up_to_X. Default value is default.
all_or_nothing - Accept order but do not ship anything until all items are in stock.
as_available - No limit to number or frequency of additional shipments.
up_to_X shipments - Same as “As Available”, but changes to All or Nothing before shipping Xth shipment.
When using up_to_X, “X” represent a positive integer number. Example: { "backorder_policy": "up_to_3" }
This order’s priority. Setting the priority will boost or suppress this order’s priority in relation to other orders for the same products. Valid input are values in the range 0 -100. The default value is 50. Lower numbers are higher in priority.
The ID number of a Third Party Billing Account Group. If unset or null, and a default group is configured, then the default group will be used. Set to 0 to disable third party billing.
Duties Payor. Values can be default, shipper, recipient, third_party. If not specified will default to default. Only applicable to international orders.
Array of shipments. Only the “shipment_id” and the “status” fields are present in the Order API. Use the Shipment API to retrieve full shipment details.
Packing Instructions are presented to the packer in a dialog that must be confirmed. If a file is attached, the file will be printed using the specified printer type the appropriate number of times depending on the “presentation”. The file must be in PDF format, and for best results it is recommended for the paper size to match the printer target type. If the print target is a LABEL printer and the page size is not 4 inches in either dimension, the system will attempt to extract an image from the file or otherwise crop the page which may not always have good results.
Attach a file using a url instead of file_content. The file will be downloaded using the optional auth and headers if specified. The file_name will be used if specified, but is optional and will otherwise be set using the Content-Disposition header value or the last part of the url.
An array of tracking objects. The “number” property contains the tracking number. The “description” property contains the shipping method name. The “track_url” property will contain a URL to the carrier’s tracking page if applicable.
An array of order items contained in the package. These items may be different from those in “package_items” if the order was fulfilled using a Bill of Materials. “order_item_id” is the unqiue identifier for the order item. “order_item_ref” is an optional user supplied reference for the order item. “sku” is the order item’s SKU. “quantity” is the quantity of the order item in the package.
An array of items contained in the package. These items may be different from those in “order_items” if the order was fulfilled using a Bill of Materials. “order_item_id” is the unqiue identifier of the related order item. “sku” is the package item’s SKU. “quantity” is the quantity of the item in the package.
An object with a Custom Field code as the key and the Custom Field data as the value. The value format depends on the Custom Field input type."custom_fields": { ... }To find out what fields are available see Order Custom Fields — order_custom_field.list