SalesTransactionItem Model

This model represents line items (such as PLU sales, discounts, surcharges etc) within a Sales Transaction.

Required
SalesTransactionItemID : string (GUID)

The Unique identifier for this record

Required
Active_RevisionID : number (int)

This represents the revision of the configuration data that was being used when this record was generated. This is primarily for use by the PowerEPOS software, however 3rd party integrators can set this too if they
are using our configuration data as a basis for sale information, otherwise just set this to 0.

Required
DateTimeOrdered : string (ISO 8601 DateTime)

The date and time the item was created/ordered in outlet local time.

Required
SortID : number (int)

The sorting identifier for the item. This defines the order in which items are displayed on the order. It is expected that each item will have a unique sort id to ensure a consistant display order,
however if multiple items have the same SortID, the sort order between them will be undefined.
Example: T-Bone Steak (SortId: 1, this is a parent item)
Medium Rare (SortId: 2, this is a child item of T-Bone Steak so should appear after)
Pepper Sauce (SortId: 3, this is a child item of T-Bone Steak so should appear after)

Required MaxLength(32) Truncates
CreatedBy_UserName : string

The name of the POS User / person who created the record.
3rd Party integrations should specify a user name (where applicable), or use the integration name as a fallback.
Example: John

Required MaxLength(32) Truncates
ModifiedBy_UserName : string

The name of the POS User / person who last modified the record.
This should match the CreatedBy_UserName when the record is first created.
3rd Party integrations should specify a user name (where applicable), or use the integration name as a fallback.
Example: John

Required MaxLength(32) Truncates
ServiceModeCommonName : string

The name of the Service Mode the item was added in.
3rd Party integrations can make up their own names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: Table

Required MaxLength(32) Truncates
ServiceModeLocalizedName : string

The localised name of the Service Mode the item was added in.
3rd Party integrations can make up their own names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: Table

Required MaxLength(8) Truncates
ServiceModeCommonShortPrefix : string

The short prefix of the Service Mode the item was added in.
3rd Party integrations can make up their own short names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: TBL

Required MaxLength(8) Truncates
ServiceModeLocalizedShortPrefix : string

The localised short prefix of the Service Mode the item was added in.
3rd Party integrations can make up their own names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: TBL

Required MaxLength(8)
ServiceModeEntityID : string

This is the reference ID relating to the Service Mode assigned to this item. If you had a service mode called "Table", a ServiceModeEntityID might be "10", indicating table number 10.
Example: 10

Required MaxLength(32) Truncates
GroupCommonName : string

The name of the Reporting Group this item belongs to.
Only applicable for PLU sale items (ie ItemType 1-9), leave blank for all other line types.
3rd Party integrations can make up their own names, or they can base them on the existing Group configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: Entrees or Spirits

Required MaxLength(32) Truncates
GroupLocalizedName : string

The localised name of the Reporting Group this item belongs to.
Only applicable for PLU sale items (ie ItemType 1-9), leave blank for all other line types.
3rd Party integrations can make up their own names, or they can base them on the existing Group configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: Entrees or Spirits

Required MaxLength(32) Truncates
MainGroupCommonName : string

The name of the Main Group this item belongs to.
Only applicable for PLU sale items (ie ItemType 1-9), leave blank for all other line types.
3rd Party integrations can make up their own names, or they can base them on the existing MainGroup configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: FOOD or BEVERAGE

Required MaxLength(32) Truncates
MainGroupLocalizedName : string

The localised name of the Main Group this item belongs to.
Only applicable for PLU sale items (ie ItemType 1-9), leave blank for all other line types.
3rd Party integrations can make up their own names, or they can base them on the existing MainGroup configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: FOOD or BEVERAGE

Required MaxLength(50) Truncates
ItemCommonName : string

The name of the item record, this must always be set and should not be blank.
3rd Party integrations can make up their own names, or they can base them on the existing configuration records if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "Garlic Bread" or "10% Discount"

Required MaxLength(50) Truncates
ItemLocalizedName : string

The localised name of the item record, this must always be set and should not be blank.
3rd Party integrations can make up their own names, or they can base them on the existing MainGroup configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: "Garlic Bread" or "10% Discount"

Required MaxLength(18)
PLU : string

The PLU number this item was generated from. Only applicable for PLU based ItemType's, all other ItemTypes should leave this blank (ie empty string).

Required MaxLength(24) Truncates
SaleModifierCommonName : string

