How to differentiate Shopify POS and Shopify web data
You will learn
Learn how to distinguish between your POS and web orders in Klaviyo, if you use the Shopify point of sale (POS) system. This is done through filtering orders or creating segments. Klaviyo syncs the source_name when a customer completes the checkout process and creates an order in your Shopify store, which records the source of the order.
According to Shopify's documentation, "source_name" is defined as: "Where the order originated. May only be set during creation, and is not writeable thereafter. Orders created through official Shopify channels have protected values that cannot be assigned by other API clients during order creation. These protected values are: "web", "pos", "iphone", and "android". Orders created via the API may be assigned any other string of your choice. If source_name is unspecified, new orders are assigned the value "api"."
Before you begin
Knowledge check
If you have not already, read our guide on getting started with Shopify for step-by-step instructions on integrating, before continuing with this article.
A POS order must include a customer record and a valid email address or phone number to sync to Klaviyo. Anonymous POS orders are not included in these filters or segments.
Filter orders by source
You can filter Placed Order events in Klaviyo by "web," "pos," "iphone," "android," or other custom strings by using the source_name property associated with a given order. In Klaviyo, this property will appear as simply "Source Name" when you are building a segment or flow filter.
To filter and view exclusively POS Placed Order events:
- In Klaviyo, select the Analytics dropdown and click Metrics.
- Click on the Placed Order metric from Shopify, then select the Activity feed tab.
- Select the Filter by dropdown and choose Source Name, then select pos in the value field next to =.

To view web orders, select web instead of pos for Source Name.
Segment customers by order source
In the segment builder, you can create segments based on the Source Name property. For example, here is a segment of customers who have placed a POS order:
- In Klaviyo, navigate to Audience > Lists & segments.
- Click Create and select Segment.
- Name your segment using the following example:
- Name: POS Orders
- Tags: leave blank if shown.
- If the Create segment panel is open, click Create segment to open the segment builder.
- Select What someone has done (or not done), choose the Shopify Placed Order metric, and set at least once > over all time.
- Click the Add filter icon for that condition, then set Source Name equals pos.
- Click Create segment to save the segment.

To create a segment of web customers, repeat these steps with Source Name equals web. Customers who have placed both POS and web orders can belong to both segments.
Outcome
You've now learned how to differentiate Shopify web orders from POS orders.