2

開発中の e コマース Web サイトの SKU フォームによる製品の追加に取り組んでいます。基本的に「cod」と「qt」の2つのフィールドを持つフォームを作りました。

私はそれをこのスクリプトに渡しました(編集済み):

<?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 に答える