UrbanPiper has a centralised 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 directly from UrbanPiper:
-
Satellite: Items can be enabled/disabled using the Inventory section of 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.
Now we can look into how an inventory update call looks for an aggregator.
- Swiggy: Below is a sample enable request that was sent to Swiggy.
Here's the breakdown of payload.
1. externalItemIds: The external ID of the item that needs to be enabled/disabled will be mentioned here.
2. restaurantId: This is the UrbanPiper store ID for which the request is made
3. enable: If this field is true the items will get enabled. If this field is false, the items will get disabled.
4. fromTime: This is the time stamp of which the enable/disable request was made.
5. 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.
Below is a sample enable request that was sent to Zomato.
Here's the breakdown of the request payload.
1. item_id: The external ID of the item that needs to be enabled/disabled will be mentioned here.
2. Success: It's set to false by default for all the requests.
3. item_in_stock: If this field is true the items will get enabled. If this field is false, the items will get disabled.
4. outlet_id: This is the UrbanPiper store ID for which the request is made.