DEV Community

katie hoesley for BigCommerceDevs

Posted on • Originally published at Medium on

Recap: Multi-Location Inventory Ask Me Anything

If you missed our recent MLI (Multi-Location Inventory) and BOPIS (Buy Online Pickup In-Store) Ask Me Anything session in our Developer Slack space, don’t worry! I’ve compiled all questions and answers from the AMA in this blog.

Buy Online Pickup In Store (BOPIS), also known as Click & Collect outside of the United States, is a frequently requested feature for enterprise merchants. In order to enable BOPIS, we have transformed our platform from being able to support inventory stored at a single location out-of-the-box, to being able to support multi-location inventory (MLI).

Our engineers have developed a suite of APIs that will enable agency partners, tech partners, and eligible merchants to build custom BOPIS experiences via BigCommerce APIs. More specifically, we’ve released 3 new APIs (Inventory, Locations, and Pickup Methods) and updated a number of existing APIs to support BOPIS experiences.

After reading the summary, if you still have questions, please reach out to me. Let’s dive into the AMA!

The Hosts

During this AMA, your burning MLI and BOPIS were answered by a few of BigCommerce’s subject matter experts:

Jordan Sim, Senior Director of Product Management | “I’ve been with BC since 2013. Over my 10 years, I’ve worked in and/or led teams across most, if not all, areas of our commerce platform. I’m passionate about delivering valuable solutions and seeing our partners and merchants succeed in the market.”

Christine Truong, Program Manager for MLI | “I’ve been with BigCommerce for 3 years and have worked in Cart & Checkout, Orders, Promotions, Shipping, and Tax domains. I took over the MLI Program in 2021, and I provide support to Product, Engineering, and Design, while ensuring the delivery of all the projects under this program.”

Vadim Borinski, Engineering Manager: Shipping & Tax, Pricing | “I’ve been with BC since 2013, and most of my time has been spent in the Shipping space. Recently I’ve started looking after Pricing as well and over the last few years, I’ve been leading our MLI program from an engineering perspective. I don’t write as much code as I used to (or would like to) but I do love solving problems for our users.”

The Questions & Answers

I have a client that does BOPIS today. His #1 complaint is around sales tax. His physical store is in the Kansas City, Missouri area and is frequently visited by people from both Missouri and Kansas When people from KS order online and then pick up in the store (in MO), the sales tax is not correct. Seems the issue is Checkout does not do anything related to the shipping address when customers select “pick up in store” as the shipping method. Does this ring a bell for anyone?

Jordan Sim: Thanks for submitting the first question!

As you correctly stated, today, i.e. before the MLI BOPIS APIs, merchants have been able to repurpose static shipping methods and rename them to creatively render a pickup method within Checkout.

So technically, the data is formatted in the shape of a shipping method, but it’s really pickup data that’s been shoe-horned in. More specifically, the pickup in-store method that they are displaying is really just a text label.

With this MLI BOPIS API release, we will be formally introducing a new concept called Pickup Methods. These are aware of the location and the BigCommerce tax engine (and integrations with tax partners, like Avalara) can consume this location data where the order is being picked up to calculate the right sales tax.

Related to BOPIS, one of my clients who is located in the Kansas City area told me this:

“Right now the more common issue is that people from well outside the KC area from Florida to Oregon are selecting Pickup in Store for their shipping preference. If when they selected Pickup in Store it showed the store address or made them pick a location (if more than one store exists) the problem would probably be dramatically reduced.”

Jordan Sim: This experience is all possible when you consume the MLI BOPIS APIs as you can build this experience in your own custom checkout.

Are there plans for a basic front-end implementation of BOPIS out-of-box in the future, or is the desire to keep this as an API suite for users to build with?

Jordan Sim: There are plans for a basic front-end implementation of BOPIS in the future, for both the reference theme (Cornerstone) and the default checkout that comes out of the box. The timeline is TBD.

When is the feature going live to the public?

Jordan Sim: We intend on launching this (in terms of general availability) within 1H’23. We’re currently working through Open Beta feedback — and the volume and criticality of the feedback we receive will determine how quickly we can make this generally available!

Where can we find documentation on changes/UI updates to the BigC Control Panel related to orders that are placed with a BOPIS shipping method selected?

For example, we are most of the way through a BOPIS implementation, and after sending data into the new endpoints, we noticed a new Location line appear in the order details. This is awesome! But we had to “accidentally find it” and are now wondering what other things “appear” on other screens throughout the Control Panel, and what all the “Possible UI Elements” are so we can be sure we have created all of the expected data in this new API.

Christine Truong: The support KB documentation will be updated in advance of the general availability date within 1H’23. For more context, we have updated multiple UIs to enable BOPIS within the control panel to support an end-to-end experience. It looks like you’ve already discovered one of them, i.e. in Orders. We are introducing new UIs (to enable Locations Management and Pickup Methods Management) and updating existing UIs (i.e. Orders and Catalog)

Is there a plan/timeline to more elegantly handle returning Shipping Options from a store with BOPIS enabled?

