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 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 回答
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 回答