Key POS Extension Points
Overview
This document describes the main application process extensions that are available. For an overview of the main POS application process, please see Key POS Application Processes page.
In the Enactor Eclipse Toolkit, you can find extension points using the Resource Library.
-
Use the search functionality in the Resource Library with the prefix
ext:to locate extension points. -
Open the Extensions tab to view all available extension points in the workspace.
-
Use the Extension Library tab to view extension points grouped by category.
StartUp
Process ID Pos/StartUp
StartupExtension
- extensionPointId:
StartupExtension - inputs
| Name | Type |
|---|---|
| enactor.coreUI.User | com.enactor.core.signOn.ISignedOnUser |
| enactor.coreUI.UserLocale | com.enactor.core.localisation.ILocale |
| enactor.mfc.BaseCurrency | com.enactor.mfc.currency.ICurrency |
| enactor.mfc.Device | com.enactor.mfc.device.IDevice |
| enactor.mfc.Location | com.enactor.mfc.location.ILocation |
| enactor.mfc.PosTerminal | com.enactor.mfc.posTerminal.IPOSTerminal |
- outcome
- Fail
- Success
- StopExtensionLinking
SetupMainViewDevicesExtension
-
extensionPointId:
SetupMainViewDevicesExtension -
outcome
- Fail
- Success
- SkipDefault
SignOn
Process ID Pos/SignOn/WaitForSignOn
SignedOnExtension
- extensionPointId:
SignedOnExtension - inputs
| Name | Type |
|---|---|
| enactor.coreUI.User | com.enactor.core.signOn.ISignedOnUser |
| enactor.coreUI.UserLocale | com.enactor.core.localisation.ILocale |
| enactor.mfc.BaseCurrency | com.enactor.mfc.currency.ICurrency |
| enactor.mfc.Device | com.enactor.mfc.device.IDevice |
| enactor.mfc.Location | com.enactor.mfc.location.ILocation |
| enactor.mfc.PosTerminal | com.enactor.mfc.posTerminal.IPOSTerminal |
- outcome
- Fail
- Success
- SignOff
- StopExtensionLinking
New Transaction
Process ID Pos/Transaction/NewTransaction
NewTransactionExtension
-
extensionPointId:
NewTransactionExtension -
inputs
Name Type enactor.coreUI.AuthorisingUser com.enactor.core.signOn.ISignedOnUser enactor.coreUI.User com.enactor.core.signOn.ISignedOnUser enactor.mfc.Customer com.enactor.mfc.customer.ICustomer enactor.mfc.CustomerGroupKeyList java.util.List enactor.mfc.Device com.enactor.mfc.device.IDevice enactor.mfc.Location com.enactor.mfc.location.ILocation enactor.mfc.PosTerminal com.enactor.mfc.posTerminal.IPOSTerminal enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler enactor.pos.AdditionalSaleData java.lang.Object enactor.pos.NewTransactionData com.enactor.pos.packages.transaction.INewTransactionData enactor.pos.SellProductCode java.lang.String enactor.pos.SellProductQuantity java.lang.String enactor.pos.TransactionRecalled java.lang.Boolean -
outcome
- Fail
- Success
- NewTransaction
- NotInUse
- SignOn
- StopExtensionLinking
PreLaunchScreenExtension
-
extensionPointId:
PreLaunchScreenExtension -
outcome
- Fail
- Success
- StopExtensionLinking
PostLaunchScreenExtension
-
extensionPointId:
PostLaunchScreenExtension -
outcome
- Fail
- Success
- StopExtensionLinking
PreprocessNewTransactionExtension
-
extensionPointId:
PreprocessNewTransactionExtension -
inputs
Name Type enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler enactor.pos.SavedTransactionData com.enactor.pos.packages.transaction.INewTransactionData -
outcome
- Success
Sale
Process ID Pos/Sale/Sale
PreBasketSaleExtension
-
extensionPointId:
PreBasketSaleExtension -
inputs
Name Type enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler -
outcome
- Fail
- Success
- EndTransaction
- ExitWithEvent
- NewTransaction
- SignOff
- SignOn
- Total
- StopExtensionLinking
SaleExtension
-
extensionPointId:
enactor.uc.SaleExtension -
inputs
Name Type enactor.coreUI.CurrentEvent com.enactor.core.events.IEvent -
outcome
- EndTransaction
- Tender
Handle Functions
Process ID Pos/Sale/HandleFunctions
HandleFunctionExtension
-
extensionPointId:
HandleFunctionExtension -
inputs
Name Type enactor.coreUI.CurrentEvent com.enactor.core.events.IEvent enactor.coreUI.SelectedItem java.lang.Object -
outcome
- Fail
- Success
- BackToSale
- CRM_POS
- Cancel
- ForceNewTransaction
- HeaderTerminalCashManagementPressed
- LaunchMenuPressed
- MenuBack
- RichProductSearch
- SalePressed
- SuccessfulExecution
- Total
- Unknown
- StopExtensionLinking
SellItem
Process ID Pos/Product/SellItem
CallPostSellItemExtension
-
extensionPointId:
PostSellItemExtension -
inputs
Name Type enactor.mfc.Product com.enactor.mfc.product.IProduct enactor.mfc.SalesItem com.enactor.mfc.basket.items.ISalesItem -
outcome:
- Fail
- Success
- StopExtensionLinking
PreSellItemExtension
-
extensionPointId:
PreSellItemExtension -
inputs
Name Type enactor.coreUI.CurrentEvent com.enactor.core.events.IEvent enactor.mfc.ProductCode java.lang.String enactor.pos.ExternalDataMap java.util.Map enactor.pos.ProductCodeScanned java.lang.String -
outcome
- Fail
- Success
- Cancel
- SkipDefault
- StopExtensionLinking
PreSellKnownProductExtension
-
extensionPointId:
PreSellKnownProductExtension -
inputs
Name Type enactor.mfc.Basket com.enactor.mfc.basket.IBasket enactor.mfc.ProductId java.lang.String enactor.mfc.Quantity java.lang.Double -
outcome
- Fail
- Success
- AddToOrder
- Skip
- SkipDefault
- TakeNow
- StopExtensionLinking
Process ID Pos/Product/ValidateSaleItem
CheckUpdateExistingItemOrSellNew
-
extensionPointId:
UpdateExistingItem -
inputs
Name Type enactor.mfc.ProductId java.lang.String -
outcome
- Success
- UpdateExistingItem
SetEmbeddedQuantityExtension
-
extensionPointId:
SetEmbeddedQuantityExtension -
inputs
Name Type enactor.mfc.FieldValidatorDefinitionId java.lang.String enactor.mfc.InputCode java.lang.String enactor.mfc.ParsedData java.lang.Object enactor.mfc.Product com.enactor.mfc.product.IProduct enactor.mfc.ProductCode java.lang.String enactor.pos.EmbeddedPrice java.lang.Long enactor.pos.EmbeddedQuantity java.lang.Double -
outcome
- Success
Process ID Pos/Product/ValidateProductSale
AgeRestrictedSaleRefused
-
extensionPointId:
AgeRestrictedSaleRefusedExtension -
inputs
Name Type enactor.mfc.Product com.enactor.mfc.product.IProduct enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler enactor.pos.NonInteractive java.lang.Boolean -
outcome
- Fail
- Success
- Cancel
- StopExtensionLinking
CallCustomerAgeCheck
- extensionPointId:
CustomerAgeCheckExtension - inputs
| Name | Type |
|---|---|
| enactor.mfc.Product | com.enactor.mfc.product.IProduct |
| enactor.mfc.TransactionHandler | com.enactor.mfc.retail.transaction.IRetailTransactionHandler |
| enactor.pos.NonInteractive | java.lang.Boolean |
| enactor.pos.SelfServiceMode | java.lang.Boolean |
- outcome
- Fail
- Success
- Cancel
- StopExtensionLinking
ValidatePosOperation
-
extensionPointId:
ValidatePosOperationsExtension -
inputs
Name Type enactor.mfc.Product com.enactor.mfc.product.IProduct enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler enactor.pos.Operation java.lang.String -
outcome
- Fail
- Success
- StopExtensionLinking
CallPostValidateProductExtension
-
extensionPointId:
PostValidateProductExtension -
inputs
Name Type enactor.mfc.Location com.enactor.mfc.location.ILocation enactor.mfc.Product com.enactor.mfc.product.IProduct enactor.mfc.RelatedPartyId java.lang.String enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler -
outcome
- Fail
- Success
- StopExtensionLinking
Process ID Pos/Product/SellKnownProduct
SellKnownProductAdditionalDataExtension
-
extensionPointId:
SellKnownProductAdditionalDataExtension -
inputs
Name Type enactor.inventoryManagement.OnlineStockAvailabilityCheckResult java.lang.Integer enactor.mfc.SalesItem com.enactor.mfc.basket.items.ISalesItem enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler enactor.pos.SavedAuthorisingUser com.enactor.core.signOn.ISignedOnUser -
outcome
- Fail
- Success
GetItemQuantityExtension
-
extensionPointId:
GetItemQuantityExtension -
inputs
Name Type enactor.coreUI.UserLocale com.enactor.core.localisation.ILocale enactor.mfc.Device com.enactor.mfc.device.IDevice enactor.mfc.InputCode java.lang.String enactor.mfc.Location com.enactor.mfc.location.ILocation enactor.mfc.PosTerminal com.enactor.mfc.posTerminal.IPOSTerminal enactor.mfc.Product com.enactor.mfc.product.IProduct enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler enactor.pos.EmbeddedPrice java.lang.Long enactor.pos.EmbeddedQuantity java.lang.Double enactor.pos.ForOrder java.lang.Boolean enactor.pos.IsReturn java.lang.Boolean enactor.pos.IsSerialNumberedProduct java.lang.Boolean enactor.pos.Quantity java.lang.Double -
outcome
- Success
- Cancel
- NotEnoughStock
- QuantityCaptured
- ZeroStock
Process ID Pos/Product/CreateBasketItem
PreCreateBasketItemExtension
-
extensionPointId:
PreCreateBasketItem -
inputs
Name Type enactor.mfc.Product com.enactor.mfc.product.IProduct enactor.pos.BasketItemEntityName java.lang.String enactor.pos.BasketItemEntityNamespace java.lang.String -
outcome
- Fail
- Success
- StopExtensionLinking
PostCreateBasketItemExtension
-
extensionPointId:
PostCreateBasketItem -
inputs
Name Type enactor.mfc.SalesItem com.enactor.mfc.basket.items.ISalesItem -
outcome
- Fail
- Success
- StopExtensionLinking
Process ID Pos/Product/SellProductItem
SetExternalDataOnSalesItem
-
extensionPointId:
SetExternalDataOnSalesItem -
inputs
Name Type enactor.mfc.SalesItem com.enactor.mfc.basket.items.ISalesItem enactor.pos.ExternalDataMap java.util.Map -
outcome
- Fail
- Success
- StopExtensionLinking
Process ID Pos/Product/HandleProductOptionSetsHook
HandleProductOptionSets
-
extensionPointId:
HandleProductOptionSetsExtension -
inputs
Name Type enactor.coreUI.User com.enactor.core.signOn.ISignedOnUser enactor.coreUI.UserLocale com.enactor.core.localisation.ILocale enactor.mfc.Device com.enactor.mfc.device.IDevice enactor.mfc.PriceType java.lang.String enactor.mfc.Product com.enactor.mfc.product.IProduct enactor.mfc.SalesItem com.enactor.mfc.basket.items.ISalesItem enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler enactor.pos.ExternalDataMap java.util.Map enactor.pos.SalesItemWithOptions com.enactor.mfc.basket.items.SalesItemWithOptions -
outcome
- Fail
- Success
- Cancel
- StopExtensionLinking
Process ID Pos/Product/AddItemToBasketNoUpdate
AddItemToBasketNoUpdateExtension
-
extensionPointId:
AddItemToBasketNoUpdateExtension -
inputs
Name Type enactor.coreUI.User com.enactor.core.signOn.ISignedOnUser enactor.mfc.BasketItem com.enactor.mfc.basket.items.IBasketItem enactor.mfc.Location com.enactor.mfc.location.ILocation enactor.mfc.PosTerminal com.enactor.mfc.posTerminal.IPOSTerminal enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler enactor.mfc.TransactionItemProcessor com.enactor.core.transaction.ITransactionItemProcessor -
outcome
- Fail
- Success
- StopExtensionLinking
Tendering
Process ID Pos/Tender/DoTender
Call PreLoadRefundMenuExtension
-
extensionPointId:
preLoadRefundMenuExtension -
inputs:
Name Type enactor.mfc.RetailTransaction com.enactor.mfc.retail.transaction.IRetailTransaction -
outcome
- Fail
- Success
- SkipDefault
HandlePostTenderSelection
-
extensionPointId:
HandlePostTenderSelection -
inputs
Name Type enactor.coreUI.CurrentEvent com.enactor.core.events.IEvent enactor.mfc.TenderId java.lang.String enactor.mfc.VoucherTypeId java.lang.String -
outcome
- Fail
- Success
- StopExtensionLinking
PostTenderCompleteExtension
-
extensionPointId:
PostTenderCompleteExtension -
inputs:
Name Type enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler -
outcome
- Fail
- Success
PostTenderExtension
-
extensionPointId:
PostTenderExtension -
outcome:
- Success
- SkipDefault
PreTender
-
extensionPointId:
PreTenderExtension -
inputs
Name Type PrimaryPrinter com.enactor.coreUI.peripherals.printer.IPrinter enactor.coreUI.AuthorisingUser com.enactor.core.signOn.ISignedOnUser enactor.coreUI.User com.enactor.core.signOn.ISignedOnUser enactor.coreUI.UserLocale com.enactor.core.localisation.ILocale enactor.mfc.Basket com.enactor.mfc.basket.IBasket enactor.mfc.Device com.enactor.mfc.device.IDevice enactor.mfc.Location com.enactor.mfc.location.ILocation enactor.mfc.PosTerminal com.enactor.mfc.posTerminal.POSTerminal enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler enactor.pos.PassedInCardTrack2 java.lang.String -
outcome
- Fail
- Success
- Cancel
- ForceEndTransaction
- NewTransaction
- ReturnToSales
- SignOn
- StopExtensionLinking
TestBasketBalanceExtension
-
extensionPointId:
TestBasketBalanceExtension -
inputs
Name Type enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandler -
outcome
- Success
- BasketEmpty
- RefundRequired
- TenderRequired
End Transaction
Process ID Pos/Transaction/EndTransaction
PreEndTransaction
-
extensionPointId:
PreEndTransaction -
outcome
- Fail
- Success
- StopExtensionLinking
EndTransactionExtension
-
extensionPointId:
EndTransactionExtension -
inputs:
Name Type enactor.mfc.TransactionHandler com.enactor.mfc.retail.transaction.IRetailTransactionHandlerr enactor.pos.TransactionReversal java.lang.Boolean enactor.pos.TransactionVoided java.lang.Boolean -
outcome
- Fail
- Success
- StopExtensionLinking
EndTransactionSuccessExtension
This extension is called when the EndTransaction process complete successfully. An implementation of this extension must only return a Success outcome.
-
extensionPointId:
EndTransactionSuccessExtension -
inputs:
Name Type enactor.coreUI.User com.enactor.core.signOn.ISignedOnUser enactor.mfc.Basket jcom.enactor.mfc.basket.IBasket enactor.mfc.Location com.enactor.mfc.location.ILocation enactor.mfc.PosTerminal com.enactor.mfc.posTerminal.POSTerminal enactor.mfc.Transaction com.enactor.core.transaction.ITransaction enactor.pos.TransactionReversal java.lang.Boolean enactor.pos.TransactionVoided java.lang.Boolean -
outcome:
- Success
- ExitWithEvent
- StopExtensionLinking