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