c# wpf document viewer pdf : Cut pages out of pdf file Library software component .net winforms asp.net mvc ATGCommProgGuide35-part2113

ATG  C om mer ce P ro g ramm in g   Gui d e 
33 3  
16  -  C o n fi g u rin g   Pu rch as e  Pro ces s  S ervices  
μ
The input parameters passed into 
PaymentGroupDroplet
determine whether the 
CommerceIdentifierPaymentInfo
objects are created and whether the 
CommerceIdentifierPaymentInfoContainer
is cleared before they are created. For a detailed list of 
these input parameters, as well as its output parameters, open parameters, and a code example, see the 
Adding Payment Information to Shopping Carts section of the Implementing Order Retrieval chapter of the 
ATG Commerce Guide to Setting Up a Store
Submitting an Order for Checkout 
The 
CommitOrderFormHandler
(class 
atg.commerce.order.purchase.CommitOrderFormHandler
submits the user’s current 
Order
for checkout. ATG Commerce includes an instance of 
CommitOrderFormHandler
, which is located in Nucleus at 
/atg/commerce/order/purchase/CommitOrderFormHandler
The form handler’s 
handleCommitOrder()
method ensures that the user is not trying to double-submit 
the order by checking if the ID of the current 
Order
is equal to the ID of the user’s last 
Order
(in 
ShoppingCart.last
). If the IDs are not equal, then the current 
Order
can be submitted. The handle 
method then calls the 
OrderManager.processOrder()
method, which executes the 
processOrder
pipeline. (See Checking Out an Order below.) 
If no errors occur during the validation or checkout of the 
Order
, then 
handleCommitOrder()
sets the 
submitted 
Order
as the user’s last 
Order
in 
ShoppingCart.last
, and it constructs a new, empty 
Order
and sets it as the user’s current 
Order
in 
ShoppingCart.current
Checking Out an Order 
Order processing occurs when a customer has supplied all the necessary information for the 
Order
and 
has submitted it for checkout. The processing of an 
Order
begins with a call to 
OrderManager.processOrder()
, which calls into the 
PipelineManager
to execute the 
processOrder
pipeline. The 
processOrder
pipeline first validates the 
Order
and then processes it. Note that, by 
default, ATG Commerce does not process an incomplete 
Order
. To allow the processing of incomplete 
Orders
, you must modify the pipeline accordingly. 
The 
PipelineManager
Nucleus component for ATG Commerce is located at 
/atg/commerce/PipelineManager
. In ATG Consumer Commerce, the related XML configuration file is 
defined in 
<ATG10dir>/B2CCommerce/config/atg/commerce/commercepipeline.xml
. In ATG 
Business Commerce, the related XML configuration file is defined in 
<ATG10dir>/B2BCommerce/config/atg/commerce/commercepipeline.xml
Note: You can use the credit card information listed below to process payments during testing of the 
order checkout process. The expiration date for all cards can be any date in the future. 
Visa: 4111111111111111 
MasterCard: 5555555555554444 
American Express: 378282246310005 
Discover: 6011111111111117 
The following table describes the processors in the 
processOrder
pipeline. They are listed in order of 
execution. 
Cut pages out of pdf file - Library software component:C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others
www.rasteredge.com
Cut pages out of pdf file - Library software component:VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed VB.NET Guide for Extracting Pages from Microsoft PDF Doc
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
33 4  
16  -  C o n fi g uri n g  P u rch as e P ro ces s  Serv ices  
PipelineLink name 
Description 
executeValidateForCheckoutChain 
Executes the 
validateForCheckout
pipeline (Refer to 
the next table in this section.) The 
atg.commerce.order.processor.ProcExecuteCha
in
class implements this functionality. Its properties file 
defines the execution chain to run in the 
chainToRun
property. By default, this property is set to 
validateForCheckout
If any errors occur during the execution of this 
processor, execution of the 
processOrder
pipeline 
stops. 
executeApproveOrderChain 
(ATG Business Commerce only) Executes the 
approveOrder
pipeline, which begins the approval 
process. The 
atg.commerce.order.processor.ProcExecuteCha
in
class implements this functionality. 
See the Managing the Order Approval Process chapter 
for more information. 
stopChainIfOrderRequiresApproval 
(ATG Business Commerce only) Checks the state of the 
Order
. If the 
Order
requires approval and has not been 
approved yet, execution of the 
processOrder
pipeline 
stops. If the 
Order
required approval and has been 
approved, the 
processOrder
pipeline continues with 
executeValidatePostApprovalChain
. If the 
Order
did not require approval, the pipeline continues with 
executeValidateNoApprovalChain
The 
atg.commerce.order.processor.ProcDispatchOn
OrderState
class implements this functionality. See 
the Managing the Order Approval Process chapter for 
more information. 
Library software component:VB.NET Image: Image Cropping SDK to Cut Out Image, Picture and
application, this VB.NET image cropper library SDK provides a professional and easy to use .NET solution for developers to crop / cut out image file in a short
www.rasteredge.com
Library software component:C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Image: Copy, Paste, Cut Image in Page. Link: Edit URL. Bookmark can view PDF document in single page or continue pages. Support to zoom in and zoom out PDF page.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
33 5  
16  -  C o n fi g u rin g   Pu rch as e  Pro ces s  S ervices  
executeValidatePostApprovalChain 
(ATG Business Commerce only) For 
Orders
that have 
been approved. This processor executes the 
validatePostApproval
pipeline, which revalidates 
information the approver may have changed. 
Specifically, the pipeline revalidates payment 
information (all payment groups and cost centers) and 
checks that all 
Order
and shipping costs are accounted 
for. 
The 
atg.commerce.order.processor.ProcExecuteCha
in
class implements this functionality. See the 
Managing the Order Approval Process chapter for more 
information. 
executeValidateNoApprovalChain 
(ATG Business Commerce only) For 
Orders
that didn’t 
require approval. This processor executes the 
validateNoApproval
pipeline, which validates 
information intentionally skipped by the 
executeValidateForCheckout
pipeline processor. 
Specifically, by default the pipeline validates 
InvoiceRequests
, which are intentionally skipped by 
the 
validateForCheckout
pipeline until it is 
determined that the 
Order
requires approval. 
The 
atg.commerce.order.processor.ProcExecuteCha
in
class implements this functionality. See the 
Managing the Order Approval Process chapter for more 
information. 
checkForExpiredPromotions 
Checks that expired promotions are not used in 
Order
that is being checked out. The 
atg.commerce.order.processor.ProcCheckForEx
piredPromotions
class implements this functionality. 
removeEmptyShippingGroups 
Removes any empty (unused) shipping groups from 
the 
Order
. An empty 
ShippingGroup
is one without 
any 
CommerceItemRelationships
. The 
atg.commerce.order.processor.ProcRemoveEmpt
yShippingGroups
class implements this functionality. 
removeEmptyPaymentGroups 
Removes any empty (unused) payment groups from 
the 
Order
. An empty 
PaymentGroup
is one without 
any 
CommerceItemRelationships
ShippingGroupRelationships
, and 
OrderRelationships
. The 
atg.commerce.order.processor.ProcRemoveEmpt
yPaymentGroups
class implements this functionality. 
Library software component:VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Remove Image from PDF Page. Image: Copy, Paste, Cut Image in can view PDF document in single page or continue pages. Support to zoom in and zoom out PDF page.
www.rasteredge.com
Library software component:C# PDF Text Extract Library: extract text content from PDF file in
Ability to extract highlighted text out of PDF document. How to C#: Extract Text Content from PDF File. C# example code for text extraction from all PDF pages.
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
33 6  
16  -  C o n fi g uri n g  P u rch as e P ro ces s  Serv ices  
createImplicitRelationships 
Validates the special case of an 
Order
having one 
ShippingGroup
and/or one 
PaymentGroup
and no 
Relationships
. In this situation, the processor 
actually creates relationships between all the 
CommerceItems
and the 
ShippingGroup.
It also 
creates a relationship between the 
PaymentGroup
and 
the 
Order
. The 
atg.commerce.order.processor.ProcCreateImpl
icitRelationships
class implements this 
functionality. 
setPaymentGroupAmount 
Determines and sets the amount to charge in each 
PaymentGroup
based on the 
Relationships
in the 
Order
. The 
atg.commerce.order.processor.ProcSetPayment
GroupAmount
class implements this functionality. 
setCostCenterAmount 
(ATG Business Commerce only) Determines and sets 
the amount to assign to each cost center in the 
Order
The 
atg.b2bcommerce.order.processor.ProcSetCost
CenterAmount
class implements this functionality. 
See the Implementing Cost Centers chapter of the ATG 
Commerce Guide to Setting Up a Store for more 
information. 
moveUsedPromotions 
Moves all promotions that a customer used in the 
Order
to the 
usedPromotions
list in the customer’s 
profile. If the promotion is a single-use promotion, it is 
also removed from the 
activePromotions
list and 
added to the customer’s 
inactivePromotions
list. 
The 
atg.commerce.order.processor.ProcMoveUsedPr
omotions
class implements this functionality. 
authorizePayment 
Authorizes all 
PaymentGroups
(
CreditCard
, or 
GiftCertificate
, or 
StoreCredit
) in the 
Order
The 
atg.commerce.order.processor.ProcAuthorizeP
ayment
class implements this functionality. 
Note: For information on how to prevent the 
authorization of a user’s credit card under certain 
circumstances, such as when the items in the 
Order
don’t exist in inventory, see Preventing Payment 
Authorization for Unfulfilled Orders later in this section. 
Library software component:VB.NET PDF Text Extract Library: extract text content from PDF
NET Programming. Extract and get partial and all text content from PDF file. Extract highlighted text out of PDF document. Image text
www.rasteredge.com
Library software component:C# WPF PDF Viewer SDK to view PDF document in C#.NET
Image from PDF Page. Image: Copy, Paste, Cut Image in PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET Abilities to zoom in and zoom out PDF page.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
33 7  
16  -  C o n fi g u rin g   Pu rch as e  Pro ces s  S ervices  
updateGiftRepository 
Updates the Gift List Repository to reflect the purchase 
of any gifts in the order. The 
atg.commerce.order.processor.ProcUpdateGift
Repository
class implements this functionality 
sendGiftPurchasedMessage 
Sends a message to the messaging system that 
describes the gifts that were purchased. The message 
can then be used to execute scenarios. The 
atg.commerce.order.processor.ProcSendGiftPu
rchasedMessage
class implements this functionality. 
addOrderToRepository 
This processor first calls 
OrderManager.updateOrder()
to save the 
Order
to 
the Order Repository. (See Updating an Order with the 
Order Manager.) The 
atg.commerce.order.processor.ProcAddOrderTo
Repository
class implements this functionality. 
sendPromotionUsedMessage 
Sends a message to the messaging system that 
describes the promotions that were used in the 
Order
The message can then be used to execute scenarios. 
The 
atg.commerce.order.processor.ProcSendPromot
ionUsedMessage
class implements this functionality. 
sendFulfillmentMessage 
Sends a message that includes the 
Order
to the 
fulfillment system. This message indicates to the 
fulfillment system that it can fulfill the 
Order
. The 
atg.commerce.order.processor.ProcSendFulfil
lmentMessage
class implements this functionality. 
The first processor in the 
processOrder
pipeline, named 
executeValidateForCheckoutChain
, in turn 
executes the 
validateForCheckout
pipeline. The following table describes the processors in the 
validateForCheckout
pipeline. They are listed in order of execution. 
PipelineLink name 
Description 
ValidateOrderForCheckout 
Verifies that the 
Order
contains at least one 
CommerceItem
ShippingGroup
, and 
PaymentGroup
. The 
atg.commerce.order.processor.ProcValidateO
rderForCheckout
class implements this 
functionality. 
VerifyOrderAddresses 
Verifies the addresses for shipping groups and 
payment groups. The 
atg.commerce.order.processor.ProcVerifyOrd
erAddresses
class implements this functionality. 
Library software component:VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
Image from PDF Page. Image: Copy, Paste, Cut Image in PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET Abilities to zoom in and zoom out PDF page.
www.rasteredge.com
Library software component:C# PDF Form Data fill-in Library: auto fill-in PDF form data in C#
NET. Support to fill in form field in specified position of adobe PDF file. Able to fill out all PDF form field in C#.NET. RasterEdge
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
33 8  
16  -  C o n fi g uri n g  P u rch as e P ro ces s  Serv ices  
validateShippingGroupsForCheckout 
Verifies that all 
CommerceItems
in the 
Order
are 
assigned to a 
ShippingGroup
. The processor also 
verifies that all required fields have been supplied to 
all 
ShippingGroups
in the 
Order
. The 
atg.commerce.order.processor.ProcValidateS
hippingGroupsForCheckout
class that implements 
this functionality is. 
creditCardModCheck 
Verifies that the credit card number and expiration 
date are valid. The credit card is not authorized by a 
processing system at this point. (See the previous 
table, which describes the processors in the 
processOrder
pipeline.) Rather, the processor 
applies a simple algorithm to the credit card number 
to determine if it is valid. It then checks the date to 
determine if the card has expired. The 
atg.commerce.order.processor.ProcCreditCar
dModCheck
class implements this functionality. 
validatePaymentGroupsForCheckout 
Verifies that all 
CommerceItems
in the 
Order
can 
account for their costs, which means that the 
processor verifies all 
PaymentGroupCommerceItemRelationships
. It 
also verifies that all required fields have been supplied 
to all 
PaymentGroups
in the 
Order
. The 
atg.commerce.order.processor.ProcValidateP
aymentGroupsForCheckout
class implements this 
functionality. 
validateShippingCostsForCheckout 
Verifies that all 
ShippingGroups
can account for 
their costs, which means that the processor verifies all 
PaymentGroupShippingGroupRelationships
. The 
atg.commerce.order.processor.ProcValidateS
hippingCostsForCheckout
class implements this 
functionality. 
validateOrderCostsForCheckout 
Verifies the 
Order
can account for its cost, which 
means the processor verifies all 
PaymentGroupOrderRelationships
. The 
atg.commerce.order.processor.ProcValidateO
rderCostsForCheckout
class implements this 
functionality. 
validateHandlingInstructionsForChe
ckout 
Verifies that all 
HandlingInstructions
are assigned 
to a valid 
ShippingGroup
and 
CommerceItem
combination. The 
atg.commerce.order.processor.ProcValidateH
andlingInstructionsForCheckout
class 
implements this functionality. 
Library software component:VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
a PDF document which is out of order on creating, loading, merge and splitting PDF pages and Files document, deleting unnecessary page from PDF file and changing
www.rasteredge.com
Library software component:VB.NET PDF - WPF PDF Viewer for VB.NET Program
Image from PDF Page. Image: Copy, Paste, Cut Image in Tiff image, TXT file and other images file formats, and PDF pages, zoom in or zoom out PDF pages and go to
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
33 9  
16  -  C o n fi g u rin g   Pu rch as e  Pro ces s  S ervices  
validateCurrencyCodes 
Validates that all the currency codes in the 
PriceInfo
objects are the same. Also validates that 
all the items, shipping, tax, and order have been 
priced. The 
atg.commerce.order.processor.ProcValidateC
urrencyCodes
class implements this functionality. 
For more information about pipelines, the 
PipelineManager
, see the Processor Chains and the Pipeline 
Manager chapter; for information about the transactional modes and transitions of the processors in the 
processOdOrder
and 
validateForCheckout
pipelines, see Appendix G: Commerce Pipeline Chains
Preventing Payment Authorization for Unfulfilled Orders 
The 
processOrder
pipeline performs several checkout functions, including authorizing a user’s credit 
card for the amount of the order. Under certain circumstances, you may want to prevent the 
authorization of a credit card, for example, when the order contains items that do not exist in inventory. In 
this example, the user could be alerted of the lack of inventory and allowed to modify the order before 
checkout. 
You can modify the 
processOrder
pipeline to prevent credit card authorization under certain 
conditions. To do so, you need to modify the pipeline to include a branch. One processor in the pipeline 
should check that the items being purchased do exist in inventory. If they do, then the 
Order
should 
continue through the pipeline for checkout (and authorization of the user’s credit card). If the items do 
not exist in inventory, then the 
Order
should branch to an alternate pipeline that does not authorize the 
user’s credit card. Instead, the pipeline might redirect the user to a page that indicates which items could 
not be allocated from inventory and allows the user to change the 
Order
. The important concept is that 
the 
processOrder
pipeline branches so that the user’s credit card is not authorized. 
As previously mentioned, the 
PipelineManager
Nucleus component for ATG Commerce is located at 
/atg/commerce/PipelineManager
. In ATG Consumer Commerce, the related XML configuration file is 
defined in 
<ATG10dir>/B2CCommerce/config/atg/commerce/commercepipeline.xml
. In ATG 
Business Commerce, the related XML configuration file is defined in 
<ATG10dir>/B2BCommerce/config/atg/commerce/commercepipeline.xml
For information on how to set up a branching pipeline, see the Processor Chains and the Pipeline 
Manager chapter. 
Processing Payment of Orders 
The 
PaymentManager
manages the authorization, debit, and credit of 
PaymentGroups
in an 
Order
, and 
it tracks the results of those payment operations using 
PaymentStatus
objects. 
This section provides information on how the payment of orders is processed in ATG Commerce and 
describes how to extend the system to add functionality or to support a new payment method. It includes 
the following sections: 
ATG  C om merce  P ro gra mm in g  G ui d e 
34 0  
16  -  C o n fi g uri n g  P u rch as e P ro ces s  Serv ices  
Overview of the Payment Process 
Extending the Payment Operations of a Payment Method 
Extending the Payment Process to Support a New Payment Method 
Extending Order Validation to Support New Payment Methods 
Overview of the Payment Process 
When the 
PaymentManager
’s 
authorize
/
credit
/
debit
method is called, it takes the 
Order
and a 
single 
PaymentGroup
or 
List
of 
PaymentGroups
as parameters. It then calls its 
authorize
/
credit
/
debit
method that takes an additional amount parameter, passing in the amount in 
the current 
PaymentGroup
. This second 
authorize
/
credit
/
debit
method performs the actual 
payment operation for the current 
PaymentGroup
by looking up the pipeline appropriate for the current 
PaymentGroup
class type and then calling that pipeline. 
To obtain the appropriate pipeline to run, the 
authorize
/
credit
/
debit
method calls 
getXXXChainName(PaymentGroup)
, for example, 
getCreditChainName(PaymentGroup)
. In turn, this 
method calls 
getChainName(PaymentGroup)
, which uses the class name of the given 
PaymentGroup
as 
the key to look up the appropriate pipeline to run in 
PaymentManager.paymentGroupToChainNameMap
This property stores a map of 
PaymentGroup
class types to the names of the pipelines that perform the 
payment actions for the payment methods. By default, this property is configured as follows: 
paymentGroupToChainNameMap=\ 
atg.commerce.order.CreditCard=creditCardProcessorChain,\ 
atg.commerce.order.GiftCertificate=giftCertificateProcessorChain,\ 
atg.commerce.order.StoreCredit=storeCreditProcessorChain 
Thus, the 
creditCardProcessorChain
pipeline handles authorization, debit, and credit work for the 
atg.commerce.order.CreditCard
class, the 
giftCertificateProcessorChain
pipeline handles 
authorization, debit, and credit work for the 
atg.commerce.order.GiftCertificate
class, and so on. 
By default, each of the pipelines in 
PaymentManager.paymentGroupToChainNameMap
is composed of 
two processors. The first processor aggregates the necessary information for performing the requested 
payment action (for example, CREDIT) and creates an 
XXXInfo
object (for example, 
CreditCardInfo
) for 
use in that action. The second processor performs the actual operation – authorizing, debiting, or 
crediting the appropriate payment method. Note that while a single pipeline exists to perform authorize, 
debit, and credit actions for a single 
PaymentGroup
type, you can split these actions into separate 
pipelines if your processing needs for a given payment action are unusual. 
Once the appropriate pipeline to run has been obtained (for example, the 
creditCardProcessorChain
pipeline), the 
authorize
/
credit
/
debit
method calls into the 
PaymentPipelineManager
to execute 
the pipeline. It passes in the 
PaymentManagerPipelineArgs
Dictionary
object as an argument to the 
runProcess()
method of the pipeline. This 
Dictionary
object contains the information required to 
perform the transaction, which is as follows: 
Order
PaymentManager
ATG  C om mer ce P ro g ramm in g   Gui d e 
34 1  
16  -  C o n fi g u rin g   Pu rch as e  Pro ces s  S ervices  
PaymentGroup
Payment amount 
Action (
PaymentManagerAction.AUTHORIZE
PaymentManagerAction.CREDIT
, or 
PaymentManagerAction.DEBIT
Generic Info object (for example, 
CreditCardInfo
and 
GiftCertificateInfo)
PaymentStatus
The 
PaymentStatus
object represents the results of the authorize, credit, or debit transaction performed 
by the pipeline; it contains properties such as 
amount
errorMessage
transactionId
transactionSuccess
, and 
transactionTimestamp
. When the 
PaymentManager
’s 
authorize
/
credit
/
debit
method is called, the method performs the payment operation and then adds 
PaymentStatus
object to the given 
PaymentGroup
. The 
PaymentStatus
object is discussed in more 
detail at the end of this section. 
Note: The 
PaymentManager
is also used by the Fulfillment system. For information about the Fulfillment 
system, see the Configuring the Order Fulfillment Framework chapter. 
Extending the Payment Operations of a Payment Method 
Sometimes you may find that you need to extend the way a given payment operation works. For 
example, you may have an unusual credit operation that you want to perform on credit cards. 
This section provides information on how to extend the way payment operations work for a given 
payment method, using the 
CreditCard
payment method as an example. The process to extend the 
payment operations of the 
StoreCredit
payment method, the 
GiftCertificate
payment method, 
and the 
InvoiceRequest
payment method (ATG Business Commerce only) works in the same fashion. 
As described in the previous section, the 
PaymentManager.properties
file at 
/atg/commerce/payment/PaymentManager
is configured to map 
CreditCard
objects to the 
creditCardProcessorChain
pipeline. Like all of the default payment pipelines, 
creditCardProcessorChain
is composed of two processors. The first processor – 
CreateCreditCardInfo
-- aggregates the necessary information for performing the requested payment 
action (for example, CREDIT) and creates an 
XXXInfo
object (for example, 
CreditCardInfo
) for use in 
that action. The second processor – 
ProcessCreditCard
--performs the actual operation – authorizing, 
debiting, or crediting the appropriate payment method. 
The 
ProcessCreditCard
processor is located in Nucleus at 
/atg/commerce/payment/processor/ProcessCreditCard
, and it is instantiated from class 
atg.commerce.payment.processor.ProcProcessCreditCard
, which extends 
atg.commerce.payment.processor.ProcProcessPaymentGroup
. The 
ProcessCreditCard
processor authorizes, debits, and credits a 
CreditCard
PaymentGroup
by calling through to a 
CreditCardProcessor
object to perform the actual operations. The specific object used to perform the 
actual operations is retrieved from 
PaymentManager.creditCardProcessor
; this property points to an 
object instantiated from a class that implements the 
atg.payment.creditCard.CreditCardProcessor
interface. 
To change the way credit cards are operated on, write a new class that implements the 
CreditCardProcessor
interface and provides the additional functionality your sites require, then create 
ATG  C om merce  P ro gra mm in g  G ui d e 
34 2  
16  -  C o n fi g uri n g  P u rch as e P ro ces s  Serv ices  
and configure an instance of the new class in Nucleus, and finally change the 
PaymentManager.creditCardProcessor
property to point to the new component. 
Extending the Payment Process to Support a New Payment Method 
If your sites require it, you can extend the payment process to support a new payment method. This 
section provides information on how to create and support a new payment method, using an example 
called the 
StorePoints
payment method. In this example, customers earn store points when they 
purchase items, and they can later redeem those points on other purchases. The 
StorePoints
system is 
just one example of the many new payment methods you can implement. 
The 
StorePoints
system is implemented using the following basic steps. Detailed instructions are 
provided in the referenced subsections that follow. 
1.
Create the new 
StorePoints
PaymentGroup
. See Creating a New PaymentGroup. 
2.
Create a new repository item type for the 
StorePointsPaymentGroup
. Associate the 
new item type to the new class by adding an entry to the 
beanNameToItemDescriptorMap
property of the 
OrderTools
component. Add the 
new class to the 
paymentTypeClassMap
. See Integrating a New Commerce Object: 
Using a New Item Descriptor
3.
Implement the payment processors involved in operating on the 
StorePoints
PaymentGroup
. See Implementing Processors for the New PaymentGroup . 
4.
Define the pipeline that processes the 
StorePoints
PaymentGroup
for authorization, 
debits, and credits, and configure the 
PaymentManager
to invoke it when appropriate. 
See Integrating the New Payment Processors into the PaymentManager. 
5.
Extend the 
Order
validation process to validate the 
StorePoints
PaymentGroup
during checkout. See Extending Order Validation to Support New Payment Methods in 
the next section. 
The following diagram shows the relationships between the objects involved in processing a payment 
transaction. In ATG Commerce, by default the 
CreditCard
GiftCertificate
StoreCredit
, and 
InvoiceRequest
(ATG Business Commerce only) systems are provided. 
Documents you may be interested
Documents you may be interested