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:
| Category | Example |
|---|---|
| Adoption | Adoption rates over time (self-service vs. traditional checkout) |
| Utilization | Machine/workstation utilization rates |
| Performance | Transaction time distribution |
| Customer behavior | Customer segmentation |
| Loss prevention | Error and intervention analysis, rescan/audit data |
| Queueing | Queue 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:
| Call | Purpose |
|---|---|
GET api/v2/members/{memberId} | Look up a customer |
POST api/v2/members | Register a new customer |
POST api/v2/members/{customerId}:block | Block 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):
| Endpoint | Purpose |
|---|---|
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.