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;  
          }  
        }  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值