Pregunta

Utilizo este evento Observador en una multiestore para una estructura de URL personalizada Fabricante en URL del productollave .
El problema es ahora que necesito esto para un solo ID de tienda específico.¿Cómo puedo configurar un observador de eventos personalizados para ID de tienda específica?

¿Fue útil?

Solución

Solo puede verificar dentro del observador si está en la vista de la tienda correcta.

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

Otros consejos

En este caso, le estoy sugiriendo que use catalog_product_save_after.

Y si quiere para una tienda en particular , use $observer->getEvent()->getProduct()->getStoreId() que le dé la identificación de su tienda de productos.

Vea por qué le sugiero que use $observer->getEvent()->getProduct()->getStoreId() debido a este enlace ¿Cómo puedo obtener el contexto de la tienda correcta en el producto Guardar Observador?

, por lo que debe poner la siguiente condición para su 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 bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top