2 min read

In-Store Mode

Last Updated - Platform 25.0 - SDK 20.0

In-Store Mode provides a way for the user to engage with the app whilst visiting a physical store. When the user activates In-Store Mode, features across the app change to provide a better experience for the user for a specific store.

# In-Store Overview
in-store/overview
# Active In-Store Mode (functional deeplink)
in-store/activate/{store-id}

Replace store-id with the store identifier.

Set up

In-Store Mode is part of the Stores features. See Stores set up for set up steps.

To set up In-Store mode allow the app to present it using the setting:

Settings.InStore.isAvailable = true

Location

In-Store Mode works best with location services, but it does not require them.

We do not ask for 'Always' as In-Store Mode does not require it; and this means we can achieve a better opt-in rate.

When the user allows location services 'While Using the App' store geofences are enabled and local notifications (if notifications are allowed) work to encourage the user into In-Store Mode.

Geofencing

When the app has been granted location permission it will monitor the 20 closest stores to the user.

These store locations are loosely cached until the app is next opened after a minimum of 7 days since the last closest stores update. If the user switches environment or changes location or notification permissions the app updates the closest stores.

Notifications

If the app is also granted notification permission it is able to 'hand monitoring over to the OS' when the app is in the background or not running. This is done by scheduling local notifications with repeating location-based triggers.

When the user enters a store geofence with 'While Using' and notifications enabled they will receive a notification specific to that store. When they tap that notification, the SDK triggers the above deeplink for the nearby store to enable In-Store Mode.

It is completely up to the OS when the notification is sent. This will not be precisely when the user enters the geofence and may even be minutes after they leave the area or not at all.

Session

In-Store mode is only active for the life of the app. When the app is terminated by the user, In-Store Mode will be disabled.

Whilst In-Store Mode is active all requests made from the app will include a 'Poq-Store-Identifier' header set to the active StoreID.

Overview

The In-Store Overview screen is a simple deeplink-accessible screen that can be added as an Account link for a way to view, activate, change store, or deactivate In-Store Mode without location.

Home

When there is a nearby store Home presents a card view allowing the user to activate In-Store Mode for the nearby store.

When active Home switches to send the instore tag which can return (configurable via AppManager) the Action Carousel to provide easy navigation for In-Store Mode.

In-Store Widget

The InStoreWidget is the single widget that has different views that interact with In-Store Mode for various situations across the app. It can be placed anywhere in the app and even resolved via a SlotView to one of it's views.

  • InStoreActivateButton: Presents a primary button to activate a store sent as ViewSource content.
  • InStoreActivationBannerView: A wrapper around the card view that also hides itself when there is no nearby store.
  • InStoreActiveBannerView: Presents a banner when In-Store Mode is active with a dismiss button. Hides when inactive.
  • InStoreCardView: Presents the card view seen on Home to activate or deactivate In-Store Mode for the closest store.

History

  • 20.0 (v25): Initial release.
    • Presents stock on PDP, PLP and Wishlist and the action carousel on home.