Question

J'utilise cet Event Observer sur un multistore pour une structure d'URL personnalisée Fabricant dans la clé URL du produit.
Le problème est maintenant que j'en ai besoin pour un seul identifiant de magasin spécifique.Comment puis-je définir un observateur d'événements personnalisé pour un identifiant de magasin spécifique ?

Était-ce utile?

La solution

Vous pouvez simplement vérifier à l'intérieur de l'observateur si vous êtes à la bonne vue sur le magasin.

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

Autres conseils

Dans ce cas, je vous suggère d'utiliser catalog_product_save_after.

Et si tu veux pour un magasin particulier puis utilise $observer->getEvent()->getProduct()->getStoreId() qui donnent l'identifiant de votre magasin de produits.

tu vois pourquoi je te suggère d'utiliser ça $observer->getEvent()->getProduct()->getStoreId() à cause de ce lien Comment puis-je obtenir le contexte de magasin correct dans l'observateur de sauvegarde du produit ?

Vous devez donc mettre la condition ci-dessous chez votre observateur

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

Observateur

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);      
            }
        }
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top