Skip to main content

General Info


Overview#

QVS Smart Shopping Services is a software development platform that provides a high level of integration with existing POS systems. It was developed to support both legacy and emerging frictionless shopping technologies such as smart shopping carts, smart shelves, cameras, ESL's, BOPIS, mobile POS and more.

The initial release of Smart Shopping Services will be compatible with the Toshiba Global Commerce Solutions (TGCS) 4690 and TCx Sky Operating Systems. All 4690 applications, including ACE, SA, GSA, and user written applications will be supported.

SmartShop Flow

The Platform#

The platform provides both server and client-side elements. QVS will always provide the server side, but the client side may be provided by QVS, partners, or end users.

SmartShop Services

NOVOS#

NOVOS is the QVS server implementation for Point of Sale integration. NOVOS runs as a web service within a web server hosted on Windows, Linux, or 4690 systems. The NOVOS Server is a Java Web Services application with its own built-in web server. It is used in conjunction with the QVS Terminal Concentrator (TC) or Terminal Services (TS) product. Since NOVOS implies the use of TC or TS, often only NOVOS is used terminology-wise, without mention of the other products.

The NOVOS solution is scalable and currently supports up to 80 instances of the Terminal Sales application. NOVOS Server consists of a number of components.

Components#

The Smart Shopping Application Programming Interface (SSAPI)#

The Smart Shopping Application Program Interface (or SSAPI) is a REST API adhering to the OpenAPI 3.0 specification. The SSAPI is used by a client to build a POS transaction. The API documentation as well as a Client SDK are provided by QVS to teams that will be integrating the solution.

The Session Manager#

The Session Manager (SM) is responsible for all resources on the server. When a client initially requests service, the SM will notify the Terminal Concentrator (TC) to allocate an instance of Terminal Sales. As the primary resource manager on the server, SM is used to keep the status of any given client and to allocate a Terminal Sales Instance that may be used for the transaction. There are a limited number of Terminal Sales Instances running at any given time. The Session Manager can service more transactions than there are Terminal Sales Instances.

The Session Manager will also decide if a transaction is abandoned. If the Session Manager has not received an update from an in-process transaction in nn (configurable) minutes it will flush all information and connections for that transaction. It can always re-initiate the transaction if needed at a later time. The timeout is configurable and will be adjusted based on usage. Typical starting value for NN would be 15 minutes.

The Market Basket Manager#

NOVOS uses the data provided by the client via the SSAPI to build a Market Basket. The Market Basket Manager keeps the content of the market basket up to date. It receives the Market Basket data from the client and builds a proper transaction to presented to the terminal sales application.

The Transaction Broker#

The Transaction Broker is the interface to the Point of Sale application. It negotiates the actual processing of items through the POS documented (or undocumented) interfaces. It receives and returns the results back to the Market Basket Manager so the client can present them to the consumer.

Process Flow and Transaction Processing#

Clients connect with the Transaction Interface (TI) Web Service using HTTP or HTTPS then sends in a TI request using that connection. A terminal sales application instance is an instance of the Point Of Sale application which is used to execute a sales transaction. A session is established when an application instance is assigned to a client. The client is identified by a client identifier, the clientUUID, that is provided in each request.

The Client

  • NOVOS clients can be developed for a wide range of platforms, from smart shopping carts to shelf-label tags to mobile devices - or anything in between. QVS can develop a client to your requirements or assist your team in developing a unique solution for your environment, or provide the necessary API and supporting documentation to let your team come up to speed quickly.
  • Clients can be consumer-facing or associate-facing, and can be as simple or complex as needed for your environment - from price lookup to transaction support. Your client will communicate to the NOVOS server over a secured protocol, typically within the store.

The Smart Shopping Application Programming Interface (SSAPI)

  • The Smart Shopping Application Program Interface (or SSAPI) is a REST API adhering to the OpenAPI 3.0 specification. The API documentation as well as a Client SDK are provided by QVS to teams that will be integrating the solution.

