Skip to main content

POS Output

The document root element, !DOCTYPE, must be POSOutput. Every POSOutput element must have the following attributes:

Field Name

Description

vendor

The vendor name

model

The model name. Generally refers to the point of sale (POS) terminal model.

version

The version identifier. Generally refers to the POS terminal version.

terminal

The number referencing which terminal the order is being taken on

POSversion

The software version of program that generates the XML

employee_badge

The employee or cashier number

insert

The Insert/Cash Drawer number

Sample !DOCTYPE POSOutput

 <?xml version="1.0"?>
 <!DOCTYPE POSOutput >
 <POSOutput vendor="SICOM" model="SL" version="1.0" terminal="0" 
POSVersion="3.02d" 
employee_badge="101" insert="2" >

The POS Output has the following available elements:

Element

Description

Order

The Order element appears after the POSOutput element.

Note

Every POSOutput element must contain an Order element.

ItemBuild and MainOrder

The order display area on the Customer Facing Display is categorized into two (2) sections: Main Order and Current Item

ProductDetail

The ProductDetail element is contained within the MainOrder and ItemBuild elements

ValueMeal

The ValueMeal element contains a line_items attribute unlike the Product element that contains the qualifiers attribute

Qualifier

Product elements may contain Qualifier elements. Qualifiers are modifications to the product, such as "No Onion."

Discount

Product elements may contain Discount elements. Discount elements are usually "Free Items" or "Item Coupons."

Total

The running order total is displayed at the bottom of the Customer Facing Display using the Total element

OrderDiscount

Full order discounts or value off is displayed on the Customer Facing Display using the OrderDiscount element

Order

The Order element appears after the POSOutput element.

Note

Every Order element must contain the following attributes: number, state, and order_time.

Element Attributes

Field Name

Required

Description

number

Yes

The sequential order number

line_items

No

The count of items contained in the order. Two of the same item are traditionally grouped on a single line in the virtual receipt. For example, if two "BURGER" are ordered, then the line_items will be "1," but the quantity will be "2," and two "BURGER" will be contained in the order.

For more information, see Sample line_items Code.

If the option to "Don't Consolidate Items and Don't Sort Items" is checked in Edit Global POS Options, then each "BURGER" in the order will occupy its own line in the virtual receipt, and the line_items value will be "2."

For more information, see Sample line_items Non-consolidated Code.

state

Yes

The current status of the order. The current possible order states are as follows:

  • New - The first item for a new order.

  • InProgress - The subsequent items for an open order.

  • DTStore - The order is stored for recall.

  • Paid - The order has been completed and paid.

  • Served - The order has been served to the customer.

    Note

    Pre POS 3.15, if the option “Automatically Serve On New Order or Oldest Unpaid/Serve” is checked in SystemConfigurationEdit Terminal POS Options, then the order skips from the "InProgress" state straight to a "Served" state when the order is paid for, instead of going from "InProgress" to "Paid." Post POS 3.15, the order is always shown in a "Paid" state before moving to a "Served" state, regardless of what option is checked.

order_time

Yes

The value should be the transaction start time in seconds. The order_time attribute is formatted in Unix time.

waste

No

The flag that identifies an order as waste

overring

No

The flag for an order being voided/over rung. The default is “no.”

destination

No

The destination number. The current available destinations and their numbers are as follows:

  • Eat In = "1"

  • Take Out = "2"

  • Drive Thru = "3"

  • Delivery = "4"

dtlane

No

For drive thru orders, you can select a lane that determines which Order Confirmation Unit the orders will be routed to. This value can be “0” (on front counter), “1” (default in drive thru), or “2” (selected in drive thru by the order taker).

didsubtotal

No

Whether the cashier has pressed “Total” on their point of sale (POS) terminal.

unique_id

No

This an 8-digit order specific number. It is calculated by using the terminal number, order number, and the time of the order. The unique_id should be considered unique for the restaurant level, because it can technically be duplicated by another order in another restaurant. This identifier is attached to orders so that they can be tracked by the POS system when they are sent to kitchen screens. The unique_id is attached to orders performed in POS version 3.15h and later.

manager_uid

