I have a client with 3 store locations midtown, uptown and “online bucket”. The stores themselves do not carry inventory, and rely on inventory transfers from the online bucket. The online bucket location exists to facilitate inventory transfers. It shows in checkout because it is the default store which inventory is pulled from, but we don’t want users to see it in checkout.
I have a Local Pickup Option Generator Function that supresses the “online bucket” from the list of pickup stores. However, when the user selects either uptown or midtown stores a message shows in checkout of “Some items are no longer available.”
This functionality was working fine until about mid august according to the client.
I can get a successful order by removing the custom function, which now shows all three locations in checkout (uptown, midtown, online bucket) and selecting midtown. When this happens the inventory transfer rules are respected.
Is this a known issue? This worked well for about 6 months until it abruptly did not. Is there another checkout function I can use to achieve the same result of suppressing the “online bucket” location from checkout while still allowing inventory transfers rom the suppressed online bucket location.
Hey @Jeff_Yucis - it should be possible to hide that location from the local pickup options within the merchant admin itself (more info here), like this:
As long as the location remains active, even if it’s not set to fulfill online orders, it will still be available for inventory transfers (either by the merchant in the admin or through the API).
Let me know if this doesn’t work for you though and I’m happy to look into this for sure.
The issue that we run into is that when the merchant disables local pickup from the locations screen the the products that rely on inventory from that location now show as out of stock on the product detail page. This is why we needed to write a shopify checkout function to suppress the store during checkout.
Example: store A, Store B - have zero inventory and rely on inventory provided from the “online bucket”. When we disable instore pickup for “online bucket” the desired effect of suppressing it in checkout happens, however, there is a secondary effect of products relying on that inventory now being considered out of stock which prevents the user from adding the item to the cart from the product page.
Hey @Jeff_Yucis thanks for clarifying and no worries! Just want to make sure I’m understanding what you’re seeing correctly here. For your Online Bucket, you/the merchant keep the location active with “Fulfill online orders from this location” ON and “This location offers local pickup” OFF; then Midtown/Uptown should have local pickup ON. If “Fulfill online orders” is OFF on the Online Bucket, PDP will read as out of stock, which is what you’re seeing?
If you’re open to sharing sharing the Local Pickup Delivery Option Generator code (or a minimal repro code), I’d be happy to dig into this a bit more deeply with you for sure
One thing to note as well, checkout will throw “Some items are no longer available” if the selected pickup location has zero on‑hand inventory, and hiding the only stocked location makes that more likely. As a short‑term workaround, you could keep a tiny buffer quantity at Midtown/Uptown and transfer from Online Bucket right after order via the API/Flow. If you are open to sending a quick repro (shop ID, the three location IDs, one affected variant ID, a failing cart/checkout ID with timestamp) I can also use that info to take a closer look. Let me know if setting up a DM is better for you to share info and I’d be happy to do so on my end, hope to hear from you soon!
@Alan_G Your summary is correct. The online bucket was set to fulfill orders online but had “in store pickup” off, with inventory transfer enabled from online to the retail stores. With this setup no products could be purchased because they were considered out of stock. My assumption was that inventory could be transferred from any location regardless if local pickup was enabled from that location.
I did figure out a solution:
I enabled the in-store pickup option for the online bucket.
I re-enabled the custom function to suppress the online bucket from checkout.
This seemed to resolve all my issues. Products could be added from the PDP, the online bucket was suppressed from checkout, and the “some items are no longer available” message did not block checkout.
I guess I was unclear and/or had the wrong assumptions around how how product availability is affected by inventory transfers from non-pickup stores. It just felt a little weird to enable in store pickup for a location that is purely virtual.
In summary:
All locations except the online bucket have zero inventory, with transfers enabled out of the online bucket..
All locations are set to allow in store pickup, including the online bucket.
A custom function in checkout suppresses the online bucket.
I would still be happy to share my setup/code via DM if that would help you understand the setup a bit better. But talking through this was very helpful.
Hey @Jeff_Yucis, glad to hear that you figured out a working solution and happy to help! I agree that it does feel less than ideal/weird that you’d need to enable an in-store pickup for a virtual warehouse to make the inventory transfers work, that’s certainly not the most intuitive, so I’m happy to set up a feature request on my end at the very least if that would work for you too, so that we can consider making improvements in the future.
Anecdotally, I’ve been seeing your use case with the virtual warehouse transferring to zero-inventory stores becoming more common, so this workaround is really clever, I appreciate you sharing it here since it will likely help out other folks. That said, I’d still also be happy to take a look at your setup via DM if you want, as it could help us understand if there’s a way to make this pattern work more smoothly in the future, just let me know and I can set that up on my end.