【问题标题】:Quantity is not updating in magento sitemagento 网站中的数量未更新
【发布时间】:2016-02-25 13:29:55
【问题描述】:

我们有市场多供应商/卖家网站。我们为卖家提供了通过前端更新产品信息的选项.....

因为它是市场网站,我们有很多卖家。

卖家 A 在前端上传了产品 A [数量 = 20]

如果卖家B有相同的产品,他会将相同的产品分配到他的账户[数量=5]

在后端显示 20 + 5 = 25 个数量。

现在问题是当卖家 A 将数量从 20 更新到 40 时,它在前端显示 40,一旦我们刷新页面,它只显示 35。意味着刷新后显示数量 [ 卖家 A 数量-卖家 B 数量]

但它应该显示卖家A数量。

在它正常工作之前,后来我们做了一些代码更改而不是遇到这个问题。

在 qty 文本字段看起来像图像之前:

点击图片中的“编辑”按钮后,如下图所示:

但我们决定显示下图:

所以我们将代码更改为如上图所示。比这个问题发生了。

代码之前: [一切正常]

<td>
<?php
$selllermpassignproduct=Mage::getModel('mpassignproduct/mpassignproduct')->getAssignProDetails($products->getId());
//Zend_Debug::dump($selllermpassignproduct,null,true);
$stock_item=Mage::getModel('cataloginventory/stock_item')->loadByProduct($products);

$SellerQty=isset($selllermpassignproduct['sellerqty'])?$selllermpassignproduct['sellerqty']:$stock_item->getQty();
$assignqty=isset($selllermpassignproduct['assignqty'])?$selllermpassignproduct['assignqty']:0;
?>

<span id="valueqty_<?php echo $products->getId(); ?>"><?php echo (int) $SellerQty; ?></span>
<input type = "text" id = "qty_<?php echo $products->getId(); ?>" onkeydown="validateNumbers(event)" name = "stock" value = "<?php echo (int) $SellerQty; ?>" style = "display:none"/>



<span class="label wk_action" id="edit_link_<?php echo $products->getId(); ?>">
<img onclick="showField('<?php echo $products->getId(); ?>'); return false;" src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?>"/>
</span>  

<p id="updatedqty_<?php echo $products->getId(); ?>" style = "display:none;color:red;">Updated</p>
<br/>


<button id="update_button_<?php echo $products->getId(); ?>" class="buttons" onclick="updateField('<?php echo $products->getId(); ?>',<?php echo $assignqty;?>); return false;" style="display:none" >
<span><span style="font-size:12px;"><?php echo $helper->__('Update') ?></span></span>
</button>

<button id="reset_button_<?php echo $products->getId(); ?>" type="reset" class="cancel" onclick="hideReset('<?php echo $products->getId(); ?>'); return false;" style="display:none" >
<span><span><?php echo $helper->__('Cancel') ?></span></span>
</button>

脚本

function hideReset(product_id) {

            var qtyId='#qty_'+ product_id;
            var editLink="#edit_link_"+ product_id;
            var updateButton="#update_button_"+ product_id;
            var resetButton="#reset_button_"+ product_id;

            $wk_jq(qtyId).hide();
            $wk_jq(editLink).show();
            $wk_jq(updateButton).hide();
            $wk_jq(resetButton).hide();
        }


        function updateField(product_id,assignqty)
        {
            var qtyId = '#qty_'+ product_id;
            var valueId = '#valueqty_'+ product_id;
            var updatedqty = '#updatedqty_'+ product_id;


            var editLink = "#edit_link_"+ product_id;
            var updateButton = "#update_button_"+ product_id;
            var resetButton = "#reset_button"+ product_id;
            var url ='<?php echo Mage::getUrl('marketplace/marketplaceaccount/updateField/')?>';

            $wk_jq(qtyId).toggle()

            $wk_jq(editLink).hide();
            $wk_jq(updateButton).show();
            $wk_jq(resetButton).show();

            $qty = $wk_jq(qtyId).val();
            jQuery(valueId).html($qty);
            hideReset(product_id);

            var tmpQty=assignqty+ parseInt($qty) ;

            new Ajax.Request(url, {
                method: 'post',
                parameters: {id: product_id, qty: tmpQty},
                onComplete: function (transport) {
                    //alert(transport.responseText);
                    jQuery(priceId).val($price);
            // $wk_jq(priceId).setValue($price);

                    jQuery(updatedqty).show().delay(2000).fadeOut();

                    $updateButton.prop('disabled', false);

                    // $wk_jq(qtyId).setValue($qty);



                }
            });
        }

当前代码

在上面的代码中,我们注释了一些行,我们替换了一些代码,如下所示。

注释代码

 <!--   <img onclick="showField('<?php echo $products->getId(); ?>'); return false;" src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?> -->

    **script**

    //$wk_jq(qtyId).toggle()
    //$wk_jq(updateButton).show();
    //hideReset(product_id);
    //jQuery(updatedqty).show().delay(2000).fadeOut();

替换代码 1)

 <input type = "text" id = "qty_<?php echo $products->getId(); ?>" onkeydown="validateNumbers(event)" name = "stock" 
    value = "<?php echo (int) $SellerQty; ?>" style = "display:none"/> 

<input type = "text" id = "qty_<?php echo $products->getId(); ?>" onkeydown="validateNumbers(event)" 
name = "stock" class="ama1" value = "<?php echo (int) $SellerQty; ?>" />

替换代码 2)

 var tmpQty=assignqty+ parseInt($qty) ;          
   new Ajax.Request(url, {
   method: 'post',
   parameters: {id: product_id, qty: tmpQty},

var tmpQty=parseInt(assignqty)+ parseInt($qty) ;
 new Ajax.Request(url, {
 method: 'post',
 parameters: {id: product_id, qty: $qty},

【问题讨论】:

    标签: database magento


    【解决方案1】:

    我找到了第一个问题的解决方案。

    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');
         $special= $this->getRequest()->getParam('specialprice');
    
         $i=1;
         foreach ($ids as $key => $value) {
            $i=$i+1;
              $qty = $this->getRequest()->getParam('stock'.$i);
         $product = Mage::getModel('catalog/product')->load($value);
         $product->setPrice($price[$key]);
         $product->setSpecialPrice($special[$key]);
         //$product->setQty($qty);
    
        $product->save();
    
        $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($value);
        $stockItem->setData('manage_stock', 1);
        $stockItem->setData('qty', $qty);
    
        $stockItem->save();
         }
        Mage::getSingleton('core/session')->addSuccess( Mage::helper('marketplace')->__('Products has been sucessfully deleted from your account'));
        $this->_redirect('marketplace/marketplaceaccount/myproductslist/');
        }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-27
      • 2014-10-10
      • 1970-01-01
      • 2017-01-23
      • 2011-01-12
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      相关资源
      最近更新 更多