|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.softslate.commerce.businessobjects.core.BaseBusinessObject
com.softslate.commerce.businessobjects.core.BaseBusinessProcessor
com.softslate.commerce.businessobjects.order.BasicInventoryProcessor
public class BasicInventoryProcessor
Processes business logic having to do with SKUs and inventory levels.
BasicInventoryProcessor is the default implementation of the
InventoryProcessor interface for the application.
InventoryProcessor| Field Summary | |
|---|---|
(package private) static org.apache.commons.logging.Log |
log
|
java.lang.String[] |
productSettingsKeys
The settings keys dealing with inventory. |
| Constructor Summary | |
|---|---|
BasicInventoryProcessor()
|
|
| Method Summary | |
|---|---|
java.util.Map |
defineInventorySettings(Product product,
java.util.Collection attributeSKUCollection)
Inspects a Product and returns a Map of useful variables related to the state of the product's inventory. |
java.util.Map |
loadProductSettings(java.util.Collection orderItems,
java.util.Collection productIDs)
Loads inventory settings for each of the products corresponding to a given Collection of OrderItems. |
java.util.Map |
processAddItems(java.util.Collection orderItems)
Processes inventory as new OrderItems are added to a
user's cart. |
java.util.Map |
processInventory(java.util.Collection orderItems,
java.util.Map productSettings,
java.util.Collection matchingSkus,
java.lang.String behavior)
Generically processes inventory, returning a Map with information about items and skus. |
java.util.Map |
processOnCheckout(java.util.Map parameters)
Checks inventory for a user's cart during checkout. |
java.util.Map |
processOrderComplete(java.util.Map parameters)
Processes inventory for a user's cart as an order is completed. |
| Methods inherited from class com.softslate.commerce.businessobjects.core.BaseBusinessProcessor |
|---|
formatDateTime, formatPrice, getAppComponents, getAppSettings, getAttributeIDs, getBusinessObjectFactory, getDaoFactory, getProductIDs, getSettings, getUser, initialize, loadMatchingSkus, parseDateTime, parseResponseData, prepareRequestData, sendHTTPPost, sendHTTPPost, setAppComponents, setAppSettings, setBusinessObjectFactory, setDaoFactory, setSettings, setUser, updateOrderTotals, updateOrderTotals, utils |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
static org.apache.commons.logging.Log log
public java.lang.String[] productSettingsKeys
sscSetting database table,
and product-specific settings defined in the
sscProductSetting table.
| Constructor Detail |
|---|
public BasicInventoryProcessor()
| Method Detail |
|---|
public java.util.Map processAddItems(java.util.Collection orderItems)
throws java.lang.Exception
InventoryProcessorOrderItems are added to a
user's cart. Decrements inventory levels (in the memory objects) if
products are set to be decremented upon being added to a cart. (Objects
are updated in the database by
BasicCartProcessor.processAddItems(Collection),
which is what calls this method.)
The default implementation of this method does the following:
OrderItems being added. BaseBusinessProcessor.loadMatchingSkus(Collection, Collection, Collection)
to load the skus corresponding to the OrderItems. InventoryProcessor.processInventory(Collection, Map, Collection, String)
to process the inventory.CartProcessor.processQuantities(Collection) to update
the cart with the new quantities.
processAddItems in interface InventoryProcessororderItems - The Collection of
OrderItem
objects being added to the cart.
Map containing results of the processing. In the
default implementation, the Map is the same as the
one returned by
InventoryProcessor.processInventory(Collection, Map, Collection, String)
(which this method calls).
java.lang.ExceptionBasicCartProcessor.processAddItems(Collection)
public java.util.Map processOnCheckout(java.util.Map parameters)
throws java.lang.Exception
InventoryProcessor
The default implementation of this method largely follows the same steps
as InventoryProcessor.processAddItems(Collection).
processOnCheckout in interface InventoryProcessorparameters - The most recent parameters submitted by the user.
Map containing results of the processing. In the
default implementation, the Map is the same as the
one returned by
InventoryProcessor.processInventory(Collection, Map, Collection, String)
(which this method calls).
java.lang.ExceptionCheckoutAction.processInventoryDiscountCheck(BaseForm)
public java.util.Map processOrderComplete(java.util.Map parameters)
throws java.lang.Exception
InventoryProcessor
processOrderComplete in interface InventoryProcessorparameters - The most recent parameters submitted by the user.
Map containing results of the processing. In the
default implementation, the Map is the same as the
one returned by
InventoryProcessor.processInventory(Collection, Map, Collection, String)
(which this method calls).
java.lang.Exception
public java.util.Map loadProductSettings(java.util.Collection orderItems,
java.util.Collection productIDs)
throws java.lang.Exception
Collection of OrderItems. Inventory
settings are defined globally in the sscSetting database
table. They can be overridden product-by-product by settings defined in
the sscProductSettings table. This method resolves which
products are set to override the global settings, and the resulting
Map reflects the overridden settings.
orderItems - A Collection of
OrderItem
objects being processed.productIDs -
Map containing the settings. The keys of the
Map are the string in the
productSettingsKeys array.
java.lang.Exception
public java.util.Map processInventory(java.util.Collection orderItems,
java.util.Map productSettings,
java.util.Collection matchingSkus,
java.lang.String behavior)
throws java.lang.Exception
InventoryProcessor
processInventory in interface InventoryProcessororderItems - A Collection of
OrderItem
objects being processed.productSettings - A Map of Collections
representing the inventory settings in effect for the products
in the OrderItems.matchingSkus - A Collection of Maps
representing all the SKUs associated with the
OrderItems.behavior - A String representing when inventory is to be
decremented. Either "onAddingToCart" or "onOrderCompletion".
Map containing results of the processing. In the
default implementation, the keys of the Map
include:
skusToDecrement: A Collection
of Maps, each representing a
SKU that
is to be decremented as result of the processing.decrementedSKUs: A Map whose
keys are OrderItem objects and whose values are
comma-separated Strings representing the ids of
the SKU
objects corresponding to the OrderItem that are to
be decremented. (Used to populate the OrderItem's
descrementedSKUs property.)rejectedOrderItems: A
Collection of OrderItem objects
that have been removed from the user's cart due to their being
out of stock.adjustedQuantities: A Map
whose keys are OrderItem objects and whose values
are Strings representing the
OrderItems new quantity, after being adjusted
because not enough inventory is available.newOOSSKUs: A Collection of
Maps, each representing a
SKU that
has just reached its out of stock level as result of the
processing.productsToDeactivate: A
Collection of Strings, each
representing the id of a
Product
object that should now be deactivated because a
SKU
associated with it has just gone out of stock.lowStockEmails: A Collection
of Maps, each representing a
SKU that
has reached its 'low stock' level, and should trigger a low stock
email as a result.java.lang.Exception
public java.util.Map defineInventorySettings(Product product,
java.util.Collection attributeSKUCollection)
InventoryProcessor
defineInventorySettings in interface InventoryProcessorattributeSKUCollection - An optional Collection of attribute-only SKUs used to define
the inventory settings that are returned.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||