ATG Commerce Programming Guide
.
Documentation Home
Feedback
Highlighting
Prev
Up
Next
Invoice Payment
Contents
Search
Introduction
Commerce Overview
Product Catalog
Purchasing and Fulfillment Services
Inventory Management
Pricing Services
Targeted Promotions
Merchandising Services
Finding What You Need
In This Guide
Configuring and Populating a Production Database
Configuring ATG Commerce with CIM
Creating Database Tables
Creating Tables for Core ATG Commerce
Creating Tables for ATG Consumer Commerce
Creating Tables for ATG Business Commerce
Using ATG Commerce with an Oracle Database
Configuring Storage Parameters
Configuring a Catalog for Oracle Full Text Searching
Using ATG Commerce with an MSSQL Database
Transferring Product Catalog and Price List Data Using Copy and Switch
Configuring a Database Copy
Performing a Database Copy
Configuring a Database Switch
Performing a Database Switch
Transferring Demo Data
Exporting the Demo Data from SOLID
Importing the Demo Data to Your Database
Destroying Database Tables for ATG Commerce
Destroying Tables for Core ATG Commerce
Destroying Tables for ATG Consumer Commerce
Destroying Tables for ATG Business Commerce
Using and Extending the Standard Catalog
Catalog Repository
Categories and Products
Category Properties
Product Properties
Defining a Root Category
Defining Relationships between Categories and Products
Specifying Template Pages for Categories and Products
Associating Products with SKUs
Extending the Repository for Internationalization
Extending the Category and Product Item Types
SKU Items and SKU Links
SKU Properties
SKU Link Properties
Using SKU Media Properties
Using SKU Price Properties
Using the SKU Fulfiller Property
Creating SKU Bundles
Extending the SKU Item Type
Configurable SKUs
Folders and Media Items
Folder Properties
Media Item Properties
Using Media-External Properties
Using Media-Internal Properties
Designing a Multi-Locale Product Catalog
Designing the Catalog Repository
Setting Up Multiple Product Catalogs
Setting Up a Single Product Catalog
Using Custom Catalogs
Using ATG Commerce with Custom Catalogs
Converting from Standard to Custom Catalogs
The Custom Catalog Repository
Defining Root Categories
Catalog Properties
Category Properties
categoryInfo Properties
Product Properties
productInfo Properties
SKU Properties
SKUInfo Properties
Custom Catalog Security
Custom Catalog Navigation
Looking Up Items in the Catalog
Using the parentCategory Property
Custom Catalog Searching
Overview of Custom Catalog Searching
Configuring the Custom Catalog’s Search Form Handler
Configuring Custom Catalog Search Types and Specifying Search Criteria
Combining Custom Catalog Search Types
Preconfigured Custom Catalog Search Components
Processing and Displaying Custom Catalog Search Results
Searching Custom Catalogs in Development Mode
Using Search Form Handler with Internationalized Catalogs
Assigning a Custom Catalog to a User
Using the Catalog Maintenance System
Batch Services
Dynamic Services
ATG Commerce Profile Extensions
Profile Repository Extensions
Promotions
Address Books
Credit Card Collection
Gift Lists and Wish List
Other Features
Profile Form Handler Extensions
Profile Tools and Property Manager Extension
Configuring Merchandising Services
Setting Up Gift Lists and Wish Lists
Gift List Form Handlers
Gift List Servlet Beans
Gift List Business Layer Classes
Gift List Repository
Purchase Process Extensions to Support Gift Lists
Extending Gift List Functionality
Disabling the Gift List Repository
Setting Up Product Comparison Lists
Understanding the Product Comparison System
Extending the Product Comparison System
Using TableInfo to Display a Product Comparison List
Setting Up Gift Certificates and Coupons
The Claimable Repository
The ClaimableTools Component
The ClaimableManager Component
Setting Up Gift Certificates
Setting Up Coupons
Using and Extending Pricing Services
Overview of Pricing Services
Common Terms in Pricing Services
How Pricing Services Generate Prices
Deciding Between Dynamic and Static Product Pricing
Public Pricing Interfaces and Classes
The Base Pricing Engine
Pricing Interfaces
Pricing Classes
Price Holding Classes
Pricing Engine Classes
Pricing Calculator Classes
Qualifier Class
QualifiedItem Class
PricingTools Class
Other Classes
The Pricing Servlet Beans
Default Pricing Engines
Default Item Pricing Engine
Default Order Pricing Engine
Default Tax Pricing Engine
Default Shipping Pricing Engine
Default Pricing Calculators
Default Item Discount Calculator
Default Item Discount Multiplier Calculator
Default Order Discount Calculator
Default Shipping Discount Calculator
Default Qualifier Service
Extending and Creating Pricing Engines
Extending a Pricing Engine
Replacing a Pricing Engine
Creating a New Pricing Engine
Extending and Creating Pricing Calculators
Adding a New Pricing Calculator
Extending Calculators
Extending the Qualifier Class
Adding a Helper Method for a New Calculator
Adding New Criteria to the Filter Methods
Replacing the Way a PMDL Rule Is Evaluated
Replacing the Way the Qualifier Determines the Result Set
Accessing FilteredCommerceItems
Creating Promotions
Types of Promotions
Using PMDL Rules
PromotionStatus Repository Items
Using the Discount Rule Editor to Create PMDL Rules
Examples of PMDL Rules
Performance Issues Related to Promotion Delivery
Using Price Lists
Overview of Setting Up Price Lists
Description of Volume Pricing
Setting up Price List Functionality in ATG Consumer Commerce
PriceListManager
Price List Calculators
Implementing Sale Prices using Price Lists
Calculating Prices with a Specific Price List
Using the CurrencyConversionFormatter to Convert Currency
Price List Security Policy
Converting a Product Catalog to Use Price Lists
Working With Purchase Process Objects
The Purchase Process Subsystems
Base Commerce Classes and Interfaces
Address Classes
Business Layer Classes
OrderTools
Pipelines
Order Repository
Creating Commerce Objects
Creating an Order
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
Using Relationship Objects
Relationship Types
Commerce Item Relationships
Relationship Priority
Assigning Items to Shipping Groups
Assigning Costs to Payment Groups
Assigning an Order’s Total Cost to Payment Groups
Assigning an Order’s Component Costs to Payment Groups
Setting Handling Instructions
HandlingInstruction Objects
Adding Handling Instructions to a Shipping Group
ATG Commerce States
Purchase Process Class Diagrams
Order Interfaces Diagrams
Order Classes Diagram
Order Containment Diagram
Configuring Purchase Process Services
Loading Orders
Refreshing Orders
Modifying Orders
Understanding the CartModifierFormHandler
Modifying the Current Order
Repricing Orders
Saving Orders
Updating an Order with the OrderManager
Canceling Orders
Checking Out Orders
Preparing a Simple Order for Checkout
Preparing a Complex Order for Checkout
Checking Out an Order
Processing Payment of Orders
Overview of the Payment Process
Extending the Payment Operations of a Payment Method
Extending the Payment Process to Support a New Payment Method
Extending Order Validation to Support New Payment Methods
Scheduling Recurring Orders
Understanding the scheduledOrder Repository Item
Submitting Scheduled Orders
Creating, Modifying, and Deleting Scheduled Orders
Setting Restrictions on Orders
Understanding the Order Restriction Classes
Implementing Order Restrictions
Tracking the Shopping Process
Shopping Process Stages
Working with Shopping Process Stages
Shopping Process Recorder
Turning Off Recording of Shopping Process Tracking
Troubleshooting Order Problems
Handling Returned Items
Working with ATG Commerce Form Handlers
Managing Transactions in the ATG Commerce Form Handlers
Extending the ATG Commerce Form Handlers
Customizing the Purchase Process Externals
Purchase Process Event Messages
Integrating with Purchase Process Services
Purchase Process Integration Points
Adding Credit Card Types to ATG Commerce
Extending the Purchase Process
Adding a Subclass with Primitive Data Type Properties
Adding a Subclass with Object Data Type Properties
Manipulating Extended Objects
Merging Orders
Processor Chains and the Pipeline Manager
Pipeline Manager Overview
Using the Pipeline Editor
Accessing the Pipeline Editor
Opening an Existing Pipeline Definition
Creating a New Pipeline Definition
Editing Existing Pipeline Definitions
Printing a Pipeline Definition
Activating Verbose Mode
Pipeline Debugging
Changing the Display Font of the Pipeline Editor
Reinitializing the Pipeline Manager
Running a Processor Chain
Creating a Processor Pipeline
Configuring a Pipeline Manager
Creating Processors
Pipeline Definition Files
Creating and Editing Processor Chains Programmatically
Extending the PipelineChain and PipelineResult Classes
Pipelines and Transactions
Processor Transaction Management
Spanning Transactions over a Chain Subset
Extending the Processor Pipeline Classes
Adding a Commerce Processor Using XML Combination
Executing Processor Chains from Processors within Other Chains
Commerce Processor Chains
updateOrder Pipeline Chain
loadOrder Pipeline Chain
refreshOrder Pipeline Chain
processOrder Pipeline Chain
validateForCheckout Pipeline Chain
validatePostApproval Pipeline Chain
validatePaymentGroupsPostApproval Pipeline Chain
validateNoApproval Pipeline Chain
recalcPaymentGroupAmounts Pipeline Chain
repriceOrder Pipeline Chain
moveToConfirmation Pipeline Chain
moveToPurchaseInfo Pipeline Chain
validateShippingInfo Pipeline Chain
sendScenarioEvent Pipeline Chain
Inventory Framework
Overview of the Inventory System
Using the Inventory System
Inventory System Methods
Inventory Classes
InventoryManager
InventoryException
MissingInventoryItemException
InventoryManager Implementations
AbstractInventoryManagerImpl
NoInventoryManager
RepositoryInventoryManager
CachingInventoryManager
LocalizingInventoryManager
Examples of Using the Inventory Manager
Allocating Items for an Order
Canceling or Removing an Item from an Order
Displaying an Item’s Availability to a Customer
Filling Partial Orders
Preventing Inventory Deadlocks
Handling Bundled SKUs in the Inventory
Inventory Repository
Inventory JMS Messages
Configuring the SQL Repository
Caching the Inventory
Inventory Repository Administration
Using the InventoryLookup Servlet Bean
Building a New InventoryManager
Configuring a New Inventory Manager
Configuring the Order Fulfillment Framework
Overview of Fulfillment Process
Running the Fulfillment Server
Order Fulfillment Classes
Fulfillment Pipelines
Descriptions and Diagrams of Fulfillment Pipelines
Using Locking in Fulfillment
Using the OrderFulfiller Interface
Using the Fulfiller
Notifying the HardgoodFulfiller of a Shipment
HardGoodFulfiller Examples
Creating a New Fulfiller
Configuring a New Fulfiller
Order Fulfillment Events
Fulfillment Server Fault Tolerance
Fulfillment Message Redelivery
Replacing the Default Fulfillment System
Integrating the Order Fulfillment Framework with an External Shipping System
Changing Payment Behavior in Fulfillment Server
Using Scenarios in the Fulfillment Process
Questions & Answers
Managing the Order Approval Process
Understanding the Order Approval Process
Modifying the Order Approval Process
Servlet Beans and Form Handlers for Approving Orders
ApprovalRequiredDroplet Servlet Bean
ApprovedDroplet Servlet Bean
ApprovalFormHandler
Pipeline Chains in the Order Approval Process
approveOrder
checkRequiresApproval
orderApproved
orderRejected
checkApprovalComplete
checkApprovalCompleteError
JMS Messages in the Order Approval Process
Using Abandoned Order Services
An Overview of Abandoned Orders
Abandonment States
Order Repository Extensions
Profile Repository Extensions
The AbandonedOrderLogRepository
Defining and Detecting Abandoned Orders
Defining Abandoned and Lost Orders
Detecting Abandoned and Lost Orders
Configuring AbandonedOrderService
Configuring AbandonedOrderTools
Scenario Events and Actions
Scenario Events
Scenario Actions
Tracking Abandoned Orders of Transient Users
AbandonedOrderEventListener
TransientOrderRecorder
Turning Off Transient Order Tracking
Customizations and Extensions
Defining Additional Types of Abandoned and Lost Orders
Modifying the Criteria Used to Identify Abandoned and Lost Orders
Generating Invoices
Overview
Invoices in Checkout
Invoice Payment
Enabling the InvoiceRequestProcessor
Using the Invoice Manager
Invoice Pipelines
The Invoice Repository
Invoice Repository Item
DeliveryInfo Repository Item
PaymentTerms Repository Item
Sending Invoice JMS Messages
Using Requisitions and Contracts
Requisitions
Contract Repository Items
Using Contracts
Preparing to Use Commerce Reporting
Setting Up Commerce Reporting Environments
Setting up the Asset Management Environment
Setting Up the Production Environment
Setting Up the Data Loading Environment
Configuring a Parent Catalog
Logging Data for Commerce Reporting
Site Visit Data Logging
Order Submit Data Logging
Commerce Search Data Logging
Product Catalog Data Logging
User Data Logging
Segment Data Logging
Data Logging Configuration
Initial Data Logging for Catalogs, Users, and Segments
JMS Message Information for Data Logging
Loading Data for Commerce Reporting
Data Loader Components
Data Warehouse Loader Repository
Handling Errors
Pipeline Drivers and Processors
Customizing Reporting Data
Adding an Attribute to a Dimension
Adding a New Dimension
ATG Commerce Web Services
Order Management Web Services
addCreditCardToOrder Web Service
addItemToOrder Web Service
addItemToShippingGroup Web Service
addShippingAddressToOrder Web Service
cancelOrder Web Service
createOrder Web Service
createOrderForUser Web Service
createOrderFromXML Web Service
getCurrentOrderId Web Service
getDefaultPaymentGroupId Web Service
getDefaultShippingGroupId Web Service
getOrderAsXML Web Service
getOrdersAsXML Web Service
getOrderStatus Web Service
moveItemBetweenShippingGroups Web Service
removeCreditCardFromOrder Web Service
removeItemFromOrder Web Service
removeItemQuantityFromShippingGroup Web Service
removePaymentGroupFromOrder Web Service
removeShippingGroupFromOrder Web Service
setItemQuantity Web Service
setOrderAmountToPaymentGroup Web Service
submitOrderWithReprice Web Service
Order Management Web Services Example
Pricing Web Services
calculateOrderPrice Web Service
calculateOrderPriceSummary Web Service
calculateItemPriceSummary Web Service
Pricing Web Services Example
Promotion Web Services
claimCoupon Web Service
getPromotionsAsXML Web Service
grantPromotion Web Service
revokePromotion Web Service
Promotion Web Services Example
Inventory Web Services
getInventory Web Service
getInventoryStatus Web Service
setStockLevels Web Service
setStockLevel Web Service
Inventory Web Services Example
Catalog Web Services
catalogItemViewed Web Service
getProductSkusXML Web Service
getProductXMLByDescription Web Service
getProductXMLById Web Service
getProductXMLByRQL Web Service
Catalog Web Services Example
Profile Web Services
getDefaultShippingAddress Web Service
getDefaultBillingAddress Web Service
getDefaultCreditCard Web Service
setDefaultBillingAddress Web Service
setDefaultCreditCard Web Service
setDefaultShippingAddress Web Service
Profile Web Services Example
Commerce Web Services Security
Using the Order Owner Security Policy
ATG Commerce and Session Backup
ATG Commerce Databases
Core ATG Commerce Functionality Tables
Product Catalog Tables
Commerce Users Tables
Claimable Tables
Shopping Cart Events Table
Inventory Tables
Order Tables
Promotion Tables
User Promotion Tables
Gift List Tables
Price List Tables
Custom Catalog Tables
Abandoned Order Services Tables
Order Markers Table
ATG Business Commerce Tables
ATG Business Commerce Product Catalog Tables
ATG Business Commerce Order Tables
ATG Business Commerce Organizational Tables
ATG Business Commerce User Profile Extensions
ATG Business Commerce Invoice Tables
ATG Business Commerce Contract Tables
ATG Commerce Messages
Base ATG Commerce Messages
Fulfillment System Messages
Abandoned Order Messages
ATG Business Commerce Messages
ATG Commerce Scenario Recorders
dcs
dcs-analytics
shoppingprocess
Index