If your company has an ERP system, such as Netsuite ERP or SAP, and is using Infoplus for managing your warehouse operations, you may want to create an integration between your ERP and Infoplus.  This is possible by using the Infoplus API.  This article provides a high-level overview of what you may need to know to start building such an integration.  


Common Touch Points

Typically when building an ERP Integration to Infoplus, you will integrate the touch points listed below.  Note that the scenario described here assumes that the ERP is the source, owner, or master system for these data, with Infoplus as a secondary system, which will accept data, process it (via warehouse operations), and feed updates to the ERP.  Other configurations may make sense (i.e., Infoplus being the master system, or a hybrid model), but those approaches are not documented in this article.  


Sales Orders

  • Sales Orders in the ERP (references to outbound orders to your customers) are pushed to Infoplus as order API objects / rows in the Infoplus Order table.
  • The customerOrderNo field can be used to keep a reference to the id of the order in the ERP.  Infoplus will assign a unique orderNo to each order when it is created.  


Purchase Orders

  • Purchase Orders in the ERP (references to inbound inventory) are pushed to Infoplus as asn API objects / rows in the Infoplus ASN table.
  • The ERP can push a unique identifier in the poNo field, to maintain a link between the source P.O. and the Infoplus asn.  


Products / Item master records

  • Product or Item definitions in the ERP are pushed to Infoplus as item API objects / rows in the Infoplus Item table.
  • This touch point is optional.  Depending on your velocity of creating items, for some integrations, it is sufficient to manually maintained between the two systems.
  • The items typically share a unique identifier in the sku field, though if the WMS (Infoplus) should have a different SKU value than the ERP, there are other fields available that can be used (Vendor SKU, UPC, or, a custom field, if needed).  


Suppliers / Vendors

  • Vendors in the ERP are optionally pushed to Infoplus as vendor API objects / rows in the Infoplus Vendor table.
  • This touch point is optional.  Depending on the number of suppliers/vendors you use, some integrations manually maintain these records between the two systems.


Shipments 

  • Shipments in Infoplus are pulled from Infoplus into the ERP, to update / close-out their corresponding Sales Orders, through the shipment API endpoint.  
  • These records in Infoplus represent the fulfillment of Orders, which came into Infoplus from the ERP.  


Item Receipts

  • Item Receipts in Infoplus are pulled from Infoplus into the ERP, to update / close-out their corresponding Purchase Orders, through the itemReceipt API endpoint.
  • These records in Infoplus represent the receipt of goods into the warehouse, against an ASN which came from the ERP.  


Inventory Adjustments

  • Inventory Adjustments in Infoplus are pulled from Infoplus into the ERP, to update / close-out their corresponding Purchase Orders, through the inventoryAdjustment API endpoint.

  • These records in Infoplus represent corrections made to inventory levels in the warehouse, such as for cycle counts, damaged product, loss, etc. 

  • Infoplus Inventory Adjustments have a reference to their source ASN / Purchase Order through the poNoId field.  


Implementation Approach

The Infoplus API is based on REST+JSON, which offers developers a great deal of flexibility in terms of how to build an integration to Infoplus.


For example, a developer can do a direct HTTP integration, where their client application issues HTTP requests to the Infoplus API, posting JSON data for write-operations, and parsing JSON response data for reads.  


Alternatively, some developers prefer to use one of the pre-built client libraries that Infoplus makes available for Java, JavaScript, PHP, C#, Python, or Swift.  These libraries are all available on github.  


Regardless of the integration technique used (direct or library), the API models documented at http://developer.infopluscommerce.com/ remain the same, and provide full access to the data of Infoplus, including custom fields, which are often used for an integration of this nature, to capture additional data that the ERP is aware of, but that may not have a built-in field in Infoplus.  


Push/Pull Model

Data pushed from the ERP to Infoplus can be pushed to the Infoplus API, either using triggers, or a scheduled job within the ERP, depending on its capabilities and/or your preferences or needs.  


Data pulled from Infoplus into the ERP can be fetched from Infoplus using a polling model.  The typical pattern looks like tracking a last-pulled timestamp on the ERP side, and requesting records created or updated in Infoplus after that timestamp.  Alternatively, triggers and scripts within Infoplus can be used to fire webhook calls into the ERP.  


See Also