|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.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 |
loadProductSettings(java.util.Collection orderItems,
java.util.Collection productIDs)
Loads inventory settings for each of the products corresponding to a given Collection of OrderItem s. |
java.util.Map |
processAddItems(java.util.Collection orderItems)
Processes inventory as new OrderItem s 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, setAppComponents, setAppSettings, setBusinessObjectFactory, setDaoFactory, setSettings, setUser, 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
InventoryProcessor
OrderItem
s 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:
OrderItem
s being added. BaseBusinessProcessor.loadMatchingSkus(Collection, Collection, Collection)
to load the skus corresponding to the OrderItem
s. InventoryProcessor.processInventory(Collection, Map, Collection, String)
to process the inventory.CartProcessor.processQuantities(Collection)
to update
the cart with the new quantities.
processAddItems
in interface InventoryProcessor
orderItems
- 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.Exception
BasicCartProcessor.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 InventoryProcessor
parameters
- 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
CheckoutAction.processInventoryDiscountCheck(BaseForm)
public java.util.Map processOrderComplete(java.util.Map parameters) throws java.lang.Exception
InventoryProcessor
processOrderComplete
in interface InventoryProcessor
parameters
- 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 OrderItem
s. 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 InventoryProcessor
orderItems
- A Collection
of
OrderItem
objects being processed.productSettings
- A Map
of Collections
representing the inventory settings in effect for the products
in the OrderItem
s.matchingSkus
- A Collection
of Map
s
representing all the SKUs associated with the
OrderItem
s.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 Map
s, 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 String
s 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 String
s representing the
OrderItem
s new quantity, after being adjusted
because not enough inventory is available.newOOSSKUs
: A Collection
of
Map
s, each representing a
SKU
that
has just reached its out of stock level as result of the
processing.productsToDeactivate
: A
Collection
of String
s, 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 Map
s, each representing a
SKU
that
has reached its 'low stock' level, and should trigger a low stock
email as a result.java.lang.Exception
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |