UrbanPiper has a centralized inventory setup which helps you disable an item that is out-of-stock on all the aggregators with a single toggle. A single toggle will send Inventory update calls for an item to all the aggregators.


An inventory update call basically means that a request is sent out to the aggregators to disable/enable the required items. There are multiple ways of making an inventory call.


Inventory update from UrbanPiper


- Satellite

Items and options can be enabled/disabled using the Inventory section of the Satellite. After selecting the required stores and filtering the category, the toggle (visible in the image below) will enable/disable the required item from all the aggregators.



- Master Menu

Items can also be enabled/disabled using the Master Menu section under the Hub section in Quint. After selecting the required stores and filtering the category, the toggle (visible in the image below) will enable/disable the required item from all the aggregators.



Inventory update from a third-party


- POS

 

A POS integrated with UrbanPiper can also make inventory calls where a request is made to UrbanPiper to enable/disable items and the same call is cascaded to all the aggregators. The sample below is the request that a POS with Webhook integration will make to UrbanPiper to disable an item.


Request Payload —

{"location_ref_id":"1230","platforms":["zomato"],"item_ref_ids":["1","2","3","4","5","2325","2331","2336","2355","2802","2803","3313","3329","3337","3344"],"action":"enable"}


Now we can look into how an inventory update call looks for an aggregator.


- Swiggy


Request Payload —

{"externalItemIds": ["678185"], "restaurantId": 6696, "enable": false, "fromTime": "2020-04-30 13:54:14", "toTime": "2021-02-24 14:55:44"}


Here's the breakdown of payload:—


  • externalItemIds: The external ID of the item that needs to be enabled/disabled will be mentioned here.
  • restaurantId: This is the UrbanPiper store ID for which the request is sent.
  • enable: If this field is true the items will get enabled. If this field is false, the items will get disabled.
  • fromTime: This is the time stamp of which the enable/disable request was made.
  • toTime: This is the time until when the item will be enabled/disabled. By default, it is set to 300 days from the day the request was made.

- Zomato 


Request Payload — 

{"customTurnOnTime": "2020-05-07 01:30", "vendorEntityIds": ["i4690612"], "autoTurnOnTime": "custom", "outletId": "18929", "inStock": false}

Here's the breakdown of payload:—


  • customTurnOnTime: The date and time when the item is going to back on stock automatically (7 days for Zomato).
  • vendorEntityIds: Item-location platform ids. You can find this id's under Hub --> Platforms --> head to a store --> ILPA ids.
  • autoTurnOnTime: Is always Custom.
  • outletId: This is the UrbanPiper store ID for which the request is made.
  • inStock: If this field is true the items will get enabled. If this field is false, the items will get disabled.