In our current implementation, all products in a cart still needed to be consigned (attached to an address) before Shipping Options are returned from BigC. This makes no sense in a BOPIS scenario. By definition, the customer’s intent is to pick the item up in-store, so making them supply a shipping address only to select pickup is very counter-intuitive.

Christine Truong: Great question! Yes, we will be handling this elegantly with this release of the MLI BOPIS APIs.

As you correctly stated, today, i.e. before the MLI BOPIS APIs, merchants have been able to repurpose static shipping methods and rename them to creatively render a pickup method within Checkout. So technically, the data is formatted in the shape of a shipping method, but it’s really pickup data that’s been shoe-horned in.

With this release, we will be formally introducing a new concept called Pickup Methods. Here you can create one or multiple pickup methods per location (e.g. In-store pickup and Curbside pickup).

And rather than shoe-horning in the data, the data will be represented as consignment type pickup, which is different from shipping, which has a different consignment type. This creates a clean design and data separation.

Are there any plans for a BigCommerce Control Panel UI to edit BOPIS Location details? If so, what is the projected timeline for that? (We are trying to plan for what tooling we need to build and if it is worth the effort).

Jordan Sim: Yes there are plans for a BigCommerce Control Panel UI to edit BOPIS Location details! We want to launch a beta of the UIs, this month, in February. This will allow you to modify BOPIS location details. So sit tight and save your efforts on tooling because this is coming your way shortly.

Regarding the limit to the number of locations that can be enabled via the API, and how it is raised: How can a merchant or partner request to create more than 4 locations for their store?

Jordan Sim: This will be available to merchants only on the ENTERPRISE plan or PARTNER SANDBOXES (who are building staging environments to test/build new sites). If you’re on the Enterprise plan, please reach out to your Account Manager letting them know how many locations you are looking to support and they’ll route the request internally to the appropriate team.

Are there any prerequisites that must be met to request more than 4 locations (for example, can the limit only be overridden for ENT and Partner stores)?

Jordan Sim: I’ll cross-link to this post which I believe will answer this question: https://bigcommerce-devs.slack.com/archives/C04LGFKLU3X/p1675294052278289?thread_ts=1674853811.195559&cid=C04LGFKLU3X

In regards to a checkout, can I checkout with 2 items in the cart where 1 item is purchased from one location (store) and another one is from another location? After successful checkout, the inventory should be deducted from different representing locations (stores).

Jordan Sim: Today, this is not possible and this is an intentional design decision. The majority of BOPIS transactions worldwide are single pickup locations only per order. A very small percentage of orders are picked up at multiple locations.

Therefore taking an iterative release approach we supported a single pickup location per order in the first release of BOPIS. In the future, we will look to support more sophisticated use cases like the one you have shared.

Will Multi-location Inventory and BOPIS be available to all plans?

Jordan Sim: Yes! MLI and BOPIS will be available to all plans.

In addition to this, we intend on launching this (in terms of general availability) within 1H’23. We’re currently working through Open Beta feedback — and the volume and criticality of the feedback we receive will determine how quickly we can make this generally available!

Will the “Partial Pickup” on a single location will be supported on the first version of BOPIS? For example, if a customer picks up one product on a day, and on a later date (at the same location) they pickup the rest of the items in his order. Will that be possible to do in the Order Admin view?

Jordan Sim: Partial Pickup of a single order from a single location will not be supported on the first version of BOPIS. In this first release of the MLI BOPIS APIs, we allow the shopper to pick up the whole order atomically, or not. The reason for taking this is because, from the initial merchant and partner research, we learned that the majority of the time, shoppers completely pick up their order in total. We do, however, want to support partial pickups for a single order from a single location in the future.

Will this be available for BigCommerce B2B Edition customers as their checkout is customized?

Jordan Sim: Yes — All your need to do is upgrade the CheckoutSDK to the latest version to get access to BOPIS. Once you do this, you will have access to the APIs that’ll allow you to customize the B2B Edition Checkout to support the BOPIS experience.

Reading through the catalog API info, “Once you update to consume the new Inventory API, management of inventory via the Catalog API will cease. All inventory management will occur through the Inventory API.”

As a Tech partner (App) that currently reads inventory_level from the product catalog, how do I know a store has switched over to the inventory API? Is there going to be a new feature in the Get Store Information API call to know where I have to read inventory for a store?

Vadim Borinski: In the short term you will still be able to read an inventory level* from the product catalog however we do discourage this as there may be some delay in syncing values — and we do intend to completely remove inventory data from the Catalog API in the long term.

More importantly, the catalog API inventory level will always represent the stock level at the default location, so you will lose visibility into stock levels at other Locations (assuming you use more than one).

Finally, yes, we do plan to add a way to indicate whether MLI is enabled or not for a store likely in time for GA.

That’s it!

And that’s a wrap on our MLI/BOPIS AMA recap! Huge thanks to Christine, Vadim, and Jordan for participating in this AMA and answering so many burning questions from our Developer Community.

If you’re a developer and build on the BigCommerce platform, join our BigCommerce Developers Slack community by applying here!

If you still have questions and this blog doesn’t answer them, reach out in our Developer Slack space, comment on this blog, or tweet at us (@katie_hoesley or @BigCommerceDevs)

Connect With Us!


Top comments (0)