Many users of the Infoplus API need a way to push Purchase Order (PO) data from a source system, such as an ERP or other in-house system into Infoplus, to provide Infoplus Advanced Shipment Notification (ASN) data for inventory that is on its way to be received in an Infoplus managed warehouse. This is relatively straightforward to do, with the Infoplus API. However, at first glance, the ASN object in the Infoplus API documentation may appear overwhelming, as it has very many fields, both in the header, and in the line items.
The purpose of this article is to explain the basic set of required fields for creating an ASN with the Infoplus API, to give you a starting point that you can build upon.
From a mechanical standpoint, creating an ASN is as simple as a single HTTP POST to the order endpoint in the Infoplus API. For example, using version 1.0 of the api, on the command line:
curl -s -H API-Key:YOUR-API-KEY -H Content-Type:application/json -X POST -d @asn.json \ https://YOUR-INFOPLUS-DOMAIN/infoplus-wms/api/v1.0/asn
The interesting part is all about the data that is included in that POST (i.e., in the asn.json file on the command line shown above)..
{ "poNo":"API-PO-1", "lobId":10000, "warehouseId":1000, "vendorId":1, "orderDate":"2020-01-01T00:00:00.000Z", "type":"Normal", "lineItems":[{ "sku": "SKU-1", "orderQuantity": 100, "lobId": 10000}] }
Going through that JSON object field-by-field, we have:
Field | Description | Notes |
poNo | String; Unique identifier (within the LOB) for this ASN. | PO No and LOB Id form a unique constraint on ASN's in Infoplus. PO No's are limited to 40 characters. |
lobId | Integer; Id of the Line of Business (LOB) that the ASN belongs to. | You can find your LOB Id by using the lineOfBusiness/search endpoint in the Infoplus API, as in: curl -H API-Key:YOUR-API-KEY \ https://YOUR-INFOPLUS-DOMAIN/infoplus-wms/api/v1.0/lineOfBusiness/search |
warehouseId | Integer; Id of the Warehouse that the ASN will be received into. | You can find your Warehouse Id in the Warehouse Table, within Infoplus. Or, you can use the warehouse/search endpoint in the Infoplus API, as in: curl -H API-Key:YOUR-API-KEY \ https://YOUR-INFOPLUS-DOMAIN/infoplus-wms/api/v1.0/warehouse/search |
vendorId | Integer; Id of the Vendor in Infoplus that the ASN was sent from. | You can find your Vendor Ids in the Vendor Table, within Infoplus. Or, you can use the vendor/search endpoint in the Infoplus API, as in: curl -H API-Key:YOUR-API-KEY \ https://YOUR-INFOPLUS-DOMAIN/infoplus-wms/api/v1.0/vendor/search |
orderDate | Date (YYYY-MM-DD); Date that the ASN was placed in the source system. | |
type | Enumerated String; Classifier for behavior type of the ASN. | Must be one of the following: Normal, Kit, Transfer. Note: Use "Normal" unless you have a specific reason not to. |
lineItems | List of Line Items on the ASN. | At least 1 line Item is required. |
lineItems[i].sku | String; Unique identifier (within the LOB) for the Item being ordered. | All SKU's on an ASN must be unique (i.e., you can not have 2 or more line items for the same SKU). |
lineItems[i].orderQuantity | Integer; Unit quantity being ordered. | |
lineItems[i].lobId | Integer; Id of the Line of Business (LOB) that the Line Items belongs to. | Must match the lobId on the header of the ASN. |
Beyond these required fields, there are many more optional fields which can be included when you create (or update) an ASN. You can consult the API Reference site for a listing of all fields.
For updating an ASN, the recommended usage pattern is:
- Use a GET to have a clean, up-to-date copy of the asn object that you want to update.
- Modify the object as needed (removing line Items, adjusting quantities, adding line items, editing header fields, etc, as needed).
- Use a PUT to send the updated object back in Infoplus.