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:

  1. In Klaviyo, select the Analytics dropdown and click Metrics.
  2. Click on the Placed Order metric from Shopify, then select the Activity feed tab.
  3. Select the Filter by dropdown and choose Source Name, then select pos in the value field next to =.
Shopify Placed Order metric in Klaviyo's Metrics tab filtered by Source Name equals Select a Value
Shopify Placed Order metric in Klaviyo's Metrics tab filtered by Source Name equals Select a Value

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:

  1. In Klaviyo, navigate to Audience > Lists & segments.
  2. Click Create and select Segment.
  3. Name your segment using the following example:
    • Name: POS Orders
    • Tags: leave blank if shown.
  4. If the Create segment panel is open, click Create segment to open the segment builder.
  5. Select What someone has done (or not done), choose the Shopify Placed Order metric, and set at least once > over all time.
  6. Click the Add filter icon for that condition, then set Source Name equals pos.
  7. Click Create segment to save the segment.
Klaviyo segment builder showing segment named POS Orders, Create Segment with black background and Cancel with white background
Klaviyo segment builder showing segment named POS Orders, Create Segment with black background and Cancel with white background

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.

Additional resources

Was this article helpful?
Use this form only for article feedback. Learn how to contact support.

Explore more from Klaviyo

Community
Connect with peers, partners, and Klaviyo experts to find inspiration, share insights, and get answers to all of your questions.
Partners
Hire a Klaviyo-certified expert to help you with a specific task, or for ongoing marketing management.
Support

Access support through your account.

Email support (free trial and paid accounts) Available 24/7

Chat/virtual assistance
Availability varies by location and plan type