请访问此link
将此可配置产品添加到购物车,转到购物车页面并尝试更新数量,例如超过1。
但是在购物车页面中,如果我们尝试编辑数量,不会更新多个。但是在后端可以获得所需的数量。
Error : Number of quantity not available.
我们安装了一个扩展程序此错误来自扩展程序。如果我们删除扩展名,它将正常工作。但我们需要扩展用于某种目的。这是扩展程序的 observer.php 。
<?php
Class Webkul_Mpassignproduct_Model_Observer
{
/*after update cart*/
public function cartUpdate($observer) {
$db = Mage::getSingleton('core/resource')->getConnection('core_read');
$cart = $observer->getCart()->getQuote()->getAllItems();
$cart_data = Mage::getSingleton('checkout/session')->getQuote()->getAllVisibleItems();
$info = $observer->getInfo();
foreach($cart_data as $item) {
$current_qty=$info[$item->getId()]['qty'];
$productid= $item->getProductId();
$mpassignproductId=0;
foreach($item->getOptions() as $option) {
$temp=unserialize($option['value']);
if($temp['mpassignproduct_id'])
$mpassignproductId=$temp['mpassignproduct_id'];
}
if($mpassignproductId) {
$productdetail=Mage::getModel('mpassignproduct/mpassignproduct')->load($mpassignproductId);
$price=$productdetail->getPrice();
$avlqty=$productdetail->getQty();
$seller=$productdetail->getSellerId();
$diff=$avlqty-$current_qty;
if($diff>0) {
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
$item->getProduct()->setIsSuperMode(true);
} else if($diff<=0) {
if($current_qty > $avlqty) {
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
$item->setQty($avlqty);
Mage::getSingleton('core/session')->addNotice('Number of quantity not available.');
}
}
} else {
$adminAvlQty=Mage::getModel('mpassignproduct/mpassignproduct')->getAssignProDetails($productid);
if($current_qty > $adminAvlQty['sellerqty']) {
$item->setQty($adminAvlQty['sellerqty']);
Mage::getSingleton('core/session')->addNotice('Number of quantity not available.');
}
}
}
}
/*after product added to cart*/
public function productCart(Varien_Event_Observer $obs) {
$cart_data = Mage::getSingleton('checkout/session')->getQuote()->getAllVisibleItems();
$item = $obs->getQuoteItem();
$item = ( $item->getParentItem() ? $item->getParentItem() : $item );
$db = Mage::getSingleton('core/resource')->getConnection('core_read');
$productid=$item->getProductId();
foreach ($cart_data as $cart) {
if($cart->getProductId()==$productid){
$quantity=$cart->getQty();
}
}
$productid= $item->getProductId();
$mpassignproductId=0;
foreach($item->getOptions() as $option) {
$temp=unserialize($option['value']);
if($temp['mpassignproduct_id'])
$mpassignproductId=$temp['mpassignproduct_id'];
}
if($mpassignproductId) {
$productdetail=Mage::getModel('mpassignproduct/mpassignproduct')->load($mpassignproductId);
$price=$productdetail->getPrice();
$avlqty=$productdetail->getQty();
$seller=$productdetail->getSellerId();
$diff=$avlqty-$quantity;
if($diff>0) {
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
$item->getProduct()->setIsSuperMode(true);
} else if($diff<=0) {
if($quantity > $avlqty) {
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
$item->setQty($avlqty);
Mage::getSingleton('core/session')->addNotice('Number of quantity not available.');
}
}
} else {
$adminAvlQty=Mage::getModel('mpassignproduct/mpassignproduct')->getAssignProDetails($productid);
if($quantity > $adminAvlQty['sellerqty']) {
$item->setQty($adminAvlQty['sellerqty']);
Mage::getSingleton('core/session')->addNotice('Number of quantity not available.');
}
}
}
public function productUpdateCart(Varien_Event_Observer $observer) {
$item=$observer->getItem();
$proprice=$item->getProduct()->getPrice();
$item->setCustomPrice($proprice);
$item->setOriginalCustomPrice($proprice);
$item->save();
}
public function afterPlaceOrder1($observer) {
$lastOrderId=$observer->getOrder()->getId();
$order = Mage::getModel('sales/order')->load($lastOrderId);
$ordered_items = $order->getAllItems();
foreach ($ordered_items as $item) {
$options=$item->getProductOptions();
$productId=$item->getProductId();
$mpassignproductId=$options['info_buyRequest']['mpassignproduct_id'];
if($mpassignproductId) {
$collect=Mage::getModel('marketplace/saleslist')->getCollection()
->addFieldToFilter('mageproid',array('eq'=>$productId))
->addFieldToFilter('mageorderid',array('eq'=>$lastOrderId));
foreach($collect as $val) {
$slqty=$val['magequantity'];
$saleslistId=$val['autoid'];
}
$mpassignModel=Mage::getModel('mpassignproduct/mpassignproduct')->load($mpassignproductId);
if($saleslistId) {
$saleslistModel=Mage::getModel('marketplace/saleslist')->load($saleslistId);
$saleslistModel->setMageproownerid($mpassignModel->getSellerId());
$saleslistModel->setMpassignproductId($mpassignproductId);
$saleslistModel->save();
$asqt=$mpassignModel->getQty();
$nasqt = $asqt-$slqty;
$mpassignModel->setQty($nasqt);
$mpassignModel->save();
}
}
}
}
/*Pending................................on product delete from seller*/
public function deleteProductCheck($observer) {
$productid=$observer->getId();
$collection=Mage::getModel('mpassignproduct/mpassignproduct')
->getCollection()
->addFieldToFilter('product_id',array('eq'=>$productid))
->addFieldToFilter('qty',array('gt'=>0));
$collection->setOrder("price","ASC");
if(count($collection)>0) {
foreach($collection as $assignproduct) {
$collectionpro=Mage::getModel('marketplace/product')->getCollection()
->addFieldToFilter('mageproductid',array('eq'=>$productid));
foreach($collectionpro as $row) {
$row->setUserid($assignproduct->getSellerId());
$row->save();
// set qty to product
$data=Mage::getModel('mpassignproduct/mpassignproduct')->getAssignProDetails($productid);
$_product=Mage::getModel('catalog/product')->load($productid);
$_product->setPrice($assignproduct->getPrice());
$_product->save();
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productid);
$stockItem->setProductId($productid)->setStockId(1);
$savedStock = $stockItem->save();
$stockItem->load($savedStock->getId())->setQty($data['assignqty'])->save();
$stockItem->setData('is_in_stock', 1);
$savedStock = $stockItem->save();
}
Mage::getSingleton('customer/session')->setIsAssing($assignproduct->getMpassignproductId());
$assignproduct->delete();
break;
}
} else {
Mage::getSingleton('customer/session')->setIsAssing(0);
}
}
//when admin will the delete the product
public function DeleteProduct($observer) {
$collection = Mage::getModel('mpassignproduct/mpassignproduct')->getCollection()
->addFieldToFilter('product_id ',$observer->getProduct()->getId());
foreach($collection as $data){
Mage::getModel('mpassignproduct/mpassignproduct')->load($data['mpassignproduct_id'])->delete();
}
}
}
答案 0 :(得分:1)
检查产品是否有货。我正在检查Simple产品是否正常工作。仅可配置产品存在问题。我可以看到正在使用一个主题。也许这会导致问题。检查/ var / folders中的日志system.log和exception.log。这可能会有所帮助。
用于CART或CHECKOUT的任何扩展也可能导致问题。