Create Separate Shipments for Each Sales Order
If you are using the contract-based REST API to integrate MYOB Acumatica with an external system, this external system can create separate shipments for multiple sales orders in a single API call.
Testing of the Request
- Deploy a new MYOB Acumatica instance with the U100 dataset. For details on deploying an instance, see To Deploy an MYOB Acumatica Instance.
- On the Enable/Disable Features (CS100000) form, make sure that the Inventory and Order Management feature is enabled.
- If you use Postman as the client application for testing, in the IntegrationDevelopmentGuide.postman_collection.json collection (which is located in the IntegrationDevelopment\Help folder of the Help-and-Training-Examples repository on GitHub), make sure the collection variables have the proper values.
- To sign in to the instance in the client application, use the tenant name (which you specified when you created the instance) and the HEADOFFICE branch.
Also, in this example, two shipments will be created for two sales orders. Before you create shipments, you need to create two sales orders. You can do this on the Sales Orders (SO301000) form or through the contract-based REST API, as described in Create a Sales Order with the Unit of Measure Specified. The sales orders must have the following settings.
Element | Sales Order 1 | Sales Order 2 |
---|---|---|
Order Type | SO | SO |
Customer | GOODFOOD | GOODFOOD |
Branch column (in the only row on the Details tab) | HEADOFFICE | HEADOFFICE |
Inventory ID column (in the only row on the Details tab) | APJAM08 | APJAM32 |
Quantity column (in the only row on the Details tab) | 20 | 3 |
UOM column (in the only row on the Details tab) | PIECE | BOX |
Warehouse column (in the only row on the Details tab) | WHOLESALE | WHOLESALE |
Request
You can use the following example of an HTTP request to create two separate shipments for the two sales orders that you created. In this example, the number of the first sales order is 000063, and the number of the second sales order is 000064; if the sales order you added has a different number, it should be used in the code.
<MYOB Acumatica instance URL>
is the URL of the MYOB Acumatica
instance (such as https://my.acumatica.com/MyInstance). You can omit the instance
name in the URL (that is, you can use https://my.acumatica.com) if the instance
is installed in the root of the website.PUT ?$expand=Details HTTP/1.1
Host: [<MYOB Acumatica instance URL>]/entity/Default/23.200.001/Shipment
Accept: application/json
Content-Type: application/json
{
"CustomerID": { "value": "GOODFOOD" },
"Details": [
{
"OrderNbr": { "value": "000063" },
"OrderType": { "value": "SO" }
},
{
"OrderNbr": { "value": "000064" },
"OrderType": { "value": "SO" }
}
],
"LocationID": { "value": "MAIN" },
"Operation": { "value": "Issue" },
"WarehouseID": { "value": "WHOLESALE" },
"CreateNewShipmentForEveryOrder": { "value": true}
}
Usage Notes
You set the CreateNewShipmentForEveryOrder
field of the
Shipment
entity to true to specify that a separate
shipment must be created for every sales order listed in Details
.
You set the CreateNewShipmentForEveryOrder
field to false to
specify that a single shipment must be created for all sales order listed in
Details
. The default value is false.