/* * Licensed to csti consulting * You may obtain a copy of the License at * * http://www.csticonsulting.com * Copyright (c) 2006-Aug 25, 2010 Consultation CS-TI inc. * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package com.salesmanager.catalog.cart; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import com.salesmanager.common.SalesManagerBaseAction; import com.salesmanager.core.constants.CatalogConstants; import com.salesmanager.core.entity.merchant.MerchantStore; import com.salesmanager.core.entity.orders.ShoppingCart; import com.salesmanager.core.entity.orders.ShoppingCartProduct; import com.salesmanager.core.entity.orders.ShoppingCartProductAttribute; import com.salesmanager.core.util.NameValuePair; import com.salesmanager.core.util.PropertiesUtil; import com.salesmanager.core.util.ReferenceUtil; import com.salesmanager.core.util.www.SessionUtil; public class CheckoutAction extends SalesManagerBaseAction { private static Logger logger = Logger.getLogger(CheckoutAction.class); private Collection nvps = null; private String postUrl = null; /** * When invoking shopping cart using url parameters * * @return */ public String checkout() { try { // if the system uses remote or local checkout String cartType = PropertiesUtil.getConfiguration().getString( "core.catalog.checkout.type"); if (cartType != null && cartType.equalsIgnoreCase(CatalogConstants.LOCAL_CART)) { return "checkoutLocal"; } MerchantStore store = SessionUtil.getMerchantStore(super .getServletRequest()); nvps = new ArrayList(); ShoppingCart cart = SessionUtil.getMiniShoppingCart(super .getServletRequest()); if (cart == null) { addActionError(getText("message.cart.emptycart")); return "landing"; } postUrl = ReferenceUtil.buildCheckoutToCartUrl(store); NameValuePair merchantNvp = new NameValuePair(); merchantNvp.setKey("merchantId"); merchantNvp.setValue(String.valueOf(store.getMerchantId())); nvps.add(merchantNvp); Collection products = cart.getProducts(); Iterator i = products.iterator(); NameValuePair nvp = null; while (i.hasNext()) { ShoppingCartProduct product = (ShoppingCartProduct) i.next(); nvp = new NameValuePair(); nvp.setKey("productId_" + product.getProductId()); nvp.setValue(String.valueOf(product.getProductId())); nvps.add(nvp); if (product.getQuantity() > 1) { nvp = new NameValuePair(); nvp.setKey("qty_" + product.getProductId()); nvp.setValue(String.valueOf(product.getQuantity())); nvps.add(nvp); } if (product.getAttributes() != null && product.getAttributes().size() > 0) { List attrs = product.getAttributes(); Iterator it = attrs.iterator(); while (it.hasNext()) { ShoppingCartProductAttribute scpa = (ShoppingCartProductAttribute) it .next(); nvp = new NameValuePair(); nvp.setKey("attributeId_" + product.getProductId()); nvp.setValue(String.valueOf(scpa.getAttributeId())); nvps.add(nvp); if (!StringUtils.isBlank(scpa.getTextValue())) { nvp = new NameValuePair(); nvp.setKey("attributeValue_" + scpa.getAttributeId()); nvp.setValue(scpa.getAttributeValue()); nvps.add(nvp); } } } } } catch (Exception e) { logger.error(e); super.setTechnicalMessage(); return "GENERICERROR"; } return "checkoutRemote"; } public String getPostUrl() { return postUrl; } public void setPostUrl(String postUrl) { this.postUrl = postUrl; } public Collection getNvps() { return nvps; } public void setNvps(Collection nvps) { this.nvps = nvps; } }