c# wpf document viewer pdf : Extract pdf pages reader Library application class asp.net windows html ajax ATGCommProgGuide28-part2105

ATG  C om mer ce P ro g ramm in g   Gui d e 
26 3  
15  -  W o rki n g  W i t h  P u rch ase  P ro ces s  O bje cts  
μ
defaultShippingGroupType 
This property defines the default 
ShippingGroup
type. In the example below, the default type is defined 
as the string 
hardgoodShippingGroup
, which in turn maps to a class in the 
shippingTypeClassMap
property. The following code defines the default value: 
defaultShippingGroupType=hardgoodShippingGroup 
defaultShippingGroupAddressType 
This property defines the default 
ShippingGroupAddressType
defaultShippingGroupAddressType=RepositoryContactinfo 
To customize your address information, subclass 
RepositoryContactInfo
and use your new class name 
for the 
defaultShippingGroupAddressType
paymentTypeClassMap 
This property defines the type-to-class name mapping for 
PaymentGroup
objects. You can have more 
than one type of 
PaymentGroup
object. When creating a new 
PaymentGroup
, a string is passed as a 
parameter to the create method. (For example, the string 
creditCard
could be passed.) This constructs 
an instance of a 
PaymentGroup
class that is mapped to that string. 
Below is a sample of how a mapping is defined in the properties file. The following code defines the 
default values: 
paymentTypeClassMap=\ 
default=atg.commerce.order.PaymentGroupImpl,\ 
creditCard=atg.commerce.order.CreditCard,\ 
giftCertificate=atg.commerce.order.GiftCertificate,\ 
storeCredit=atg.commerce.order.StoreCredit 
defaultPaymentGroupType 
This property defines the default 
PaymentGroup
type. In the example below, the default type is defined 
as the string 
creditCard
, which in turn maps to a class in the 
paymentTypeClassMap
property. The 
following code defines the default value: 
defaultPaymentGroupType=creditCard 
defaultPaymentGroupAddressType 
This property defines the default 
PaymentGroupAddressType
Extract pdf pages reader - Library application class: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
Extract pdf pages reader - Library application class: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 
26 4  
15  -  W o rki n g  W i t h  P u rch ase  P ro cess   O bject s  
defaultPaymentGroupAddressType=RepositoryContactinfo 
To customize your address information, subclass 
RepositoryContactInfo
and use your new class name 
for the 
defaultPaymentGroupAddressType
relationshipTypeClassMap 
This property defines the type-to-class name mapping for 
Relationship
objects. You can have more 
than one type of 
Relationship
object. Relationships are not created directly by a user. Relationships are 
created by methods based on the type of relationship that the method needs. 
The 
relationshipTypeClassMap
property maps a name to a class. It is used to configure the class type 
that will be instantiated when a request to construct a relationship is made. By overriding the default 
values, you can customize the environment to use a 
Relationship
class you have subclassed. 
The example below demonstrates how a mapping is defined in the properties file. This mapping does not 
need to be modified unless the system is extended. The following code defines the default values: 
relationshipTypeClassMap =\ 
shippingGroupCommerceItem=atg.commerce.order. 
ShippingGroupCommerceItemRelationship,\ 
paymentGroupCommerceItem=atg.commerce.order. 
PaymentGroupCommerceItemRelationship,\ 
paymentGroupShippingGroup=atg.commerce.order. 
PaymentGroupShippingGroupRelationship,\ 
paymentGroupOrder=atg.commerce.order. 
PaymentGroupOrderRelationship 
beanNameToItemDescriptorMap 
This property maps a bean name to an 
OrderRepository
item descriptor name. When saving an Order, 
the processors look for an 
OrderRepository
item descriptor with the same name as the bean class. The 
beanNameToItemDescriptorMap
property contains this mapping. 
All objects that can be mapped to an item descriptor are listed in the 
beanNameToItemDescriptorMap
The format is bean name
=
repository item descriptor. The example below demonstrates how a mapping is 
defined in the properties file. The following code defines the default values: 
beanNameToItemDescriptorMap=\ 
atg.commerce.order.OrderImpl=order,\ 
atg.commerce.order.CommerceItemImpl=CommerceItem,\ 
atg.commerce.order.ShippingGroupImpl=shippingGroup,\ 
atg.commerce.order.HardgoodShippingGroup=hardgoodShippingGroup,\ 
atg.commerce.order.PaymentGroupImpl=paymentGroup,\ 
atg.commerce.order.CreditCard=creditCard,\ 
atg.commerce.order.GiftCertificate=giftCertificate,\ 
Library application class:C# PDF Page Insert Library: insert pages into PDF file in C#.net
Page: Insert PDF Pages. |. Home ›› XDoc.PDF ›› C# PDF: Insert PDF Page. Add and Insert Multiple PDF Pages to PDF Document Using C#.
www.rasteredge.com
Library application class:C# PDF Text Extract Library: extract text content from PDF file in
inputFilePath); PDFTextMgr textMgr = PDFTextHandler.ExportPDFTextManager(doc); // Extract text content C# example code for text extraction from all PDF pages.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
26 5  
15  -  W o rki n g  W i t h  P u rch ase  P ro ces s  O bje cts  
atg.commerce.order.ShippingGroupCommerceItemRelationship=shipItemRel,\ 
atg.commerce.order.PaymentGroupCommerceItemRelationship=payItemRel,\ 
atg.commerce.order.PaymentGroupShippingGroupRelationship=payShipRel,\ 
atg.commerce.order.PaymentGroupOrderRelationship=payOrderRel,\ 
atg.payment.PaymentStatus=paymentStatus,\ 
atg.commerce.pricing.OrderPriceInfo=orderPriceInfo,\ 
atg.commerce.pricing.ItemPriceInfo=itemPriceInfo,\ 
atg.commerce.pricing.TaxPriceInfo=taxPriceInfo,\ 
atg.commerce.pricing.ShippingPriceInfo=shippingPriceInfo,\ 
atg.commerce.pricing.DetailedItemPriceInfo=detailedItemPriceInfo,\ 
atg.commerce.pricing.PricingAdjustment=pricingAdjustment 
Pipelines 
A pipeline is an execution mechanism that allows for modular code execution. ATG Commerce uses 
pipelines to execute tasks such as loading, saving, and checking out 
Orders
. The 
PipelineManager
implements the pipeline execution mechanism. 
The commerce pipeline is defined in an XML file, which can be found at 
<ATG10dir>/B2CCommerce/config/atg/commerce/commercepipeline.xml
for ATG Consumer 
Commerce and at 
<ATG10dir>/B2BCommerce/config/atg/commerce/commercepipeline.xml
for 
ATG Business Commerce. To execute a pipeline through JSPs, define a handle method in a form handler 
class that calls the 
PipelineManager
In the Nucleus hierarchy, the 
PipelineManager
is located at 
/atg/commerce/PipelineManager
. When 
you deploy an application that includes ATG Commerce, a new instance is created and the commerce 
pipeline configuration is loaded. The commerce pipeline configuration file contains the definition for the 
processOrder
chain. To insert a new link, add a new element to the XML file that references the new 
pipeline processor. The new functionality is inserted into the execution chain without affecting the 
existing code. 
A pipeline should generally be executed from an 
OrderManager
method. This is the case for the 
loadOrder()
updateOrder()
, and 
processOrder()
methods. 
For more information, see Appendix G: Commerce Pipeline Chains
Order Repository 
The Order repository is the layer between ATG Commerce and the database server. The repository is 
where 
Orders
are saved after processing and stored in between customers’ visits. It is implemented using 
a SQL repository. 
The Order repository definition file defines the item descriptors for all commerce classes; for every class 
that is saved, there exists a corresponding item descriptor. Each item descriptor defines a repository item 
type that describes all the properties that are common to the repository items of that type. Additionally, 
each item descriptor subtype inherits all of the properties of its parent item descriptor. For example, the 
hardgoodShippingGroup
item descriptor extends the 
shippingGroup
item descriptor, so it inherits all 
of the properties of the 
shippingGroup
item descriptor. 
Library application class:C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Image: Extract Image from PDF. |. Home ›› XDoc.PDF ›› C# PDF: Extract PDF Image. How to C#: Extract Image from PDF Document.
www.rasteredge.com
Library application class:VB.NET PDF Text Extract Library: extract text content from PDF
PDF ›› VB.NET PDF: Extract PDF Text. VB.NET PDF - Extract Text from PDF Using VB. How to Extract Text from PDF with VB.NET Sample Codes in .NET Application.
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
26 6  
15  -  W o rki n g  W i t h  P u rch ase  P ro cess   O bject s  
The base Order repository definition file is located at 
<ATG10dir>/DCS/config/atg/commerce/order/orderrepository.xml
. In ATG Consumer 
Commerce, this base file is combined with an additional definition file that is located at 
<ATG10dir>/B2CCommerce/config/atg/commerce/order/orderrepository.xml
. In ATG Business 
Commerce, this base file is combined with an additional definition file that is located at 
<ATG10dir>/B2BCommerce/config/atg/commerce/order/orderrepository.xml
The 
beanNameToItemDescriptorMap
property of the 
OrderTools
component maps the Order 
repository item descriptors to bean names (see the beanNameToItemDescriptorMap section in this 
chapter for details). In ATG Commerce, the processors that save and load an 
Order
look for an item 
descriptor that is mapped to the corresponding commerce object class; the 
beanNameToItemDescriptorMap
property contains this mapping. 
For more information about the 
OrderTools
component, see the OrderTools section of this chapter. For 
information about saving and loading orders, see the Configuring Purchase Process Services chapter. For 
more information on SQL repositories, see the ATG Repository Guide
Creating Commerce Objects 
The ATG Commerce manager classes contain methods for creating commerce objects and adding them 
to and removing them from an 
Order
. This section describes how to use the manager classes to create 
commerce objects. It includes the following subsections: 
Creating an Order 
Using Orders in a Multisite Environment 
Creating Multiple Orders 
Creating Commerce Items, Shipping Groups, and Payment Groups 
Adding an Item to an Order via a URL 
Preventing Commerce Items from Being Added to Types of Shipping Groups 
Removing Commerce Objects from an Order 
Using the SimpleOrderManager 
Creating an Order 
The first step in working with Commerce objects is to create an 
Order
. A shopping cart is an 
implementation of the 
Order
interface. To create an 
Order
, you must have a reference to an 
OrderManager
or 
SimpleOrderManager
. Once you have the reference, use 
createOrder()
to create 
the new 
Order
There are many versions of the 
createOrder
method, each of which takes a different set of parameters: 
createOrder(String pProfileId)
createOrder(String pProfileId, String pOrderType)
Library application class:VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Page: Delete Existing PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Delete PDF Page. How to VB.NET: Delete Consecutive Pages from PDF.
www.rasteredge.com
Library application class:VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Image: Extract Image from PDF. |. Home ›› XDoc.PDF ›› VB.NET PDF: Extract PDF Image. VB.NET PDF - Extract Image from PDF Document in VB.NET.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
26 7  
15  -  W o rki n g  W i t h  P u rch ase  P ro ces s  O bje cts  
createOrder(String pProfileId, String pOrderId, String pOrderType)
createOrder(String pProfileId, OrderPriceInfo pOrderPriceInfo, 
TaxPriceInfo pTaxPriceInfo, ShippingPriceInfo pShippingPriceInfo)
createOrder(String pProfileId, OrderPriceInfo pOrderPriceInfo, 
TaxPriceInfo pTaxPriceInfo, ShippingPriceInfo pShippingPriceInfo, 
String pOrderType)
createOrder(String pProfileId, String pOrderId, OrderPriceInfo 
pOrderPriceInfo, TaxPriceInfo pTaxPriceInfo, ShippingPriceInfo 
pShippingPriceInfo, String pOrderType)
All methods create an 
Order
object and assign it a unique ID. The type of 
Order
created depends on the 
method used. If the method takes an 
orderType
parameter, that parameter determines the type of 
object that is constructed. Otherwise, the 
defaultOrderType
property of the 
OrderTools
component 
(see OrderTools in this chapter) defines the 
Order
type. 
By default, an 
Order
contains one empty 
ShippingGroup
and one empty 
PaymentGroup
when it is 
created, and their types are determined by the 
defaultShippingGroupType
and 
defaultPaymentGroupType
properties of the 
OrderTools
component. 
Note: If you do not want to create an empty 
ShippingGroup
and an empty 
PaymentGroup
for every new 
Order
, set the 
createDefaultShippingGroup
and 
createDefaultPaymentGroup
properties in the 
OrderTools
component to false. 
The following example demonstrates how to create an 
Order
// Get a reference to the OrderManager 
OrderManager orderManager = (OrderManager) 
request.resolveName("/atg/commerce/order/OrderManager"); 
// Create the Order 
Order order = orderManager.createOrder(profileId); 
By default, orders are persistent. To disable persistence, set the 
persistOrders
property in the 
ShoppingCart
component to 
false
. The 
ShoppingCart
component is located in Nucleus at 
/atg/commerce/
Using Orders in a Multisite Environment 
If you are using ATG’s multisite feature, you may want to provide users with the ability to place items from 
multiple sites in a single order. You do not need to do any additional configuration to use this feature; the 
ShoppingCart
is registered as a shareable component by default and works the same way in a multisite 
environment as in a single site. 
To register the 
ShoppingCart
as a shareable component, it is added by default to the 
NucleusComponentShareableType
component: 
shareableTypes+=/atg/multisite/ShoppingCartShareableType 
Library application class:C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Page: Delete Existing PDF Pages. Provide C# Users with Mature .NET PDF Document Manipulating Library for Deleting PDF Pages in C#.
www.rasteredge.com
Library application class:VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Page: Insert PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Insert PDF Page. Add and Insert Multiple PDF Pages to PDF Document Using VB.
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
26 8  
15  -  W o rki n g  W i t h  P u rch ase  P ro cess   O bject s  
The shareable component that refers to the 
ShoppingCart
can be configured in the following properties 
file: 
/atg/commerce/ShoppingCartShareableType.properties 
See the ATG Multisite Administration Guide for information on shareable components and how to use 
sharing groups in your multisite configuration. 
Creating Multiple Orders 
Customers can have an unlimited number of orders at one time. They can place items in different 
shopping carts, switch between carts, retrieve a list of saved carts, delete carts, and can check out one 
cart’s contents while waiting until later to check out the contents of others. 
Using multiple orders requires 
atg.commerce.order.OrderHolder
in addition to 
atg.commerce.order.Order
. This class maintains the current 
Order
object as well as a collection of 
saved 
Order
objects. The component that utilizes 
OrderHolder
is 
/atg/commerce/ShoppingCart
, a 
session-scoped component whose handleXXX methods add, delete, and switch between carts, as 
explained in the rest of this section. 
You implement multiple shopping carts using the 
handleCreate
method of the 
OrderHolder
class. This 
method creates a new 
Order
and sets it as the 
currentOrder
in the 
OrderHolder
. Any previously 
existing 
Order
object is placed into the collection of saved carts. Refer to the following JSP example: 
<dsp:form action="ShoppingCart.jsp" method="post"> 
<dsp:input bean="ShoppingCart.create" value="Create" type="submit"/> another 
shopping cart.<BR> 
</dsp:form> 
The 
handleSwitch()
method allows customers to switch between shopping carts. It switches the 
current 
Order
object out to the saved collection of orders and sets the current 
Order
to the 
Order
identified by the 
handlerOrderId
property. If a customer has several shopping carts saved, you can 
allow them to switch between any of the 
Order
objects using the following JSP code: 
<dsp:form action="ShoppingCart.jsp" method="post"> 
<dsp:select bean="ShoppingCart.handlerOrderId"> 
<dsp:droplet name="ForEach"> 
<dsp:param bean="ShoppingCart.saved" name="array"/> 
<dsp:param value="SavedOrder" name="elementName"/> 
<dsp:oparam name="output"> 
<dsp:getvalueof id="option12" param="SavedOrder.id" idtype="java.lang.String"> 
<dsp:option value="<%=option12%>"/> 
</dsp:getvalueof> 
<valueofparam="SavedOrder.id"></dsp:valueof> 
</dsp:oparam> 
</dsp:droplet> 
</dsp:select> 
ATG  C om mer ce P ro g ramm in g   Gui d e 
26 9  
15  -  W o rki n g  W i t h  P u rch ase  P ro ces s  O bje cts  
<dsp:input bean="ShoppingCart.switch" value="Switch" type="submit"/> 
</dsp:form> 
The example iterates through the list of saved shopping carts, displays the shopping carts to the 
customer, and gives the customer the option to select one of the saved carts. The 
handlerOrderId
property would be set to the selected 
Order
ID, and the corresponding 
Order
would be set as the current 
Order
The 
handleDelete()
and 
handleDeleteAll()
methods remove a single 
Order
or all orders (both 
current and saved), respectively. 
Creating Commerce Items, Shipping Groups, and Payment Groups 
After an 
Order
has been created, the next step is to add 
CommerceItems
and possibly additional 
ShippingGroups
and 
PaymentGroups
. Creating these objects follows the same pattern as creating 
Orders
. First, call 
create
ObjectType
()
in the appropriate manager class, for example, 
CommerceItemManager.createCommerceItem()
. The call returns the type of class specified by the 
objectType
parameter, or the default type when the method used does not accept that parameter. 
After creating the objects, use the following methods to add them to the 
Order
CommerceItemManager.addItemToOrder()
ShippingGroupManager.addShippingGroupToOrder()
PaymentGroupManager.addPaymentGroupToOrder()
These methods take an 
Order
and their respective object type as parameters. For 
PaymentGroups
, the 
order in which they are added to the 
Order
determines their precedence. 
For more information on creating these commerce objects and adding them to an order, refer to the 
following subsections: 
Creating a Standard Commerce Item 
Creating a Configurable Commerce Item 
Creating a Shipping Group 
Creating a Payment Group 
Creating a Standard Commerce Item 
Follow these steps to create a new 
CommerceItem
and associate it with an 
Order
1.
Call 
CommerceItemManager.createCommerceItem()
2.
Make any changes to the 
CommerceItem
, such as setting the quantity. 
3.
Call 
CommerceItemManager.addItemToOrder(pOrder, pCommerceItem)
to add 
the 
CommerceItem
to the 
Order
Refer to the following example: 
ATG  C om merce  P ro gra mm in g  G ui d e 
27 0  
15  -  W o rki n g  W i t h  P u rch ase  P ro cess   O bject s  
// Get a reference to the OrderManager 
OrderManager orderManager = (OrderManager) 
request.resolveName("/atg/commerce/order/OrderManager"); 
// Create the CommerceItem 
CommerceItem commerceItem = 
commerceItemManager.createCommerceItem(pCatalogRefId); 
commerceItem.setQuantity(3); 
// Add the CommerceItem to the Order 
commereceItemManager.addItemToOrder(pOrder, commerceItem); 
Note: 
createCommerceItem()
will work even if you pass it a nonexistent catalog reference ID. This 
allows you to use ATG Commerce as an ordering system with multiple catalogs, some of which may not 
have repositories. If you want to prevent this behavior, you must institute a check. 
CommerceItem
objects can include an auxiliary data construct. This structure allows you to store arbitrary 
data with a 
CommerceItem
. Examples of auxiliary data could include size and color options for a 
CommerceItem
. If your system includes remote components, auxiliary data can be serialized at any time; 
however, when defining 
AuxiliaryData
objects, the classes must be defined as serializable. 
By default, the class includes 
ProductID
ProductRef
PropertyValue
, and 
CatalogRef
properties. 
Creating Commerce Items in a Multisite Environment 
If you are using ATG Commerce in a multisite-enabled installation, some additional methods and tools for 
manipulating Commerce items may be useful. 
Follow these steps to create a new 
CommerceItem
and associate it with an 
Order
in a multisite setting: 
1.
Call 
CommerceItemManager.createCommerceItem(…, …, pSiteId)
The 
createCommerceItem()
method is overloaded in the ATG API. One version is 
intended for use with ATG’s multisite feature, and includes a 
pSiteId
parameter. If 
the 
siteId
is null but multisite is in use, the method retrieves the ID from 
SiteContextManager.getCurrentSiteId
2.
Make any changes to the 
CommerceItem
, such as setting the quantity. 
3.
Call 
CommerceItemManager.addItemToOrder(pOrder, pCommerceItem)
to add 
the 
CommerceItem
to the 
Order
In a multisite setting, the 
addItemToOrder()
method and the related 
addAsSeparateItemToOrder()
method use the 
validateSiteCompatibility()
method to ensure that the item can be added to the order. If the item’s 
siteId
is not 
null, that 
siteId
is added to the order’s 
siteId
. If the order’s 
creationSiteId
is 
null, the item’s 
siteId
is copied there as well. 
The 
validateSiteCompatibility()
check is also used when creating configurable 
Commerce items (see Creating a Configurable Commerce Item ). 
Refer to the following example: 
ATG  C om mer ce P ro g ramm in g   Gui d e 
27 1  
15  -  W o rki n g  W i t h  P u rch ase  P ro ces s  O bje cts  
// Get a reference to the OrderManager 
OrderManager orderManager = (OrderManager) 
request.resolveName("/atg/commerce/order/OrderManager"); 
// Create the CommerceItem 
CommerceItem commerceItem = 
commerceItemManager.createCommerceItem(pCatalogRefId); 
commerceItem.setQuantity(3); 
// Add the CommerceItem to the Order 
commereceItemManager.addItemToOrder(pOrder, commerceItem); 
Auxiliary data holds the 
siteId
property in a multisite-enabled ATG configuration; you can access this 
property at 
item.auxiliaryData.siteId
Creating a Configurable Commerce Item 
Configurable commerce items are items with other items as optional components, and are described in 
the Using and Extending the Product Catalog chapter of this manual. 
Follow these steps to create a 
ConfigurableCommerceItem
and associate it with an 
Order
1.
Call 
CommerceItemManager.createCommerceItem()
to create the base commerce 
item. 
2.
Call 
CommerceItemManager.addSubItemToConfigurableItem()
or 
addAsSeparateSubItemToConfigurableItem()
to add options to the base item. 
Note: If you are using ATG Commerce’s multisite feature, these methods check to 
ensure that the item can be added to the customer’s cart (if more than one site is 
involved, the sites must share their shopping cart). See Creating Commerce Items in a 
Multisite Environment for details. 
The example below illustrates how to programmatically create a 
ConfigurableCommerceItem
with 
subSKU items and then add it to an 
Order
ConfigurableCommerceItem configurableItem = (ConfigurableCommerceItem) 
getCommerceItemManager().createCommerceItem("configurableCommerceItem", 
"sku10001", null, "prod10001", null, 1, null, null, new ItemPriceInfo()); 
SubSkuCommerceItem subskuItem = (SubSkuCommerceItem) 
getCommerceItemManager().createCommerceItem("subSkuCommerceItem", 
"sku20001", null, "prod20001", null, 1, null, null, new ItemPriceInfo()); 
getCommerceItemManager().addSubItemToConfigurableItem(configurableItem, 
subskuItem); 
subskuItem = (SubSkuCommerceItem) 
getCommerceItemManager().createCommerceItem("subSkuCommerceItem", 
"sku20002", null, "prod20002", null, 1, null, null, new ItemPriceInfo()); 
getCommerceItemManager().addSubItemToConfigurableItem(configurableItem, 
ATG  C om merce  P ro gra mm in g  G ui d e 
27 2  
15  -  W o rki n g  W i t h  P u rch ase  P ro cess   O bject s  
subskuItem); 
getCommerceItemManager().addItemToOrder(order, configurableItem); 
Creating a Shipping Group 
ShippingGroup
contains information on the shipping address and delivery method for a group of 
commerce items. By default, a new 
Order
has one default 
ShippingGroup
. As items are added to the 
Order
, these items automatically become part of the default 
ShippingGroup
. Once a second 
ShippingGroup
is added to the 
Order
, all the items in the 
Order
are removed from the default 
ShippingGroup
and must be explicitly added to one of two shipping groups. Relationships must now be 
created to associate the items with shipping groups. (For more information, see Assigning Items to 
Shipping Groups.) 
Follow these steps to create a new 
ShippingGroup
and add it to an 
Order
1.
Call 
ShippingGroupManager.createShippingGroup()
2.
Make any changes to the 
ShippingGroup,
such as setting the address. 
3.
Call 
ShippingGroupManager.addShippingGroupToOrder(pOrder, 
pShippingGroup)
to add the 
ShippingGroup
to the 
Order
Refer to the following example: 
// Get a reference to the OrderManager 
OrderManager orderManager = (OrderManager) 
request.resolveName("/atg/commerce/order/OrderManager"); 
// Create the ShippingGroup 
ShippingGroup shippingGroup = shippingGroupManager.createShippingGroup(); 
// Add the ShippingGroup to the Order 
shippingGroup.addShippingGroupToOrder(pOrder, shippingGroup); 
When setting the shipping and billing addresses, normally you pass a 
RepositoryContactInfo
object 
to 
setShippingAddress()
or 
setBillingAddress()
. If you want to use a 
ContactInfo
object 
instead, but do not want to subclass 
RepositoryContactInfo
(see defaultShippingGroupAddressType 
in the Order Tools section), you must modify some Nucleus components. List the properties of your 
address object in the 
savedProperties
property of 
/atg/commerce/order/processor/SaveShippingGroupObjects
and the 
loadProperties
property 
of 
atg/commerce/order/processor/LoadShippingGroupObjects
Creating Multiple Shipping Groups 
Multiple shipping groups (which implement 
Multishipment
) on a commerce site permit a customer to 
ship parts of an order to different addresses using different methods of delivery. 
For example, suppose a customer enters the checkout process on a site that supports multiple shipping 
methods for a single order. The customer chooses to have the items shipped to different locations. The 
Documents you may be interested
Documents you may be interested