The name of the Sale Modifier applied to this item record (if applicable). Applies to PLU Sale based items only.
For PLU Sale based item types, if no Sales Modifier was applied then set this to "[No Modifier]"
For all other item types, set this to blank (ie empty string)
3rd Party integrations can make up their own sale modifier names if required, or they can base them on the existing configuration records if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "Pint" or "Double Shot"

Required MaxLength(24) Truncates
SaleModifierLocalizedName : string

The localised name of the Sale Modifier applied to this item record (if applicable). Applies to PLU Sale based items only.
For PLU Sale based item types, if no Sales Modifier was applied then set this to "[No Modifier]"
For all other item types, set this to blank (ie empty string)
3rd Party integrations can make up their own sale modifier names if required, or they can base them on the existing configuration records if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: "Pint" or "Double Shot"

Required MaxLength(8) Truncates
SaleModifierPrefixCommonName : string

The prefix of the Sale Modifier applied to this item record (if applicable). Applies to PLU Sale based items only, prefix is optional for Sales Modifiers. Prefixes are applied to the front of the item name.
For PLU Sale based item types, if no Sales Modifier was applied then this should be blank (ie empty string).
For all other item types, set this to blank (ie empty string).
3rd Party integrations can make up their own sale modifier names if required, or they can base them on the existing configuration records if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "PINT" (as in 1 x PINT Carlsberg) or "DBL" (as in 1 x DBL Jack Daniels on ice)

Required MaxLength(8) Truncates
SaleModifierPrefixLocalizedName : string

The localised prefix of the Sale Modifier applied to this item record (if applicable). Applies to PLU Sale based items only, prefix is optional for Sales Modifiers. Prefixes are applied to the front of the item name.
For PLU Sale based item types, if no Sales Modifier was applied then this should be blank (ie empty string).
For all other item types, set this to blank (ie empty string).
3rd Party integrations can make up their own sale modifier names if required, or they can base them on the existing configuration records if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: "PINT" (as in 1 x PINT Carlsberg) or "DBL" (as in 1 x DBL Jack Daniels on ice)

Required MaxLength(24) Truncates
VariantCommonName : string

The name of the Variant applied to this item record (if applicable). Applies to PLU Sale based items only.
For PLU Sale based item types, if no Variant was applied then set this to blank (ie empty string).
For all other item types, set this to blank (ie empty string)
3rd Party integrations can make up their own variant names if required, or they can base them on the existing configuration records if available. Typically this field will just be blank.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Note: This feature is typically not used, and this field will usually be blank for all 3rd party integrations
Example: "Shandy"

Required MaxLength(24) Truncates
VariantLocalizedName : string

The localised name of the Variant applied to this item record (if applicable). Applies to PLU Sale based items only.
For PLU Sale based item types, if no Variant was applied then set this to blank (ie empty string).
For all other item types, set this to blank (ie empty string)
3rd Party integrations can make up their own variant names if required, or they can base them on the existing configuration records if available. Typically this field will just be blank.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: "Shandy"

Required MaxLength(8) Truncates
VariantPostfixCommonName : string

The postfix of the Variant applied to this item record (if applicable). Applies to PLU Sale based items only, postfix is optional for Variants. Postfixes are added to the end of the item name.
For PLU Sale based item types, if no Variant was applied then this should be blank (ie empty string).
For all other item types, set this to blank (ie empty string).
3rd Party integrations can make up their own variant postfix if required, or they can base them on the existing configuration records if available. Typically this field will just be blank.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "SHANDY"

Required MaxLength(8) Truncates
VariantPostfixLocalizedName : string

The localised postfix of the Variant applied to this item record (if applicable). Applies to PLU Sale based items only, prefix is optional for Variant. Postfixes are added to the end of the item name.
For PLU Sale based item types, if no Variant was applied then this should be blank (ie empty string).
For all other item types, set this to blank (ie empty string).
3rd Party integrations can make up their own variant postfix if required, or they can base them on the existing configuration records if available. Typically this field will just be blank.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: "SHANDY"

Required MaxLength(256)
Created_DeviceIdentifier : string

This is an identifier for the device which created the record. PowerEPOS uses a combination of MAC Address, Hostname and OS.
3rd Party integrators can leave this blank, or set this to something meaningful if a need arises to track records created by a certain device.

Required MaxLength(64) Truncates
Created_TerminalCommonName : string

The name of the terminal (typically the POS terminal) that created the record.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the records, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS" or "Online Orders"

Required MaxLength(64) Truncates
Created_TerminalLocalizedName : string

The localised name of the terminal (typically the POS terminal) that created the record.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the records, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS" or "Online Orders"

Required MaxLength(4)
Created_TerminalDisplayID : string

