잘못된 수량을 표시하는 백엔드에서 때문에 덮어쓰기
-
13-12-2019 - |
문제
리 시장 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;
}
}
. 제휴하지 않습니다 magento.stackexchange