سؤال

أستخدم مراقب الأحداث هذا في متجر متعدد للحصول على بنية عنوان URL مخصصة الشركة المصنعة في مفتاح عنوان url للمنتج.
المشكلة الآن هي أنني بحاجة إلى هذا لمعرف متجر واحد محدد فقط.كيف يمكنني تعيين مراقب حدث مخصص لمعرف متجر معين؟

هل كانت مفيدة؟

المحلول

يمكنك فقط التحقق من الداخل من المراقب إذا كنت في عرض المتجر الصحيح.

giveacodicetagpre.

نصائح أخرى

في هذه الحالة، أقترح عليك استخدام catalog_product_save_after.

وايضا لو اردت لمتجر معين ثم استخدام $observer->getEvent()->getProduct()->getStoreId() التي تعطي معرف متجر المنتج الخاص بك.

انظر لماذا أقترح عليك هذا الاستخدام $observer->getEvent()->getProduct()->getStoreId() بسبب هذا الارتباط كيف يمكنني الحصول على سياق المتجر الصحيح في مراقب حفظ المنتج؟

لذلك تحتاج إلى وضع الشرط أدناه على المراقب الخاص بك

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

مراقب

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);      
            }
        }
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top