我有一个Weight
属性:
Attribute Code: weight
Scope: general
Catalog Input Type for Store Owner: Text Field
Values Required: yes
Apply To: Simple Product, Bundle Product
Allow HTML Tags on Frontend: yes
而且我有一个General Weight
属性:
Attribute Code: general_weight
Scope: general
Catalog Input Type for Store Owner: Text Field
Values Required: no
Apply To: All Product Types
Use in Advanced Search: yes
Comparable on Front-end: yse
Allow HTML Tags on Frontend: yes
Visible on Product View Page on Front-end: yes
我想将Weight
属性分配给General Weight
没有四位小数。我的意思是我希望Weight
attribute的值(例如2000.0000)复制到General Weight
产品保存时的值中(但没有像2000这样的最后一位小数)。
我以这种方式做了一个小扩展:
我用以下内容创建了Moh3n_Attvaluecopier.xml
文件app/etc/modules
:
<?xml version="1.0"?>
<config>
<modules>
<Moh3n_Attvaluecopier>
<active>true</active>
<codePool>local</codePool>
</Moh3n_Attvaluecopier>
</modules>
</config>
并config.xml
提交app/code/local/Moh3n/Attvaluecopier/etc
以下内容:
<?xml version="1.0"?>
<config>
<modules>
<Moh3n_Attvaluecopier>
<version>0.0.1</version>
</Moh3n_Attvaluecopier>
</modules>
<global>
<models>
<moh3nattvaluecopier>
<class>Attvaluecopier_Model</class>
</moh3nattvaluecopier>
</models>
<events>
<catalog_product_save_after>
<observers>
<moh3n_attvaluecopier_model_observer>
<type>singleton</type>
<class>Moh3n_Attvaluecopier_Model_Observer</class>
<method>copyAttribute</method>
</moh3n_attvaluecopier_model_observer>
</observers>
</catalog_product_save_after>
</events>
</global>
</config>
并Observer.php
提交app/code/local/Moh3n/Attvaluecopier/model
以下内容:
<?php
class Moh3n_Attvaluecopier_Model_Observer
{
private $_processFlag; //to prevent infinite loop of event-catch situation
public function copyAttribute($observer){
if(!$this->_processFlag):
$this->_processFlag=true;
$_store = $observer->getStoreId();
$_product = $observer->getProduct();
$_productid = $_product->getId();
$attrA = $_product->getAttributeText('weight'); //get attribute A's value
$action = Mage::getModel('catalog/resource_product_action');
$action->updateAttributes(array($_productid), array('general_weight'=>$attrWeight),$_store); //assign attrA's value to attrB
$_product->save();
endif;}
}
我weight
用一些数字填充属性,2000.0000
但General Weight
保存产品后什么都不会改变。我的意思是值2000
不会复制到General Weight
属性,General Weight
也不会显示任何东西。
这是您更新的观察者函数:
<?php
public function copyAttribute($observer){
if(!$this->_processFlag):
$this->_processFlag=true;
$_product = $observer->getProduct();
$_productid = $_product->getId();
$productModel = Mage::getModel('catalog/product');
$loadCurrentProduct = $productModel->load($_productid);
$loadCurrentProduct->setGeneralWeight(intval($loadCurrentProduct->getWeight()));
$loadCurrentProduct->save();
endif;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句