The App Marketplace requirements described in this topic apply to partner applications that use the Inventory API.
To enable the automatic decrease of the inventory count when an order is fully paid for, enable stock tracking on an item in the Square catalog and reference the item by its catalog object ID in an order.
To sync items between a partner platform and Square, do the following:
- If an item is sold on the partner platform, your application should call the Inventory API to decrease the inventory count of the corresponding item variation in Square, when the Orders API isn't used. If the Orders API is used, your application should only validate, but not update, the inventory.
- If inventory changes are made to products on the partner platform, your application should call the Inventory API to adjust the Square inventory counts accordingly.
- Inventory adjustments must match the most appropriate state change in Square. For example, if an item is sold on the partner platform, the inventory adjustment must indicate that the item was moved to the
SOLD
state. - If the inventory changes in Square, the application should watch for inventory.count.updated webhook events to make the necessary changes of the corresponding product counts on the partner platform.
To track inventory consistently between the Square inventory and a third-party platform, bear in mind that inventory is tracked by location within Square. If the third-party platform doesn't track inventory by location, make sure to map the inventories between Square and the third-party platform. For example, if a seller created a Square location to represent an eCommerce store supported by an eCommerce partner, you should implement a bidirectional sync between the eCommerce store and the Square location representing the eCommerce store.