2

我正在为我正在开发的电子商务网站按 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);


?>

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

知道为什么吗?

我不想在数组中添加所有 sku。

4

1 回答 1

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);
于 2013-01-18T12:14:46.053 回答