у нас есть пурпурный сайт. мы предоставляем возможность поставщику редактировать все текстовые поля нескольких продуктов и сохранять все, нажав одну кнопку « Обновить ».
мы используем следующий код для экономии цены одного текстового поля.
Цена
public function updateFieldPriceAction(){ Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); $id= $this->getRequest()->getParam('id'); $customerid=Mage::getSingleton('customer/session')->getCustomerId(); $collection_product = Mage::getModel('marketplace/product')->getCollection()->addFieldToFilter('mageproductid',array('eq'=>$id))->addFieldToFilter('userid',array('eq'=>$customerid)); //Mage::getSingleton('core/session')->setEditProductId($id); try{ $upd_price = $this->getRequest()->getParam('price'); $product = Mage::getModel('catalog/product')->load($id); //$product->setData('price', $upd_price); $product->setPrice($upd_price); //$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($id); //$stockItem->setData('manage_stock', 1); //$stockItem->setData('qty', $this->getRequest()->getParam('qty')); $product->save(); echo $price = $product->getPrice(); echo $name = $product->getName(); $response['message'] = 'Your Product Is Been Sucessfully Updated'; $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($response)); //Mage::getSingleton('core/session')->addSuccess(Mage::helper('marketplace')->__('Your Product Is Been Sucessfully Updated')); //endif; }catch(Exception $e){ echo "Not Saving"; exit; Mage::log($e->getMessage()); } }
мы используем следующий код для сохранения количества одного текстового поля.
Количество
public function updateFieldAction(){ $id= $this->getRequest()->getParam('id'); $customerid=Mage::getSingleton('customer/session')->getCustomerId(); $collection_product = Mage::getModel('marketplace/product')->getCollection()->addFieldToFilter('mageproductid',array('eq'=>$id))->addFieldToFilter('userid',array('eq'=>$customerid)); //Mage::getSingleton('core/session')->setEditProductId($id); $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($id); $stockItem->setData('manage_stock', 1); $stockItem->setData('qty', $this->getRequest()->getParam('qty')); $stockItem->save(); $response['message'] = 'Your Product Is Been Sucessfully Updated'; $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($response)); //Mage::getSingleton('core/session')->addSuccess(Mage::helper('marketplace')->__('Your Product Is Been Sucessfully Updated')); }
мы используем следующий код для сохранения всех текстовых полей цены и количества с помощью одной кнопки обновления . Цена работает. но количество не работает.
controller.php
public function massupdatesellerproAction(){ if($this->getRequest()->isPost()){ if(!$this->_validateFormKey()){ $this->_redirect('marketplace/marketplaceaccount/myproductslist/'); } $ids= $this->getRequest()->getParam('product_mass_update'); $price= $this->getRequest()->getParam('price'); $qty = $this->getRequest()->getParam('qty'); foreach ($ids as $key => $value) { $product = Mage::getModel('catalog/product')->load($value); $product->setPrice($price[$key]); $product->setQty($qty[$key]); $product->save(); } Mage::getSingleton('core/session')->addSuccess( Mage::helper('marketplace')->__('Products has been sucessfully saved from your account')); $this->_redirect('marketplace/marketplaceaccount/myproductslist/'); }}