Creation of a Shipment with Allocations and Package Specifications

If you are using the contract-based REST API to integrate MYOB Acumatica with external systems, these external systems can create a shipment with allocations and package specifications.

Testing of the Requests

Before you test the code below, you need to do the following to configure your client application and the MYOB Acumatica instance to be used:
  1. Deploy a new MYOB Acumatica instance with the U100 dataset. For details on deploying an instance, see To Deploy an MYOB Acumatica Instance.
  2. 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.
  3. 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.
  4. On the Enable/Disable Features (CS100000) form, make sure that the Inventory and Order Management, Lot and Serial Tracking, and Advanced SO Invoices features are enabled.
Tip: In the request examples below, <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 (such as https://my.acumatica.com) if the instance is installed in the root of the website.

Step 1: Create the Sales Orders That Will Be Added to a Shipment

First, you need to create the sales orders that you will add to a shipment. In this example, you will create two sales orders.

You can use the following example of an HTTP request to create a sales order of two small jars of jam.

PUT ?$expand=Details&$select=CustomerID,Details/Branch,Details/InventoryID,
    Details/OrderQty,OrderNbr HTTP/1.1
Host: [<MYOB Acumatica instance URL>]/entity/Default/23.200.001/SalesOrder
Accept: application/json
Content-Type: application/json

{
    "CustomerID": { "value": "GOODFOOD" },
    "Details": [
        {
            "Branch": { "value": "HEADOFFICE" },
            "InventoryID": { "value": "APJAM08" },
            "OrderQty": { "value": 2 },
            "UOM": { "value": "PIECE" },
            "WarehouseID": { "value": "WHOLESALE" }
        }
    ]
}

You can also use the following example of an HTTP request to create a sales order of a box containing six bigger jars of jam.

PUT ?$expand=Details&$select=CustomerID,Details/Branch,Details/InventoryID,
    Details/OrderQty,OrderNbr HTTP/1.1
Host: [<Acumatica ERP instance URL>]/entity/Default/23.200.001/SalesOrder
Accept: application/json
Content-Type: application/json

{
    "CustomerID": { "value": "GOODFOOD" },
    "Details": [
        {
            "Branch": { "value": "HEADOFFICE" },
            "InventoryID": { "value": "APJAM32" },
            "OrderQty": { "value": 1 },
            "UOM": { "value": "BOX" },
            "WarehouseID": { "value": "WHOLESALE" }
        }
    ]
}

Step 2: Create a Shipment for the Two Sales Orders with Allocations and a Package

You can use the following example of an HTTP request to create in one call a shipment for the two created sales orders. For the first sales order, you take one jar of jam from the L2R3S1 location and another jar of jam from the L3R2S1 location. Also, you indicate that all jars of jam of both sales orders should be packed into one large box.

Note: If you intend to use the Picked field of the Shipment entity, note that its value may be incorrect in scenarios other than batch picking or wave picking.
PUT ?$expand=Details,Details/Allocations,Packages,Packages/PackageContents 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": "000071" },
            "OrderType": { "value": "SO" },
            "OrderLineNbr": { "value": 1 },
            "Allocations": [
                {
                    "InventoryID": { "value": "APJAM08" },
                    "LocationID": { "value": "L2R3S1" },
                    "Qty": { "value": 1 },
                    "UOM": { "value": "PIECE" }
                },
                {
                    "InventoryID": { "value": "APJAM08" },
                    "LocationID": { "value": "L3R2S1" },
                    "Qty": { "value": 1 },
                    "UOM": { "value": "PIECE" }
                }
            ]
        },
        {
            "OrderNbr": { "value": "000072" },
            "OrderType": { "value": "SO" },
            "OrderLineNbr": { "value": 1 },
            "Allocations": [
                {
                    "InventoryID": { "value": "APJAM32" },
                    "LocationID": { "value": "L1R3S2" },
                    "Qty": { "value": 6 },
                    "UOM": { "value": "PIECE" }
                }
            ]
        }
    ],
    "LocationID": { "value": "MAIN" },
    "Operation": { "value": "Issue" },
    "Packages": [
        {
            "BoxID": { "value": "LARGE" },
            "UOM": { "value": "KG" },
            "Weight": { "value": 15 },
            "PackageContents": [
                {
                    "InventoryID": { "value": "APJAM08" },
                    "LotSerialNbr": { "value": "" },
                    "Quantity": { "value": 1 },
                    "UOM": { "value": "PIECE" },
                    "OrigOrderType": { "value": "SO" },
                    "OrigOrderNbr": { "value": "000071" }
                },
                {
                    "InventoryID": { "value": "APJAM08" },
                    "LotSerialNbr": { "value": "" },
                    "Quantity": { "value": 1 },
                    "UOM": { "value": "PIECE" },
                    "OrigOrderType": { "value": "SO" },
                    "OrigOrderNbr": { "value": "000071" }
                },
                {
                    "InventoryID": { "value": "APJAM32" },
                    "LotSerialNbr": { "value": "" },
                    "Quantity": { "value": 6 },
                    "UOM": { "value": "PIECE" },
                    "OrigOrderType": { "value": "SO" },
                    "OrigOrderNbr": { "value": "000072" }
                }
            ]
        }
    ],
    "WarehouseID": { "value": "WHOLESALE" }
}