You are on page 1of 28

Point-of-Sale Developer Course

Point-of-Sale Functionality

Objectives
You will be able to:
Identify 360Commerce products
Identify technologies used by Point-of-Sale product
Converse with retail specific vocabulary
Run Point-of-Sale application from a command prompt
Simulate cashier activities in the application
Simulate manager activities in the application
Identify key features of the application

360Commerce Product Suite


Customer
Interaction
Points

The Point-of-Sale
360Enterprise
application runs on
the register
(One instance on each)
or on a kiosk, connecting
to a single store server.
360Store
Back Office

360Store

Central
Office

Workforce
Management

Inventory

Point-of-Sale

Unleashed
Point-of-Sale

Unleashed
Inventory

Store Data

Back Office Integration

Applications
Optional modules

Enterprise Data

Enterprise Integration

360Commerce Product Suite


Customer
Interaction
Points

360Store

Point-of-Sale Unleashed
runs on mobile palm-top
devices
Back Office

360Store

360Enterprise
Central
Office

Workforce
Management

Inventory

Point-of-Sale

Unleashed
Point-of-Sale

Unleashed
Inventory

Store Data

Back Office Integration

Applications
Optional modules

Enterprise Data

Enterprise Integration

360Commerce Product Suite


Customer
Interaction
Points

360Store
Back Office

360Store
Inventory
Point-of-Sale

Unleashed
Point-of-Sale

Unleashed
Inventory
Store Data

Back Office Integration

Applications
Optional modules

360Enterprise

Back Office
runs at each
store, also
connecting to
the store
server.
Central
Office

Workforce
Management

Enterprise Data

Enterprise Integration

360Commerce Product Suite


Customer
Interaction
Points

360Store
Back Office

360Store

360Enterprise
Central
Office

Workforce
Management

Inventory
Point-of-Sale

Unleashed
Point-of-Sale

Unleashed
Inventory
Store Data

Back Office Integration

Applications
Optional modules

Enterprise Data

Enterprise Integration

Point-of-Sale Business Context


Business context drives 360Commerces technology choices
Offline capabilities
Must always be able to complete transactions
Some database information is stored locally
Updates to database processed by queues that guarantee
delivery

Special devices and broad compatibility required


Bar code scanners
Credit card scanners
Receipt printers

Point-of-Sale Technology
Client/Server
Provides rich device support
Enables offline functions

XML scripts
Configuration without a recompile
Types: tour, UI, manager/technician, and conduits

Java
Cross-platform compatibility
Object-oriented code provides distribution, business logic,
persistence

Point-of-Sale Technology
Swing UI
A structure of reusable layout components
Library of reusable beans

RMI
Real-time synchronous connections
Default client/server communication

JMS
For asynchronous data connections
Communication with corporate office (Back Office, Central
Office, and/or third-party systems)

Handy Retail Terms


Franking Printing transaction information on back of check or
other document.
House Account A line of credit associated with the given
retailer. Payments can be made at the register.
Layaway Customer makes payments on selected items held
at the store until the last payment is made.
Post void After the transaction is complete, it is reversed.
Tender Exchange of product for a form of payment

Handy Retail Terms


Register Machine used to check out customers
Till Plastic tray that holds the money in the drawer
Cash Drawer Drawer that fits inside the register
Transaction Much used term!
A transaction is an exchange of information
A sales transaction occurs when a customer buys an item
and the cashier enters the exchange in the Point-of-Sale
system
Each line item is also called a transaction

Running Point-of-Sale
Start the store database
Run C:\360store\pos\bin\dbstart.bat

Execute Point-of-Sale in Client/Server mode


Run C:\360store\pos\bin\StoreServerConduit.bat in one JVM
Run C:\360store\pos\bin\ClientConduit.bat in second JVM

Execute Point-of-Sale in collapsed mode


Run C:\360store\pos\bin\CollapsedConduitFF.bat

Some Point-of-Sale Sample Data


Item

Value

Employee

Guest user: username = pos, password =


pos

Customer IDs

12347, 12345

Business Customer 123, 123123


Item Numbers

1234, 20020002

Gift Card Number

1234567890101

Non-Store Coupon

512345878744, $5.00

Credit Card
Number

MasterCard 5491984444444444, 02/2005

Kit

9873

Point-of-Sale Main Options

Parameters
Branches in workflow based on parameter values, for example
MaximumCashAccepted.
Each parameter defined by

Value
Type
Validator class
Min and Max

Parameter changes include:


Values can be changed from POS UI for the single register.
Values can be changed from Back Office and distributed.
Changes to attributes other than value require XML change.

Some parameters enable Manager Overrides, in which manager


can enter password to override limitation

