Class CartAddForm

java.lang.Object
org.apache.struts.action.ActionForm
com.softslate.commerce.customer.core.BaseForm
com.softslate.commerce.customer.order.CartAddForm
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AddItemForm, CartEditForm, CartItemEditForm

public class CartAddForm extends BaseForm
Struts form class for submissions to add items to the current user's cart. Used for requests to "/CartAdd.do" and "/CartAddMultiple.do".

The validate method of this class checks the orderProductQuantities property to make sure the user entered a quantity greater than zero for at least one product. It checks the orderProductCodes property to make sure that at least one product code was submitted.

It also populates the orderAttributes property with submitted product attributes and their values, and checks the requiredAttributeCodes property to make sure values were submitted for required product attributes.

Here is a summary of the request parameters involved in a request to add items to the cart:

  • orderProductQuantities: An array of integers corresponding to the quantities of each item being added to the cart.
  • orderProductCodes: An array of product codes corresponding to each item being added to the cart. The order of the product codes must correspond to the order of the quantities in the orderProductQuantities parameter.
  • requiredAttributeCodes: An array of required attributes. Each element of the array is a pipe-separated concatenation of the attribute code and the product code, in the form of productCode|attributeCode. Note that the check for required attributes is done in this class based on elements included in the request submission. It is also repeated within CartProcessor.processAddItems(Map), against the database itself.
  • requiredAttributeNames: An array of the names of the required attributes. Each element of the array is the name of the corresponding required attribute in the requiredAttributeCodes property. They are included in the request so that an error message can be displayed to the customer without the need to hit the database.
  • Attributes and their values: Any number of additional request parameters may exist that contain the attribute values selected or entered by the customer. The names of these parameters are a pipe-separated concatenation of the product code and attribute code, in the form of productCode|attributeCode. The values of each parameter contain what the customer entered, in the case of the expandedInput and compactInput attribute types. In the case of the other attribute types, the value consists of the code of the option that the customer selected.

Author:
David Tobey
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • log

      static org.apache.commons.logging.Log log
    • orderProductCodes

      private String[] orderProductCodes
    • requiredAttributeCodes

      private String[] requiredAttributeCodes
    • requiredAttributeNames

      private String[] requiredAttributeNames
    • productNames

      private String[] productNames
    • orderProductQuantities

      private String[] orderProductQuantities
    • orderAttributes

      private HashMap orderAttributes
  • Constructor Details

    • CartAddForm

      public CartAddForm()
  • Method Details

    • getOrderProductCodes

      public String[] getOrderProductCodes()
    • setOrderProductCodes

      public void setOrderProductCodes(String[] orderProductCodes)
    • getRequiredAttributeCodes

      public String[] getRequiredAttributeCodes()
    • setRequiredAttributeCodes

      public void setRequiredAttributeCodes(String[] requiredAttributeCodes)
    • getRequiredAttributeNames

      public String[] getRequiredAttributeNames()
    • setRequiredAttributeNames

      public void setRequiredAttributeNames(String[] requiredAttributeNames)
    • getProductNames

      public String[] getProductNames()
    • setProductNames

      public void setProductNames(String[] productNames)
    • getOrderProductQuantities

      public String[] getOrderProductQuantities()
    • setOrderProductQuantities

      public void setOrderProductQuantities(String[] orderProductQuantities)
    • getOrderAttributes

      public HashMap getOrderAttributes()
    • setOrderAttributes

      public void setOrderAttributes(HashMap orderAttributes)
    • validate

      public org.apache.struts.action.ActionErrors validate(org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest request)
      Overrides:
      validate in class org.apache.struts.action.ActionForm
    • validateQuantity

      public void validateQuantity()
      Checks that the user entered a quantity greater than 0 for at least one product.
    • validateProductCode

      public void validateProductCode()
      Checks that at least one product code was submitted.
    • validateAttributes

      public void validateAttributes()
      Checks that required attributes were submitted, and constructs this form's orderAttributes property, which holds a Map of the submitted attributes.
    • validateMaxItemsPerOrder

      public void validateMaxItemsPerOrder()