0

we have marketplace multi vendor/seller site. we gave an option for seller to update the product information through frontend.

"Cod" is Attribute Label and "cod_available" is attribute code

Cod attribute is updating only for particular store view

when we update through for our store , its working.

when we update through "Default values", its not working

in the image , you can see : Default wide > English

once we select that and update the attribute value, than its working fine. but

when we select "Default values" , than its not working.

it is dropdown attribute we are facing this problem. but for "textfield" attribute everything is working fine.

enter image description here

we are using following code :

Phtml Code for Cod

<td>

<?php $attribute = $products->getResource()->getAttribute('cod_available');?>
<?php if($attribute):?>
<?php $attribute_value = $attribute ->getFrontend()->getValue($products); ?>

<select id = "cod_<?php echo $products->getId(); ?>" name= "cod[]" > 

<option value="0" <?php if($pro->getCodAvailable()==0) { echo "selected";} ?>>No</option> 
<option value="1"<?php if($pro->getCodAvailable()==1) { echo "selected";} ?>>Yes</option> 

</select> 

<?php endif; ?>

<input type="hidden" name="codcurr_<?php echo $products->getId(); ?>" id="codcurr_<?php echo $products->getId(); ?>" value="<?php echo $products->getCod(); ?>" /> 

<p id="updatedcod_<?php echo $products->getId(); ?>" style = "display:none;color:red; position:relative; top:16px;">Updated</p>
<br/>

<button id="cod_reset_button_<?php echo $products->getId(); ?>" type="reset" class="cancel" onclick="hideResetCod('<?php echo $products->getId(); ?>','<?php echo $products->getPrice(); ?>'); return false;">
<span><span><?php echo $helper->__('Cancel') ?></span></span>
</button>
</span>
</td>

phtml code for all products

<td>
<button id="update_button_<?php echo $products->getId(); ?>" class="button wk_mp_btn1" onclick="updateAllFields('<?php echo $products->getId(); ?>'); return false;" type="button"  >
<span><span style="font-size:12px;"><?php echo $helper->__('Update') ?></span></span>
</button>
</td>

script for Cod

function hideResetCod(product_id,codold) { 

var qtyId='#cod_'+ product_id; 
var currcod='#codcurr_'+ product_id; 
var editLink="#cod_edit_link_"+ product_id; 
var updateButton="#cod_update_button_"+ product_id; 
var valuecod="#valuecod_"+ product_id; 
var resetButton="#cod_reset_button_"+ product_id; 


$wk_jq(valuecod).show(); 
$wk_jq(qtyId).val( $wk_jq(currcod).val()); 
$wk_jq(editLink).show(); 

}




function updateFieldCod(product_id) 
{ 
var codId = '#cod_'+ product_id; 
var currcod='#codcurr_'+ product_id; 
var updatedqty = '#updatedcod_'+ product_id; 
var url ='<?php echo Mage::getUrl('marketplace/marketplaceaccount/updateFieldCod/')?>'; 
$cod = $wk_jq(codId).val(); 
$currcod = $wk_jq(codId).val(); 
if($cod!=$currcod) {
$wk_jq(currcod).val($cod); 
new Ajax.Request(url, { 
method: 'post', 

parameters: {id: product_id, cod: $cod}, 
//parameters: {id: product_id, cod: $cod}, 
onComplete: function (transport) { 
//alert(transport.responseText); 

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

} 
}); 
}
}

Script to update all product infromation

function updateAllFields(product_id) {
        jQuery('#price_reset_button_'+product_id).css('display','none');
        if(jQuery("#price_"+product_id).val() != jQuery("#curr_"+product_id).val())
              updateFieldPrice(product_id);

        if(jQuery("#specialprice_"+product_id).val() != jQuery("#specialcurr_"+product_id).val())
            updateFieldSpecialPrice(product_id);
            updateField(product_id);

        if(jQuery("#cod_"+product_id).val() != jQuery("#codcurr_"+product_id).val())
            updateFieldCod(product_id); 
            updateField(product_id);


            }

Controller.php for Cod

public function updateFieldCodAction(){
        Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);      
        $id= $this->getRequest()->getParam('id');
        $customerid=Mage::getSingleton('customer/session')->getCustomerId();
        $collection_product = Mage::getModel('marketplace/product')->getCollection()->addFieldToFilter('mageproductid',array('eq'=>$id))->addFieldToFilter('userid',array('eq'=>$customerid));

        try{
        $upd_cod = $this->getRequest()->getParam('cod');
        $product = Mage::getModel('catalog/product')->load($id);        
        $product->setData('cod_available',$upd_cod);
        $product->getResource()->saveAttribute($product,'cod_available');  
     //   $product->setCod($upd_cod);

        $product->save();

        echo $cod = $product->getCod();
        echo $name = $product->getName();

        $response['message'] = 'Your Product Is Been Sucessfully Updated';
        $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($response)); 

        }catch(Exception $e){
        echo "Not Saving"; exit;    
        Mage::log($e->getMessage());
        }

      }

controller.php for all product information

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');

        $cod= $this->getRequest()->getParam('cod');

        foreach ($ids as $key => $value) {
    $product = Mage::getModel('catalog/product')->load($value);
    $product->setPrice($price[$key]);
    $product->setSpecialPrice($special[$key]);
    $product->setQty($qty[$key]);

    $product->setCodAvailable($cod[$key]);

$product->save();
        }
        Mage::getSingleton('core/session')->addSuccess( Mage::helper('marketplace')->__('Products has been sucessfully deleted from your account'));
        $this->_redirect('marketplace/marketplaceaccount/myproductslist/');


    }}
  • baby this question needs debugging because it is not default magento feature – Shakir Khan Mar 1 '16 at 5:20
  • please help me how i can debug this ? – Baby in Magento Mar 1 '16 at 5:21
  • remove this code and check it is working from Controller.php for Cod Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); – Qaisar Satti Mar 1 '16 at 7:32
  • i wiil check it. – Baby in Magento Mar 1 '16 at 9:12
  • @QaisarSatti it did't worked for me. – Baby in Magento Mar 1 '16 at 13:30
1
+50
function hideResetCod(product_id,codold) { 

var qtyId='#cod_'+ product_id; 
var currcod='#codcurr_'+ product_id; 
var editLink="#cod_edit_link_"+ product_id; 
var updateButton="#cod_update_button_"+ product_id; 
var valuecod="#valuecod_"+ product_id; 
var resetButton="#cod_reset_button_"+ product_id; 


$wk_jq(valuecod).show(); 
$wk_jq(qtyId).val( $wk_jq(currcod).val()); 
$wk_jq(editLink).show(); 

}




function updateFieldCod(product_id) 
{ 
var codId = '#cod_'+ product_id; 
var currcod='#codcurr_'+ product_id; 
var updatedqty = '#updatedcod_'+ product_id; 
var url ='<?php echo Mage::getUrl('marketplace/marketplaceaccount/updateFieldCod/')?>'; 
$cod = $wk_jq(codId).val(); 
$currcod = $wk_jq(codId).val(); 
if($cod!=$currcod) {
$wk_jq(currcod).val($cod); 
new Ajax.Request(url, { 
method: 'post', 

parameters: {id: product_id, cod: $cod}, 
//parameters: {id: product_id, cod: $cod}, 
onComplete: function (transport) { 
//alert(transport.responseText); 

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

} 
}); 
}
}
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.