No

This is the unique identifier (UID) of a manager in the POS system. This value is generated when the Manager Access Card that is linked to a manager in the database is used to authorize a POS transaction.

Sample Order Element Code

<?xml version="1.0"?>
 <!DOCTYPE POSOutput >
 <POSOutput vendor="SICOM" model="SL" version="1.1" terminal="0" 
POSVersion="3.SRV" employee_badge="101" insert="12" >
 <Order number="4" line_items="1" state="Served" order_time="1356972453" 
waste="no" overring="no" destination="1" dtlane="0" didsubtotal="yes" 
unique_id="10160200">

Sample line_items Code

<?xml version="1.0"?>
 <!DOCTYPE POSOutput >
 <POSOutput vendor="SICOM" model="SL" version="1.1" terminal="0" 
POSVersion="3.15b" employee_badge="101" insert="25" training="no" >
 <Order number="86" line_items="1" state="InProgress" order_time="1376403611" 
waste="no" overring="no" destination="1" dtlane="0" didsubtotal="yes">
 <MainOrder>
 <ProductDetail>
 <Product name="BURGER" long_name="BURGER" category="2" price="740" 
qualifiers="0" qty="2" plu="20500" extended_price="1480">
 </Product>
 </ProductDetail>
 </MainOrder>
 <Subtotal value="1480"/>
 <Taxes>
 <Tax name="10%% TAX" value="148"/>
 </Taxes>
 <Total value="1628"/>
 </Order>
 </POSOutput>

Two Consolidated "BURGER" Equaling One line_items in the XML Output

OCU_Order.png

Sample line_items Non-consolidated Code

<?xml version="1.0"?>
 <!DOCTYPE POSOutput >
 <POSOutput vendor="SICOM" model="SL" version="1.1" terminal="0" 
POSVersion="3.15b" employee_badge="101" insert="25" training="no" >
 <Order number="85" line_items="2" state="InProgress" order_time="1376402336" 
waste="no" overring="no" destination="1" dtlane="0" didsubtotal="no">
 <MainOrder>
 <ProductDetail>
 <Product name="BURGER" long_name="BURGER" category="2" price="740" 
qualifiers="0" qty="1" plu="20500" extended_price="740">
</Product>
 <Product name="BURGER" long_name="BURGER" category="2" price="740" 
qualifiers="0" qty="1" plu="20500" extended_price="740">
 </Product>
 </ProductDetail>
 </MainOrder>
 <Subtotal value="1480"/>
 <Taxes>
 <Tax name="10%% TAX" value="148"/>
 </Taxes>
 <Total value="1628"/>
 </Order>
 </POSOutput>

Two Non-consolidated "BURGER" Equaling Two line_items in the XML Output.

OCU_Order_2.png

ItemBuild and MainOrder

The order display area on the Customer Facing Display is categorized into two (2) sections: Main Order and Current Item. The Current Item always appears at the bottom of the order.

OCU_ItemBuild_and_MainOrder.png

The ItemBuild element displays the details of the current order the cashier is entering. It displays below the “---- Current Item ----” line.

After an item is complete, the item moves to the Main Order section by using the MainOrder element. The ItemBuild element is an optional feature. If you choose not to use the ItemBuild element, then all items are put directly within a MainOrder element.

For the element attributes, see ProductDetail.

Sample ItemBuild Code

<ItemBuild>
 <ProductDetail>
 <Product name="CHS BURGER " long_name="" category="3" price="100" 
qualifiers="0" qty="1" plu="20600" extended_price="100">
 </Product>
 </ProductDetail>
 </ItemBuild>

Sample MainOrder Code

 <MainOrder>
 <ProductDetail>
 <Product name="BURGER " long_name="" category="3" price="100" 
qualifiers="0" qty="1" plu="20500" extended_price="100">
 </Product>
 </ProductDetail>
 </MainOrder>

Sample MainOrder and ItemBuild Code

<?xml version="1.0"?>
 <!DOCTYPE POSOutput >
 <POSOutput vendor="SICOM" model="SL" version="1.0" terminal="0" 
