c# wpf document viewer pdf : Delete pages from pdf acrobat application Library utility azure asp.net .net visual studio ATGCommProgGuide30-part2108

ATG  C om mer ce P ro g ramm in g   Gui d e 
28 3  
15  -  W o rki n g  W i t h  P u rch ase  P ro ces s  O bje cts  
μ
Assigning Items to Shipping Groups 
When an 
Order
is first created, it has an empty 
ShippingGroup
, which serves as the default 
ShippingGroup
for the 
Order
. The type of default 
ShippingGroup
that is created is determined by the 
defaultShippingGroupType
property of the 
OrderTools
component. By default, this property is set to 
hardgoodShippingGroup
in ATG Consumer Commerce and 
b2bHardgoodShippingGroup
in ATG 
Business Commerce. 
When a 
CommerceItem
is added to the 
Order
, that item is automatically a part of the default 
ShippingGroup
because it is assumed that when there is only one 
ShippingGroup
, all items are a part of 
that group. However, once a second 
ShippingGroup
is added to the 
Order
, the existing 
CommerceItem
and any new commerce items must be explicitly assigned to one of the two shipping groups; any items 
that were in the default 
ShippingGroup
are no longer a part of any 
ShippingGroup
Before the 
Order
is checked out, all of the order’s commerce items must be a part a 
ShippingGroup
. This 
requirement is checked during the checkout process by the 
validateForCheckout
pipeline, which is 
executed by the 
processOrder
pipeline. Each processor in the 
validateForCheckout
pipeline 
validates a different part of the 
Order
as complete. The 
validateShippingGroupsForCheckout
processor, in specific, validates the shipping groups in the 
Order
. The shipping groups are considered 
complete if the following criteria are met: 
1.
None of the required fields (name, address, city, state, and postal code) are empty in 
any 
ShippingGroup
2.
All of the commerce items in the 
Order
are assigned to a 
ShippingGroup
. This 
requirement must be met according to the following rules: 
If there is only one 
ShippingGroup
in the 
Order
and no relationships exist 
between that 
ShippingGroup
and the commerce items in the 
Order
, then the 
shipping of all commerce items in the 
Order
implicitly is accounted for by that 
ShippingGroup
If there is only one 
ShippingGroup
in the 
Order
and relationships exist 
between that 
ShippingGroup
and the commerce items in the 
Order
, or if 
there is more than one 
ShippingGroup
in the 
Order
, then every 
CommerceItem
in the 
Order
must have its shipping explicitly accounted for 
with one or more 
ShippingGroupCommerceItemRelationship
objects, as 
follows: 
If a 
CommerceItem
has a 
ShippingGroupCommerceItemRelationship
of 
type 
ShippingQuantityRemaining
, then the item’s shipping is accounted for 
regardless of whether it has other shipping relationships. This is because a 
“remaining” relationship type covers any quantity of the 
CommerceItem
that is 
not accounted for by other shipping relationships. 
If a 
CommerceItem
has one or more 
ShippingGroupCommerceItemRelationship
objects of type 
ShippingQuantity
, but no relationship of type 
ShippingQuantityRemaining
, then the total quantity of the 
CommerceItem
covered by the relationships must be equal to or greater than the quantity in 
the 
CommerceItem
Delete pages from pdf acrobat - application Library utility: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
Delete pages from pdf acrobat - application Library utility: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 
28 4  
15  -  W o rki n g  W i t h  P u rch ase  P ro cess   O bject s  
The 
range
property in the 
ShippingGroupCommerceItemRelationship
identifies which particular items out of the total quantity of a 
CommerceItem
are associated with a given 
ShippingGroup
Note: The priority of a 
Relationship
in an 
Order
, which is determined by the 
relationship’s type, plays a role in when the 
Relationship
is processed as the 
Order
proceeds through the checkout process. For more on relationship types 
and priority, see the Relationship Priority subsection of the Using Relationship 
Objects section in the Working With Purchase Process Objects chapter. 
For more information on 
ShippingGroupCommerceItemRelationship
objects, see the Relationship 
Types section in this chapter. For more information on the 
processOrder
and 
validateForCheckout
pipelines, see the Checking Out an Order section of the Configuring Purchase Process Services chapter. 
Assigning Costs to Payment Groups 
When an 
Order
is first created, it has an empty 
PaymentGroup
, which serves as the default 
PaymentGroup
for the 
Order
. The type of default 
PaymentGroup
that is created is determined by the 
defaultPaymentGroupType
property of the 
OrderTools
component. By default, this property is set to 
CreditCard
When a 
CommerceItem
is added to the 
Order
, that item is automatically a part of the default 
PaymentGroup
because it is assumed that when there is only one 
PaymentGroup
, all 
CommerceItem
costs – along with all shipping and tax costs -- are a part of that group. However, once a second 
PaymentGroup
is added to the 
Order
, the existing 
CommerceItem
, any new commerce items, and all 
shipping and tax costs must be explicitly assigned to one of the two payment groups; any items that were 
in the default 
PaymentGroup
are no longer a part of any 
PaymentGroup
Before the 
Order
is checked out, all of the order’s costs must be a part of a 
PaymentGroup
. This 
requirement is checked during the checkout process by the 
validateForCheckout
pipeline, which is 
executed by the 
processOrder
pipeline. Each processor in the 
validateForCheckout
pipeline 
validates a different part of the 
Order
as complete. The payment groups in the 
Order
are considered 
complete if the following criteria are met: 
1.
None of the required fields (name, address, city, state, and postal code) are empty in 
any 
PaymentGroup
2.
All of the costs associated with the 
Order
, which include the commerce item costs, 
shipping costs, and tax, are accounted for by one or more payment groups. 
If the 
Order
has only one payment group, then the assignment of 
Order
costs is automatic. However, if 
the 
Order
has more than one payment group, you must explicitly assign the 
Order
costs to the payment 
groups. You can do so using one of following methods: 
Assign the total cost of the 
Order
to one or more payment groups. This approach is 
more frequently used, and it is the most straightforward way to account for an order’s 
payment because you are dealing with the 
Order
costs as a whole. See Assigning an 
Order’s Total Cost to Payment Groups
application Library utility:.NET PDF Document Viewing, Annotation, Conversion & Processing
Redact text content, images, whole pages from PDF file. Annotate & Comment. Edit, update, delete PDF annotations from PDF file. Print.
www.rasteredge.com
application Library utility:C# PDF Converter Library SDK to convert PDF to other file formats
manipulate & convert standard PDF documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
28 5  
15  -  W o rki n g  W i t h  P u rch ase  P ro ces s  O bje cts  
Assign the component costs of the 
Order
-- the commerce item costs, shipping costs, 
and tax -- to one or more payment groups. You should use this method if you need 
more control over where to assign the component costs of an 
Order
. See Assigning an 
Order’s Component Costs to Payment Groups
For more information on the 
processOrder
and 
validateForCheckout
pipelines, see the Checking 
Out an Order section of the Configuring Purchase Process Services chapter. For information on the 
PaymentGroupCommerceItemRelationship
and 
PaymentGroupShippingGroupRelationship
objects that are described in the following subsections, see the Relationship Types section in this chapter. 
Note: The priority of a 
Relationship
in an 
Order
, which is determined by the relationship’s type, plays a 
role in when the 
Relationship
is processed as the 
Order
proceeds through the checkout process. For 
more on relationship types and priority, see the Relationship Priority subsection of the Using Relationship 
Objects section in the Working With Purchase Process Objects chapter. 
Assigning an Order’s Total Cost to Payment Groups 
To assign the total cost of the 
Order
to one or more payment groups, use the 
addOrderAmountToPaymentGroup()
and 
addRemainingOrderAmountToPaymentGroup()
methods in 
the 
OrderManager
. These methods add 
PaymentGroupOrderRelationship
objects (of type 
OrderAmount
or 
OrderAmountRemaining
, respectively) to the 
Order
Example 1 
This example assigns an order’s total cost to a single 
PaymentGroup
. The order’s total cost is $20.90. You 
can account for the total cost of the 
Order
by calling: 
addRemainingOrderAmountToPaymentGroup()
and passing in the required 
parameters. 
-- or -- 
addOrderAmountToPaymentGroup()
and passing in the value 20.90 for the amount 
parameter. 
The disadvantage to calling 
addOrderAmountToPaymentGroup()
instead of 
addRemainingOrderAmountToPaymentGroup()
is that if the order’s total amount increases above 
$20.90, then you must call 
removeOrderAmountFromPaymentGroup()
and then call 
addOrderAmountToPaymentGroup()
again and pass in the new amount. 
Example 2 
This example assigns an order’s total cost to more than one 
PaymentGroup
. The order’s total cost is 
$20.90, and there are two payment groups in the 
Order
. You want to assign $10.00 to the first 
PaymentGroup
and $10.90 to the second 
PaymentGroup
. Follow these steps to assign the amounts to 
the different payment groups: 
1.
Call 
addOrderAmountToPaymentGroup()
and pass in the first 
PaymentGroup
and 
10.00 for the amount parameter. 
2.
Call 
addRemainingOrderAmountToPaymentGroup()
, or call 
addOrderAmountToPaymentGroup()
and pass in the second 
PaymentGroup
and 
10.90 for the amount parameter. 
application Library utility:C# powerpoint - PowerPoint Conversion & Rendering in C#.NET
documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. PowerPoint to PDF Conversion.
www.rasteredge.com
application Library utility:C# Word - Word Conversion in C#.NET
Word documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Word to PDF Conversion.
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
28 6  
15  -  W o rki n g  W i t h  P u rch ase  P ro cess   O bject s  
Accounting for an Order’s Total Cost 
If the total cost of an 
Order
is assigned to one or more payment groups, then during checkout the order’s 
total cost is accounted for according to the following rules: 
If the 
Order
contains a 
PaymentGroupOrderRelationship
of type 
OrderAmountRemaining
, then the order’s total cost is accounted for regardless of 
whether or not the 
Order
has other payment relationships. This is because a 
“remaining” relationship covers everything not accounted for by other payment 
relationships. 
If an 
Order
contains one or more 
PaymentGroupOrderRelationship
objects of type 
OrderAmount
, then the sum of the amounts in the relationships must be equal to or 
greater than the total amount of the 
Order
to account for the order’s total cost. (The 
total amount of an 
Order
is the sum of its 
CommerceItem
costs, 
ShippingGroup
costs, and tax.) 
Assigning an Order’s Component Costs to Payment Groups 
An order’s component costs include its commerce item costs, shipping costs, and tax. You can assign 
these various costs to payment groups using the following methods: 
CommerceItemManager.addItemAmountToPaymentGroup()
CommerceItemManager.addRemainingItemAmountToPaymentGroup()
ShippingGroupManager.addShippingCostAmountToPaymentGroup()
ShippingGroupManager.addRemainingShippingCostToPaymentGroup()
OrderManager.addTaxAmountToPaymentGroup()
OrderManager.addRemainingTaxAmountToPaymentGroup()
For example, suppose an 
Order
has two commerce items, two payment groups, and one shipping group. 
The cost of the first item is $5.99, and the cost of the second item is $9.99. Both items are in the shipping 
group, and the shipping cost is $5.00. The tax for the order is $0.80. You might account for the order’s 
costs by doing the following: 
1.
Call 
addItemAmountToPaymentGroup()
for the first item and pass 5.99 for the 
amount parameter to the first payment group. 
2.
Call 
addItemAmountToPaymentGroup()
for the second item and pass 9.99 for the 
amount parameter to the second payment group. 
3.
Call 
addShippingCostAmountToPaymentGroup()
for the shipping group and pass 
5.00 for the amount parameter to the first payment group. 
4.
Call 
addTaxAmountToPaymentGroup()
for the order’s tax and pass 0.80 for the 
amount parameter to the second payment group. 
The order’s costs are now accounted for because the commerce item costs, shipping 
costs, and tax have all been assigned to a payment group. 
application Library utility:C# Windows Viewer - Image and Document Conversion & Rendering in
standard image and document in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Convert to PDF.
www.rasteredge.com
application Library utility:C# Excel - Excel Conversion & Rendering in C#.NET
Excel documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Excel to PDF Conversion.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
28 7  
15  -  W o rki n g  W i t h  P u rch ase  P ro ces s  O bje cts  
Accounting for Commerce Item Costs 
If the 
CommerceItem
costs of an 
Order
are assigned to one or more payment groups, then during 
checkout the order’s 
CommerceItem
costs are accounted for according to the following rules: 
If there is only one 
PaymentGroup
in the 
Order
and no relationships exist between 
that 
PaymentGroup
and the commerce items in the 
Order
, then the cost of all 
commerce items in the 
Order
implicitly is accounted for by that 
PaymentGroup
If there is only one 
PaymentGroup
in the 
Order
and relationships exist between that 
PaymentGroup
and the commerce items in the 
Order
, or if there is more than one 
PaymentGroup
in the 
Order
, then every 
CommerceItem
in the 
Order
must have its 
costs explicitly accounted for with one or more 
PaymentGroupCommerceItemRelationship
objects, as follows: 
If a 
CommerceItem
has a 
PaymentGroupCommerceItemRelationship
of type 
PaymentAmountRemaining
, then that relationship accounts for the cost of the 
CommerceItem
regardless of whether the 
CommerceItem
has other payment 
relationships. This is because a “remaining” relationship covers everything not 
accounted for by other payment relationships. 
If a 
CommerceItem
has one or more 
PaymentGroupCommerceItemRelationship
objects of type 
PaymentAmount
, but no 
PaymentGroupCommerceItemRelationship
of type 
PaymentAmountRemaining
then the total cost covered by all of the relationships must be equal to or greater than 
the total cost of the 
CommerceItem
Accounting for Shipping Costs 
If the shipping costs of an 
Order
are assigned to one or more payment groups, then during checkout the 
order’s shipping costs are accounted for according to the following rules: 
If there is only one 
PaymentGroup
in the 
Order
and no relationships exist between 
that 
PaymentGroup
and the shipping groups in the 
Order
, then the shipping costs for 
the 
Order
implicitly are accounted for by that 
PaymentGroup
If there is only one 
PaymentGroup
in the 
Order
and relationships exist between that 
PaymentGroup
and the shipping groups in the 
Order
, or if there is more than one 
PaymentGroup
in the 
Order
, then every 
ShippingGroup
in the 
Order
must have its 
costs explicitly accounted for by one or more 
PaymentGroupShippingGroupRelationship
objects, as follows: 
If a 
ShippingGroup
has a 
PaymentGroupShippingGroupRelationship
of type 
ShippingAmountRemaining
, then that relationship accounts for the cost of the 
ShippingGroup
regardless of whether the 
ShippingGroup
has other payment 
relationships. This is because a “remaining” relationship covers everything not 
accounted for by other payment relationships. 
If a 
ShippingGroup
has one or more 
PaymentGroupShippingGroupRelationship
objects of type 
ShippingAmount
, but no 
PaymentGroupShippingGroupRelationship
of type 
ShippingAmountRemaining
then the total cost covered by all of the relationships must be equal to or greater than 
the total cost of the 
ShippingGroup
application Library utility:VB.NET PDF: How to Create Watermark on PDF Document within
Watermark Creator, users need no external application plugin, like Adobe Acrobat. VB example code to create graphics watermark on multiple PDF pages within the
www.rasteredge.com
application Library utility:VB.NET PowerPoint: VB Code to Draw and Create Annotation on PPT
as a kind of compensation for limitations (other documents are compatible, including PDF, TIFF, MS on slide with no more plug-ins needed like Acrobat or Adobe
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
28 8  
15  -  W o rki n g  W i t h  P u rch ase  P ro cess   O bject s  
Accounting for Tax 
If the tax of an 
Order
is assigned to one or more payment groups, then during checkout the order’s tax 
cost is accounted for according to the following rules: 
If the 
Order
contains a 
PaymentGroupOrderRelationship
of type 
TaxAmountRemaining
, then the order’s tax cost is accounted for regardless of 
whether or not the 
Order
has other payment relationships. This is because a 
“remaining” relationship covers everything not accounted for by other payment 
relationships. 
If the 
Order
contains one or more 
PaymentGroupOrderRelationship
objects of 
type 
TaxAmount
, then the sum of the amounts in the relationships must be equal to or 
greater than the total tax amount of the 
Order
to account for tax payment. 
Setting Handling Instructions 
Handling instructions are specific instructions that can be associated with the commerce items in a 
shipping group. For example, a customer could set handling instructions for gift wrapping. 
HandlingInstruction Objects 
HandlingInstruction
objects are constructed using one of the 
createHandlingInstruction()
methods in the 
HandlingInstructionManager
. After the object is created and populated with the 
required data, call the 
addHandlingInstructionToShippingGroup()
method to add the handling 
instructions to the 
ShippingGroup
that contains the commerce item(s) whose IDs are specified in the 
HandlingInstruction
A customer can set more than one handling instruction for a given 
CommerceItem
in a 
ShippingGroup
For example, if an 
Order
contains a single 
CommerceItem
that was added to a user’s shopping cart from 
another user’s gift list and needs to be gift wrapped, two 
HandlingInstructions
must be created – one 
for the gift wrapping and another for the gift list. Each 
HandlingInstruction
would be of a different 
class type: 
GiftwrapHandlingInstruction
and 
GiftlistHandlingInstruction
, respectively. Each 
HandlingInstruction
would contain: 
The ID of the 
ShippingGroup
that contains the 
CommerceItem
The ID of the 
CommerceItem
to which the handling instruction applies. 
A quantity of 1. 
Any other necessary fields of 
GiftwrapHandlingInstruction
and 
GiftlistHandlingInstruction
The sum of 
HandlingInstruction
quantities cannot exceed the quantity in the 
ShippingGroup
for a 
particular 
HandlingInstruction
class. In the above example, there can be only one 
GiftwrapHandlingInstruction
with a quantity of 1 in the 
ShippingGroup
because there is only one 
item in the 
ShippingGroup
. However, there can be a 
GiftlistHandlingInstruction
in the 
ShippingGroup
that references the same item because the two 
HandlingInstruction
objects are 
different types. 
ATG  C om mer ce P ro g ramm in g   Gui d e 
28 9  
15  -  W o rki n g  W i t h  P u rch ase  P ro ces s  O bje cts  
For details on 
GiftListHandlingInstructions
, see the Configuring Commerce Services chapter. 
Adding Handling Instructions to a Shipping Group 
Handling instructions can be added to either shipping groups or individual commerce items. This section 
provides an example of how to create handling instructions for gift wrapping one item in a shipping 
group. The example also uses a repository with a wrapping paper item descriptor. 
For additional, detailed examples of how to extend the purchase process to support new commerce 
objects, see the Extending the Purchase Process section in this guide. For information on how to create 
new item descriptors in a repository, see the SQL Repository Data Models chapter in the ATG Repository 
Guide. For more information on 
HandlingInstruction
, see the ATG API Reference
Step 1: Create a 
GiftwrapHandlingInstruction
class that extends the 
atg.commerce.order.HandlingInstructionImpl
class. Add a property to identify the wrapping 
paper. For example: 
public String getWrappingPaperId(); 
public void setWrappingPaperId(String pWrappingPaperId); 
Step 2: Add support for this class to the 
OrderTools
component. For example, in the 
localconfig
directory add the following lines to 
/atg/commerce/order/OrderTools.properties
handlingTypeClassMap+=giftwrapHandlingInstruction= 
mypackage.GiftwrapHandlingInstruction 
beanNameToItemDescriptorMap+=mypackage.GiftwrapHandlingInstruction= 
giftwrapHandlingInstruction 
Step 3: Add support for the new item descriptor to 
orderrepository.xml.
The 
orderrepository.xml
file is located in 
/atg/commerce/order/orderrepository.xml
in the 
configpath
First, add the new type to the 
handlingInstruction
item descriptor: 
<table name="dcspp_hand_inst" type="primary" 
id-column-name="handling_inst_id"> 
<property name="type" data-type="enumerated" 
default="handlingInstruction" expert="true" 
display-name="Type"> 
<attribute name="useCodeForValue" value="false"/> 
<option value="handlingInstruction" code="0"/> 
<option value="giftlistHandlingInstruction" code="1"/> 
</property> 
. . . 
</table> 
ATG  C om merce  P ro gra mm in g  G ui d e 
29 0  
15  -  W o rki n g  W i t h  P u rch ase  P ro cess   O bject s  
Second, add the new item descriptor: 
<item-descriptor 
name="giftwrapHandlingInstruction" 
super-type="handlingInstruction" 
sub-type-value="giftwrapHandlingInstruction" 
cache-mode="locked" 
display-name="Gift wrap Handling Instruction"> 
<attribute name="writeLocksOnly" value="true"/> 
<table name="dcspp_wrap_inst" 
id-column-name="handling_inst_id"> 
<property name="wrappingPaperId" 
column-name="wrap_id" 
data-type="string" 
display-name="Wrapping Paper Id"/> 
</table> 
</item-descriptor> 
Step 4: Create a method that adds the handling instruction to the order in a class that extends the 
HandlingInstructionManager:
public wrapCommerceItemInShippingGroup(ShippingGroup 
pGiftShippingGroup, CommerceItem pWrappedItem,String pWrappingPaperId) 
GiftwrapHandlingInstruction giftwrap = (GiftwrapHandlingInstruction) 
handlingInstructionManager.createHandlingInstruction( 
"giftwrapHandlingInstruction", 
pGiftShippingGroup.getId(), pWrappedItem.getId(), 
pWrappedItem.getQuantity()); 
giftwrap.setWrappingPaperId(wrappingId); 
pGiftShippingGroup.addHandlingInstruction(giftwrap); 
Step 5: Add any additional processors. For example, you could add a processor to the 
validateForCheckout
pipeline to validate the wrapping paper type. 
ATG Commerce States 
In ATG Commerce, the subclasses of 
atg.commerce.states.ObjectStates
represent the possible 
states for the order objects. For example, the 
atg.commerce.states.CommerceItemStates
class 
represents the possible states of a 
CommerceItem
, the 
atg.commerce.states.PaymentGroupStates
class represents the possible states of a 
PaymentGroup
, and so on. The state names are defined in static 
String
variables in each state class, and ATG Commerce code uses the state name to set the state of a 
given object. For example: 
ATG  C om mer ce P ro g ramm in g   Gui d e 
29 1  
15  -  W o rki n g  W i t h  P u rch ase  P ro ces s  O bje cts  
// set the state of shippingGroup to the integer value of the 
// PENDING_SHIPMENT state. sgStates.PENDING_SHIPMENT is the 
// name of the state 
ShippingGroupStates sgStates = getShippingGroupStates(); 
shippingGroup.setState(sgStates.getStateValue(sgStates.PENDING_SHIPMENT)); 
ATG Commerce provides the following configured instances of the state classes, which are located in 
Nucleus at 
/atg/commerce/states/
OrderStates
: indicates the states of an 
Order
CommerceItemStates
: indicates the states of a 
CommerceItem
PaymentGroupStates
: indicates the states of a 
PaymentGroup
ShippingGroupStates
: indicates the states of 
ShippingGroup
ShipItemRelationshipStates
: indicates the states of a 
ShippingGroupCommerceItemRelationship
The properties files of these state objects configure the following properties, which provide mappings of 
the order object’s state names to corresponding 
String
values (for easy reading) and integer values (for 
easy comparisons): 
stateValueMap
: maps each state name to an Integer value. 
stateStringMap
: maps each state’s Integer value to a display name. This is the 
String
value that users see and that is stored in the repository. 
stateDescriptionMap
: maps each state’s Integer value to a 
String
description of 
the state. 
Note that a state’s name and display name are two different values. 
Each state class (
OrderStates
CommereItemStates
, and so on) contains several methods for retrieving 
a requested state’s Integer value, display name, or description from the state mappings. The following 
table describes these methods: 
Method name 
Description 
getStateValue
Given a state name, this method returns its 
Integer value. 
getStateFromString
Given a state’s display name, this method 
returns its Integer value. 
getStateString
Given a state’s Integer value, this method 
returns its display name. 
getStateDescription
Given a state’s Integer value or display 
name, this method returns its description. 
ATG  C om merce  P ro gra mm in g  G ui d e 
29 2  
15  -  W o rki n g  W i t h  P u rch ase  P ro cess   O bject s  
getStateAsUserResource
Given a state’s Integer value or display name 
(as configured in the properties file of the 
relevant states component, for example, 
OrderStates.properties
or 
CommerceItemStates.properties
), this 
method returns the display name that is 
defined in the resource file that is 
appropriate for the current locale. 
Note: Used for internationalization, as 
described below. 
getStateDescriptionAsUserResource
Given a state’s Integer value or display name 
(as configured in the properties file of the 
relevant states component, for example, 
OrderStates.properties
or 
CommerceItemStates.properties
), this 
method returns the state’s description that 
is defined in the resource file that is 
appropriate for the current locale. 
Note: Used for internationalization, as 
described below. 
The methods in the preceding table are called by several methods in the implementation classes of the 
order objects. Consequently, to retrieve the Integer value for the state of an order object, you can simply 
call the 
getState
method of that order object. For example, call 
OrderImpl.getState
to retrieve the 
corresponding Integer value for the state of the 
Order
from 
OrderStates.properties
. Similarly, call 
CommerceItemImpl.getState
to retrieve the corresponding Integer value for the state of the 
CommerceItem
from 
CommerceItemStates.properties
Additionally, if your commerce site isn’t internationalized, use the following order object methods to 
retrieve the display name or description, respectively, for the state of the order object. Like the 
getState
method, these methods retrieve a value specified in the properties file of the relevant states component: 
getStateAsString
For example, call 
OrderImpl.getStateAsString
to retrieve the display name for the 
state of the 
Order
object from 
OrderStates.properties
. Similarly, call 
CommerceItemImpl.getStateAsString
to retrieve the display name for the state of 
the 
CommerceItem
from 
CommerceItemStates.properties
getStateDetail
For example, call 
OrderImpl.getStateDetail
to retrieve the description for the 
state of the 
Order
object from 
OrderStates.properties
. Similarly, call 
CommerceItemImpl.getStateDetail
to retrieve the description for the state of the 
CommerceItem
from 
CommerceItemStates.properties
If your commerce site is internationalized, and you, therefore, need to provide one or more translations of 
the display names and descriptions for the states of the ATG Commerce order objects, then you should 
specify those values in 
ResourceBundle.properties
files that are placed in the CLASSPATH. By default, 
Documents you may be interested
Documents you may be interested