A short ID for the terminal that created the record, typically matching the ID from the POS_Terminals (configuration) record.
3rd Party integrations can leave this blank or come up with their own short name for the terminal.
Example: P1 or TRM1 or INTG

Required MaxLength(256)
Modified_DeviceIdentifier : string

This is an identifier for the device which last modified the record. PowerEPOS uses a combination of MAC Address, Hostname and OS.
When the record is first created, this should be the same as the Created_DeviceIdentifier field
3rd Party integrators can leave this blank, or set this to something meaningful if a need arises to track records modified by a certain device.

Required MaxLength(64) Truncates
Modified_TerminalCommonName : string

The name of the terminal (typically the POS terminal) that last modified the record.
When the record is first created, this should be the same as the Created_TerminalCommonName field
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the records, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS" or "Online Orders"

Required MaxLength(64) Truncates
Modified_TerminalLocalizedName : string

The localised name of the terminal (typically the POS terminal) that last modified the record.
When the record is first created, this should be the same as the Created_TerminalLocalizedName field
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the records, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS" or "Online Orders"

Required MaxLength(4)
Modified_TerminalDisplayID : string

A short ID for the terminal that last modified the record, typically matching the ID from the POS_Terminals (configuration) record.
When the record is first created, this should be the same as the Created_TerminalDisplayID field
3rd Party integrations can leave this blank or come up with their own short name for the terminal.
Example: P1 or TRM1 or INTG

Required MaxLength(64) Truncates
Cost_CostCenterCommonName : string

The name of the cost center allocated to this item for cost tracking purposes (if applicable), otherwise blank (ie empty string)
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
3rd Party integrations can make up their own cost center names if required, or they can base them on the existing configuration records if available.
Example: "Restaurant" or "Outlet" or "Front Bar"

Required MaxLength(64) Truncates
Cost_CostCenterLocalizedName : string

The localised name of the cost center allocated to this item for cost tracking purposes (if applicable), otherwise blank (ie empty string)
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
3rd Party integrations can make up their own cost center names if required, or they can base them on the existing configuration records if available.
Example: "Restaurant" or "Outlet" or "Front Bar"

Required MaxLength(64) Truncates
Revenue_CostCenterCommonName : string

The name of the cost center allocated to this item for revenue tracking purposes (if applicable), otherwise blank (ie empty string)
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
3rd Party integrations can make up their own revenue center names if required, or they can base them on the existing configuration records if available.
Example: "Restaurant" or "Outlet" or "Front Bar"

Required MaxLength(64) Truncates
Revenue_CostCenterLocalizedName : string

The localised name of the cost center allocated to this item for revenue tracking purposes (if applicable), otherwise blank (ie empty string)
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
3rd Party integrations can make up their own revenue center names if required, or they can base them on the existing configuration records if available.
Example: "Restaurant" or "Outlet" or "Front Bar"

Required MaxLength(32) Truncates
CourseBreakCommonName : string

The name of the course break this item is allocated to (if applicable), otherwise blank (ie empty string)
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
3rd Party integrations can make up their own course break names if required, or they can base them on the existing configuration records if available.
Example: "First Course" or "Entrees" or "Mains"

Required MaxLength(32) Truncates
CourseBreakLocalizedName : string

The localised name of the course break this item is allocated to (if applicable), otherwise blank (ie empty string)
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
3rd Party integrations can make up their own course break names if required, or they can base them on the existing configuration records if available.
Example: "First Course" or "Entrees" or "Mains"

Nullable
DateTimeModified : string (ISO 8601 DateTime)

The date and time the item was last modified in outlet local time.
When the item is first created, set this the same as the DateTimeOrdered value.

Nullable
ParentSortID : number (int)

The sorting identifier for the parent item record this item links to (if applicable).
For items that are considered a child of another item (ie linked together), this field will match the SortID field of the parent record. For all parent items, this field will be 0.
Example: T-Bone Steak (SortId: 1, ParentSortID: 0, this is a parent item)
Medium Rare (SortId: 2, ParentSortID: 1, this is a child item of T-Bone Steak)
Pepper Sauce (SortId: 3, ParentSortID: 1, this is a child item of T-Bone Steak)

Nullable
Seat : number (int)

