Ürün yönetici olarak değiştirilirse, bunun için bir etkinlik/gözlemci oluşturmayı veya bir cron/ürün içe aktarma yoluyla değiştirilmesini istiyordum. İşte Magento'da bir ürün devre dışı bırakıldığında nasıl uyarı verilir EE
i var ne:Ben bir modül vardır:
app/etc/modüller
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Alertstatus_Disabled>
<active>true</active>
<codePool>community</codePool>
</Alertstatus_Disabled>
</modules>
</config>
app/kod/topluluk/Alertstatus/Engelli/etc/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>
Model/Gözlemci şu anda sorun yaşıyorum:
<?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);
}
}
Denediğim hiçbir şey benim için çalışmıyor gibi görünüyor.