Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento-按项目ID更新购物车项目_Php_Magento - Fatal编程技术网

Php Magento-按项目ID更新购物车项目

Php Magento-按项目ID更新购物车项目,php,magento,Php,Magento,如何使用商品ID更新购物车商品?我搜索了很多,但都没有成功,这是我的代码- require_once '../app/Mage.php'; Mage::app('default'); $qty = $_REQUEST['quantity']; $item_id = (int) $_REQUEST['item_id']; $cart = Mage::getSingleton('checkout/cart'); $quoteItem = $cart->getQuote()->getIt

如何使用商品ID更新购物车商品?我搜索了很多,但都没有成功,这是我的代码-

require_once '../app/Mage.php';
Mage::app('default');

$qty = $_REQUEST['quantity'];
$item_id = (int) $_REQUEST['item_id'];
$cart = Mage::getSingleton('checkout/cart');
$quoteItem = $cart->getQuote()->getItemById($item_id);

/*$quoteItem = Mage::getModel('sales/quote_item')->getCollection()
   ->addFieldToFilter('item_id', array('in' => array($item_id)));*/
print_r($quoteItem);
if (!$quoteItem) {
    Mage::throwException('Quote item is not found.');
}

if ($qty == 0) {
    $cart->removeItem($id);
} else {
    $quoteItem->setQty($qty)->save();
}
$cart->save();

我在API中实现它,但同样的代码在网站上运行良好。请帮助

我使用下面的代码来更新购物车项目,我正在使用observer来更新购物车项目。你能试试这个吗

    $quote = $observer->getEvent()->getQuote();
    var_dump($quote->getId());

    $quote = Mage::getSingleton('checkout/session')->getQuote();
    //var_dump($quote->getId());
    $cartItems = $quote->getAllItems();
    //$storeId = Mage::app()->getStore()->getId();
    foreach ($cartItems as $item) {
        //echo $item->getSku();
        $item->set__($value); // desired quote field from database
        $item->save();
    }
    $quote->save();

我使用下面的代码来更新购物车项目,我正在使用observer来做到这一点。你能试试这个吗

    $quote = $observer->getEvent()->getQuote();
    var_dump($quote->getId());

    $quote = Mage::getSingleton('checkout/session')->getQuote();
    //var_dump($quote->getId());
    $cartItems = $quote->getAllItems();
    //$storeId = Mage::app()->getStore()->getId();
    foreach ($cartItems as $item) {
        //echo $item->getSku();
        $item->set__($value); // desired quote field from database
        $item->save();
    }
    $quote->save();

我正在web服务中使用代码,您确定“会话”在这里可以工作吗?致命错误:在线/home/yxhareoflovest/public_html/web services/test.php中对非对象调用成员函数getEvent()13@SachinVairagi删除下面的行$quote=$observer->getEvent()->getQuote();变量转储($quote->getId());它只在observer中工作。我正在创建web服务,它将在Android/iOS中使用,所以Mage::getSingleton('checkout/session')->getQuote();这将不起作用,我们可以用报价单ID或客户ID加载它吗?是的,它不起作用,我们使用它作为API。在这种情况下,您需要根据客户id和报价更新属性获取报价信息$collection=Mage::getModel('sales/quote')->getCollection()$收集->添加字段过滤器('customer\u id',$customer\u id)$collection->addFieldToFilter('store\u id',$store\u id)$托收->添加订单('updated_at')$quote=$collection->getFirstItem();我正在web服务中使用代码,您确定“会话”在这里可以工作吗?致命错误:在线/home/yxhareoflovest/public_html/web services/test.php中对非对象调用成员函数getEvent()13@SachinVairagi删除下面的行$quote=$observer->getEvent()->getQuote();变量转储($quote->getId());它只在observer中工作。我正在创建web服务,它将在Android/iOS中使用,所以Mage::getSingleton('checkout/session')->getQuote();这将不起作用,我们可以用报价单ID或客户ID加载它吗?是的,它不起作用,我们使用它作为API。在这种情况下,您需要根据客户id和报价更新属性获取报价信息$collection=Mage::getModel('sales/quote')->getCollection()$收集->添加字段过滤器('customer\u id',$customer\u id)$collection->addFieldToFilter('store\u id',$store\u id)$托收->添加订单('updated_at')$quote=$collection->getFirstItem();