2

カスタム オプション タイプ ファイルを使用して、製品を Magento に追加しています。

$cart = Mage::getModel('checkout/cart');
$cart->init();
$pModel = Mage::getSingleton('catalog/product');
foreach($prodArray as $_prod){
  $products = explode("=",$_prod);
  $product_id = $products[0];
  $prod_qty = $products[1];
  $pModel->unsetData();
  $pModel = Mage::getModel('catalog/product')->load($product_id);
  try {
    $cart->addProduct($pModel,$prod_qty);
  }
  catch (Exception $e) { continue; }
  echo  "<br>Product has been added to Cart of id: $product_id with Quantity: $prod_qty";
}
$cart->save();
4

2 に答える 2

0

タイトルに基づいて、あなたが何をしようとしているのか正確にはわかりません。

プログラムでカートにオプション付きの商品を追加する方法を知りたいと思いますか?

このリンクはそれをカバーしています: Magentoで設定可能なアイテムへのURLを取得する方法は? 訪問者が構造のURLに言及している場合:/ checkout / cart / add?product = 47&qty = 1&super_attribute [496] = 4

プログラムでカートに簡単な商品を追加するには、次の構造のリンクをたどるだけです。http: //yoursite.com/index.php/checkout/cart/add? product=product_id&qty=qty

明らかに、これはCookieなどの「実際の」ユーザーである必要があります。ユースケースがわからない場合は、コメントを追加してください。

于 2012-10-12T19:16:03.447 に答える
0

手遅れかもしれませんが、今日、私は同じ問題に直面し、解決策を見つけました。商品をカートに追加する必要がありましたが、オプションの 1 つにファイルがありました。

Magento 1.7 で動作しますが、他のバージョンではテストしていません。

// the path of the file, relative to Magento base directory.
// For example /media/image.jpg
$image = "YOURFILE.JPG";
// the ID of the product
$product_id  = XXX;

$product     = Mage::getModel('catalog/product')->load($product_id);

$cart = Mage::getModel('checkout/cart');
$cart->init();
$params = array(
    'product' => $product_id,
    'qty' => 1,
    'options' => array(
        12345 => array(
                'quote_path' => $image,
                'secret_key' => substr(md5(file_get_contents(Mage::getBaseDir() . $image)), 0, 20)),
    )
);

$cart->addProduct($product, $params);
$cart->save();

Mage::getSingleton('checkout/session')->setCartWasUpdated(true);

(12345 はオプション ID です。ハードコードするか、これを使用して ID のリストを取得できます: https://stackoverflow.com/a/8317707 )

于 2013-01-23T16:41:56.173 に答える