Question

nous avons Marché Multi fournisseur/vendeur site, signifie que les vendeurs peuvent vendre les produits par le biais de notre site.

nous utilisons une extension pour le mettre en œuvre.

Avant d'utiliser une extension, on peut voir la quantité correcte en vertu de Catalogue > Gérer Les Produits.

Dans l'extension , il y a un bug de sorte que,

en vertu de Catalogue > Gérer les Produits, nous pouvons voir que la Quantité pour chaque produit, Ce la quantité est une combinaison de tous les vendeurs.

exemple :Les produits "A" 2 vendeurs.

vendeur la base est vendeur 10 la quantité et la vendeur B attribué le même produit avec 5 quantité.

De sorte que son affichage 15 en vertu de Gérer les Produits > quantité.

L'Extension est cours d'équitation la Quantité par défaut de la Fonctionnalité.

Je veux supprimer ce cours d'équitation.

Je suppose que c'est le code pour le principal :

app/code/local/webkul/Mpassignproduct/Model/Mpassignproduct.php

<?php

class Webkul_Mpassignproduct_Model_Mpassignproduct extends Mage_Core_Model_Abstract
{
    public function _construct() {
        parent::_construct();
        $this->_init('mpassignproduct/mpassignproduct');
    }

    public function editproduct($data) {
        $sellerId=Mage::getSingleton('customer/session')->getCustomerId();
        $products=Mage::getModel('mpassignproduct/mpassignproduct')->getCollection()
                            ->addFieldToFilter('seller_id',array('eq'=>$sellerId))
                            ->addFieldToFilter('mpassignproduct_id',array('eq'=>$data['pro_id']));
        if(count($products)) {
            foreach($products as $product) {
                $isApproved=$product->getFlag();
                $preQty=$product->getQty();
                $product->setQty($data['qty']);
                $product->setPrice($data['price']);
                $product->setProductCondition($data['product_condition']);
                $product->setProductDescription($data['product_description']);
                $saved=$product->save();
                $lastId=$saved->getId();
            }
        }
        if($lastId)  {
            if($isApproved == 1) {
                $_product=Mage::getModel("catalog/product")->load($data['product_id']);
                $qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();
                $qtyStock = ($qtyStock - $preQty) + $data['qty'];
                $this->_saveStock($data['product_id'],$qtyStock,1); 
            }
            $this->uploadImages($lastId);
        }

        return $lastId;
    }

    public function assineproduct($data) {
        $data['seller_id'] = Mage::getSingleton('customer/session')->getCustomerId();
        $product = Mage::getModel('mpassignproduct/mpassignproduct');
        $product->setData($data);
        $status = Mage::getStoreConfig('marketplace/marketplace_options/product_approval') ? 2 : 1;

        $product->setFlag($status);
        $product->setCreatedAt(Mage::getModel('core/date')->date('Y-m-d H:i:s'));
        $saved=$product->save();
        $lastId=$saved->getId();

        if($lastId) {
            if($status == 1) {
                $_product=Mage::getModel("catalog/product")->load($data['product_id']);
                $qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();
                $qtyStock = $qtyStock + $data['qty'];
                $this->_saveStock($data['product_id'],$qtyStock,1); 
            }
            $this->uploadImages($lastId);
        }
        return $lastId;
    }

    public function uploadImages($lastId) {
        $target =Mage::getBaseDir().'/media/mpassignproduct/'.$lastId.'/';
        if(isset($_FILES) && count($_FILES) > 0) {
            if(!is_dir(Mage::getBaseDir().'/media/mpassignproduct/')) {
                mkdir(Mage::getBaseDir().'/media/mpassignproduct/', 0755);
            }
            if(!is_dir(Mage::getBaseDir().'/media/mpassignproduct/'.$lastId.'/')) {
                mkdir(Mage::getBaseDir().'/media/mpassignproduct/'.$lastId.'/', 0755);
            }
            foreach($_FILES as $image ) {
                if($image['tmp_name'] != '') {
                    $splitname = explode('.', $image['name']);
                    $splitname[0] = str_replace('-', '', $splitname[0]);
                    $image_name = preg_replace('/[^A-Za-z0-9\-]/', '', $splitname[0]);
                    $target1 = $target.$image_name.".".$splitname[1];
                    move_uploaded_file($image['tmp_name'],$target1);
                }
            }               
        }
    }

    public function _saveStock($lastId,$stock,$isstock) {
        $stockItem = Mage::getModel('cataloginventory/stock_item');
        $stockItem->loadByProduct($lastId);
        if(!$stockItem->getId()){$stockItem->setProductId($lastId)->setStockId(1);}
        $stockItem->setProductId($lastId)->setStockId(1);
        $savedStock = $stockItem->save();
        $stockItem->load($savedStock->getId())->setQty($stock)->save();
        if($stock) {
            $stockItem->setData('is_in_stock', $isstock); 
        }
        $savedStock = $stockItem->save();
    }

    public function getAssignProDetails($productid) {
        $collection=Mage::getModel('mpassignproduct/mpassignproduct')->getCollection()
                            ->addFieldToFilter('product_id',array('eq'=>$productid))
                            ->addFieldToFilter('qty',array('gt'=>0))
                            ->addFieldToFilter('flag',array('eq'=>'1'))
                            ->setOrder("price","ASC");
        $data=array();                          
        $totalAssignQty=0;
        $priceFrom=0;               
        foreach($collection as $item) {
            $price=$item->getPrice();
            break;
        }           
        foreach($collection as $item) {
            $totalAssignQty = $totalAssignQty + $item->getQty();
        }   
        $productModel = Mage::getModel("catalog/product")->load($productid);
        if($productModel->getPrice() < $price)
            $priceFrom=$productModel->getPrice();
        else
            $priceFrom=$price;
        $totalProductQty = $productModel->getStockItem()->getQty();
        $data['sellerqty'] = $totalProductQty - $totalAssignQty;
        $data['assignqty'] = $totalAssignQty;
        $data['pricefrom'] = $priceFrom;
        $data['assignCount'] = count($collection);
        return $data;
    }   

