Shopify configuration and usage
- 1 Recommend operating model
- 2 Understanding Shopify and the role of OneStock
- 3 Mapping Shopify X OneStock
- 4 Shopify configuration
- 4.1 Inventory management
- 4.2 Shopify Markets
- 4.3 Shipping
- 4.4 Pickup in-store
- 5 OneStock impact on Shopify usage
- 6 More in-depth information for location management
- 7 Stock decrement in Shopify
Recommend operating model
This page outlines the Shopify configuration required to take full advantage of the OneStock OMS features.
Our configuration is based on two major principles that must be kept in mind:
Shopify does not own final orchestration.
Shopify reservations/committed are driven by OneStock decisions (via technical locations).
Understanding Shopify and the role of OneStock
In Shopify, a location can be a warehouse, a store or even a third-party logistics provider. Each product’s inventory is tracked across locations so Shopify knows the quantity available.
When creating an order, Shopify automatically assigns orders to a location based on stock and order routing (equivalent OneStock orchestrator).
*A committed created by Shopify is the equivalent of a reservation in OneStock. It cannot be deactivated.
By choosing OneStock, you aim to benefit from the full power of the OMS, especially advanced order orchestration and centralized sellable inventory management.
As Shopify natively determines the fulfillment location and handles inventory reservations, an adapted configuration is required to ensure optimal interoperability between Shopify and OneStock.
Before jumping in the way to configure Shopify, you need to explain why it is better to have orchestration and reservation in OneStock
Because:
Advanced orchestration capabilities
OneStock complements Shopify’s native routing by enabling multiple orchestration rule sets, based on business-driven criteria such as order value, order type, channel, or fulfillment strategy.
Flexible re-orchestration without disrupting Shopify orders
OneStock makes it possible to re-orchestrate or reallocate orders post-creation, without impacting the order object or customer experience in Shopify.
Consistent sellable inventory across channels
OneStock acts as a central source of truth for sellable inventory, enabling merchants to expose a consistent and accurate stock image not only to Shopify, but also to marketplaces and other sales channels.
If Shopify is expected to remain the master for order routing and stock reservation, the connector will not deliver its value and is not recommended.
e.g. Shopify allocates to Store A, while OneStock orchestration decides Store B; stock images diverge, or fulfillment fails.
Mapping Shopify X OneStock
This table help you to map Shopify and OneStock concept.
Concept | In Shopify | In OneStock OMS | Notes |
|---|---|---|---|
Sellable inventory |
| Unified inventory image | OneStock pushes/controls. Shopify is output. |
Reservation |
| Reservation on stock location | Committed created by Shopify is equivalent to reservation in OneStock. |
Orchestration | Location assignment | Orchestration rules | OneStock must be the master. |
Pickup location | Shopify location with metafield |
| Must match exactly. |
Delivery methods | Shopify rates / app rates | Delivery promise configurations | One-stock rates derived from delivery promise. |
Shopify configuration
To understand how to configure Shopify, it is important to be familiar with certain features such as inventory, markets, and shipping.
Inventory management
In Shopify, you can have multiple inventory states.
An inventory state represents the quantities of a product at a specific location or quantities that have been committed to orders. Inventory is grouped into different states:
Inventory state | Description |
|---|---|
| The inventory that's on its way to a merchant's location. For example, the inventory might be in an incoming shipment. Incoming inventory isn't available to sell until it has been received and its state has been changed to |
| The total number of units that are physically at a location. |
| The inventory that a merchant can sell. Available inventory isn't committed to any orders and isn't part of incoming transfers. |
| The number of units that are part of a placed order but aren't fulfilled. When a draft order is created, the inventory isn't committed until the draft order is completed and an order is created. |
Shopify Markets
In Shopify, a market is a group of one or more regions of the world that a merchant is targeting for sales.
Please follow those steps to create a market
Go to Settings>Markets
Click on the button “Add market”
Fill up the name and the region assiociated with the market
Click on the black button “Add Market”
Shopify Markets and OneStock connector
With Shopify Markets, merchants can create as many markets as needed.
The OneStock connector allows each market to be linked to a technical fulfillment location, representing the unified sellable inventory managed by OneStock.
This makes it possible to expose different stock images per market.
For example, France and Spain can be configured as two separate markets, each connected to a distinct location, while keeping Shopify as the commercial entry point and OneStock as the central orchestration layer.
Shipping
This section in Shopify allows you to manage where you ship and how much you charge.
Shipping without OneStock OMS
In a Shopify environment without the OneStock connector, the configuration for this section is as follows:
A shipping zone that corresponds to what you have configured in Shopify Market + A shipping rate configured in Shopify.
The locations associated with this shipping zone. This corresponds to the shops or warehouses that have stock and can deliver to this zone.
In this example, home delivery orders in the USA and Canada are handled by two stock points: Los Angeles and the New York warehouse. There are two shipping rates available managed by Shopify: Standard and Express.
Shipping configuration example without OneStock
What does it means in the checkout page?
Only two shipping rates are displayed in the checkout page: Standard and express. You are having this method because of the above configuration on the shipping configuration in Shopify.
Checkout page example without OneStock
How to create your shipping?
Please follow those steps a create a shipping zone and add your own rates :
Go to Settings>Shipping and delivery
Click on the “General shipping rates” sub-module within the “Shipping” module
Click on the Fulfillment location's “Add shipping zone” button
Fill up the “Zone name” and choose the concerned region
Click on the black “Done” button
Click on the Fulfillment location's “Add rate” button
Configure your rates to your needs
Click on the black “Done” button
Save the configuration
Shipping with OneStock OMS
In a Shopify environment with the OneStock connector, the configuration is a dedicated technical location in Shopify to act as the unified inventory coming from OneStock OMS configuration.
Why? Because Shopify configuration and usage
In a Shopify environment with the OneStock connector, the configuration for this section is as follows:
A shipping zone that corresponds to what you have configured in Shopify Market + A shipping rate configured in Shopify (notmandatory) + A shipping rate configured in OneStock connector.
A technical location associated with this shipping zone. This corresponds to the unified inventory coming from OneStock OMS configuration.
In this example, home delivery orders in France are handled by one technical location: France SFS which is the unified stock image configured in OneStock OMS. There are two shipping rates available : Express from Shopify and other(s) rates from OneStock
Shipping configuration example with OneStock
This feature relies on a checkout UI extension and carrier services. For this feature to work, the Delivery Promise extension must be activated and placed by the merchant in the checkout editor (Theme → Checkout and customers), and the "Allow app to block checkout" option must be checked.
In the OneStock connector, you can create multiple shipping rate linked to all the delivery promise configuration you have done in OneStock OMS.
In the OneStock connector, BOPIS orders are created through Shipping checkout.
What does it means in the checkout page?
Multiples delivery methods are displayed in the checkout page:
One from Shopify shipping rate named Express
Others one from OneStock shipping rate. Each shipping rate is linked to a delivery promise configuration so you can have here multiple inventory views.
Checkout page example without OneStock
How to create your shipping with delivery promise?
Please follow those steps a create a shipping zone and add rates provided by OneStock connector :
Go to Settings>Shipping and delivery
Click on the “General shipping rates” sub-module within the “Shipping” module
Click on the Fulfillment location's “Add shipping zone” button
Fill up the “Zone name” and choose the concerned region
Click on the black “Done” button
Click on the Fulfillment location's “Add rate” button
Select the option “Use carrier or app to calculates rates” within the “Rate type” list
Check that the option “Onestock Shipping Rate Provider (Rates provided by app)” is already selected
Click on the black “Done” button
Save the configuration
Please note additional configuration in the OneStock connector must be done to finalize it
Shipping summary
OneStock connector can retrieve orders:
From the shipping checkout with Shopify rate.
From the shipping checkout with OneStock rate.
Shipping orders are created as delivery orders in OneStock.
BOPIS orders are created as click and collect orders in OneStock. In Shopify, they are linked to the shipping workflow.
PUDO orders are created as delivery orders in OneStock.
Pickup in-store
This section in Shopify allows you to let customers pick up their orders at your locations.
Pickup in-store without OneStock OMS
In a Shopify environment without the OneStock connector, you must activate your Shopify location with the Offers pickup flag in order to display your shops on the Pickup in-store checkout page. There are several options available:
Activate your location as available for in-store collection.
Block product transfer between locations.
Enable the transfer of stock from one location to another
What does it means in the checkout page?
One delivery method in the checkout page: Pickup in-store. You are having this method because of the above configuration on the Pickup in-store configuration in Shopify.
Pickup locations are displayed because they are active for in-store collection.
Checkout page example without OneStock
How to create your Pickup in-store?
Prerequisite is that locations are created with product in stock
Please follow those steps a create a pickup in-store checkout:
Go to Settings>Shipping and delivery
Click on the “Pickup in-store” module
Click on a location
On the in-store pickup page, active the location status
Save the configuration
Pickup in-store with OneStock OMS
In a Shopify environment with the OneStock connector, the configuration is a dedicated technical location in Shopify to act as the unified inventory coming from OneStock OMS configuration.
Location management
Same configuration as without the OneStock connector, you must activate your Shopify location with the Offers pickup flag in order to display your shops on the Pickup in-store checkout page.
In addition to this configuration, each of your pickup locations must be configured with a metafield that will later be used in the connector configuration.
This field must strictly match the stock location ID in OneStock so that, when creating orders, the connector can reliably pass the correct pickup store information to OneStock.
In this example, the location has a metafield named
locationOSwhich corresponds to the store ID in OneStock (endpoint_id)Please refer to this page.
Metafield from a Shopify location
As there is no stock shared by the OneStock connector in these real location, it is important to follow the below points:
It is mandatory to create a technical location with the unified inventory coming from OneStock.
This technical location must be associated to the real location with the store transfer module from Shopify.
In this example, the Biarritz store is activated for pickup. This means that it will be displayed at checkout as an available collection point.
The display of this location depends on the availability of stock in its inventory. With the OneStock settings, it is therefore necessary here to activate store transfer in order to be able to offer stock.
OneStock will then take care of assigning the order preparation point in accordance with the orchestration rules.
Store transfer activation
What does it means in the checkout page?
Only stores with the pickup and store transfers activated are displayed.
Regardless of the product added to the cart or whether it has stock in the pickup in-store, if a store is enabled for store transfer and the product is available in the previously created technical location, the store will be displayed in the checkout.
Additional notes on OneStock impact to handle BOPIS (C&C) orders
As OneStock modifies the standard Shopify configuration, some Shopify information will no longer be usable in this configuration.
At the time the order is placed, Shopify does not know which stock location will prepare the order. As a result, Shopify delivery dates cannot be used, as OneStock determines (based on its orchestration rules) whether the order is handled as an Express BOPIS order or a BOPIS order with delivery.
Store transfer time to process
It is critical to maintain the list of BOPIS (C&C) enabled stores synchronized between OneStock and Shopify.
Example: If a store is enabled as a pickup location in Shopify, it must also be enabled in OneStock. Any desynchronization would prevent OneStock from routing the order to the pickup store for preparation or collection.
PDP impact
The implemented configuration has an impact on the storefront. On the product page, and depending on the Shopify theme used, the native Shopify information about in-store pickup stock availability will no longer be displayed.
Before the OneStock configuration
On the native Shopify configuration, this information is displayed only if the Palais de justice location has stock and active to be a collection point.
The pickup option only appears if:
The available quantity > 0 in the Palais de Justice location
The location is:
active
authorised for pickup in-store
After the OneStock configuration
This information is not displayed anymore.
In-store pickup does not appear because stock is only available on the technical location. Shopify native does not load any information even if store transfer is enabled.
Pickup in-store information with OneStock
How can I use detailed inventory information to enhance my product page?
To enrich your product pages as if you were using native Shopify features, OneStock provides a built-in proxy within the connector that allows you to retrieve stock information for each product.
On the PDP, you can display a value to inform your customers about the inventory level in a specific store.
WIP
WIP
OneStock impact on Shopify usage
The OneStock connector allows you to launch manual action in the Shopify admin.
Product synchronization
On the product list page in Shopify, a synchronize button is available on the more options button. This will allow you to manually synchronise your products.
On the details product page in Shopify, a synchronize button is available on the more options button. This will allow you to manually synchronise your products.
Order synchronization
Force an order synchronization from the order list
Force an order synchronization from the order details
More in-depth information for location management
To bypass the order routing in Shopify and stay master of orchestration, we need to adapt standard configuration in Shopify.
Stock decrement in Shopify
Committed decrement configuration can not be modified in Shopify. A committed is decremented :
On “Unfulfilled” to “Fulfilled” transition for Delivery and PUDO orders.
On “Ready to pick-up” to “Picked up” transition for BOPIS orders.
On “Transfer required” to “Transferred” transition for BOPIS store transfer orders.