Skip to main content

Operations

Beyond shopper-facing checkout, the Core Service feeds data to analytics dashboards and integrates with the staff-facing tools store management and support use day to day: analytics dashboards, customer administration, and real-time basket monitoring. This page documents those three surfaces — Dashboards (SSA), Customer Management Portal, and Basket Monitoring — as distinct from Configuration, which covers tenant/store settings.

Dashboards (SSA)

Self-Service Analytics (SSA) is Hii Retail's analytics product for self-service checkout data — a Looker-on-BigQuery solution that offers insight into My-Scan and BAES (loss-prevention) events and operations.

The Core Service feeds SSA directly: after a ticket is uploaded (UploadTicketHandler), it makes a synchronous outbound call to SSA with the finalized POS transaction:

POST {SsaServiceUri}/api/v1/pos-transactions
Pos-Sender: SCANANDGO

This only happens in the Cloud host environment — CheckoutSettings.SsaServiceUri defaults to https://selfserviceanalytics.retailsvc.com; when it's unset (e.g. OnPrem), a no-op NullSsaService is registered instead. The call has a 3-second timeout, and a failure is logged and swallowed rather than failing the upload — SSA is long-term archival/analytics, not a blocking dependency of checkout.

SSA's dashboards cover areas such as:

CategoryExample
AdoptionAdoption rates over time (self-service vs. traditional checkout)
UtilizationMachine/workstation utilization rates
PerformanceTransaction time distribution
Customer behaviorCustomer segmentation
Loss preventionError and intervention analysis, rescan/audit data
QueueingQueue dynamics (wait times, throughput)

GUI: SSA's dashboards are accessed as a tile in the tenant's Hii Retail Console (the retailer's landing page) — there's no separate SSA login. My-Scan itself has no dashboard UI; it only sends data.

Customer Management Portal

The Customer Management Portal (CMP) is a staff-facing portal for searching, viewing, and managing a customer across the self-service domains — My-Scan, Scan & Go, and loss prevention (block/unblock for self-scan, force a rescan, view or change trust level).

The Core Service integrates with CMP as a client to look up and block customers:

CallPurpose
GET api/v2/members/{memberId}Look up a customer
POST api/v2/membersRegister a new customer
POST api/v2/members/{customerId}:blockBlock a customer

This is what backs the automatic customer block described in Business Flows: Abandoned Trips — when EnableCustomerBlockingForAbandonedTrips is set, the cleanup job calls the block endpoint above with a fixed reason code for "abandoned trip."

The integration is configured via CMP_BASE_URL (DEFAULT_SETTINGS.CmpBaseUrl, see Configuration: Parameters) and is only active when that value is set — in Cloud. OnPrem has no CMP integration; it falls back to a local customer service instead.

GUI: the Customer Management Portal itself, accessed via the tenant's Hii Retail Console.

Basket Monitoring

Two different surfaces let staff monitor and act on ongoing baskets: a request/response admin API consumed by CMP, and real-time push-based monitoring consumed by the Attendant App.

Basket Overview & Monitoring

The Core Service exposes a staff-only Administration API — this is what backs CMP's ongoing-baskets management screen (see Customer Management Portal above):

EndpointPurpose
GET v3/administration/baskets/ongoing (query: customerId, businessUnitId)List ongoing baskets for a customer and/or business unit (excludes baskets already in checkout)
DELETE v3/administration/baskets/{basketId}Cancel a basket

Listing returns a summary DTO projected from the full basket model held in Redis — not the full basket. Cancelling a basket that's no longer ongoing (e.g. already finished or already cancelled) returns 404 rather than succeeding again.

Attendant

The Hii Attendant App (a mobile/tablet product for store staff) gets real-time visibility into scanned items, basket status, and assistance/age-verification requests as a shopper shops — distinct from CMP's administrative, on-demand basket list above.

  • Outbound: the Core Service publishes basket-lifecycle events (BasketUpdated) that the Attendant App consumes — see Configuration: Push Topics for the topic name and wire format.
  • Inbound: when an attendant resolves an assistance request (age verification, control flag) in the app, it's pushed back to the Core Service, which applies the result to the basket and republishes BasketUpdated — so the attendant's own action is reflected back into monitoring.

GUI: the Hii Attendant App — a dedicated mobile/tablet application, not a web console.