문제

시장 Multi 공급업체/판매 사이트,의 판매 제품을 판매할 수 있을 통해 우리의 사이트입니다.

우리가 사용하는 확장자를 구현한다.

사용하기 전에 확장자,우리가 볼 수 있는 정확한 수량에서 Catalog>제품을 관리 할 수 있습니다.

에서 확장자가 버그 그래서,

카탈로그에서>제품 관리가 우리가 볼 수 있는"수량"각 제품에 대한 이 수량의 조합을 모든 판매자.

예제:제품"A"2 판매합니다.

판매자 이 은 판매자와 10 수량 판매자 B 에 할당된 동일한 제품으로 5 quantity.

그래서 그 표시 15관리 제품소개>수량.

Extension 이상의 승마 기본적 양 기능입니다.

을 삭제하고자 합니다 이 통고 있습니다.

나이가 코드에 대한 재정:

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;
        }
    }
}
도움이 되었습니까?

해결책

내 생각에 이것은 버그에서 확장.이 확장은 같은 작업의 총 수량에 의해 모든 판매하는 제품입니다.그래서 관리자가 이를 보여주는 정확량을 판매합니다.

나의 예입니다.

판매자 이 판매자 베이스10 양 및 판매자 B 에 할당된 동일한 제품으로 5 quantity.

그래서 총 수에 대한 수량의 구매가 15 quantity.

그래서 그 표시 15 아 관리 Products > quantity. 는 정확합니다.

을 변경하는 경우 기본 수량 10 판매자의 당신이 lose 귀하의 5 량 판매자 b.

다른 팁

시도 :

<?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;
    }
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top