-1
Я хочу дублировать товар в корзине. Итак, это новое положение в тележке со всеми опциями предыдущей позиции.пурпурный дубликат продукт в корзине
- Я не получаю quoteId?
- я получаю всегда ошибка: Вызов функции члена getStoreId()
Вот мой testcode:
<?php
#_test/duplicate.php
require_once __DIR__.'/../app/Mage.php';
Mage::app();
/**
* @var $quote Mage_Sales_Model_Quote
* @var $quoteItem Mage_Sales_Model_Quote_Item
* @var $newQuoteItem Mage_Sales_Model_Quote_Item
* @var $cart Mage_Checkout_Model_Cart
* @var $product Mage_Catalog_Model_Product
*/
$quoteItem = Mage::getModel('sales/quote_item')->load(356);
$cart = Mage::getSingleton('checkout/cart');
$storeId = Mage::app()->getStore()->getId();
$quote = Mage::getSingleton('checkout/session')->getQuote();
$product = Mage::getModel('catalog/product')
->setStoreId($storeId)
->load($quoteItem->getProductId());
echo 'quoteId: '.$quote->getId().'<br />';
echo 'quoteItem: '.$quoteItem->getId().'<br />';
echo 'storeId: '.$storeId.'<br />';
echo 'productId: '.$product->getId().'<br />';
$options = Mage::getResourceModel('sales/quote_item_option_collection');
$options->addItemFilter($quoteItem->getId());
foreach ($options as $option) {
$quoteItem->addOption($option);
}
$buyRequest = $quoteItem->getBuyRequest();
//var_dump($buyRequest);
$quoteItem->setQuote($quote);
$quoteItem->setStoreId($storeId);
$newItem = clone $quoteItem;
//doesn*t work:
//Fatal error: Call to a member function getStoreId() on a non-object in \app\code\core\Mage\Sales\Model\Quote\Item\Abstract.php on line 65
$quote->addItem($newItem);
if ($quoteItem->getHasChildren()) {
foreach ($item->getChildren() as $child) {
$newChild = clone $child;
$newChild->setParentItem($newItem);
$quote->addItem($newChild);
}
}
редактировать: Я также попытался:
$cart->addOrderItem($newItem, 1);
Тогда я получить эту ошибку:
Fatal error: Uncaught exception 'Mage_Core_Exception' with message 'Please specify product option(s).' in \app\Mage.php on line 603
Как я могу скопировать и необходимые параметры?