Client needs to have integrated with the Carton Cloud and Neurologistics warehouse.
Requirement
Client required to change the position of 3PL button from Invoice to IF. While reviewing the requirement, they informed that they do not require that, and they want to integrate NS with the third-party warehouse systems instead.
Client realized that the csv or pdf implementation will not resolve the current issue of missing orders. Therefore, we are planning to implement the API integration with WMS system.
They need to Integrate NetSuite with Carton Cloud and NeuroLogistix based on button click.
NetSuite Orders they prefer to integrate are
- Sales Orders including the Sale order PDF
- Purchase Orders
- Transfer Orders as SO and PO based on From, To location
- Products
The NeuroLogictics doesn’t have API so they requested the NetSuite tokens for fetching the Sales order data. Currently, NeuroLogistics is only looking for SO integration at the moment.
Additionally, they need to update the Sales order PDF in which need to display the backorder summary. Currently, the backorder details are displayed in the item table. It needs to be shown as summary under the item table.
Deliverables
- Sync Sales Orders from NetSuite to Carton Cloud.
- Send Sales order PDF along with the SO syncing.
- Update the Sales order PDF to include the backorder details
- Sync Purchase Orders from NetSuite to Carton Cloud.
- Sync Transfer Orders from NetSuite as Sales Orders using ‘From Location’ and as Purchase Orders using ‘To Location’.
- Generate NetSuite Tokens for fetching Sales orders for NeuroLogistics.
Prerequisites
- Bacchus should provide the Client ID and Client Secret of the Carton Cloud for the connection.
- JJ Team provides NetSuite Client ID and Client Secret for fetching the Sales Order from NetSuite for NeuroLogistics.
Scope of Work
Sales Orders to CC
We will deploy a script to add a button ‘SO Send to Warehouse’ on the Sales Order if the location is BW01-SYD, BW02-BNE and BW03-MEL. On button click we will push the Sales Order data to Carton Cloud. We will create a custom checkbox ‘Order Sent to CC’ for identifying whether the order is being successfully sent. So, when the button is clicked once and if the order has been sent successfully, we will check this ‘Order Sent to CC’ and disable the button. If there are any backorder quantity, we will be providing it under the item custom properties. This helps CC to identify the backorder quantities.
We will create a search to identify the backordered orders and if they are committed once, we will update the order in the CC automatically with the committed quantities.
We will create a custom field in the SO for displaying the id of the SO from CC when successfully synced.
API using for sending SOs: POST https://api.cartoncloud.com/tenants/{tenantId}/outbound-orders
We will send Sales Order PDF to the warehouse while pushing the Sales order data to CC. The template used for the Sales Order PDF will be ‘Bac Sales Order PDF/HTML Template’. The sales order PDF will be sent through the Create Outbound Document API.
POST https://api.cartoncloud.com/tenants/{tenantId}/outbound-orders/{outboundOrderId}/documents
Also, we will be updating the Sales orders in CC if the same is updated in the NetSuite. We will update the order only if the CC order status is not DISPATCHED. The PDF will be resent again with the new updated PDF. We will send an email notification to the CC users whenever an update happens in NetSuite order.
For creating Item Fulfilments in NetSuite from CC, we will create a script to periodically get the orders with status ‘DISPATCHED’ and create the item fulfilments in the NetSuite. The item fulfilment will be created in NetSuite with ‘Shipped’ status.
API using for getting orders: POST https://api.cartoncloud.com/tenants/{tenantId}/outbound-orders/search
Purchase Orders to CC
We will use the same above script to deploy it in the Purchase Order. Based on the record, we will display the button as ‘PO Sent to Warehouse’ to the locations BW01-SYD, BW02-BNE and BW03-MEL. We will create a custom checkbox ‘Order Sent to CC’ for identifying whether the order is being successfully sent. So, when the button is clicked once and if the order has been sent successfully, we will check this ‘Order Sent to CC’ and disable the button.
We will create a custom field in the PO for displaying the id of the PO from CC when successfully synced.
API using for sending POs: POST https://api.cartoncloud.com/tenants/{tenantId}/inbound-orders
Also, we will be updating the POs if the same updated in the NetSuite. We will send an email notification to the CC users whenever an update happens in NetSuite order.
For creating Item Receipts in NetSuite from CC, our scheduled script will periodically check for updated orders and create Item Receipt in NetSuite.
Transfer Order to CC
We will use the same script and will deploy it into the Transfer Order. As the transfer order API doesn’t exists in the CC, we will be sending the data to the Sales Order API using the ‘From Location’ field and to the Purchase Order API using the ‘To Location’ field. We will be creating Item receipt for the transfer order only after the fulfillments. So we will initially check whether the order is DISPATCHED and create Item Fulfillments for the Transfer Order. Secondly, we will look for the Purchase Order status and create Item Receipts for the Transfer Order.
We will create two custom fields in the Transfer Order for displaying the SO id and PO id if when successfully synced. When a Sales order and Purchase order are created in CC, we ill get a success response with the Order IDs and we will store these IDs in the above custom fields for reference.
The default customer for these PO and SO data will be provided as ‘Bacchus Wine Merchants’. The delivery name will be fetched from the Ship To Addressee field.
When the Transfer orders are updated in the NetSuite, the same will be updated in CC. We will send an email notification to the CC users whenever an update happens in NetSuite order.
Sales Orders to NeuroLogistics
We will be creating an Access Token and provide to NeuroLogistics for Integration. We will create Integration role, and a script to handle the sales order request from the NeuroLogistics.
We will be creating the order data structure provided by the NeuroLogistics. To identify whether the sales orders have been successfully being send, the NeuroLogictics need to send the response to the NetSuite.
Product API
Whenever a new product is created in the NetSuite, the same will be created in the Carton Cloud. We will be using the Create Warehouse Product API.
POST https://api.cartoncloud.com/tenants/{tenantId}/warehouse-products
Also, we will be updating the item details in CC automatically when the same is updated in the NetSuite.
Scope, type, references, customer, name, defaultUnitOfMeasure, unitOfMeasures are the mandatory details for sending item data to CC.
Sales Orders PDF Update
We will update the existing sales order template ‘Bac Sales Order PDF/HTML Template’ to add the backorder details. We will remove the backorder details from the item table and display it as a summary below the item table. The ‘Item Code’ and ‘Qty’ fields will be included in the summary. The summary table will be hidden if there are no backorders in the order.
Error Handling
We will create a custom field in the NetSuite orders to display the error and notify the user by showing a popup message whether the order has been successfully synced or have errors.
Assumptions
- We don’t need to consider the deletion of TO, SO, PO from CC when deleted from NS.
- Required Bins or Lot numbers for the Item Fulfilment and Item Receipt creation will be provided in the CC.
- We will create item fulfilments in NetSuite only for the orders with DISPATCHED status in CC. This will be done automatically through a scheduled process.
- All items in the NS will be present in the Carton Cloud.
- All customers, vendors in the NS will be present in the Carton Cloud.
- Location field in the NetSuite is referred to as Warehouse in the Carton Cloud.
- We need to consider committed quantity of items only.
- The required details for the item fulfilment creation and Item Receipt creation will be present in the NetSuite while fetching orders from the CC.
- UUID from CC is required for the customers, vendors, warehouse for pushing the data to CC. Assume the same will be present in the NetSuite.
- Every warehouse is using the same CC account.
- We need to only display Send to buttons for orders with Pending Fulfilment status.
- We need to only consider fulfillable items.
- We need to display buttons for BW01-SYD, BW02-BNE and BW03-MEL locations only.
- Orders in Carton Cloud will be updated only when there are no backorders.
Exceptions & Limitations
- If sales order is successfully sent to CC, the ‘Order Sent to CC’ will be checked and button will be disabled.
- Only single click on the button is allowed for sending orders.
- If lot numbers or bin numbers are not provided on the CC or the order, we will look for the available lots or bins in that location while creating Item fulfilments.
- If any of the SKU, customer, vendor from NS is not present in the CC, the order may fail to send.
- We will not consider inactive or closed lines.
- We will create item fulfilment based on the quantity from the CC. If the quantity is partial, we will be creating partial fulfilments in NetSuite.
- We will not be updating any other details in the SO PDF other than the backorder summary.
- Only DISPATCHED status orders are considered for creating item fulfilments in the NetSuite.
Estimated Effort
170-190 Hours