Below are some of the overselling factor scenarios:
Scenario 1: Shopee campaign
Product items join in Shopee marketplaces campaign/promotion that stock will be reserved/locked in Shopee Seller Center.
After the campaign ends, the balance campaign stock will be auto added back to the normal stock in Shopee Seller Center. Hence the stock is not tally with Zetpy as Zetpy didn't know the balance campaign stock was added back.
After the campaign ends, you can cross check the stock in between Shopee & Zetpy & then update the stock from Zetpy again.
Scenario 2: Lazada campaign
If your product is joining campaign/Flash sales in Lazada as Lazada locks the campaign stock, when your Zetpy stock is lesser than Lazada stock at that time, it cannot be updated through API, as API throw the Negative sellable on inventory stock error message.
We've just checked with the Lazada API team again about this issue, this campaign stock still does not support the API, they're still developing it.
In Zetpy SKU A , stock: 100 qty
In Lazada, stock :100 qty
Today, you submit this product to join campaign in Lazada - 50 stock
In Zetpy, stock: 100 qty
In Lazada, stock sellable : 50 , 50 stock is locked.
If you've another order from Shopee come in ( until ) or you manually adjust stock in Zetpy to 0 or any value less than 50, you will get this error message, because that time in Lazada locks 50 stocks.
In this case, you can only manually adjust the stock in the Lazada seller center for those campaign products. Also take note that when you update stock in Zetpy, go to Zetpy > Lazada Plugin, check whether the item gets into an error message. If it gets an error message, it could cause the stock not sync to the Lazada seller center.
Scenario 3: Cancelled Order
When the order status is cancelled, Zetpy will add back the stock after the existing order status is updated Cancelled status.
Assume oversold happens, the stock in Zetpy -1 , then before the customer cancels the order, you manually adjust the stock to 0 in Zetpy.
After the customer/you cancelled the order in the Seller Center, the stock will be added back from 0 to 1.
Kindly take note of this, if you manually adjust the stock, kindly take note that you gonna adjust it back again after the order status updated to cancelled in Zetpy.
Scenario 4: Product sync error could cause the stock not sync to Seller Center
Sometimes, if the product status is under error/warning error, the stock will not able to sync or the product itself has some error issue, eg no. of variation is not tally with marketplaces, variation not create successfully in marketplaces (without Item ID return from Shopee API) and etc
Check the product status in Zetpy > Lazada/Shopee/other channels plugin, make sure all of the product status is without any ERROR or Warning or any missing item ID when you update stock & add new variation in Zetpy Product Core.
If you find out any error message, check with support team - email@example.com
Scenario 5: Lazada unpaid order - withhold stock will be released after 30 mins. [Not oversell case]
Sometimes if you see the stock movement in Zetpy is negative (eg -1), but it doesn’t mean it is really oversold.
This case happens due to the Lazada Seller Center stock mechanism.
Eg, Assume that you only left 1 stock in both Lazada & Zetpy.
When unpaid order #A is placed in Lazada, Lazada will hold the stock (-1) as withhold stock.
The stock in Lazada Seller Center will be:
Withhold stock: -1
Sellable stock : 0
Lazada will release the withhold stock to Sellable stock after 30mins, however the unpaid order is still under unpaid status. As the maximum given time for withholding stock is 30 minutes, and cancellation will trigger from 48 hours to 72 hours.
Withhold stock: 0
Sellable stock : 1
Hence after the withhold stock is released, if there’s another order #B placed in Lazada, the order sync back to Zetpy, in Stock movement you will see the stock is in Negative (-1).
After 48 hours to 72 hours of the Order #A is updated to cancelled, then Zetpy updated the status and the stock movement record will be -1 + 1 = 0, back to 0 again.
Scenario handling: This is not a real oversold case.
Scenario 6: API issues ( out of control ) / Orders sync time too near.
When a new order is placed at marketplaces, order will sync back to Zetpy and stock will update accordingly to other channels. This process averagely takes a few minutes to complete via the API sync.
In certain scenarios, such as there are 2 customers who happen to place an order at a close period of time, this will cause overselling.
Eg, Product A only has 1 unit stock quantity now. (Lazada & Shopee showing 1 unit)
Customer A placed an order at Lazada 12:00PM, while customer B placed order at Shopee 12:01PM.
When the system is syncing the order back from Lazada to Zetpy, however, before it manages to update the latest stock quantity to Shopee to become 0 unit, customer B already made a purchase for the same product at Shopee. Thus, this will cause overselling.
Apart from the above scenarios, there might be other unforeseen factors in the future that might cause overselling as well. Due to science and technology always updating from time to time, it requires constant updates and maintenance to minimize the overselling issues. We will surely do our best on this part for continuous improvement.
If you are facing any problem, feel free to contact us - firstname.lastname@example.org, especially overselling issues, we have to check on a case by case basis.