magento - 获取产品更改

标签 magento

情况是:

管理员登录到系统,他以某种方式更改了产品。

例如:

将数量设置为 10
添加 2 张图片
更改说明

有没有办法跟踪这些变化?好吧,我的意思是准确跟踪管理员更改的内容和方式?

我使用 Magento CE 1.6

最佳答案

您可以通过对象的 getOrigData() 找到未更改的数据。方法。获取对象的好时机是通过它的 save_before 事件,所以 create an observercatalog_product_save_before事件。观察者可能包含以下内容:

public function onCatalogProductSaveBefore($observer)
{
  $product = $observer->getProduct();
  if ($product->hasDataChanges()) {
    $newValues = array_diff_assoc($product->getData(), $product->getOrigData());
    $oldValues = array_diff_assoc($product->getOrigData(), $product->getData());
    $added     = array_diff_key($product->getData(), $product->getOrigData());
    $unset     = array_diff_key($product->getOrigData(), $product->getData());
  }
}

请注意 $newValues将包括所有 $added以及已更改其值的现有属性。 $oldValues 同上和 $unset .

关于magento - 获取产品更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8182009/

相关文章:

mysql - 将删除的属性返回到实时站点

javascript - Magento 可配置产品,可选下拉菜单?

email - 将 magento 联系表单电子邮件的 'From' 字段更改为发件人

magento - 创建后更新 Magento 产品属性的数据库字段类型

magento - 如何在magento中创建自己的日志文件

Magento block 类型

magento 自定义管理模块保存操作不起作用

magento - 添加产品 View 附属标签 Magento Enterprise v1.12

magento - 上传特定文件时出现 SSL 错误 : invalid or self signed certificate in Magento 1. 9

php - magento $order->getAllItems() 返回两次相同的项目