Magento - 将SKU的数组添加到购物车

ped*_*oto 2 php zend-framework magento magento-1.7

我正在为我正在开发的电子商务网站制作一个sku表单的添加产品.我做了基本上有2个字段的表格,"cod"和"qt".

我把它传递给了这个脚本(已编辑):

<?php
    $sku = $_POST['cod'];
    $qty = $_POST['qt'];
    $product = new Mage_Catalog_Model_Product();
    $cart = Mage::getSingleton('checkout/cart');

    $osids = array();

    foreach ($sku as $lol){
        $lolz = Mage::getModel('catalog/product')->loadByAttribute('sku',$lol)->getId();
        array_push($osids, $lolz);

    }
var_dump($osids);

$params = array(
    'qty' => 2,
);
$cart->addProductsByIds($osids, $params);
$cart->save();
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);


?>
Run Code Online (Sandbox Code Playgroud)

var_dump正确显示数组,即.在这种情况下,多个skus,但foreach循环只将数组中的第一个sku添​​加到购物车.

知道为什么吗?

我不想在阵列中添加所有的sku.

All*_*gor 5

请尝试以下代码:

<?php
    $sku_list = $_POST['cod'];
    $qty = $_POST['qt'];
    $cart = Mage::getSingleton('checkout/cart');

    foreach ($sku_list as $sku){
        $product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku);
        $cart->addProduct($product, $qty);
    }
    $cart->save();
    Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
Run Code Online (Sandbox Code Playgroud)

  • 也许试试你的运气$ cart-> addProductsByIds()并传入所有产品ID的数组? (3认同)