Os valores padrão não são adequados, o padrão amplo> inglês é perfeito
-
29-09-2020 - |
Pergunta
temos um site de vários fornecedores/vendedores no mercado.demos ao vendedor a opção de atualizar as informações do produto por meio do frontend.
"Cod" is Attribute Label and "cod_available" is attribute code
O atributo Cod está sendo atualizado apenas para uma visualização de loja específica
quando atualizamos para nossa loja, está funcionando.
quando atualizarmos através de "Valores padrão", não está funcionando
na imagem você pode ver: Largo padrão > Inglês
uma vez que selecionamos isso e atualizamos o valor do atributo, ele funciona bem.mas
quando selecionamos "Valores padrão", não funciona.
é o atributo suspenso que estamos enfrentando esse problema.mas para o atributo "textfield" tudo está funcionando bem.
estamos usando o seguinte código:
Código Phtml para bacalhau
<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>
código phtml para todos os produtos
<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>
roteiro para Bacalhau
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 para atualizar todas as informações do produto
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 para bacalhau
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 para todas as informações do produto
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/');
}}
Solução
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();
}
});
}
}