    public function getSellerList($productid) {
        $customerId=Mage::getSingleton('customer/session')->getCustomerId();
        $collection=Mage::getModel('mpassignproduct/mpassignproduct')->getCollection();
        $collection->addFieldToFilter('product_id',array('eq'=>$productid));
        $i=0;
        foreach($collection as $item) {
            $sql2=Mage::getModel('marketplace/userprofile')->getPartnerProfileById($item['seller_id']);
            $item['logo']=$sql2['logopic'];
            $item['sellername']=$sql2['firstname']." ".$sql2['lastname'];
            $sql[$i]=$item;
            $i++;
        }
        return $sql;
    }

     public function detailsale($mageproid, $userid) {
        $data = array();
        $sum=0;
        $arr=array();
        $quantity = Mage::getModel('marketplace/saleslist')->getCollection()
                            ->addFieldToFilter('mageproid',array('eq'=>$mageproid))
                            ->addFieldToFilter('mageproownerid',array('eq'=>$userid));
        $data['quantitysoldconfirmed']=0;
        $data['quantitysoldpending']=0;
        foreach($quantity as $rec) {
            $status=$rec->getCpprostatus();
            $qty=$rec->getMagequantity();
            if($status==1) {
                    $data['quantitysoldconfirmed']=$data['quantitysoldconfirmed']+$qty;
            } else if($status==0) {
                    $data['quantitysoldpending']=$data['quantitysoldpending']+$qty;
            }
        }
        $amountearned = Mage::getModel('marketplace/saleslist')->getCollection()
                    ->addFieldToFilter('mageproid',array('eq'=>$mageproid))
                    ->addFieldToFilter('mageproownerid',array('eq'=>$userid));
        foreach($amountearned as $rec) {
            $sum=$sum+$rec->getactualparterprocost();
            $arr[]=$rec->getClearedAt();
        }
        $data['amountearned']=$sum;
        $data['clearedat']=$arr;
        $quantitysold = Mage::getModel('marketplace/saleslist')->getCollection()
                    ->addFieldToFilter('mageproid',$mageproid)
                    ->addFieldToFilter('mageproownerid',$userid);
        $data['quantitysold']=0;
        $data['quantitysold']=0;
        foreach($quantitysold as $rec) {
            $qty = $rec->getMagequantity(); 
            $data['quantitysold']=$data['quantitysold']+$qty;

        }
        return $data;
    }

    public function detsalebyid($productId, $userid) {
        $data = array();
        if($productId > 0) {
           $collection = Mage::getModel('marketplace/saleslist')->getCollection();
           $collection->addFieldToFilter('mageproid',array('eq'=>$productId));
            $collection->addFieldToFilter('mageproownerid',array('eq'=>$userid));
            $i=0;
            foreach ($collection as $record) {
                $data[$i]=array(
                            'magequantity'=>$record->getmagequantity(),
                            'actualparterprocost'=>$record->getactualparterprocost()
                        );
                $i++;
            }
            return $data;
        }
    }
}
Était-ce utile?

La solution

je pense que ce n'est pas le bug dans cette extension.cette extension fonctionne comme nombre de nombre total de quantité par tout vendeur de ce produit.donc dans l'admin c'est en montrant la quantité correcte pour la vente.

permettez-moi de prendre votre exemple.

le vendeur est Un la base de vendeur avec 10 la quantité et le vendeur B attribué le même produit avec 5 quantité.

le nombre total de quantité pour l'achat est 15 quantité.

De sorte que son affichage 15 sous Gérer Products > quantity. qui sont correctes.

si vous changer la quantité de 10 de vendeur vous lose votre 5 la quantité de vendeur b.

Autres conseils

Essayez ceci:

<?php
  class Webkul_Mpassignproduct_Model_Mpassignproduct extends Mage_Core_Model_Abstract
{
    public function _construct() {
        parent::_construct();
        $this->_init('mpassignproduct/mpassignproduct');
    }

    public function editproduct($data)
    {
        $sellerId = Mage::getSingleton('customer/session')->getCustomerId();

        $products = Mage::getModel('mpassignproduct/mpassignproduct')->getCollection()
                            ->addFieldToFilter('seller_id',array('eq'=>$sellerId))
                            ->addFieldToFilter('mpassignproduct_id',array('eq'=>$data['pro_id']));
        if(count($products)) {
            foreach($products as $product) {
                $isApproved = $product->getFlag();
                $preQty = $product->getQty();
                $product->setQty($data['qty']+$product->getQty());
                $product->setPrice($data['price']);
                $product->setProductCondition($data['product_condition']);
                $product->setProductDescription($data['product_description']);
                $saved=$product->save();
                $lastId=$saved->getId();
            }
        }
        if($lastId)  {
            if($isApproved == 1) {
                $_product = Mage::getModel("catalog/product")->load($data['product_id']);
                $qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();
                $qtyStock = ($qtyStock - $preQty) + $data['qty'];
                $this->_saveStock($data['product_id'],$qtyStock,1); 
            }
            $this->uploadImages($lastId);
        }

        return $lastId;
    }
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top