Transaction Processing

  • A "Universally Unique Identifier" or UUID is the key to transaction processing in the SmartShop environment. It uniquely identifies a client device and transaction. If a client sends in a request context with this field set to "", the server will assign an id that should be saved by the client and reused for all requests related to a specific transaction. Please see the document ClientUUID for additional documentation regarding this important field.
  • By using the same client UUID, the client can add or void items, tender and complete transactions by adding new data to the request block returned by the last PUT command. Please see Example Transaction for a simple example of a request block.

Exception Items

  • During a transaction, NOVOS keeps a list of items that could not be sold if the reason indicates that the item might be valid but some type of associate assistance may be needed at checkout. Items with results such as item not on file, age restrict, price entry required, serial number required go on this list. The list has no purpose other than to make the client not have to keep track of these things on its own.

Session Characteristics#

  • Sessions are associated one-to-one with terminal sales instances.
  • Sessions have the following states: free, assigned, busy.
  • There can be more clients than sales instances and sessions. The number of needed sales instances depends on expected peak client activity (items/hr, items/transaction, transactions/hr).
  • An assigned session is one that is tied to a client but not busy processing a client request.
  • A busy session is one that is tied to a client and where NOVOS is in the middle of processing a request for that session.
  • Sessions are tied to a client only while there is a transaction in progress. Once a transaction is tendered, the session is freed.
  • Sessions with in-progress transactions are automatically freed after a timeout period (e.g. 5 minutes).
  • If a new client request comes in and that client is not already assigned to a session and there are no free sessions, the least recently used assigned session is given to the client after voiding any in-progress transaction.
  • Each client request contains two identifier fields: clientUUID, and clientSequenceID. If an existing session is found for a client, the clientSequenceID is matched against one saved with the session. If the sequenceID's don't match, the in-progress transaction is voided and a new transaction is started.
  • NOVOS will assign a clientSequenceID if clientSequenceID is missing or set to "" in a request. The same is true for clientUUID although a clientUUID should uniquely identify the client and live with the client for as long as possible (it should be stored or generated from something permanent that identifies the client).
  • Actual 4690 POS transactions will be processed. 4690 POS terminal sales business logic will be executed throughout the shopping trip.
  • The process flow will be the same as the flow of a POS terminal.
  • The Transaction Broker will "sign on" to a sale transaction.
  • A POS transaction number will be used (based on terminal and store) as per the POS application.
  • The Transaction Broker will present items as if they were scanned or key entered items.
  • Item data, descriptions, prices, etc. will be based on the actual POS processing.
  • Items modifiers may be used based on the retailer requirements and limitations.
  • Once all items are entered, the Transaction Broker will send the Total key.
  • The Transaction Tax and Total along with any discounts will be calculated by an instance of the POS Sales application, making it identical to a standard POS transaction at any lane.
  • Credit card processing will occur at the client device and results will be passed to terminal sales.
  • If balance due is not satisfied, the tendering process continues as it does on any lane in the store.
  • Once balance due is satisfied, the consumer will be asked to sign on the device and the signature will be captured and sent to terminal sales for processing (if supported).
  • Once tendering is complete, the sales receipt is returned to the client device and printed to the printer or emailed.
  • The printed receipt (optional) will contain all the information of an original 4690 receipt. The look of the receipt may vary from a 4690 receipt based on the features of the mobile printer being used.
  • Transaction log data will be written to the TLOG
  • If the consumer decides to pay with non-credit type of tender, or if other conditions require the transaction to be processed at a standard POS terminal the client device will execute a "suspend" for the transaction. A "suspend" receipt will be printed and the consumer will be asked to complete the transaction at a POS Terminal.

NOTES:

  • Terminal Ranges are user defined. The selected range of terminal numbers (700-799 for example) will have a unique load definition set up on the controller. Each terminal number appears to the store controller as another 4690 terminal in the store.
  • It may be necessary to make minor modifications to the POS application to facilitate the addition of Smart Shopping. QVS will identify the areas of Terminal Sales that will need to be modified.
  • Hot Backup (controller backup) is not supported.
  • NOVOS Server and Terminal Concentrator are QVS licensed products.