[英]Programmatically Add multiple Products with Custom Options
我正在嘗試在php中開發一個代碼,該代碼將從舊訂單中獲取訂單增量ID,並將使用相同的產品以及產品自定義選項(如果有)創建一個新訂單。 即使可以通過querystring添加產品,但獲取par還是可以的,但是我不能添加自定義選項。 購物車頁面顯示:必需的產品自定義選項。
我認為(不確定)我什至成功地通過soap api添加了帶有自定義選項的產品,但是當我重定向到購物車時,它顯示了一個空購物車。
我是一個初學者,因此請忽略任何愚蠢(如果存在)。 :D帶有查詢字符串的代碼如下:
$form_key = Mage::getSingleton('core/session')->getFormKey();
$arrProducts = array(
/*array
(
"product" => "3",
"qty" => 7
),*/
array
(
"product" => "1",
"qty" => 3,
"options" => array
(
2 => array(
"date" => "11/12/13",
"date_internal" => "2013-12-11 00:00:00"
),
1 => "1"
)
header('Location: '.Mage::getUrl('checkout/cart/add/form_key/'.$form_key.'/', $arrProduct));
因此,這將轉到產品頁面,但要求我選擇產品選項。 當我使用上面提到的其他產品時,它是成功的。
甚至我現在也可以在購物車中添加沒有自定義(id ='3'的產品)選項的產品。 代碼如下:
<?php
require('../../../app/Mage.php'); //include mage.php
Mage::app();
Mage::getSingleton('core/session', array('name' => 'frontend'));
$form_key = Mage::getSingleton('core/session')->getFormKey();
//echo $form_key;
$cart = Mage::getSingleton('checkout/cart');
$product = new Mage_Catalog_Model_Product();
$product->load(2);
//$product->setProductOptions();
$params = array(
array
(
"product" => "3",
"qty" => 1
),
array
(
"product" => "2",
"qty" => 2,
"options" =>array
(
2 => array
(
"date" => "11/12/2013",
"date_internal"=> "2013-12-11 00:00:00"
),
1 => "1"
)
)
);
$cart->addProduct($product, $params);
$cart->save();
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
header('Location:http://111.111.1.1/magento/checkout/cart');
?>
但不適用於具有自定義選項(id ='2'的產品)的任何產品。 錯誤信息 :
致命錯誤:消息為“請指定產品所需的選項”的未捕獲異常“ Mage_Core_Exception”。 在C:\\ xampp \\ htdocs \\ magento \\ app \\ Mage.php:594中堆棧跟蹤:#0 C:\\ xampp \\ htdocs \\ magento \\ app \\ code \\ core \\ Mage \\ Checkout \\ Model \\ Cart.php(284): Mage :: throwException('請指定...')#1 C:\\ xampp \\ htdocs \\ magento \\ pratmagento \\ panel \\ orders \\ try2addtocart.php(53):Mage_Checkout_Model_Cart-> addProduct(Object(Mage_Catalog_Model_Product),Array)# 2 {main}在第594行的C:\\ xampp \\ htdocs \\ magento \\ app \\ Mage.php中引發
必須設置產品的website_ids。
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.