情况是:
管理员登录到系统,他以某种方式更改了产品。
例如:
将数量设置为 10
添加 2 张图片
更改说明
有没有办法跟踪这些变化?好吧,我的意思是准确跟踪管理员更改的内容和方式?
我使用 Magento CE 1.6
最佳答案
您可以通过对象的 getOrigData()
找到未更改的数据。方法。获取对象的好时机是通过它的 save_before 事件,所以 create an observer为 catalog_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/