POSVersion="3.02d" employee_badge="101" insert="2" >
 <Order number="8" line_items="1" state="InProgress" order_time="1271442499" 
waste="no" overring="no" destination="1">
 <MainOrder>
 <ProductDetail>
 <Product name="BURGER " long_name="" category="3" price="100" 
qualifiers="0" qty="1" plu="20500" extended_price="100">
 </Product>
 </ProductDetail>
 </MainOrder>
 <ItemBuild>
 <ProductDetail>
 <Product name="CHS BURGER " long_name="" category="3" price="100" 
qualifiers="0" qty="1" plu="20600" extended_price="100">
 </Product>
 </ProductDetail>
 </ItemBuild>
 </Order>
 </POSOutput>

ProductDetail

The ProductDetail element is contained within the MainOrder and ItemBuild elements. The ProductDetail element contains either Product or ValueMeal elements. The Product element is typically used for à la carte items. The ValueMeal element is typically used for multiple items that are linked together.

Note

Every Product and ValueMeal element must contain a name and extended_price attribute.

Element Attributes

Field Name

Required

Description

name

Yes

13 character maximum item description

long_name

No

29 character maximum item description

category

No

The category number

price

No

The single item price. If more than one of the same item is sold within an order, then the price is the price of the single item, and the extended price is the price of every one of the same items added together.

A price entered as 1041 in XML displays as $10.41 in the point of sale (POS) system.

qualifiers

No

The qualifier count. If greater than zero, multiple Qualifier elements should follow.

qty

No

The item quantity. The default is 1.

plu

No

The item price look up (PLU) number

extended_price

Yes

The item extended (total) price (without currency separator). A price entered as 1041 in XML, displays as $10.41 in the POS system.

If more than one item is sold within an order, then the extended price is the price of all the same items added together.

See Price and Extended Price for an example of price versus extended_price.

For sample code, see ItemBuild and MainOrder.

Price and Extended Price

The elements price and extended_price mirror each other unless the quantity of an item in the order is greater than "1." If the quantity of an item in an order is greater than "1," then the price reflects the price of a single item, while extended_price reflects the total price of all the items.

ValueMeal

The ValueMeal element contains a line_items attribute unlike the Product element that contains the qualifiers attribute.

Element Attribute

Field Name

Description

line_items

The number of Product elements within the ValueMeal

Sample ValueMeal Code

<ProductDetail>
 <ValueMeal name="KIDS MEAL BRG" long_name="" category="81" price="279" 
line_items="4" qty="1" plu="3001000" extended_price="279">
 <Product name="BURGER " long_name="" category="3" price="0" qualifiers="0" 
qty="1" plu="20500" extended_price="0">
 </Product>
 <Product name="KD FRY " long_name="" category="8" price="0" qualifiers="0" 
qty="1" plu="50010" extended_price="0">
 </Product>
 <Product name="KD COKE " long_name="KIDS COKE" category="9" price="0" 
qualifiers="0" qty="1" plu="80099" extended_price="0">
 </Product>
 <Product name="MEAL TOY " long_name="" category="60" price="0" qualifiers="0" 
qty="1" plu="7019300" extended_price="0">
 </Product>
 </ValueMeal>
 </ProductDetail>

Qualifier

Product elements may contain Qualifier elements. Qualifiers are modifications to the product, such as "No Onion."

If the qualifiers attribute is set, the Customer Facing Display expects to receive that number of Qualifier elements.

Note

Each Qualifier element must contain a name and extended_price attribute.

Element Attributes

Field Name

Required

Description

name

Yes

13 character maximum item description

long_name

No

29 character maximum item description

category

No

The category number

price

No

The item price

qty

No

The number of qualifiers. The default is 1.

plu

No

The item price look up (PLU) number

extended_price

Yes

The qualifier value (without currency separator). A price entered as 1041 in XML displays as $10.41 in the point of sale (POS) system.

Sample Qualifier Code

<ProductDetail>
 <Product name="BURGER " long_name="" category="3" price="100" qualifiers="1" 
qty="1" plu="20500" extended_price="100">
 <Qualifier name=" no onion " long_name="" category="21" price="0" qty="1" 
