Frage

Ich verwende diesen Event Observer in einem Multistore für eine benutzerdefinierte URL-Struktur Hersteller im Produkt-URL-Schlüssel.
Das Problem ist jetzt, dass ich dies nur für eine bestimmte Shop-ID benötige.Wie kann ich einen benutzerdefinierten Ereignisbeobachter für eine bestimmte Geschäfts-ID festlegen?

War es hilfreich?

Lösung

Sie können einfach den Beobachter überprüfen, wenn Sie sich in der rechten Seite aufbewahren.

generasacodicetagpre.

Andere Tipps

In diesem Fall empfehle ich Ihnen die Verwendung catalog_product_save_after.

Und wenn Sie möchten für ein bestimmtes Geschäft dann benutze $observer->getEvent()->getProduct()->getStoreId() die die Shop-ID Ihres Produkts angeben.

Sehen Sie, warum ich Ihnen diese Verwendung empfehle $observer->getEvent()->getProduct()->getStoreId() wegen diesem Link Wie kann ich im Product Save Observer den richtigen Store-Kontext abrufen?

Daher müssen Sie Ihrem Beobachter die folgende Bedingung stellen

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

Beobachter

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);      
            }
        }
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top