c# wpf free pdf viewer : Copy pages from pdf to new pdf application software cloud windows html asp.net class ATGCommProgGuide38-part2116

ATG  C om mer ce P ro g ramm in g   Gui d e 
36 3  
16  -  C o n fi g u rin g   Pu rch as e  Pro ces s  S ervices  
μ
Method 
Description 
performScheduledTask 
Called when the 
Scheduler
finds that the 
placeScheduledOrders
task is scheduled to run. When this 
method is called, the 
ScheduledOrderService
attempts to 
obtain a global write lock from the server lock manager. If the 
lock is obtained successfully, the 
ScheduledOrderService
calls its own 
doScheduledTask()
method. 
The 
placeScheduledOrders
task is run at the interval defined 
in 
ScheduledOrderService.schedule
. While the schedule 
that you set depends on the business needs of your sites, as a 
general rule, it is recommended that you set it to “every 1 day.” 
For information on how to specify a schedule, see the Scheduler 
Services section of the Core Dynamo Services chapter in the ATG 
Programming Guide
Note: Be aware that the defined interval specified in 
ScheduledOrderService.schedule
begins when an 
application that includes ATG Commerce deploys. Therefore, if, 
for example, the ATG Commerce server is redeployed every 11 
hours, and if the 
schedule
property of a given scheduled 
Order
is set to “every 12 hours,” then the scheduled 
Order
is never 
placed. 
doScheduledTask 
Calls 
processDueScheduledOrders()
to process any 
scheduled 
Orders
that need to be checked out. Other objects 
can call this method to trigger on demand a poll of the Order 
Repository for due scheduled 
Orders
processDueScheduledOrders 
Processes all scheduled 
Orders
that need to be checked out. 
This method calls 
pollForNewOrders()
to retrieve the list of 
scheduled 
Orders
that need to be checked out. It then iterates 
through the array and calls 
processDueScheduledOrder()
on 
each scheduled 
Order
. (See the methods described later in this 
table for details.) 
pollForNewOrders 
Uses the query defined in the 
ScheduledOrderService.pollQuery
property to poll the 
Order Repository defined in the 
ScheduledOrderService.orderRepository
property with 
the repository view defined in the 
itemDescriptorName
property (by default, set to 
scheduledOrder
). The method 
returns an array of scheduled 
Orders
that need to be checked 
out. 
Copy pages from pdf to new pdf - application software cloud: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
Copy pages from pdf to new pdf - application software cloud: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 
36 4  
16  -  C o n fi g uri n g  P u rch as e P ro ces s  Serv ices  
processDueScheduledOrder 
Processes the current scheduled 
Order
This method calls 
placeScheduledOrder()
to check out the 
scheduled 
Order
. If the scheduled 
Order
is successfully checked 
out, then the method calls 
getNextScheduledRun()
to set its 
nextScheduledRun
property to the next date and time that it 
should be checked out. 
If the scheduled 
Order
fails to be checked out, then it rolls back 
to its original state. It will be retrieved again for processing the 
next time that 
pollForNewOrders()
is executed. 
getNextScheduledRun 
Sets the next time that the scheduled 
Order
should be checked 
out. 
placeScheduledOrder 
This method checks out the current scheduled 
Order
using the 
following process: 
First, the template 
Order
is retrieved by calling 
ScheduledOrderTools.getTemplateOrder()
and passing in 
the current scheduled 
Order
Second, 
ScheduledOrderTools.UseOrderPriceListsFirst
identifies if price list information should be extracted from an 
order template. The default is false. 
Third, the template 
Order
is cloned by calling 
ScheduledOrderTools.cloneOrder()
Fourth, if the 
ScheduledOrderTools.repriceOnClone
property is set to True, then the cloned order is repriced by 
calling 
ScheduledOrderTools.repriceScheduledOrder()
Fifth, the cloned 
Order
is saved to the Order Repository in its 
present state by calling 
OrderManager.updateOrder()
, which 
executes the 
updateOrder
pipeline. (For more information on 
the 
updateOrder
pipeline, see Updating an Order with the 
Order Manager in this chapter.) 
Finally, the cloned 
Order
is checked out by calling 
ScheduledOrderTools.processScheduledOrder()
, which 
in turn calls 
OrderManager.processOrder()
and passes in the 
cloned 
Order
and pipeline to execute. The pipeline to execute is 
set in 
ScheduledOrderTools.processOrderChainId
; by 
default, this property is set to 
processOrder
. When the order 
has been checked out successfully, it is passed on to Fulfillment. 
(For more information on the 
processOrder
pipeline, see 
Checking Out an Order in this chapter.) 
application software cloud:VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
As String = Program.RootPath + "\\" Output.pdf" Dim doc1 Dim doc2 As PDFDocument = New PDFDocument(inputFilePath2 GetPage(2) Dim pages = New PDFPage() {page0
www.rasteredge.com
application software cloud:VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
to delete a range of pages from a PDF document. Dim filepath As String = "" Dim outPutFilePath As String = "" Dim doc As PDFDocument = New PDFDocument(filepath
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
36 5  
16  -  C o n fi g u rin g   Pu rch as e  Pro ces s  S ervices  
repriceScheduledOrder 
Reprices the cloned 
Order
. The 
repriceScheduledOrder()
method calls 
ScheduledOrderTools.repriceScheduledOrder()
, which 
executes the repricing pipeline specified in 
ScheduledOrderTools.repriceOrderChainId
. By default, 
this property is set to 
repriceOrder
. (For more information on 
the 
repriceOrder
pipeline, see Appendix G: Commerce 
Pipeline Chains.) 
ATG Commerce provides an instance of class 
atg.commerce.order.scheduled.ScheduledOrderService
, which extends 
atg.service.scheduler.SingletonSchedulableService
. It is located in Nucleus at 
/atg/commerce/order/scheduled/ScheduledOrderService
Class 
atg.service.scheduler.SingletonSchedulableService
enables multiple ATG Commerce 
servers to run the same scheduled service, while guaranteeing that only one instance of the service will 
perform the scheduled task at any given time. This provides a degree of protection from server failures, 
since the loss of any single ATG Commerce server will not prevent the scheduled service from running on 
some other ATG Commerce server. 
To use a 
SingletonSchedulableService
like 
ScheduledOrderService
on multiple ATG Commerce 
instances, you must run a server lock manager and point all client lock managers at it. For more 
information on 
SingletonSchedulableService
, see the Scheduler Services section of the Core Dynamo 
Services chapter in the ATG Programming Guide
Creating, Modifying, and Deleting Scheduled Orders 
The 
ScheduledOrderHandler
is responsible for creating, updating, deleting, activating, and 
deactivating scheduled orders. ATG Commerce provides an instance of 
atg.commerce.order.scheduled.ScheduledOrderHandler
, which extends 
atg.repository.servlet.RepositoryFormHandler
. It is located in Nucleus at 
/atg/commerce/order/scheduled/ScheduledOrderFormHandler
A scheduled 
Order
has some complex properties that are incapable of being mapped directly from the 
user interface to the value Dictionary defined in the 
RepositoryFormHandler
(of which 
ScheduledOrderHandler
is a subclass). Simple properties, such as 
name
and 
state
, can be handled by 
the superclass 
RepositoryFormHandler
. However, other complex properties map to a large number of 
user input fields. For example, the 
startDate
and 
endDate
properties in the value Dictionary are both 
mapped to Year, Month, Date, and Hour input fields. Similarly, the 
schedule
property maps to a large 
number of input fields. Each property of a scheduled 
Order
that maps to more then one form element or 
needs special processing is represented by an instance of the abstract class 
atg.b2bcommerce.order.scheduled.ComplexScheduledOrderProperty
or one of its subclasses. 
The 
ComplexScheduledOrderProperty
class has two methods that facilitate the mapping between the 
property in the value Dictionary and the corresponding user input fields in a form, namely 
remapValueFromScheduledOrder()
and 
remapValueFromUserInputField()
The 
ScheduledOrderFormHandler.complexScheduledOrderProperties
property is a 
Map
that 
specifies the complex properties in the scheduled 
Order
. The keys to the 
Map
are the names of the 
application software cloud:C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
RasterEdge XDoc.PDF allows you to easily move PDF document pages position Copying and Pasting Pages. You can use specific APIs to copy and get a specific page of
www.rasteredge.com
application software cloud:C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
Copy this demo code to your C# application to rotate the first page of One is used for rotating all PDF pages to 180 in clockwise and output a new PDF file
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
36 6  
16  -  C o n fi g uri n g  P u rch as e P ro ces s  Serv ices  
complex properties, and the values are the names of the classes that represent those properties, as shown 
in bold by the following 
ScheduledOrderFormHandler.properties
file: 
$class=atg.commerce.order.scheduled.ScheduledOrderHandler 
$scope=session 
#From RepositoryFormHandler 
itemDescriptorName=scheduledOrder 
repository=/atg/commerce/order/OrderRepository 
requireIdOnCreate=false 
clearValueOnSet=true 
#From ScheduledOrderFormHandler 
localeService=/atg/userprofiling/LocaleService 
profile=/atg/userprofiling/Profile 
orderManager=/atg/commerce/order/OrderManager 
transactionManager=/atg/dynamo/transaction/TransactionManager 
scheduledOrderTools=ScheduledOrderTools 
complexScheduledOrderProperties=\ 
calendarSchedule=atg.commerce.order.scheduled.CalendarSchedu 
leProperty,\ 
startDate=atg.commerce.order.scheduled.DateProperty,\ 
endDate=atg.commerce.order.scheduled.DateProperty,\ 
templateOrderId=atg.commerce.order.scheduled.TemplateOrderProperty 
Note that the 
templateOrderId
property is represented by the 
TemplateOrderProperty
class, which 
extends 
ComplexScheduledOrderProperty
. When a user designates an existing 
Order
as a template 
Order
, the existing 
Order
is copied, and the new template 
Order
is assigned a new ID. The 
templateOrderId
property contains a reference to the repository ID of the new template 
Order
. When 
the user later views the scheduled 
Order
, this property loads the associated template 
Order
represented 
by the 
templateOrderId
Once a scheduled order template has been modified, 
ScheduledOrderLookup
can be used to provide 
information on scheduled orders for a scheduled order ID (
itemId
), template ID (
templateId
) or profile 
ID (
profileId
). Output parameters include 
scheduledOrders
and 
count
Scheduling information can be displayed in different formats. Using a scheduled order item or ID, 
ScheduledOrderInfo
can provide a reference to scheduled objects, the scheduled order item and a 
readable string representation of the schedule. Output parameters to 
ScheduledOrderInfo
are 
scheduledOrderItem
readableSchedule
and 
schedule
The following table describes the important handle methods of 
ScheduledOrderFormHandler
application software cloud:C# PDF Page Insert Library: insert pages into PDF file in C#.net
Apart from the ability to inserting a new PDF page into existing PDF to delete PDF page using C# .NET, how to reorganize PDF document pages and how to
www.rasteredge.com
application software cloud:C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
How to delete a range of pages from a PDF document. String filepath = @""; String outPutFilePath = @""; PDFDocument doc = new PDFDocument(filepath); // Detele
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
36 7  
16  -  C o n fi g u rin g   Pu rch as e  Pro ces s  S ervices  
Method 
Description 
handleRepositoryId 
Called when the user wants to review or update a scheduled 
Order
. This 
method is called before the user interface is rendered to the user. 
The method retrieves all of the property values for the scheduled 
Order
with the ID set in 
ScheduledOrderFormHandler.repositoryId
. It 
then populates the value Dictionary with the properties and finally 
remaps all the complex properties from the Order Repository to the user 
interface. 
handleVerify 
Called when the user wants to review the input data for the scheduled 
Order
before it is created in the Order Repository. This method validates 
the submitted values, throwing a form exception if one is invalid. 
handleCreate 
Creates a scheduled 
Order
in the Order Repository. 
handleUpdate 
Updates an existing scheduled 
Order
in the Order Repository. 
handleDelete 
Deletes an existing scheduled 
Order
from the Order Repository. 
handleRemove 
Inactivates an existing scheduled 
Order
in the Order Repository by 
changing the state of the 
Order
from ACTIVE to INACTIVE. 
handleRestore 
Activates an existing scheduled Order in the Order Repository by 
changing the state of the 
Order
from INACTIVE to ACTIVE. 
Note that the 
ScheduledOrderFormHandler
uses 
ScheduledOrderTools
to fire events for all of the 
actions that are associated with these handle methods. 
Using the 
scheduledOrderFormHandler
is very similar to using the 
RepositoryFormHandler
. (For 
more information on using the 
RepositoryFormHandler
, see the Using Repository Form Handlers 
chapter of the ATG Page Developer’s Guide.) Simple properties like 
name
state
, and 
nextScheduledRun
can all be set in the following manner: 
<dsp:form action="setName.jsp"> 
new name : <dsp:input bean="ScheduledOrderHandler.value.name" 
type="text"/><br> 
<dsp:input bean="ScheduledOrderHandler.update" value="update name" 
type="submit"/> 
</dsp:form> 
Complex properties of the scheduled 
Order
are set according to the configuration of 
ScheduledOrderFormHandler.complexScheduledOrderProperties
property. As shown in the 
ScheduleOrderFormHandler.properties
file above, the 
startDate
and 
endDate
complex properties 
of a scheduled 
Order
are represented by the 
DateProperty
class. The following JSP example illustrates 
how to change these properties, using the month in the 
startDate
as an example: 
application software cloud:C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Open a document. PDFDocument doc = new PDFDocument(inputFilePath); PDFPage page = (PDFPage)pdf.GetPage(0); // Extract all images on one pdf page.
www.rasteredge.com
application software cloud:C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
RootPath + "\\" 2.pdf"; String outputFilePath = Program.RootPath + "\\" Annot_6.pdf"; // open a PDF file PDFDocument doc = new PDFDocument(inputFilePath
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
36 8  
16  -  C o n fi g uri n g  P u rch as e P ro ces s  Serv ices  
<dsp:form action="setStartDateMonth.jsp"> 
New start month : <dsp:input 
bean="ScheduledOrderFormHandler.value.startDate.month" type="text"/> <br> 
<dsp:input bean="ScheduledOrderFormHandler.update" value="update month" 
type="submit"/> 
</dsp:form> 
You can modify the 
schedule
property of a scheduled 
Order
in a similar manner. Two classes in package 
atg.commerce.order.scheduled
can represent the 
schedule
property of a scheduled 
Order
atg.commerce.order.scheduled.CalendarScheduleProperty
If used, the 
schedule
property is represented by a 
CalendarSchedule
, and the 
schedule
property is mapped to the user input form fields used by the 
CalendarSchedule
CalendarSchedule
specifies a task that occurs according to units of the calendar 
and clock (for example, at 2:30 AM on the 1st and 15th of every month). 
atg.commerce.order.scheduled.PeriodicScheduleProperty
If used, the 
schedule
property is represented by a 
PeriodicSchedule
, and the 
schedule
property is mapped to the user input form fields used by the 
PeriodicSchedule
PeriodicSchedule
specifies a task that occurs at regular intervals (for example, 
every 10 seconds in 20 minutes without catch up). 
The following JSP example illustrates how to change the 
schedule
property. In this example, the 
frequency of a schedule whose 
scheduledMode
is Monthly is updated: 
<dsp:form action="setSchedule.jsp"> 
… 
<dsp:select 
bean="ScheduledOrderFormHandler.complexScheduledOrderMap.calendarSchedule. 
userInputFields.scheduleMode" size="1" name="select"> 
<dsp:option value="onceMonthly"/>once a month. 
<dsp:option value="biMonthly"/>every two months. 
<dsp:option value="quarterly"/>every quarter. 
</dsp:select> 
… 
<dsp:input bean="ScheduledOrderFormHandler.update" value="Update" 
type="submit"/> 
</dsp:form> 
ATG  C om mer ce P ro g ramm in g   Gui d e 
36 9  
16  -  C o n fi g u rin g   Pu rch as e  Pro ces s  S ervices  
For more information on 
CalendarScheduleProperty
and 
PeriodicScheduleProperty
, see the ATG 
API Reference. For more information on 
CalendarSchedule
and 
PeriodicSchedule
, see the Scheduler 
Services section of the Core Dynamo Services chapter in the ATG Programming Guide. 
Using Scheduled Orders with Registered Sites 
If you have registered sites for use with ATG’s multisite feature, then scheduled orders can be “site-aware” 
just like other Commerce orders. Scheduled orders are different from regular orders placed by users, 
however, because there is no actual user interacting with a site when the order is placed. Instead, the 
ScheduledOrderFormHandler
saves the 
siteId
as part of the order template. 
The 
siteId
is copied from the initial order’s 
siteId
property, even if the value is null, and overrides any 
siteId
set in the page. The ID is then retrieved by the 
ScheduledOrderService
during order 
processing. 
The 
ScheduledOrderTools
component includes one property to control how scheduled orders are 
processed for registered sites: 
useSitePriceLists
– If 
true
, retrieves the price list from the scheduled order. If 
false
, the price list is determined based on the profile. The default value is 
true
Setting Restrictions on Orders 
In some situations you may want to prevent an order from being placed. For example, a given item might 
be prohibited from sale in certain locations, or you may want to ensure that customers order a minimum 
quantity of a given item, or you may want to designate some items as requiring approval for purchase. 
You can use ATG Commerce to specify criteria that orders must meet if they are to be placed, thereby 
setting restrictions on certain kinds of orders. 
This section describes the order restriction system in ATG Commerce and includes the following 
subsections: 
Understanding the Order Restriction Classes 
Implementing Order Restrictions 
Understanding the Order Restriction Classes 
You set restrictions on 
Orders
by specifying the criteria or “rules” that an 
Order
must meet if it is to be 
placed. The functionality for this 
Order
restriction system relies on the following ATG Commerce classes 
in package 
atg.commerce.expression
Rule, which represents the rule. 
ExpressionParser, which parses the expression (rule). 
RuleEvaluator, which evaluates the expression to either to True or False. 
ProcPropertyRestriction, which evaluates the rule using the 
ExpressionParser
and 
RuleEvaluator
ATG  C om merce  P ro gra mm in g  G ui d e 
37 0  
16  -  C o n fi g uri n g  P u rch as e P ro ces s  Serv ices  
Rule 
The 
atg.commerce.expression.Rule
class represents a rule. A 
Rule
object contains 
RuleExpressions
(operands) and an operator, which together are evaluated to either True or False. 
ExpressionParser 
The 
atg.commerce.expression.ExpressionParser
class is used to parse expressions. 
ExpressionParser
supports the following operators: =, >, <, >=, <=, !=, 
contains
, and 
containsKey
. It 
does not support & (and) or | (or). The 
ExpressionParser.parseExpression()
method takes a string 
containing an expression to parse, such as the following: 
Order.priceInfo.amount > Profile.maxAmountAllowed 
Profile.approvalRequired = true 
Order.id = null 
Order.specialInstructions.shippingInfo.size != 1000 
After parsing the expression, the 
parseExpression()
method returns a 
Rule
object, which is then 
passed to the RuleEvaluator for evaluation. 
ATG Commerce provides a globally-scoped instance of 
ExpressionParser
, which is located in Nucleus 
at 
/atg/commerce/util/
RuleEvaluator 
The 
atg.commerce.expression.RuleEvaluator
class is used to evaluate a given rule. After the 
ExpressionParser parses an expression, it returns a 
Rule
object and passes it to the 
RuleEvaluator
. The 
RuleEvaluator.evaluateRule()
method then evaluates the rule to True or False. 
The 
RuleEvaluator
class supports all primitive data types in Java. These are 
long
double
int
short
float
boolean
char
and String
. If two incompatible data types are evaluated, such as a double and 
boolean, then an 
EvaluationExpression
is thrown. 
ATG Commerce provides a globally-scoped instance of 
RuleEvaluator
, which is located in Nucleus at 
/atg/commerce/util/
ProcPropertyRestriction 
The 
atg.commerce.expression.ProcPropertyRestriction
class resolves all references in the rule 
set in 
ProcPropertyRestriction.ruleExpression
using the ExpressionParser and then evaluates the 
rule using the RuleEvaluator. The processor then returns a value based on whether the rule evaluates to 
True or False. The specific value returned is determined by its 
returnValueForTrueEvaluation
and 
returnValueForFalseEvaluation
properties. 
Additionally, if the expression evaluates to True and the 
addErrorToResultOnTrueEval
property is set 
to True, then the value in the 
errorMessage
property is added to the 
PipelineResult
object, keyed by 
the string in the 
pipelineResultErrorMessageKey
property. (See the table below for more 
information on these properties.) 
The 
ProcPropertyRestriction
processor has the following properties: 
ATG  C om mer ce P ro g ramm in g   Gui d e 
37 1  
16  -  C o n fi g u rin g   Pu rch as e  Pro ces s  S ervices  
Property 
Description 
ruleExpression 
The expression that is passed to the 
ExpressionParser
such as 
Order.priceInfo.amount
> 1000.0. This is the 
rule against which the processor evaluates the 
Order
expressionParser 
The 
ExpressionParser
Nucleus component. 
If null, the 
ProcPropertyRestriction
processor creates 
a new instance of 
atg.commerce.expression.ExpressionParser
for its 
use. 
ruleEvaluator 
The 
RuleEvaluator
Nucleus component. 
If null, the 
ProcPropertyRestriction
processor creates 
a new instance of 
atg.commerce.expression.RuleEvaluator
for its use. 
returnValueForFalseEvaluation 
The integer to return when the expression evaluates to 
False. 
returnValueForTrueEvaluation 
The integer to return when the expression evaluates to 
True. 
addErrorToResultOnTrueEval 
A boolean property that controls whether the 
errorMessage
is added to the 
PipelineResult
object 
when the expression evaluates to True. 
errorMessage 
The error message to add to the 
PipelineResult
object 
when the expression evaluates to True. 
pipelineResultErrorMessageKey 
The key to use when adding the 
errorMessage
to the 
PipelineResult
object. 
Implementing Order Restrictions 
You can set restrictions on 
Orders
by adding a 
ProcPropertyRestriction
processor to any pipeline, 
for example, the 
validateForCheckout
pipeline. 
To do so, create an instance of 
atg.commerce.expression.ProcPropertyRestriction
, defining the 
rule by which 
Orders
are to be evaluated in 
ProcPropertyRestriction.ruleExpression
and setting 
the remaining properties as necessary. (See the table in the previous section for more information on the 
properties of 
ProcPropertyRestriction
.) Then add the processor at any point in any pipeline. 
For example, you might check 
Orders
against certain restrictions before checkout by adding a link to the 
validateForCheckout
pipeline in 
<ATG10dir>/DCS/src/config/atg/commerce/commercepipeline.xml
. To insert a new link, add a 
new element to the XML file that references 
atg.commerce.expression.ProcPropertyRestrictions
, as follows: 
ATG  C om merce  P ro gra mm in g  G ui d e 
37 2  
16  -  C o n fi g uri n g  P u rch as e P ro ces s  Serv ices  
<pipelinechain name="validateForCheckout" transaction="TX_REQUIRED" 
headlink="validateOrderForCheckout" 
classname="atg.service.pipeline.PipelineChain" 
resultclassname="atg.service.pipeline.PipelineResultImpl"> 
<pipelinelink name="propertyRestrictions" transaction="TX_MANDATORY"> 
<processor 
jndi="/atg/commerce/expression/ProcPropertyRestrictions"/> 
. . . 
</pipelinechain> 
For more information on pipelines and how to extend them, see the Processor Chains and the Pipeline 
Manager chapter. 
Tracking the Shopping Process 
ATG’s Adaptive Customer Engine includes a business tracking feature that lets you define a business 
process as a series of stages, track activity within the business process, and report on the activity for a 
specified time frame. In ATG Commerce, we’ve defined the lifecycle of an order (through the point the 
customer checks out) as a business process, allowing you to track stages in the shopping process from 
browsing, to adding items to the shopping cart, to completing shipping and billing information, to final 
check out. You can use the information gathered by tracking the stages of the shopping process to 
understand better how your customers react to their experience with your sites. For example, if reports 
show that many customers are abandoning their purchases at the stage where you display the shipping 
price, that may be an indication of poor or confusing application page design, or undesirable pricing 
schemes. You can also use shopping process tracking to modify a customer’s experience. For example, 
you could offer special promotions to customers who stall at a particular point in the shopping process. 
For more information about business process tracking, including information about how to create new 
business processes, see the Defining and Tracking Business Processes chapter in the ATG Personalization 
Programming Guide 
Shopping Process Stages 
ATG Commerce has one business process configured out-of-the-box, the shopping process. The shopping 
process is made up of a series of stages that a customer follows, from browsing for products to, if all goes 
well, purchasing and checking out. The stages of the shopping process in ATG Commerce are defined as: 
Browsed 
AddedToCart 
ShippingInfoComplete 
ShippingPriceDisplayed 
RequestedBillingInfo 
BillingInfoCompleted 
CartSummaryViewed
Documents you may be interested
Documents you may be interested