2015-12-22 3 views
0

мы используем многопользовательский сайт magento.Значение атрибута magento не сохраняется в базе данных

Мы предоставили поставщику возможность обновить информацию о продукте в интерфейсе.

Мы используем данный код для обновления цены. его рабочий штраф.

PHTML

<input class="ama1" type = "text" id = "price_<?php echo $products->getId(); ?>" onkeydown="validateNumbers(event)" name= "price[]" value = "<?php echo $products->getPrice(); ?>" style = ""/> 

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

<p id="updatedprice_<?php echo $products->getId(); ?>" style = "display:none;color:red; position:relative; top:16px;">Updated</p> 
<br/> 
<button id="price_update_button_<?php echo $products->getId(); ?>" class="update" onclick="updateFieldPrice('<?php echo $products->getId(); ?>'); return false;" > 
<span><span style="font-size:12px;"><?php echo $helper->__('Update') ?></span></span> 
</button> 


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

JS

function updateFieldPrice(product_id) 
{ 
var priceId = '#price_'+ product_id; 
var currprice='#curr_'+ product_id; 
var updatedqty = '#updatedprice_'+ product_id; 
var url ='<?php echo Mage::getUrl('marketplace/marketplaceaccount/updateFieldPrice/')?>'; 
$price = $wk_jq(priceId).val(); 
$wk_jq(currprice).val($price); 
new Ajax.Request(url, { 
method: 'post', 
parameters: {id: product_id, price: $price}, 
onComplete: function (transport) { 
//alert(transport.responseText); 

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

} 
}); 
} 

controller.php

public function updateFieldPriceAction(){ 
     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_price = $this->getRequest()->getParam('price'); 
     $product = Mage::getModel('catalog/product')->load($id);   

     $product->setPrice($upd_price); 
     $product->save(); 

     echo $price = $product->getPrice(); 
     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()); 
     } 

     } 

Точно так же мы должны UPDA т. е. пользовательский атрибут «local».

Мы используем следующий код для обновления локального. , но не сохраняется в базе данных.

код, значение атрибута = "локальный" атрибут = "Локальный"

PHTML

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

<input class="ama1" type = "text" id = "local_<?php echo $products->getId(); ?>" onkeydown="validateNumbers(event)" name= "price[]" value = "<?php echo $attribute_value; ?>" style = ""/> 

<?php endif; ?> 

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


<p id="updatedlocal_<?php echo $products->getId(); ?>" style = "display:none;color:red; position:relative; top:16px;">Updated</p> 
<br/> 
<button id="local_update_button_<?php echo $products->getId(); ?>" class="update" onclick="updateFieldLocal('<?php echo $products->getId(); ?>'); return false;" > 
<span><span style="font-size:12px;"><?php echo $helper->__('Update') ?></span></span> 
</button> 


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

</span> 

JS

function updateFieldLocal(product_id) 
{ 
var localId = '#local_'+ product_id; 
var currlocal='#curr_'+ product_id; 
var updatedqty = '#updatedlocal_'+ product_id; 
var url ='<?php echo Mage::getUrl('marketplace/marketplaceaccount/updateFieldLocal/')?>'; 
$local = $wk_jq(localId).val(); 
$wk_jq(currlocal).val($local); 
new Ajax.Request(url, { 
method: 'post', 
parameters: {id: product_id, local: $local}, 
onComplete: function (transport) { 
//alert(transport.responseText); 

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

} 
}); 
} 

controller.php

public function updateFieldLocalAction(){ 
     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_local = $this->getRequest()->getParam('local'); 
     $product = Mage::getModel('catalog/product')->load($id);   

     $product->setLocal($upd_local); 

     $product->save(); 

     echo $local = $product->getLocal(); 
     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()); 
     } 

     } 

ответ

0

заменить

$product->setLocal($upd_local); 

с

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); 
    $product->setStoreId(STORE_ID)->setLocal($upd_local)->save(); 
Смежные вопросы