Skip to main content

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.

info

In the Enactor Eclipse Toolkit, you can find extension points using the Resource Library.

StartUp

Process ID Pos/StartUp

StartupExtension

  • extensionPointId: StartupExtension
  • inputs
NameType
enactor.coreUI.Usercom.enactor.core.signOn.ISignedOnUser
enactor.coreUI.UserLocalecom.enactor.core.localisation.ILocale
enactor.mfc.BaseCurrencycom.enactor.mfc.currency.ICurrency
enactor.mfc.Devicecom.enactor.mfc.device.IDevice
enactor.mfc.Locationcom.enactor.mfc.location.ILocation
enactor.mfc.PosTerminalcom.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
NameType
enactor.coreUI.Usercom.enactor.core.signOn.ISignedOnUser
enactor.coreUI.UserLocalecom.enactor.core.localisation.ILocale
enactor.mfc.BaseCurrencycom.enactor.mfc.currency.ICurrency
enactor.mfc.Devicecom.enactor.mfc.device.IDevice
enactor.mfc.Locationcom.enactor.mfc.location.ILocation
enactor.mfc.PosTerminalcom.enactor.mfc.posTerminal.IPOSTerminal
  • outcome
    • Fail
    • Success
    • SignOff
    • StopExtensionLinking

New Transaction

Process ID Pos/Transaction/NewTransaction

NewTransactionExtension

  • extensionPointId: NewTransactionExtension

  • inputs

    NameType
    enactor.coreUI.AuthorisingUsercom.enactor.core.signOn.ISignedOnUser
    enactor.coreUI.Usercom.enactor.core.signOn.ISignedOnUser
    enactor.mfc.Customercom.enactor.mfc.customer.ICustomer
    enactor.mfc.CustomerGroupKeyListjava.util.List
    enactor.mfc.Devicecom.enactor.mfc.device.IDevice
    enactor.mfc.Locationcom.enactor.mfc.location.ILocation
    enactor.mfc.PosTerminalcom.enactor.mfc.posTerminal.IPOSTerminal
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
    enactor.pos.AdditionalSaleDatajava.lang.Object
    enactor.pos.NewTransactionDatacom.enactor.pos.packages.transaction.INewTransactionData
    enactor.pos.SellProductCodejava.lang.String
    enactor.pos.SellProductQuantityjava.lang.String
    enactor.pos.TransactionRecalledjava.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

    NameType
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
    enactor.pos.SavedTransactionDatacom.enactor.pos.packages.transaction.INewTransactionData
  • outcome

    • Success

Sale

Process ID Pos/Sale/Sale

PreBasketSaleExtension

  • extensionPointId: PreBasketSaleExtension

  • inputs

    NameType
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
  • outcome

    • Fail
    • Success
    • EndTransaction
    • ExitWithEvent
    • NewTransaction
    • SignOff
    • SignOn
    • Total
    • StopExtensionLinking

SaleExtension

  • extensionPointId: enactor.uc.SaleExtension

  • inputs

    NameType
    enactor.coreUI.CurrentEventcom.enactor.core.events.IEvent
  • outcome

    • EndTransaction
    • Tender

Handle Functions

Process ID Pos/Sale/HandleFunctions

HandleFunctionExtension

  • extensionPointId: HandleFunctionExtension

  • inputs

    NameType
    enactor.coreUI.CurrentEventcom.enactor.core.events.IEvent
    enactor.coreUI.SelectedItemjava.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

    NameType
    enactor.mfc.Productcom.enactor.mfc.product.IProduct
    enactor.mfc.SalesItemcom.enactor.mfc.basket.items.ISalesItem
  • outcome:

    • Fail
    • Success
    • StopExtensionLinking

PreSellItemExtension

  • extensionPointId: PreSellItemExtension

  • inputs

    NameType
    enactor.coreUI.CurrentEventcom.enactor.core.events.IEvent
    enactor.mfc.ProductCodejava.lang.String
    enactor.pos.ExternalDataMapjava.util.Map
    enactor.pos.ProductCodeScannedjava.lang.String
  • outcome

    • Fail
    • Success
    • Cancel
    • SkipDefault
    • StopExtensionLinking

PreSellKnownProductExtension

  • extensionPointId: PreSellKnownProductExtension

  • inputs

    NameType
    enactor.mfc.Basketcom.enactor.mfc.basket.IBasket
    enactor.mfc.ProductIdjava.lang.String
    enactor.mfc.Quantityjava.lang.Double
  • outcome

    • Fail
    • Success
    • AddToOrder
    • Skip
    • SkipDefault
    • TakeNow
    • StopExtensionLinking

Process ID Pos/Product/ValidateSaleItem

CheckUpdateExistingItemOrSellNew

  • extensionPointId: UpdateExistingItem

  • inputs

    NameType
    enactor.mfc.ProductIdjava.lang.String
  • outcome

    • Success
    • UpdateExistingItem

