Если продукт изменен в администраторе, я ищу для него событие/наблюдателя ... или если он изменен с помощью импорта cron/product.Как быть предупрежденным, если продукт отключен в magento EE
Вот что у меня есть:
У меня есть модуль:
приложение/и т.д./модули
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Alertstatus_Disabled>
<active>true</active>
<codePool>community</codePool>
</Alertstatus_Disabled>
</modules>
</config>
приложение/код/сообщества/Alertstatus/Disabled/и т.д./config.xml
<config>
<modules>
<Alertstatus_Disabled>
<version>1.0.0></version>
</Alertstatus_Disabled>
</modules>
<global>
<models>
<disabled>
<class>Alertstatus_Disabled_Model</class>
</disabled>
</models>
<events>
<catalog_product_save_before>
<observers>
<update_status_disabled>
<type>singleton</type>
<class>disabled/observer</class>
<method>disabledStatusChange</method>
</update_status_disabled>
</observers>
</catalog_product_status_update>
</events>
<template>
<email>
<custom_order_tpl module="Alertstatus_Disabled">
<label>Status Disabled</label>
<file>statusdisabled_alert.html</file>
<type>html</type>
</custom_order_tpl>
</email>
</template>
</global>
</config>
Модель/наблюдатель, где у меня возникают проблемы:
<?php
class Alertstatus_Disabled_Model_Observer
{
public function disabledStatusChange($event)
{
$attributesData = $observer->getEvent()->getAttributesData();
$productIds = $observer->getEvent()->getProductIds();
$user = Mage::getSingleton('admin/session')->getUser();
foreach ($productIds as $id) {
$change = Mage::getModel('some_module/changes');
$change->product_id = $id;
$change->new_values = print_r($attributesData, true);
$change->user_id = ($user) ? $user->getId() : NULL;
$change->created = now();
$change->save();
}
return $this;
}
private function _sendStatusMail($order)
{
$emailTemplate = Mage::getModel('core/email_template');
$emailTemplate->loadDefault('custom_order_tpl');
$emailTemplate->setTemplateSubject('Products have been disabled');
//Get General email address (Admin0>Configuration->General->Store Email Addresses)
$salesData['email'] = Mage::getStoreConfig('trans_email/ident_general/email');
$salesData['name'] = Mage::getStoreConfig('trans_email/ident_general/name');
$emailTemplate->setSenderName($salesData['name']);
$emailTemplate->setSenderEmail($salesData['email']);
$emailTemplateVariables['store_name'] = $order->getStoreName();
$emailTemplateVariables['store_url'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
$emailTemplate->send($order->getCustomerEmail(), $order->getStoreName(), $emailTemplateVariables);
}
}
Ничего, что я пробовал, похоже, работает на меня.