Magento中通过访问Url把产品加入购物车_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > Magento中通过访问Url把产品加入购物车

Magento中通过访问Url把产品加入购物车

 2010/9/19 23:33:54  cgzhang  http://cgzhang.javaeye.com  我要评论(0)
  • 摘要:Magento中可以通过访问Url把产品加入购物车。1添加简单产品(SimpleProduct)(1)通过产品idcheckout/cart/add?product=[id]&qty=[qty](2)通过产品sku$cProd=Mage::getModel('catalog/product');$id=$cProd->getIdBySku("$sku");2添加可配置产品(ConfigurableProduct)checkout/cart/add?product=[id]&
  • 标签:Magento 通过访问Url把产品加入购物车
Magento中可以通过访问Url把产品加入购物车
1 添加简单产品(Simple Product)
(1) 通过产品id
checkout/cart/add?product=[id]&qty=[qty]
(2) 通过产品sku
      $cProd = Mage::getModel('catalog/product');
      $id = $cProd->getIdBySku("$sku");

2 添加可配置产品(Configurable Product)
checkout/cart/add?product=[id]&qty=[qty]&super_attribute[attribute_id]=[attribute_id]&super_attribute[attribute_id]=attribute_id

其中attribute_id是产品的super attribute所对应的attribute id(注意:super attribute 和 attribute不同, 在编辑Configurable产品时,在添加简单产品时产品的属性就保存在super attribute表中)。

用于生成添加产品到购物车的url函数(仅测试用,用于生产环境要小心):

   public function getAddToCartUrl($simpleProductId , $qty=1 ,$configurableProductId=null)
  		{
	        if(!$configurableProductId){
		        return Mage::getBaseUrl().'checkout/cart/add?product='.$simpleProductId.'&qty='.$qty;
	        }
	        else{
		        $url=Mage::getBaseUrl().'checkout/cart/add?product='.$configurableProductId.'&qty='.$qty.'&';
		        $configurableProduct= Mage::getModel('catalog/product')->load($configurableProductId);
		        $simpleProduct=Mage::getModel('catalog/product')->load($simpleProductId);
		        if($simpleProduct && $configurableProduct && $configurableProduct->getId() && $simpleProduct->getId()){
			        $superAttributes=$this->getAllowAttributes($configurableProduct);
			        $attributeCodes=array();
			        foreach($superAttributes as $superAttribute){
				        $attribute = $superAttribute->getProductAttribute();
				        $attributeCodes[$attribute->getAttributeId()]= $attribute->getAttributeCode();
			        }
			        
			        $superAttributeUrl="";
			        foreach($attributeCodes as $attributeId=>$attributeCode){
				        $superAttributeUrl.='super_attribute['.$attributeId.']='. $simpleProduct->getData($attributeCode).'&';
			        }
		        }
		        //print_r($attributeCodes);
		        $url.=$superAttributeUrl;
		        return $url;
	        }
  		}
发表评论
用户名: 匿名