【发布时间】:2014-01-03 16:47:15
【问题描述】:
我正在尝试在 php 中开发一个代码,它将从旧订单中获取订单增量 ID,并将创建一个包含相同产品以及产品自定义选项(如果有)的新订单。 即使可以通过查询字符串添加产品,获取 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} 在 C:\xampp\htdocs\magento\app\Mage.php 第 594 行抛出
【问题讨论】:
-
所以你想复制最后一个订单(产品+自定义选项)并将订单ID加一?
-
是的,绝对...我想要那个,但无法设置自定义选项的值。
-
自定义选项之一是日期类型。提前谢谢....
-
您能告诉我们哪些自定义选项(数据类型除外)以便我们为您提供帮助吗?
-
类型 1= 日期类型 2= 下拉菜单(只有 2 个选项)