Pergunta

Eu uso este Event Observer em um multistore para uma estrutura de URL personalizada Fabricante na chave de URL do produto.
O problema é que agora preciso disso apenas para um ID de loja específico.Como posso definir um Event Observer personalizado para um ID de loja específico?

Foi útil?

Solução

você pode simplesmente verificar dentro do observador se está na visualização correta da loja.

public function updateurl($observer)
{
    $storeId = your store id here;
    if (Mage::app()->getStore()->getId() == $storeId) {
        //your code goes here.
    }
}

Outras dicas

Neste caso, estou sugerindo que você use catalog_product_save_after.

E se você quiser para uma determinada loja então use $observer->getEvent()->getProduct()->getStoreId() que fornecem o ID da loja do seu produto.

veja por que eu sugiro que você use $observer->getEvent()->getProduct()->getStoreId() por causa deste link Como posso obter o contexto correto da loja no observador de salvamento do produto?

Então você precisa colocar a condição abaixo no seu observador

if ($observer->getEvent()->getProduct()->getStoreId() == 'Your_Match_Store_id') {
}

Observador

class MageStack_24869_Model_Observer
{
    public function updateurl($observer)
    {
        if ($observer->getEvent()->getProduct()) {
            if ($observer->getEvent()->getProduct()->getStoreId() == 'Your_Match_Store_id') {
                $product = $observer->getEvent()->getProduct();
                $url = '';

                if (!is_null($product->getData('country_of_manufacture'))) {
                    $url .= $product->getAttributeText('country_of_manufacture') . '-';
                }

                if (!is_null($product->getData('sku'))) {
                    $url .= $product->getData('sku') . '-';
                }

                if(!is_null($product->getData('name'))) {
                    $url .= $product->getData('name');
                }

                $product->setData('url_key', $url);      
            }
        }
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top