The seat number this item belongs to (where applicable).
If seat numbers are being used, typically only sale items (PLU's) are tagged with a seat number.
All other line types typically just set seat to 0.

Nullable decimal(13, 2)
SaleQty : number (decimal)

The sale item count of this line represents for PLU Sale items (ItemType 1-9).
For non sale items (ItemType >= 10) this should be set to 0.
Example: 1 (eg if line item is for 1 x Garlic Bread)
3 (eg if the line item is for 3 x Garlic Bread)
0 (eg if the line item is for 10% Discount, as this is not a sale item)

Nullable decimal(18, 7)
StockQty : number (decimal)

The unit count of stock items affected by this sale. A standard product would normally be 1:1 with SaleQty, modified products quite often affect the StockQty.
Example: 1 x Garlic Bread would have a SaleQty of 1 and a StockQty of 1
1 x DBL Jacks on Ice would have a SaleQty of 1 and a StockQty of 2 (as its a double shot)

Nullable decimal(18, 2)
Price : number (decimal)

The single unit price of the PLU sale (ItemType 1-9) item. Price should include any INCLUSIVE taxes, but exclude any EXCLUSIVE/ADDON taxes.
For all other line types (ItemType >= 10) this should be zero.
Example: 1 x Garlic Bread (SaleQty 1, Price $5.00, Amount $5.00)
Example: 3 x Garlic Bread (SaleQty 3, Price $5.00, Amount $15.00)

Nullable decimal(18, 2)
Amount : number (decimal)

The total value of the line item. Price should include any INCLUSIVE taxes, but exclude any EXCLUSIVE/ADDON taxes.
For sale items (ItemType 1-9) this should be the same as SaleQty * Price, for all other line types it should be the line value (if applicable).

Example: 1 x Garlic Bread (SaleQty 1, Price $5.00, Amount $5.00)
Example: 3 x Garlic Bread (SaleQty 3, Price $5.00, Amount $15.00)
Example: 10% Discount (SaleQty 0, Price $0.00, Amount -$1.50)

Nullable decimal(18, 7)
Cost : number (decimal)

The single unit cost of the item. This should be zero for all non PLU sale items (ie ItemType > 10).
If cost is not known for a PLU sale item, set it to 0.

Nullable decimal(18, 7)
IncTax1 : number (decimal)

This is the amount of Inclusive Tax (accurate to 7 decimal places) calculated for Tax level 1 for this line item.
This value should remain high precision, ie do not round any further than 7 decimal places. Using high precision reduces the tax rounding error at the overall transaction level and this accuracy is required in some tax juristictions.
Set to zero if no tax inclusive tax is required, or this tax level is not used
Example: 10% inclusive tax on $10.00, value would be 0.9090909

Nullable decimal(18, 7)
IncTax2 : number (decimal)

This is the amount of Inclusive Tax (accurate to 7 decimal places) calculated for Tax level 2 for this line item.
This value should remain high precision, ie do not round any further than 7 decimal places. Using high precision reduces the tax rounding error at the overall transaction level and this accuracy is required in some tax juristictions.
Set to zero if no tax inclusive tax is required, or this tax level is not used
Example: 10% inclusive tax on $10.00, value would be 0.9090909

Nullable decimal(18, 7)
IncTax3 : number (decimal)

This is the amount of Inclusive Tax (accurate to 7 decimal places) calculated for Tax level 3 for this line item.
This value should remain high precision, ie do not round any further than 7 decimal places. Using high precision reduces the tax rounding error at the overall transaction level and this accuracy is required in some tax juristictions.
Set to zero if no tax inclusive tax is required, or this tax level is not used
Example: 10% inclusive tax on $10.00, value would be 0.9090909

Nullable decimal(18, 7)
IncTax4 : number (decimal)

This is the amount of Inclusive Tax (accurate to 7 decimal places) calculated for Tax level 4 for this line item.
This value should remain high precision, ie do not round any further than 7 decimal places. Using high precision reduces the tax rounding error at the overall transaction level and this accuracy is required in some tax juristictions.
Set to zero if no tax inclusive tax is required, or this tax level is not used
Example: 10% inclusive tax on $10.00, value would be 0.9090909

Nullable decimal(18, 7)
ExTax1 : number (decimal)

This is the amount of Exclusive Tax (accurate to 7 decimal places) calculated for Tax level 1 for this line item.
This value should remain high precision, ie do not round any further than 7 decimal places. Using high precision reduces the tax rounding error at the overall transaction level and this accuracy is required in some tax juristictions.
Set to zero if no tax exclusive/addon tax is required, or this tax level is not used
Example: 8.125% exclusive tax on $2.50, value would be 0.2031250

Nullable decimal(18, 7)
ExTax2 : number (decimal)

This is the amount of Exclusive Tax (accurate to 7 decimal places) calculated for Tax level 2 for this line item.
This value should remain high precision, ie do not round any further than 7 decimal places. Using high precision reduces the tax rounding error at the overall transaction level and this accuracy is required in some tax juristictions.
Set to zero if no tax exclusive/addon tax is required, or this tax level is not used
Example: 8.125% exclusive tax on $2.50, value would be 0.2031250

Nullable decimal(18, 7)
ExTax3 : number (decimal)

This is the amount of Exclusive Tax (accurate to 7 decimal places) calculated for Tax level 3 for this line item.
This value should remain high precision, ie do not round any further than 7 decimal places. Using high precision reduces the tax rounding error at the overall transaction level and this accuracy is required in some tax juristictions.
Set to zero if no tax exclusive/addon tax is required, or this tax level is not used
Example: 8.125% exclusive tax on $2.50, value would be 0.2031250

Nullable decimal(18, 7)
ExTax4 : number (decimal)

This is the amount of Exclusive Tax (accurate to 7 decimal places) calculated for Tax level 4 for this line item.
This value should remain high precision, ie do not round any further than 7 decimal places. Using high precision reduces the tax rounding error at the overall transaction level and this accuracy is required in some tax juristictions.
Set to zero if no tax exclusive/addon tax is required, or this tax level is not used
Example: 8.125% exclusive tax on $2.50, value would be 0.2031250

Nullable decimal(18, 7)
TaxSales1 : number (decimal)

This is the sale value used for any Tax 1 calculations.
Typically this would be the same as the Amount field if the full amount of the item is being taxed.
Set to 0 only if this tax level is not used. For a tax free tax level (tax rate of 0%), this value should still be set to the amount that would be used for any normal tax calculation.

Nullable decimal(18, 7)
TaxSales2 : number (decimal)

This is the sale value used for any Tax 2 calculations.
Typically this would be the same as the Amount field if the full amount of the item is being taxed.
Set to 0 only if this tax level is not used. For a tax free tax level (tax rate of 0%), this value should still be set to the amount that would be used for any normal tax calculation.

Nullable decimal(18, 7)
TaxSales3 : number (decimal)

This is the sale value used for any Tax 3 calculations.
Typically this would be the same as the Amount field if the full amount of the item is being taxed.
Set to 0 only if this tax level is not used. For a tax free tax level (tax rate of 0%), this value should still be set to the amount that would be used for any normal tax calculation.

Nullable decimal(18, 7)
TaxSales4 : number (decimal)

This is the sale value used for any Tax 4 calculations.
Typically this would be the same as the Amount field if the full amount of the item is being taxed.
Set to 0 only if this tax level is not used. For a tax free tax level (tax rate of 0%), this value should still be set to the amount that would be used for any normal tax calculation.

Nullable
StatusFlags1 : number (int)

The applicable status flags for the item. These are flags from the POSCorePublic.Enums.Sales.ItemStatusFlags enum

IsKPPrinted : bool

Was this item printed to the KP printers (ie kitchen, bar etc)

IsReceiptPrinted : bool

Was a receipt printed that included this item?

IsTippable : bool

Is this item considered tippable for the purposes of tip allocation and tip liability

Nullable
PriceLevelID : number (int)

This unique PriceLevelID from the POS_PriceLevels (configuration) table representing the price level associated with the record (if applicable)
This is only applicable to PLU sale items (ItemType 1-9), use NULL for all other item types.
This may be NULL for 3rd party integrations

Nullable MaxLength(32) Truncates
PriceLevelCommonName : string

The name of the Price Level associated to the item record.
This is only applicable to PLU sale items (ItemType 1-9), use blank (empty string) for all other item types.
3rd Party integrations can make up their own names, or they can base them on the existing Price Level configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "Price Level 1" or "Standard Prices" or "Happy Hour"

Nullable MaxLength(32) Truncates
PriceLevelLocalizedName : string

The localised name of the Price Level associated to the item record.
This is only applicable to PLU sale items (ItemType 1-9), use blank (empty string) for all other item types.
3rd Party integrations can make up their own names, or they can base them on the existing Price Level configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: "Price Level 1" or "Standard Prices" or "Happy Hour"

Nullable
CreatedBy_EmployeeID : string (GUID)

The unique employee record ID of the employee / staff member who created the record.
This may be NULL for 3rd party integrations or where no Employee (Time Clocking / HR) integration exists.

Nullable
CreatedBy_UserID : string (GUID)

This unique UserID from the POS_Users (configuration) table representing the POS user that created the record.
This may be NULL for 3rd party integrations

Nullable
ModifiedBy_EmployeeID : string (GUID)

The unique employee record ID of the employee / staff member who last modified the record.
This should match the CreatedBy_EmployeeID when the record is first created.
This may be NULL for 3rd party integrations or where no Employee (Time Clocking / HR) integration exists.

Nullable
ModifiedBy_UserID : string (GUID)

This unique UserID from the POS_Users (configuration) table representing the POS user that last modified the record.
This should match the CreatedBy_UserID when the record is first created.
This may be NULL for 3rd party integrations

Nullable
Tipped_EmployeeID : string (GUID)

The unique employee record ID of the employee / staff member who has tip responsibility for the record. (ie tip allocations splits based on this item will goto this employee).
This is only applicable to PLU sale items (ItemType 1-9), leave NULL for all other item types.
This may be NULL for 3rd party integrations or where no Employee (Time Clocking / HR) integration exists.

Nullable
Tipped_UserID : string (GUID)

This unique UserID from the POS_Users (configuration) table representing the POS user who has tip responsibility for the record. (ie tip allocations splits based on this item will goto this user).
This is only applicable to PLU sale items (ItemType 1-9), leave NULL for all other item types.
This may be NULL for 3rd party integrations

Nullable MaxLength(32) Truncates
Tipped_UserName : string

The name of the POS User / person who has tip responsibility for the record. (ie tip allocations splits based on this item will goto this user).
This is only applicable to PLU sale items (ItemType 1-9), leave blank for all other item types.
3rd Party integrations should specify a user name (where applicable), or use the integration name as a fallback.
Example: John

Nullable
Manager_EmployeeID : string (GUID)

The unique employee record ID of the employee / manager who approved the action that created this record (if applicable).
Typically this value will be NULL as manager authorisation is usually only required occasionally.
This will typically be NULL for 3rd party integrations or where no Employee (Time Clocking / HR) integration exists.

Nullable
Manager_UserID : string (GUID)

This unique UserID from the POS_Users (configuration) table representing the POS User who approved the action that created this record (if applicable).
Typically this value will be NULL as manager authorisation is usually only required occasionally.
This will typically be NULL for 3rd party integrations

Nullable MaxLength(32) Truncates
Manager_UserName : string

The name of the POS User / person who approved the action that created this record (if applicable).
Typically this value will be NULL as manager authorisation is usually only required occasionally.
This will typically be NULL for 3rd party integrations
Example: Mary

Nullable
ServiceModeID : string (GUID)

The unique ID of the POS_ServiceModes (configuration) record matching the Service Mode the item was added in.
This may be NULL for 3rd party integrations or where no configuration based service mode was used

Nullable
GroupID_Reporting : string (GUID)

The unique ID of the POS_Groups (configuration) record matching the Reporting Group the item was added from.
Only applicable for PLU sale items (ie ItemType 1-9), leave NULL for all other line types.
This may be NULL for 3rd party integrations or where no configuration based service mode was used

Nullable
MainGroupID : string (GUID)

The unique ID of the POS_MainGroups (configuration) record matching the Main Group the item was added from.
Only applicable for PLU sale items (ie ItemType 1-9), leave NULL for all other line types.
This may be NULL for 3rd party integrations or where no configuration based service mode was used

Nullable
ItemType : number (int)

The type of item this record represents. This must be a valid value from from the from POSCorePublic.Enums.Sales.SaleItemType enum.

Nullable
ItemReferenceID : string (GUID)

The unique ID of the configuration record matching the Item Type this record was populated from (if applicable).
Example: For PLU based ItemType's, this would be the PLUID from the POS_PLUs table
Example: For Adjustment ItemType's this would be the AdjustmentID from the POS_Adjustments table
This may be NULL for 3rd party integrations or where no configuration based item type was used

Nullable
SalesModifierID : string (GUID)

The unique ID of the POS_SalesModifier (configuration) record matching the Sales Modifier that was added to the item (if applicable).
Only applicable for PLU sale items (ie ItemType 1-9), leave NULL for all other line types or where no Sales Modifier was applied.
This may be NULL for 3rd party integrations or where no configuration based service mode was used

Nullable
VariantID : string (GUID)

The unique ID of the POS_Variants (configuration) record matching the Variant that was added to the item (if applicable).
Only applicable for PLU sale items (ie ItemType 1-9), leave NULL for all other line types or where no Variant was applied.
This may be NULL for 3rd party integrations or where no configuration based service mode was used. Typically this field will be NULL.

Nullable
RecipeID : string (GUID)

The unique ID of the Predicttile Stock Recipe (configuration) that is linked to the source PLU item (if applicable).
Only applicable for PLU based sale items (ie ItemType 1-5), leave NULL for all other line types or where no stock recipe is linked.
This may be NULL for 3rd party integrations or where no stock integration is used.

Nullable
KPPrinterMask : number (int)

[INTERNAL USE]
Represents the printer bit mask that this item was/should have been printed to (if applicable)
3rd Party integrations should set this to 0.

Nullable
KVDItemID : number (int)

Nullable
GroupID_Printing : string (GUID)

[INTERNAL USE]
The unique ID of the POS_Groups (configuration) record matching the Printing Group the item was added from.
Only applicable for PLU sale items (ie ItemType 1-9), leave NULL for all other line types.
3rd Party integrations should set this to NULL.

Nullable
PLUPromptID : string (GUID)

[INTERNAL USE]
The unique ID of the POS_PLUPrompts (configuration) record matching the PLU Prompt that this item was created from.
Only applicable for PLU sale items (ie ItemType 1-5), leave NULL for all other line types.
3rd Party integrations should set this to NULL.

Nullable
PLUPromptSortID : number (int)

[INTERNAL USE]
The sort ID of the POS_PLUPrompts (configuration) record matching the sort from the PLU Prompt that this item was created from.
Only applicable for PLU sale items (ie ItemType 1-5), 0 for all other line types.
3rd Party integrations should set this to 0.

Nullable
PLUPromptParentSaleID : string (GUID)

[INTERNAL USE]
The unique ID of the POS_SalesTransactionItem parent record that started the PLU Prompt chain that this item was created from
Only applicable for PLU sale items (ie ItemType 1-9), leave NULL for all other line types.
3rd Party integrations should set this to NULL.

Nullable
ParentSalesTransactionItemID : string (GUID)

[INTERNAL USE]
The unique ID of the POS_SalesTransactionItem parent record that this sale links to (child products only)
Only applicable for PLU sale child products (ie ItemType 2-5 and 7), leave NULL for all other line types.
3rd Party integrations should set this to the applicable parent record for any child sale items being added.
Example: T-Bone Steak (SalesTransactionItemID1, this is a parent record, ParentSalesTransactionItemID will be NULL)
Medium Well (SalesTransactionItemID2, this is a child record, ParentSalesTransactionItemID would be SalesTransactionItemID1)
Pepper Sauce (SalesTransactionItemID3, this is a child record, ParentSalesTransactionItemID would be SalesTransactionItemID1)

Nullable
PLUSpecialID : string (GUID)

[INTERNAL USE]
The unique ID of the POS_PLUSpecials (configuration) record matching the PLU Special that this item was created from.
Only applicable for PLU sale items (ie ItemType 1-5), leave NULL for all other line types.
3rd Party integrations should set this to NULL.

Nullable MaxLength(1024)
SplitBillJson : string

[INTERNAL USE]
The serialised JSON of the split bill allocations model defined during a Split Bill operation affecting this item
3rd Party integrations should set this to NULL.

Nullable
TaxGroupID : string (GUID)

This is the unique TaxGroupID of a record from the POS_TaxGroups (configuration) table representing the Tax Group which was used for tax calculations on this item.
Only applicable for PLU sale items (ie ItemType 1-9), leave NULL for all other line types.
3rd Party integrations would normally set this to be NULL

Nullable MaxLength(32) Truncates
TaxGroupCommonName : string

The name of the Tax Group which was used for tax calculations on this item.
Only applicable for PLU sale items (ie ItemType 1-9), leave blank (empty string) for all other line types.
3rd Party integrations can make up their own tax group names if required, or they can base them on the existing configuration records if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "VAT" or "GST" or "Tax Free"

Nullable MaxLength(32) Truncates
TaxGroupLocalizedName : string

The localised name of the Tax Group which was used for tax calculations on this item.
Only applicable for PLU sale items (ie ItemType 1-9), leave blank (empty string) for all other line types.
3rd Party integrations can make up their own tax group names if required, or they can base them on the existing configuration records if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: "VAT" or "GST" or "Tax Free"

Nullable
Created_TerminalID : string (GUID)

This is the unique TerminalID of a record from the POS_Terminals (configuration) table representing the Terminal which created the record.
3rd Party integrations would normally set this to be NULL

Nullable
Modified_TerminalID : string (GUID)

This is the unique TerminalID of a record from the POS_Terminals (configuration) table representing the Terminal which last modified the record.
When the record is first created, this should be the same as the Created_TerminalID field
3rd Party integrations would normally set this to be NULL

Nullable
Cost_CostCenterID : string (GUID)

This is the unique ID of a record from the POS_CostCenters (configuration) table representing the cost center allocated to this item for cost tracking purposes
3rd Party integrations would normally set this to be NULL

Nullable
Revenue_CostCenterID : string (GUID)

This is the unique ID of a record from the POS_CostCenters (configuration) table representing the cost center allocated to this item for revenue tracking purposes
3rd Party integrations would normally set this to be NULL

Nullable
CourseBreakID : string (GUID)

This is the unique ID of a record from the POS_CourseBreaks (configuration) table representing the course break this item is allocated to (if applicable)
3rd Party integrations would normally set this to be NULL

Example
{
  "SalesTransactionItemID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Active_RevisionID": 321,
  "DateTimeOrdered": "2012-04-03T09:40:59.736Z",
  "SortID": 321,
  "CreatedBy_UserName": "string value",
  "ModifiedBy_UserName": "string value",
  "ServiceModeCommonName": "string value",
  "ServiceModeLocalizedName": "string value",
  "ServiceModeCommonShortPrefix": "string value",
  "ServiceModeLocalizedShortPrefix": "string value",
  "ServiceModeEntityID": "string value",
  "GroupCommonName": "string value",
  "GroupLocalizedName": "string value",
  "MainGroupCommonName": "string value",
  "MainGroupLocalizedName": "string value",
  "ItemCommonName": "string value",
  "ItemLocalizedName": "string value",
  "PLU": "string value",
  "SaleModifierCommonName": "string value",
  "SaleModifierLocalizedName": "string value",
  "SaleModifierPrefixCommonName": "string value",
  "SaleModifierPrefixLocalizedName": "string value",
  "VariantCommonName": "string value",
  "VariantLocalizedName": "string value",
  "VariantPostfixCommonName": "string value",
  "VariantPostfixLocalizedName": "string value",
  "Created_DeviceIdentifier": "string value",
  "Created_TerminalCommonName": "string value",
  "Created_TerminalLocalizedName": "string value",
  "Created_TerminalDisplayID": "string value",
  "Modified_DeviceIdentifier": "string value",
  "Modified_TerminalCommonName": "string value",
  "Modified_TerminalLocalizedName": "string value",
  "Modified_TerminalDisplayID": "string value",
  "Cost_CostCenterCommonName": "string value",
  "Cost_CostCenterLocalizedName": "string value",
  "Revenue_CostCenterCommonName": "string value",
  "Revenue_CostCenterLocalizedName": "string value",
  "CourseBreakCommonName": "string value",
  "CourseBreakLocalizedName": "string value",
  "DateTimeModified": "2012-04-03T09:40:59.736Z",
  "ParentSortID": 321,
  "Seat": 321,
  "SaleQty": 1.23,
  "StockQty": 1.23,
  "Price": 1.23,
  "Amount": 1.23,
  "Cost": 1.23,
  "IncTax1": 1.23,
  "IncTax2": 1.23,
  "IncTax3": 1.23,
  "IncTax4": 1.23,
  "ExTax1": 1.23,
  "ExTax2": 1.23,
  "ExTax3": 1.23,
  "ExTax4": 1.23,
  "TaxSales1": 1.23,
  "TaxSales2": 1.23,
  "TaxSales3": 1.23,
  "TaxSales4": 1.23,
  "StatusFlags1": 321,
  "IsKPPrinted": true,
  "IsReceiptPrinted": true,
  "IsTippable": true,
  "PriceLevelID": 321,
  "PriceLevelCommonName": "string value",
  "PriceLevelLocalizedName": "string value",
  "CreatedBy_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "CreatedBy_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "ModifiedBy_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "ModifiedBy_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Tipped_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Tipped_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Tipped_UserName": "string value",
  "Manager_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Manager_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Manager_UserName": "string value",
  "ServiceModeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "GroupID_Reporting": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "MainGroupID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "ItemType": 321,
  "ItemReferenceID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "SalesModifierID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "VariantID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "RecipeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "KPPrinterMask": 321,
  "KVDItemID": 321,
  "GroupID_Printing": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "PLUPromptID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "PLUPromptSortID": 321,
  "PLUPromptParentSaleID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "ParentSalesTransactionItemID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "PLUSpecialID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "SplitBillJson": "string value",
  "TaxGroupID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "TaxGroupCommonName": "string value",
  "TaxGroupLocalizedName": "string value",
  "Created_TerminalID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Modified_TerminalID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Cost_CostCenterID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Revenue_CostCenterID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "CourseBreakID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512"
}