Reason Codes
Named, configurable lists, usually of choices, for example:
Reasons For Return - Wrong color, Didn't fit and Gift.
Cannot cause branching; merely descriptive
Often specify why a process was executed
Can be edited from the Point-of-Sale GUI.
Stored in the database, so changes reflected on all registers.

E-journal
Allows review of register activity

Provides audit trail


Written to journal.txt on register or to the database
Can also be accessed from Point-of-Sale GUI
Can be sent to store server with RMI

Contains information that is found on a dirty receipt


Transaction information, including info with no direct financial
implication such as line item changes
Activity not related to a receipt
Security role changes
Item changes
Database off-line and on-line

POSlog
POSlog is an Association of Retail Technology Standards (ARTS)
standard for XML version of transaction data
Transaction data in store database is converted to POSLog
format (XML)
Conversion is a separate scheduled job performed by Store
Server
POSlog data may be posted to JMS queue or picked up by
other applications
POSlog is how data gets passed to other applications (Central
Office, Back Office, third-party applications)

Register Flat Files


Allows register to read data when offline
A subset of database data stored locally on register
Flat files contain the data needed to process sales
Item, SKU, price, tax
User login, role
Reason codes, hard totals

Updated
When the register is opened
Can also be periodically updated during the day, at a frequency
determined by the retailer

Take a look! C:\360store\pos\bin\localitemlookup.dat

Register Queue
Allows register to write data when offline
Proprietary queue that stores serialized Java objects
Transactions and other database requests are always sent to a
local queue on the register
Queue attempts to send the requests to the database, retrying
until successful
Serialized Java Object container containing Objects relevant to
the Point-Of-Sale application.
The file is c:\360store\pos\bin\TransactionQueue.queue on your
local installation of the store.

Hard Totals
Summary financial information, enough to reconcile the till
Used to recover from catastrophic failure during workday
Can be stored in one of these:
Common file on server
Local file on each register
Using special hard totals device inside register

Automatically reset at register close and open


For this class, the files making up the Hard Totals are
C:\360store\pos\bin\defaultHardTotalsSize.dat and
C:\360store\pos\bin\defaultHardTotals.dat

Security
Limits access to certain Point-of-Sale functions
Roles
Retailer defines roles to describe types of security access, for
example, manager and trainee.
Each employee is assigned one role.
Can be mapped to LDAP
Not typical security roles think levels

Security Access Points


A function point that is restricted to users with roles that have
permission for the function point, for example, Customer Delete

Internationalization
Design and maintain software to support
Using one set of source code to support all desired markets
Externalizing all locale-dependent resources

Internationalized functions

Parameters
Reason codes
Screen text
Help (7.0)
E-journal (7.0)
Logging (7.0)* (You might not wish to localize log files unless
your support staff speaks the language in question!)

Multi-lingual support with different locales for customer (pole


display and receipt) and cashier (full-screen display)

Pricing
Prices can be overridden at the register
Price adjustments can be made for completed transactions
Best Deal feature will evaluate multiple discounts and
markdowns and apply the one that will give the best deal
Discounts tied to a store event, reduces the price of and item for
the given transaction
Markdowns tied to corporate process, reduces the price and
inventory value permanently

Tender
A form of payment such as cash, check, credit card, gift card
Multiple tenders are allowed in a transaction
Most are overtenderable: offer more than the cost of the
transaction
Cash: customer can give $20 for a $12.50 transaction
Store credit: when someone uses store credit, the cashier must
apply the whole amount, then follow rules for change due
Credit card: not allowed; cant charge more than amount due

Foreign tenders can be accepted by the system


Must be coded as separate tender types
Base product includes Canadian cash/check plus some foreign
gift certificates and store credits

Tax
Tax for a transaction
Point-of-Sale determines the right tax to apply for each item in
a transaction
Multiple tax jurisdictions allowed on one transaction
The retailer is responsible for maintaining tax tables

Tax exemptions for a transaction


System stores the tax-exempt certificate number, a reason
code, and optionally the Customer ID

Manually applied tax overrides any previous applied tax

Objectives Review
Can you:
Identify 360Commerce products?
Identify technologies used by Point-of-Sale product?
Converse with retail specific vocabulary?
Run Point-of-Sale application from a command prompt?
Simulate cashier activities in the application?
Simulate manager activities in the application?
Identify key features of the application?

Module Challenges!
Where in the Point-Of-Sale application can you:
Change Parameters?
View the E-Journal?
While experimenting with the application, try:
Paying with a Credit Card
Using a Coupon
Paying with Multiple Tenders
Overpaying with different Tenders (a little and a lot)
Paying with Canadian Money

You might also like