SetEmbeddedQuantityExtension

  • extensionPointId: SetEmbeddedQuantityExtension

  • inputs

    NameType
    enactor.mfc.FieldValidatorDefinitionIdjava.lang.String
    enactor.mfc.InputCodejava.lang.String
    enactor.mfc.ParsedDatajava.lang.Object
    enactor.mfc.Productcom.enactor.mfc.product.IProduct
    enactor.mfc.ProductCodejava.lang.String
    enactor.pos.EmbeddedPricejava.lang.Long
    enactor.pos.EmbeddedQuantityjava.lang.Double
  • outcome

    • Success

Process ID Pos/Product/ValidateProductSale

AgeRestrictedSaleRefused

  • extensionPointId: AgeRestrictedSaleRefusedExtension

  • inputs

    NameType
    enactor.mfc.Productcom.enactor.mfc.product.IProduct
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
    enactor.pos.NonInteractivejava.lang.Boolean
  • outcome

    • Fail
    • Success
    • Cancel
    • StopExtensionLinking

CallCustomerAgeCheck

  • extensionPointId: CustomerAgeCheckExtension
  • inputs
NameType
enactor.mfc.Productcom.enactor.mfc.product.IProduct
enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
enactor.pos.NonInteractivejava.lang.Boolean
enactor.pos.SelfServiceModejava.lang.Boolean
  • outcome
    • Fail
    • Success
    • Cancel
    • StopExtensionLinking

ValidatePosOperation

  • extensionPointId: ValidatePosOperationsExtension

  • inputs

    NameType
    enactor.mfc.Productcom.enactor.mfc.product.IProduct
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
    enactor.pos.Operationjava.lang.String
  • outcome

    • Fail
    • Success
    • StopExtensionLinking

CallPostValidateProductExtension

  • extensionPointId: PostValidateProductExtension

  • inputs

    NameType
    enactor.mfc.Locationcom.enactor.mfc.location.ILocation
    enactor.mfc.Productcom.enactor.mfc.product.IProduct
    enactor.mfc.RelatedPartyIdjava.lang.String
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
  • outcome

    • Fail
    • Success
    • StopExtensionLinking

Process ID Pos/Product/SellKnownProduct

SellKnownProductAdditionalDataExtension

  • extensionPointId: SellKnownProductAdditionalDataExtension

  • inputs

    NameType
    enactor.inventoryManagement.OnlineStockAvailabilityCheckResultjava.lang.Integer
    enactor.mfc.SalesItemcom.enactor.mfc.basket.items.ISalesItem
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
    enactor.pos.SavedAuthorisingUsercom.enactor.core.signOn.ISignedOnUser
  • outcome

    • Fail
    • Success

GetItemQuantityExtension

  • extensionPointId: GetItemQuantityExtension

  • inputs

    NameType
    enactor.coreUI.UserLocalecom.enactor.core.localisation.ILocale
    enactor.mfc.Devicecom.enactor.mfc.device.IDevice
    enactor.mfc.InputCodejava.lang.String
    enactor.mfc.Locationcom.enactor.mfc.location.ILocation
    enactor.mfc.PosTerminalcom.enactor.mfc.posTerminal.IPOSTerminal
    enactor.mfc.Productcom.enactor.mfc.product.IProduct
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
    enactor.pos.EmbeddedPricejava.lang.Long
    enactor.pos.EmbeddedQuantityjava.lang.Double
    enactor.pos.ForOrderjava.lang.Boolean
    enactor.pos.IsReturnjava.lang.Boolean
    enactor.pos.IsSerialNumberedProductjava.lang.Boolean
    enactor.pos.Quantityjava.lang.Double
  • outcome

    • Success
    • Cancel
    • NotEnoughStock
    • QuantityCaptured
    • ZeroStock

Process ID Pos/Product/CreateBasketItem

PreCreateBasketItemExtension

  • extensionPointId: PreCreateBasketItem

  • inputs

    NameType
    enactor.mfc.Productcom.enactor.mfc.product.IProduct
    enactor.pos.BasketItemEntityNamejava.lang.String
    enactor.pos.BasketItemEntityNamespacejava.lang.String
  • outcome

    • Fail
    • Success
    • StopExtensionLinking

PostCreateBasketItemExtension

  • extensionPointId: PostCreateBasketItem

  • inputs

    NameType
    enactor.mfc.SalesItemcom.enactor.mfc.basket.items.ISalesItem
  • outcome

    • Fail
    • Success
    • StopExtensionLinking

Process ID Pos/Product/SellProductItem

SetExternalDataOnSalesItem

  • extensionPointId: SetExternalDataOnSalesItem

  • inputs

    NameType
    enactor.mfc.SalesItemcom.enactor.mfc.basket.items.ISalesItem
    enactor.pos.ExternalDataMapjava.util.Map
  • outcome

    • Fail
    • Success
    • StopExtensionLinking

