c# wpf document viewer pdf : Cut pdf pages application control utility azure html asp.net visual studio ATGCommProgGuide22-part1953

ATG  C om mer ce P ro g ramm in g   Gui d e 
20 3  
13  -   Und ers t an d i ng   P rom o ti o n s 
μ
brand in the rule rather than relying on an attribute of the brand that you might think 
is unique. 
Use caution when creating “infinite use” promotions, which a customer can use an 
infinite number of times during a specified time period. Be certain the 
beginUsable
and 
endUsable
dates are set correctly. 
PromotionFolder Repository Items 
Promotions can be stored in a promotions folder. The 
promotionFolder
repository item in the 
Promotions repository includes the following information, which is standard for many repository items: 
id
name
parentFolder
PromotionStatus Repository Items 
When a promotion is associated with a customer’s profile, it is wrapped inside a 
PromotionStatus
RepositoryItem
. This repository item tracks the number of times a customer can use an individual 
promotion. A 
PromotionStatus
RepositoryItem
is a repository item with an 
ItemDescriptor
that 
describes the status of the promotion. 
A customer’s profile has an 
activePromotions
property that contains a list of 
PromotionStatus
RepositoryItems.
Each 
PromotionStatus
item contains the following information: 
A reference to the underlying promotion that was created in the ACC Promotions 
editor. 
The number of times that a customer can use the promotion. 
The date on which the user was granted the promotion. 
During the pricing process, pricing engines inspect the customer’s profile to see which promotions 
should be considered when generating prices. 
Understanding PMDL Discount Rules 
This section describes the XML used for constructing discount rules that represent promotions in ATG 
Commerce. 
Cut pdf pages - software Library 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
Cut pdf pages - software Library 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 
20 4  
13  -  Un d ers t an d in g  P ro m ot i o ns  
PMDL XML Structure 
The PMDL that describes ATG Commerce promotions discount rules is relatively simple. The PMDL DTD is 
located in the DCS module at 
/atg/dtds/pmdl/pmdl1.0.dtd
. The DTD defines a number of iterators 
(such as 
next
and 
every
), quantifiers (used in “when” conditions), operators (such as 
and
and 
not
), and 
comparators (such as 
contains
and 
less-than
) you can use in creating your PMDL rules. 
Pricing-Model Element 
The root tag for the PMDL. 
Offer Element 
Every 
pricing-model
element requires one 
offer
element. The 
offer
includes one or more 
discount-structure
elements, which contain detailed information about the discount and its target. 
The 
offer
is evaluated by the 
evaluateTarget
method. 
You can include more than one 
discount-structure
element in an offer; this allows you to wrap 
multiple discounts in a single promotion (note that this is not supported in ATG Merchandising, but you 
can build a custom template with this functionality). 
If you have multiple discount structures within a single item promotion, you can specify the 
filter-
collection-name
attribute of the 
offer
; this ensures that once a given item has been marked to 
receive a discount, it cannot receive a discount from any other discount-structures. If 
filter-
collection-name
is not set, filtering does not take place, and a given commerce item can be the target 
for more than one discount. The 
filter-collection-name
should match the 
iterator
element’s 
collection-name
attribute, which is normally set to 
items
. Filtering is not required for single discount 
structures, or for non-item-based promotions. 
Qualifier Element 
Every 
pricing-model
element requires one 
qualifier
element. The element is the root tag for the 
condition part of the promotion. 
Target Element 
Your discount structure should not include a 
target
element if the promotion is for orders or shipping; 
only item discounts include 
target
as part of the 
discount-structure
. The 
target
specifies the rule 
for selecting the items to be discounted. 
Discount-Structure Element 
The 
discount-structure
element has the following attributes: 
calculator-type
—A calculator service configured in the pricing engine’s 
calculatorTypeCalculators
map. 
discount-type
—The calculators use this value to determine how to calculate an 
adjustment. Examples include 
percentOff
and 
fixedPrice
adjuster
—This optional attribute specifies the price adjustment to make for this 
discount. 
software Library cloud:VB.NET PDF copy, paste image library: copy, paste, cut PDF images
VB.NET PDF - Copy, Paste, Cut PDF Image in VB.NET. Copy, paste and cut PDF image while preview without adobe reader component installed.
www.rasteredge.com
software Library cloud:C# PDF copy, paste image Library: copy, paste, cut PDF images in
C#.NET PDF SDK - Copy, Paste, Cut PDF Image in C#.NET. C#.NET Demo Code: Cut Image in PDF Page in C#.NET. PDF image cutting is similar to image deleting.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
20 5  
13  -   Und ers t an d i ng   P rom o ti o n s 
discount-structure
element can also include 
discount-detail
elements. 
Discount-Detail Element 
This element is optional, and is used for complex discount types. For example, in a tiered discount, each 
band is represented by a 
discount-detail
element. In this case, a 
discount-detail
element would 
include one or more attribute elements that describe the band. For example, the XML representation of a 
band where buying 5 or more items gives the customer 10% off might look like the following: 
<attribute name="band" value="5"/> 
<attribute name="adjuster" value="10"/> 
Attribute Element 
The 
attribute
element allows you to add generic name/value pairs to parent tags, similar to the process 
used to extend an ATG repository. During PMDL parsing, the attributes and their values are placed in an 
attribute 
Map
Iterator Element 
Iterators are evaluation beans that sort a collection of items, then evaluate each item against one or more 
sub-expressions. It returns those items that match the sub-expressions. 
The 
iterator
element allows you to create custom iterators. Your new 
iterator
element must include 
name
attribute that is unique across the PMDL. 
An 
iterator
element can have the following attributes and sub-elements: 
name
attribute—Required 
sort-by
attribute—Required 
order
attribute—Required 
collection-name
—Required 
element-name
—Required 
element-quantity
-property—Optional 
Quantifier Element 
Quantifiers are evaluation beans that evaluate a collection of items against one or more sub-expressions. 
It returns 
true
or 
false
, depending on the quantity of items that match the sub-expressions. 
The 
quantifier
element allows you to create custom quantifiers. Your new 
quantifier
element must 
include a 
name
attribute that is unique across the PMDL. 
quantifier
element can have the following attributes and sub-elements: 
name
attribute—Required 
number
attribute—Optional 
collection-name
—Required 
software Library cloud: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
software Library cloud: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
ATG  C om merce  P ro gra mm in g  G ui d e 
20 6  
13  -  Un d ers t an d in g  P ro m ot i o ns  
element-name
—Required 
element-quantity-property
—Optional 
Operator Element 
Operators are evaluation beans that return 
true
or 
false
based on the Boolean results from their sub-
expressions. 
The 
operator
element allows you to create custom operators. Your new 
operator
element must include 
name
attribute that is unique across the PMDL. 
An 
operator
element can specify any number of 
attribute
sub-elements and operates on at least one 
comparator, operator or quantifier. 
Comparator Element 
Comparators are evaluation beans that return 
true
or 
false
depending on the values of their sub-
expressions. 
The 
comparator
element allows you to create custom comparators. Your new 
comparator
element 
must include a 
name
attribute that is unique across the PMDL. A 
comparator
element can specify any 
number of 
attribute
sub-elements and must specify at least one 
value
or array name. 
Comparators evaluate using one or more sub-expressions. For example: 
<comparator name="isoneof"> 
<value>item.auxiliaryData.productId</value> 
<constant> 
<data-type>java.lang.String</data-type> 
<string-value>xprod2147</string-value> 
<string-value>xprod2163</string-value> 
</constant> 
</comparator> 
Comparators can also compare two 
value
elements, and custom comparators could include any number 
of 
value
or 
constant
elements. 
Value and String-Value Elements 
The 
value
element returns the value of a property of the commerce item being evaluated. For example: 
<value>item.auxiliaryData.productId</value> 
To represent strings, use a 
string-value
element. For example: 
<string-value>ManufacturerA</string-value> 
To represent a comma-separated list of strings, use multiple 
string-value
elements. For example, to 
represent “ManufacturerA, ManufacturerB” use the following: 
software Library cloud: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
software Library cloud: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
ATG  C om mer ce P ro g ramm in g   Gui d e 
20 7  
13  -   Und ers t an d i ng   P rom o ti o n s 
<string-value>ManufacturerA</string-value> 
<string-value>ManufacturerB</string-value> 
Constant Element 
The constant element returns a constant value against which other values can be compared. For example: 
<constant> 
<data-type>java.lang.String</data-type> 
<string-value>xprod2147</string-value> 
</constant> 
PMDL Example: Bulk Discount 
The example that follows shows these structures in operation. Note that in the normal course of events 
you should not have to work directly with the PMDL unless creating new promotions templates (see 
Adding New Promotions Templates). Occasionally, however, a user creates a promotion in which the 
PMDL is invalid; in this case, the promotion cannot be edited in ATG Merchandising or in the ACC, but 
must be manually corrected or discarded. 
This rule describes a promotion in which a customer buys up to five of a particular product (xprod2104) to 
receive $5 off. The customer can buy six of the same item and receive $10 off. 
<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE pricing-model SYSTEM dynamosystemresource:/atg/dtds/pmdl/pmdl_1.0.dtd"> 
<pricing-model> 
<qualifier/> 
<offer> 
<discount-structure calculator-type="bulk" 
discount-type="amountOff"> 
<discount-detail> 
<attribute name="band" value="1"/> 
<attribute name="adjuster" value="5"/> 
</discount-detail> 
<discount-detail> 
<attribute name="band" value="6"/> 
<attribute name="adjuster" value="10"/> 
</discount-detail> 
<target> 
<iterator name="up-to-and-including" number="1" 
sort-by="priceInfo.listPrice" sort-order="ascending"> 
<collection-name>items</collection-name> 
<element-name>item</element-name> 
<element-quantity-property>quantity 
</element-quantity-property> 
<comparator name="equals"> 
<value>item.auxiliaryData.productId</value> 
software Library cloud:How to C#: Basic SDK Concept of XDoc.PDF for .NET
example, you may easily create, load, combine, and split PDF file(s), and add, create, insert, delete, re-order, copy, paste, cut, rotate, and save PDF page(s
www.rasteredge.com
software Library cloud:VB.NET PDF: Basic SDK Concept of XDoc.PDF
example, you may easily create, load, combine, and split PDF file(s), and add, create, insert, delete, re-order, copy, paste, cut, rotate, and save PDF page(s
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
20 8  
13  -  Un d ers t an d in g  P ro m ot i o ns  
<constant> 
<data-type>java.lang.String</data-type> 
<string-value>xprod2104</string-value> 
</constant> 
</comparator> 
</iterator> 
</target> 
</discount-structure> 
</offer> 
</pricing-model> 
Examples of PMDL Rules 
The tables in this section demonstrate how to represent some standard promotions using PMDL rules in 
the discount rule editor. 
For more examples of PMDL Rules, see the Creating and Maintaining Promotions chapter of the ATG 
Commerce Guide to Setting Up a Store
Item Pricing Model Examples 
The following table describes how to set up item pricing models using PMDL rules: 
Percentage off price: 
Get Y for 25% off. 
The “25% off” part of this rule is contained at the 
PricingModel
level. You can create an “Item Discount - 
percent off” promotion, then set its adjuster to 25. 
The 
PMDLRule
describes Y. For example, if Y is something 
blue, the following is one possible PMDL representation: 
“always discount every item whose SKU’s color is blue” 
This rule is written for items that register their color in the 
“color” property of their SKU. 
Dollar amount off price: 
Get Y for $10 off 
The “$10 off” part of this rule is contained at the 
PricingModel
level. You create an “Item Discount - 
amount off” promotion, then set its adjuster to 10. The 
PMDLRule
describes Y. For example, if Y is something red, 
the following is one possible PMDL representation: 
“always discount every item whose SKU’s color is red” 
This rule is written for items that register their color in the 
“color” property of their SKU. 
ATG  C om mer ce P ro g ramm in g   Gui d e 
20 9  
13  -   Und ers t an d i ng   P rom o ti o n s 
Fixed pricing: 
Get Y for $0.25 
The “$.25” part of this rule is contained at the 
PricingModel
level You create an “Item Discount - fixed 
price” promotion, then set its adjuster to .25. The 
PMDLRule
describes Y. For example, if Y is something 
green, the following is one possible PMDL representation: 
“always discount every item whose SKU’s color is green” 
This rule is written for items that register their color in the 
“color” property of their SKU. 
Note: You can create a rule that gives a discount to a product that is in a specific category. For example, 
you could create a rule that gives a 10% discount to all products that are part of the shoe category. This 
rule gives a discount to a “
CommerceItem
whose 
auxilliaryData.productRef.ancestorCategoryIds
contains 
categoryId
X
” where X is the shoe 
category. By default, the 
productRef
is a product item from the product catalog. To use a rule that 
discounts based on category, the 
productRef
needs to have its 
ancestorCategoryIds
populated. If 
this property is not populated, rules of this type always evaluate to 
false
. For more information on the 
product catalog, see the Using and Extending the Product Catalog chapter. 
Quantity Pricing Model Examples 
The quantity rules have one thing in common: they all depend on a set of items that match the 
description “X.” A number of X items are needed as a precondition for the rule being applied to any items. 
By default, the items that act to satisfy this precondition are not eligible to receive the discount. 
The following table describes how to set up quantity pricing models using PMDL rules: 
Buy one, get one free 
If the free item is “anything blue” then the rule is actually 
“buy one blue item, get one blue item free.” 
The “free” part of the discount is configured in the 
promotion itself. Create an Item Discount promotion. Set 
the adjuster to Zero. 
Next, create the following PMDL representation: 
“For next 1 items whose SKU color is blue, discount up to 1 
items whose SKU color is blue” 
The second half of this rule refers to “up to 1 item” means 
that only one blue item will be discounted for every blue 
item purchased. 
This rule is written for items that register their color in the 
“color” property of their SKU. 
ATG  C om merce  P ro gra mm in g  G ui d e 
21 0  
13  -  Un d ers t an d in g  P ro m ot i o ns  
Buy three, get one free 
This rule indicates that if a customer buys 3 items, they will 
receive one item free. If they buy 6 items, they will receive 2 
items free, etc. 
Create an Item Discount promotion. Set the adjuster to 
Zero. 
Create the following PMDL representation: 
“For next 3 items whose SKU color is blue, discount up to 1 
item whose SKU color is blue” 
Buy three or more, get one 
free 
This rule is a version of the “Buy 3, get 1 free” promotion 
that limits the promotion to one free item per order. For 
example, if you buy six items, you still just get one free 
item. 
Create an Item Discount promotion. Set the adjuster to 
Zero. 
Create the following PMDL representation: 
“When order contains at least 3 (product in category 
named clothing); Apply discount to up to 1 (product in 
category named clothing)” 
Buy 13 of X for the price of 
12 X’s 
This rule could be rewritten as “for every 12 Xs that you 
buy, get 1 X free,” or more simply “buy 12, get one free.” 
If X is “something blue,” Create a discount of type Item 
Discount and set its adjuster to zero. 
Next, create the following PMDL rule: 
“for next 12 items whose SKU’s color is blue, discount up to 
1 item whose SKU’s color is blue” 
Buy 2 of X, get the 3rd X for 
20% off [or $20 off] 
This example follows the same pattern as the above two 
examples, except that the applied discount is different. If X 
is something blue. Create an Item Discount promotion. Set 
the adjuster to 20. 
Next, create the following PMDL rule: 
“for next 2 items whose SKU’s color is blue, discount up to 1 
item whose SKU’s color is blue.” 
ATG  C om mer ce P ro g ramm in g   Gui d e 
21 1  
13  -   Und ers t an d i ng   P rom o ti o n s 
Tier pricing: Buy the first 5 at 
$10 each, buy the next 5 at 
$5 each 
This promotion can be created through a combination of 
two promotions. This is necessary because the promotion 
given is different based on the number of items bought. 
In the following example, the item being purchased is 
“something blue.” 
1) Create one Item Discount promotion and set its adjuster 
to 10. Next, create the following PMDL rule: 
“Always, discount up to 5 (sku whose color is blue). Order 
of Application: 1” 
2) Create another Item Discount promotion and set its 
adjuster to 5. 
Next, create the following PMDL rule: 
“Always, discount up to 5 (sku whose color is blue). Order 
of Application: 2” 
Shipping Pricing Model Examples 
The following table describes how to set up shipping pricing models using PMDL rules: 
Free shipping 
This promotion is written out in the form “under these 
conditions, give free shipping.” In the following example, the 
conditions are that there is at least one blue thing in the 
order. 
Create a promotion of type Shipping Discount. Set its adjuster 
to 0. 
Next, create the following PMDL rule: 
“when order contains at least 1 ( sku whose color is blue ), 
discount shipping group” 
ATG  C om merce  P ro gra mm in g  G ui d e 
21 2  
13  -  Un d ers t an d in g  P ro m ot i o ns  
Upgraded shipping: 
Upgrade from regular 7-day 
shipping to next day 
shipping for the price of 7-
day shipping. 
This promotion is represented by a “fixed price” promotion. In 
the following example, the conditions for this promotion 
taking effect are that the order contains at least one SKU that’s 
blue. 
Create a promotion of type Shipping Discount. Set the 
adjuster to the price of seven-day shipping. 
The rule ensures that you only discount next day air. 
Next, create the following PMDL rule: 
“when order contains at least 1 ( sku whose color is blue ) and 
Shipping Group’s 
shippingGroupType
is ‘Next Day’ discount 
shipping group” 
Order Pricing Model Examples 
The following table describes how to set up Order pricing models using PMDL rules: 
10% of the total price of the order 
This rule requires a condition under which the Y% 
should be taken off. In the following example, the 
condition is that the order contains a blue item. 
Create a new discount of type Order Discount. Set 
the adjuster to 10. Next, create the following PMDL 
rule: 
“when order contains at least 1 ( sku whose color is 
blue ), discount order total.” 
$10 off the total price of the order 
This rule requires a condition under which the Y% 
should be taken off. In the following example, the 
condition is that the order contains a blue item. 
Create a new discount of type Order Discount. 
Set the discount percentage to 10. Next, create the 
following PMDL rule: 
“when order contains at least 1 ( sku whose color is 
blue ), discount order total.” 
10% off orders of $100 or more 
This rule is an order discount based in the order’s 
priceInfo
property. Create a new discount of type 
Order Discount. 
“when Order’s 
priceInfo's
amount is greater than 
100, discount all items. 
Documents you may be interested
Documents you may be interested