Feature available in Beta program
This feature is currently only available to (some) participants in our Beta program and/or to selected customers. If the feature is not available to you and you would like to use the feature, please contact our customer support with your license number (in classic design: Administration > System > Basic Settings > Settings tab > License sub tab).
You can use Xentral together with Shopify POS in the following typical use cases:
-
You sell goods to walk-in customers at a point of sale, e.g. in a store.
If Xentral has been set up properly as described below, the workflow will be as follows:
As walk-in customers are usually handled anonymously, the Shopify order that is transferred to Xentral does not have any customer contact data. In Xentral , a default customer will automatically be assigned to such sales orders.
The sales order will then be set to fulfilled and the stock should be booked out from the Xentral warehouse by the auto-shipping process as defined in the corresponding project for your Shopify POS.
-
You might have a bonus program: While you usually don't know the contact data of your walk-in customers, for your bonus program customers, you do have customer contact data associated to an order.
If Xentral has been set up properly as described below, the workflow will be as follows:
As you want to identify your bonus program customers by name, the sales order that is transferred from Shopify to Xentral will have this customer's contact data as with any ordinary sales order from an online shop. This is handled no differently.
The sales order will then be set to fulfilled and the stock should be booked out from the Xentral warehouse by the auto-shipping process as defined in the corresponding project for your Shopify POS.
-
You offer buy-in-store & ship-to-door: Your customers buy in a store, and you deliver the goods to the customer's home.
This use case is very similar to any ordinary online shop customer: You will have the customer's contact data needed to fulfill the order. The payment method might be cash as with walk-in customers at your point of sale. Again, everything (particularly, the fulfillment) is going to be handled according to the Xentral project settings for your Shopify POS.
-
You offer click & collect: Your customers order online and pick up the purchase at the physical store.
After the customer orders online, you import the sales order from your Shopify shop into Xentral. The sales order must be marked as irrelevant for the auto-shipping process as defined in the corresponding project. Once the customer picks up the purchase at your physical store, you mark the order as fulfilled in Shopify. It will then be marked as completed in Xentral and the stock will be booked based on your project settings.
Note
We plan to implement further features for the Shopify POS integration so that it covers more use cases. In particular, we are considering to implement the following features:
-
Easy mapping of Shopify sales channels to Xentral projects
-
Inventory sync to specify Shopify locations
-
Refunds & returns
-
Gift cards
The illustration below shows the required setup of Shopify POS with Xentral .
For this setup, you need the following hardware and software components:
-
As a basis, you need a Shopify shop that is connected to Xentral .
-
In addition to the regular Shopify shop, you need the Shopify POS app for each point of sale location.
-
To account for legal requirements (the so-called KassenSichV) in Germany, you need the TSE app from Shopify. For Austria, other apps are available; please contact Shopify for more information.
The TSE app is needed for each location in Shopify POS.
-
You need hardware for the cash register system.
If you have not set up the Shopify integration with Xentral yet, please refer to Connecting Shopify with Xentral and Configuring Shopify interface settings in Xentral. These articles describe the general setup of the interface, not specific to Shopify POS. Below, you will find information about settings specifically needed for Shopify POS.
On Shopify side, you need to take care of the following task:
-
In Shopify, go to the Settings and select Checkout.
-
In the Checkout settings page, scroll down to the Order Processing section.
The last setting in this section has the following heading: After an order has been fulfilled and paid, or when all items have been refunded
-
Clear the Automatically archive the order checkbox.
With this checkbox selected, orders would be immediately archived in Shopify and therefore not pushed to Xentral . However, you need the orders to be pushed to Xentral . This is why you need to clear the checkbox.
On Xentral side, you need to ensure the following main tasks:
-
Define a default customer to be used for anonymous walk-in customers. See Create a default customer (for anonymous walk-in customers) below.
-
Define a project each to be used for each of your Shopify POS locations. The project settings determine for example your auto-shipping process:
For example, the walk-in customers in your retail store will carry the purchased products out of the store so that the order is already fulfilled and you only need to handle the stock. By contrast, for the buy-in-store & ship-to-door customers, you also need to fulfill the orders.
If you have more than one project for your Shopify POS (because you have more than one location), refer to Set up the Smarty template for using several projects with your Shopify shop below to learn how to configure the routing of orders to the correct projects with Smarty.
-
Define appropriate payment methods (e.g., cash) and map them between Shopify and Xentral in the Payment Methods tab of your Shopify shop settings in Xentral . The payment method also influences how auto-shipping is carried out. For more information, refer to Online shops.
-
Ensure that the stock available at your point of sale is reflected in a corresponding warehouse in Xentral . Otherwise you will not be able to properly track your stock in Xentral and the auto-shipping processes cannot work properly.
When walk-in customers purchase goods at your point of sale, you usually do not know their names. Therefore, the sales orders that you transfer from Shopify POS to Xentral will not include any contact data.
This section describes the required setup so that Xentral can process such sales orders.
To create a default customer in Xentral :
-
Depending on the design you are using, do one of the following:
-
In classic design: Go to Master data > Contacts and click +NEW.
-
In Xentral NextGen design: Go to Sell > Customers and click Add customer.
-
-
Select Sonstige (other) in the Type drop-down menu.
-
Enter a name of your choice, such as "Walk-in customer".
-
In the address fields, enter an address of your choice. Typically, you would enter the address of the point of sale.
-
In the Email field, enter an email address of your choice. This can be a dummy email address. The email address is needed as a unique identifier of this contact in the Xentral database. In the context of walk-in customers with Shopify POS, this email address will not receive any emails.
-
Click Save. In the classic design, you will be prompted to specify this contact as customer, supplier or employee: Specify it as Customer.
-
Switch to your Shopify shop settings in Xentral and open the Details tab > Interface sub tab.
-
At the bottom of Settings for shop or marketplace, in the Default customer for Shopify POS field, enter the default walk-in customer that you just created above.
-
Click Save.
If you have set up different sales channels in Shopify, for example different POS locations, you might want to import the sales orders into different projects in Xentral . In order for the Shopify shop importer to be able to allocate the sales orders to the correct projects, you need to set up a corresponding mapping in a Smarty template.
To create a Smarty template:
-
In your Shopify shop interface in Xentral , go to the Details tab and select the Smarty sub tab.
-
Define the Smarty code, see below.
-
Click Save.
Here's an example of such a Smarty template:
<?xml version="1.0" encoding="UTF-8"?><xml> {*START PREPARING*} {assign var=orderData value=$cart->orderData} {if $orderData->source_name == 'pos'} {if $orderData->location_id == 67427303613} <projekt>3</projekt> {elseif $orderData->location_id == 67427762365} <projekt>4</projekt> {/if} {/if} </xml>
The example above maps two different locations from Shopify by their respective location IDs to two different projects in Xentral by their internal project IDs:
-
The line
{if $orderData->location_id == 67427303613}
uses the location ID (here, 67427303613) from Shopify. You can retrieve the location IDs for example from the URL in your browser when you view this location in your Shopify admin interface. -
The line
<projekt>3</projekt>
uses the internal ID of your Xentral project. You can retrieve the internal ID by opening the project details: Go to Master data > Projects in classic design or go to Projects in the administration menu (click on your username) in the Xentral NextGen design, then click on the respective project to open the project details. The URL will now look similar to this:.../index.php?module=projekt&action=dashboard&id=3
. At the end of the URL, you can see the ID (here, id=3).