Process ID Pos/Product/HandleProductOptionSetsHook

HandleProductOptionSets

  • extensionPointId: HandleProductOptionSetsExtension

  • inputs

    NameType
    enactor.coreUI.Usercom.enactor.core.signOn.ISignedOnUser
    enactor.coreUI.UserLocalecom.enactor.core.localisation.ILocale
    enactor.mfc.Devicecom.enactor.mfc.device.IDevice
    enactor.mfc.PriceTypejava.lang.String
    enactor.mfc.Productcom.enactor.mfc.product.IProduct
    enactor.mfc.SalesItemcom.enactor.mfc.basket.items.ISalesItem
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
    enactor.pos.ExternalDataMapjava.util.Map
    enactor.pos.SalesItemWithOptionscom.enactor.mfc.basket.items.SalesItemWithOptions
  • outcome

    • Fail
    • Success
    • Cancel
    • StopExtensionLinking

Process ID Pos/Product/AddItemToBasketNoUpdate

AddItemToBasketNoUpdateExtension

  • extensionPointId: AddItemToBasketNoUpdateExtension

  • inputs

    NameType
    enactor.coreUI.Usercom.enactor.core.signOn.ISignedOnUser
    enactor.mfc.BasketItemcom.enactor.mfc.basket.items.IBasketItem
    enactor.mfc.Locationcom.enactor.mfc.location.ILocation
    enactor.mfc.PosTerminalcom.enactor.mfc.posTerminal.IPOSTerminal
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
    enactor.mfc.TransactionItemProcessorcom.enactor.core.transaction.ITransactionItemProcessor
  • outcome

    • Fail
    • Success
    • StopExtensionLinking

Tendering

Process ID Pos/Tender/DoTender

Call PreLoadRefundMenuExtension

  • extensionPointId: preLoadRefundMenuExtension

  • inputs:

    NameType
    enactor.mfc.RetailTransactioncom.enactor.mfc.retail.transaction.IRetailTransaction
  • outcome

    • Fail
    • Success
    • SkipDefault

HandlePostTenderSelection

  • extensionPointId: HandlePostTenderSelection

  • inputs

    NameType
    enactor.coreUI.CurrentEventcom.enactor.core.events.IEvent
    enactor.mfc.TenderIdjava.lang.String
    enactor.mfc.VoucherTypeIdjava.lang.String
  • outcome

    • Fail
    • Success
    • StopExtensionLinking

PostTenderCompleteExtension

  • extensionPointId: PostTenderCompleteExtension

  • inputs:

    NameType
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
  • outcome

    • Fail
    • Success

PostTenderExtension

  • extensionPointId: PostTenderExtension

  • outcome:

    • Success
    • SkipDefault

PreTender

  • extensionPointId: PreTenderExtension

  • inputs

    NameType
    PrimaryPrintercom.enactor.coreUI.peripherals.printer.IPrinter
    enactor.coreUI.AuthorisingUsercom.enactor.core.signOn.ISignedOnUser
    enactor.coreUI.Usercom.enactor.core.signOn.ISignedOnUser
    enactor.coreUI.UserLocalecom.enactor.core.localisation.ILocale
    enactor.mfc.Basketcom.enactor.mfc.basket.IBasket
    enactor.mfc.Devicecom.enactor.mfc.device.IDevice
    enactor.mfc.Locationcom.enactor.mfc.location.ILocation
    enactor.mfc.PosTerminalcom.enactor.mfc.posTerminal.POSTerminal
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandler
    enactor.pos.PassedInCardTrack2java.lang.String
  • outcome

    • Fail
    • Success
    • Cancel
    • ForceEndTransaction
    • NewTransaction
    • ReturnToSales
    • SignOn
    • StopExtensionLinking

TestBasketBalanceExtension

  • extensionPointId: TestBasketBalanceExtension

  • inputs

    NameType
    enactor.mfc.TransactionHandlercom.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:

    NameType
    enactor.mfc.TransactionHandlercom.enactor.mfc.retail.transaction.IRetailTransactionHandlerr
    enactor.pos.TransactionReversaljava.lang.Boolean
    enactor.pos.TransactionVoidedjava.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:

    NameType
    enactor.coreUI.Usercom.enactor.core.signOn.ISignedOnUser
    enactor.mfc.Basketjcom.enactor.mfc.basket.IBasket
    enactor.mfc.Locationcom.enactor.mfc.location.ILocation
    enactor.mfc.PosTerminalcom.enactor.mfc.posTerminal.POSTerminal
    enactor.mfc.Transactioncom.enactor.core.transaction.ITransaction
    enactor.pos.TransactionReversaljava.lang.Boolean
    enactor.pos.TransactionVoidedjava.lang.Boolean
  • outcome:

    • Success
    • ExitWithEvent
    • StopExtensionLinking