Summary of enhancements:

  1. Create Shipment API now supports Custom Fields for Shipment Items.
  2. New API to put ordered items on Hold/Unhold.
  3. Get Common Stores API has been enhanced to return stores that support specified Delivery Mode (Home delivery, Pick up at a store, etc).
  4. Order Allocation Logs displays order allocation rule execution for individual orders.
  5. Supporting Merchant Configured Custom PGs in New Communication Service.


Create Shipment API now supports Custom Fields for Shipment Items

Context:

  • Custom fields are available for each item in a shipment creation screen.
  • Through custom fields, additional information such as perishable or not, fragile or not, supplier, etc, about an item can be passed to the system.
  • Then this information can be re-used while creating order copy, invoice, etc.

Problem Statement:

  • Create Shipment API doesn’t support Custom Fields for Shipment Items in Shipment Creation. Custome Fields are, currently, supported only in Control Panel.

Solution:

  • Create Shipment API has been enhanced to support Custome Fields for Shipment Items.

Sample Call:

Order/Bulkship?InputFormat=application/json&merchantId={{Merchantid}}&InputData=

[{
"shipment": {
"ShipmentType": "normal",
"lineitems": [{
"OrderLineId": "52445077",
"Quantity": "1",
"Weight": 3000,
"CustomFieldValues": [{
"CustomFieldName": "abcd",
"CustomEntityValue": "shubham"
}]
}],
"LocationRefCode": "439",
"length": 10,
"width": 10,
"CourierName": "BV",
"AWBNumber": 78,
"ShipDate": "2019/11/21",
"MerchantId": "{{Merchantid}}",
"OrderId": "8993869",
"logisticsType": "standard",
"height": 10
}
},
{
"shipment": {
"ShipmentType": "normal",
"lineitems": [{
"OrderLineId": "52445081",
"Quantity": "1",
"Weight": 3000,
"CustomFieldValues": [{
"CustomFieldName": "efgh",
"CustomEntityValue": "mahbuhs"
}]
}],
"LocationRefCode": "439",
"length": 10,
"width": 10,
"CourierName": "BV",
"AWBNumber": 78,
"ShipDate": "2019/11/21",
"MerchantId": "{{Merchantid}}",
"OrderId": "8993873",
"logisticsType": "standard",
"height": 10
}
}
]


New API to put ordered items on Hold/Unhold

Context:

  • At times in certain situations, orders are put on hold from order processing. Example: If there’s a dispute w.r.t. the payment of the order if a customer needs delayed delivery, etc.
  • Once an order is put on hold, it has to be released by clicking unhold, for further processing.

Problem Statement: 

  • There’s no API through which an order item can be put on Hold from order processing. Currently, it’s only supported in Control Panel.

Solution:

  • An API has been created to put an item on Hold/Unhold from order processing.

Sample Call:

Order/ApplyHoldUnhold/{{Merchantid}}/{status}?InputFormat=application/json&InputData=
[
{
"orderId": "9200311",
"orderItems": ["52938641", "52938642"]
}
{
"orderId": "9200312",
"orderItems": ["52938643", "52938644"]
}
] 


Get Common Stores API has been enhanced to return stores that support specified Delivery Mode (Home delivery, Pick up at a store, etc)

Problem Statement: 

  • To initiate a manual transfer of order item(s), the CP user views the list of stores that could fulfill the ordered quantity of the selected order item(s).
  • To fetch the list of suitable stores, Get Common Store API is used which provides the list of stores that could fulfill the ordered quantity of the selected order items.  But it doesn’t take into consideration whether the store serves only for ‘Home Delivery’ or only for ‘Pick up at Store’.

Solution:

  • Get Common Stores API has been enhanced to include delivery mode (‘H’ for home delivery, ‘S’ for pickup at store) as an input.
  • If one of the delivery modes is passed as an input in the Get Common Stores API, the response shows stores that have the corresponding delivery mode enabled
  • If the field or delivery mode isn’t passed in the input, the response to show all the qualified stores irrespective of the delivery mode enabled for the locations.

Sample Call:

Carts/GetCommonStoresforCartItems/{{Merchantid}}?MerchantID=1b3420ce-002f-4f66-bbda-cd0828aa2af8&InputFormat=application/json&InputData=

{
"products": [
{
"ProductId": "13666458",
"VariantProductId": "0",
"ProductSku": "107128",
"Quantity": 2
}
],
"Longitude": "",
"Latitude": "",
"DeliveryMode":"S"
}


Order Allocation Logs displays order allocation rule execution for individual orders

Control Panel > Orders & Leads > Order Allocation > Order Allocation Logs

Problem Statement: 

  • Currently, we do not have order allocation rule execution logged in the control panel. Hence, clients and the customer success team had no visibility into how the order got allocated.
  • E.g. Say an order is allocated correctly and moves to stock pending. Clients, as well as the customer success team, do not have the logs to check if the allocation was proper.
  • Cases where an order gets into stock pending, or gets allocated to the default store, or doesn’t get allocated, the sustenance engineering team has to spend significant time to identify how the order got allocated.

Solution:

  • Order Allocation Logs (Control Panel > Orders & Leads > Order Allocation > Order Allocation Logs) section has been added that takes Order Id as input and shows a log of all the executed order allocation rules (screenshot below).

 

Supporting Merchant Configured Custom PGs in New Communication Service

Problem Statement: 

  • While configuring order confirmation communication for orders that have come via custom PG in the events list all the custom PGs across all merchants are getting listed. Whereas, only the custom PGs specific to that merchant should have been listed.

Solution:

  • Now the events list in the order confirmation communication configuration section only shows the custom PGs specific to the merchant.