plu="9010100" extended_price="0"/>
 </Product>
 </ProductDetail>

Discount

Product elements may contain Discount elements. Discount elements are usually Free Items or Item Coupons.

Note

Every Discount element must contain a name and extended_price attribute.

Element Attributes

Field Name

Required

Description

name

Yes

13 character maximum item description

long_name

No

29 character maximum item description

category

No

The category number

extended_price

Yes

The discount value (without currency separator). A discounted price entered as 1041 in XML displays as $10.41 in the point of sale (POS) system.

qty

No

The item quantity. The default is 1.

Sample Discount Code

 <ProductDetail>
 <Product name="BURGER " long_name="" category="3" price="100" qualifiers="0" 
qty="1" plu="20500" extended_price="100">
 <Discount name="FREE COUPON " long_name="" category="81" extended_price="-100" 
qty="1"/>
 </Product>
 </ProductDetail>

Total

The running order total is displayed at the bottom of the Customer Facing Display using the Total element. The required value attribute holds the total to be displayed. The amount should not contain a currency separator. The currency separator is inserted by the Customer Facing Display based on the XML configuration.

The Customer Facing Display accepts Subtotal and Taxes elements, but these elements are not displayed on the Customer Facing Display currently.

Element Attribute

Field Name

Required

Description

value

Yes

The order total including tax (without currency separator). A price entered as 1041 in XML displays as $10.41 in the point of sale (POS) system.

Sample Total Code

 <?xml version="1.0"?>
 <!DOCTYPE POSOutput >
 <POSOutput vendor="SICOM" model="SL" version="1.0" terminal="0" 
POSVersion="3.02d" employee_badge="101" insert="2" >
 <Order number="9" line_items="2" state="InProgress" order_time="1271442990" 
waste="no" overring="no" destination="1">
 <MainOrder>
 <ProductDetail>
 <Product name="BURGER " long_name="" category="3" price="100" qualifiers="0" 
qty="1" plu="20500" extended_price="100">
 <Discount name="FREE COUPON " long_name="" category="81" extended_price="-100" 
qty="1"/>
 </Product>
 <Product name="CHS BURGER " long_name="" category="3" price="100" 
qualifiers="0" qty="1" plu="20600" extended_price="100">
 </Product>
 </ProductDetail>
 </MainOrder>
 <Subtotal value="100"/>
 <Taxes>
 <Tax name="TAX " value="6"/>
</Taxes>
 <Total value="106"/>
 </Order>
 </POSOutput>

OrderDiscount

Full order discounts or value off is displayed on the Customer Facing Display using the OrderDiscount element.

Note

Every OrderDiscount element must contain a name and extended_price attribute.

Element Attributes

Field Name

Required

Description

name

Yes

13 character maximum item description

long_name

No

29 character maximum item description

category

No

The category number

extended_price

Yes

The discount value (without currency separator). A discounted price entered as 1041 in XML displays as $10.41 in the point of sale (POS) system.

qty

No

The item quantity. The default is 1.

Sample OrderDiscount Code

<?xml version="1.0"?>
 <!DOCTYPE POSOutput >
 <POSOutput vendor="SICOM" model="SL" version="1.0" terminal="0" 
POSVersion="3.02d" employee_badge="101" insert="2" >
 <Order number="10" line_items="2" state="InProgress" order_time="1271443188" 
waste="no" overring="no"  destination="1">
 <MainOrder>
 <ProductDetail>
 <Product name="BURGER " long_name="" category="3" price="100" qualifiers="0" 
qty="1" plu="20500" extended_price="100">
 </Product>
 <Product name="CHS BURGER " long_name="" category="3" price="100" 
qualifiers="0" qty="1" plu="20600" extended_price="100">
 </Product>
 </ProductDetail>
 </MainOrder>
 <OrderDiscounts>
 <OrderDiscount name="10%% BUSINESS " long_name="" category="81" 
extended_price="-20" qty="1"/>
 </OrderDiscounts>
 <Subtotal value="180"/>
 <Taxes>
 <Tax name="TAX " value="11"/>
 </Taxes>
 <Total value="191"/>
 </Order>
 </POSOutput>