Use the following instructions to track a simple shopper journey through the Product Locator. This recipe helps you track the rate of shopper engagement with your tool, as well as any conversions like call store, add to cart, and placed orders.
An example "funnel" view would be:
Funnel Stage | Count | Notes |
---|---|---|
Product Locator widget loaded | 1000 | This tells you how many times our widget is being loaded on your product page |
Product Locator modal loaded | 50 | This would tell you 5% of shoppers used the Product Locator to find a product nearby |
Click to Call or Add to Cart | 10 | This would tell you 20% of shoppers started the process of buying |
Order Placed | 1 | This would tell you 10% of those shoppers converted |
Product Locator loaded on PDP
Start by tracking how many times the Product Locator is being loaded on your PDP. When the Product Locator is initially loaded on your product page, it will emit the following event:
Scope | ID | Type | Description |
---|---|---|---|
PL | 1 | Impression | PDP - Locally widget loaded on PDP |
This tells you that the Product Locator widget has been loaded. The event will look like this:
{
"id": "1",
"type": "impression",
"description": "PDP - Locally widget loaded on PDP",
"scope": "PL",
"message_type": "switchlive",
"timestamp": 1712843402762,
"url": "https://yoursite.com/product",
"company_id": "12345",
"utm": ""
}

In this example, the Product Locator widget has been loaded on the PDP (Event 1)
Optional Enhancement
If you use an in-line layout that displays stores as tiles on your PDP, you can use PL event 88 (PDP - store tile loaded in PL widget) to count the number of stores presented. The payload tells you which stores are being presented too.
Product Locator modal loaded
When the shopper clicks on your Product Locator widget to make the Product Locator modal load, the modal will emit the following event:
Scope | ID | Type | Description |
---|---|---|---|
PL | 7 | Impression | Modal - Product Locator modal loaded |
This tells you that the Product Locator modal has been loaded by the shopper. Depending on your implementation and what the shopper clicked on, it may load the "multi-store view" (shown below) or a "single-store view." Event #7 simply tells you that the modal was loaded. The event will look like this:
{
"id": "7",
"type": "impression",
"description": "Modal - Product Locator modal loaded",
"scope": "PL",
"message_type": "switchlive",
"timestamp": 1712843447803,
"url": "https://yoursite.com/productpage",
"company_id": "123",
"utm": ""
}

In this example, the shopper has clicked on the Product Locator widget to open the modal. The modal has loaded (event 7)
Optional Enhancements
To know how many stores were presented in the modal, and/or which stores are being loaded or clicked on, pull in Events 87, 4 and 9 (Event 4 is dependent your implementation)
Track Conversions
Tracking "Call Store"
If a store doesn't offer Store Pickup options, or a store offers Store Pickup options but doesn't have the particular item in-stock, the option presented will be "Call Now" to call the store.
While many shoppers will go to the store without calling them first or are using Locally after-hours, you can track how many times a shopper clicks the "Call Now" button with the following event:
Scope | ID | Type | Description |
---|---|---|---|
PL | 46 | click | Modal - product overview view - user click on Call Store Now button |
The event will tell you which store the action was taken at and for which product. It will look like this:
{
"id": "46",
"type": "click",
"description": "Modal - product overview view - user click on Call Store Now button",
"scope": "PL",
"message_type": "switchlive",
"timestamp": 1712844248364,
"url": "https://yoursite.com/productpage",
"product_id": "123456",
"style": "Product Style Name",
"upc": "850019757894",
"store_id": "181734",
"company_id": "123",
"sale_type": "call",
"product_price": "124.95",
"vendor_id": "12345",
"store_name": "Sun & Ski Sports",
"store_address": "218 Beaver Creek PL STE 9635, Avon, CO 81620",
"utm": {}
}

In this example, a store has an item in-stock but does not offer Store Pickup options, so the option presented is "Call Now"
Tracking Add to Carts
For stores that do offer ROPIS/BOPIS Store Pickup options, a shopper can add a product to their cart. To track when this occurs, use the following events:
Scope | ID | Type | Description |
---|---|---|---|
PL | 82 | impression | Modal - Product added to cart |
PL | 86 | click | Modal - user click on "Buy Now" for BOPIS referral |
Event #82 captures add to carts to retailers that use Locally's "native cart" which allows checkout directly in the Product Locator modal. It will contain the store, product and cart details:
{
"id": "82",
"type": "impression",
"description": "Modal - Product added to cart",
"scope": "PL",
"message_type": "switchlive",
"timestamp": 1712844702974,
"url": "https://yoursite/productpage",
"product_id": "1396019",
"style": "Style Name",
"upc": "850019712345",
"store_id": "36943",
"company_id": "12453",
"sale_type": "ropis",
"cart_hash": "2V43NL",
"product_price": "124.95",
"vendor_id": "12345",
"store_name": "JAX Broomfield Outdoor Gear, Farm & Ranch",
"store_address": "5005 W 120th Ave, Broomfield, CO, 80020",
"utm": {}
}

In this example, a shopper has added the product to their cart
For retailers that fulfill BOPIS through their own website's BOPIS checkout, event #86 tells you that the shopper clicked the "Buy Now" button and was redirected to the retailer's cart to complete the purchase.
It will contain the store, product and cart details:
{
"id": "86",
"type": "click",
"description": "Modal - user click on "Buy Now" for BOPIS referral",
"scope": "PL",
"message_type": "switchlive",
"timestamp": 1712844702974,
"url": "https://yoursite/productpage",
"product_id": "1396019",
"style": "Style Name",
"upc": "850019712345",
"store_id": "36255",
"company_id": "12453",
"sale_type": "bopis",
"cart_hash": "2V410L",
"product_price": "124.95",
"vendor_id": "12345",
"store_name": "REI - Denver Flagship",
"store_address": "1416 Platte St, Denver, CO 80202",
"utm": {}
}

REI fulfills BOPIS orders through their REI.com BOPIS checkout. Event 86 tracks shopper referrals to their checkout.
Tracking Sales
Orders placed through Locally's modal will trigger the final event:
Scope | ID | Type | Description |
---|---|---|---|
PL | 83 | click | Modal - Order Placed |
{
"id": "83”,
"type": "click",
"description": "Modal - Order “Placed,
"scope": "PL",
"message_type": "switchlive",
"cart_hash": “D”YYOD5,
"company_id": "12453",
"product_id": "1396019",
"product_price": "124.95",
"sale_type": "bopis",
"store_name": "REI - Denver Flagship",
"store_address": "1416 Platte St, Denver, CO 80202",
"store_id": "36255",
"style": "Style Name",
"timestamp": 1712844702974,
"type”: “click”,
"upc": "850019712345",
"url": "https://yoursite/productpage",
"vendor_id": "12345",
"utm": {}
}
Special Note
SwitchLive will only tell you about sales placed through Locally's cart. BOPIS sales that are placed through retailer site checkouts are not tracked in SwitchLive.
If you have retailers offering BOPIS sales through this method (these are typically, larger, multi-store chains that have a well-established BOPIS program), do not use SwitchLive to track "Orders Placed" data. Instead, use the Order History export from your Locally dashboard.