最後のいくつかの属性の値を自動計算するシステムが必要なので、magento フィードをセットアップしています。
どのようにmagentoにMAX販売価格、MAX定価、および評価の属性を作成させることができますか?また、割引額にはさらに2つの属性1が必要で、割引率には最後の属性が必要です。
どんな助けでも大歓迎です。
最後のいくつかの属性の値を自動計算するシステムが必要なので、magento フィードをセットアップしています。
どのようにmagentoにMAX販売価格、MAX定価、および評価の属性を作成させることができますか?また、割引額にはさらに2つの属性1が必要で、割引率には最後の属性が必要です。
どんな助けでも大歓迎です。
問題を正しく理解できれば、afterLoad
Magento オブジェクトのイベントを使用できる可能性があります。これは、Magento 内のほとんどのモデルで機能します。
一般に、Magento で使用されるほとんどのモデル (つまり、コア ライブラリの製品、注文など、および db アクセスを使用してカスタム モジュールで定義するすべてのモデル) は、Mage_Core_Model_Abstract
特定の「イベント」を提供するクラスを拡張します。ベースのメソッド。
これらのメソッドは_afterDelete
、、、、、、、および_afterDeleteCommit
( Magento > 1.4.2.0 の場合)です。_afterLoad
_afterSave
_afterSavecommit
_beforeLoad
_beforeSave
_beforeDelete
製品に自動計算された属性が必要だと思います。ここでの最初のステップは、Magento 製品のコア モデルをオーバーライドする新しいカスタム モジュールを作成することです。新しく作成されたモデルでは、次のエントリを で使用できます./app/code/local/YourNamespace/YourModule/etc/config.xml
。
[...]
<global>
[...]
<models>
<catalog>
<rewrite>
<product>YourNamespace_YourModule_Model_Product</product>
</rewrite>
</catalog>
</models>
[...]
<global>
[...]
Product
次に、次のファイルに示すように、モデルを上書きできます./app/code/local/YourNamespace/YourModule/Model/Product.php
。
<?php
class YourNamespace_YourModule_Model_Product extends Mage_Catalog_Model_Product
{
protected function _afterLoad()
{
parent::_afterLoad();
//your voodoo goes here.
$my_awesome_calculated_value = $this->getData('my_awesome_float_attribute') / 2;
$this->setData('my_awesome_calculated_value', $my_awesome_calculated_value);
}
}
これにより、モデルがロードされている限り、その計算された値を思いつく方法で使用する機会が得られます。このコードは製品がロードされるたびに実行されることに注意してください。これはかなり頻繁に実行される可能性があります (製品の場合)。
また、この値はモデルが「生きている」限り存在するため、コードの実行が終了すると失われることに注意してください。保存したい場合は_beforeSave
、モデルが読み込まれるたびに入力され、後で保存されるプレースホルダー属性をオーバーライドまたは作成することもできます。
discount_amount
およびdiscount_percentage
iの属性については、同じ戦略を使用します。
dicount_amount
anddiscount_percentage
を計算_afterLoad
してモデルに保存するMagento を初めて使用し、新しいモジュールを作成する方法が明確にわからない場合は、http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/custom_module_with_custom_database_tableから始めることができます(少し古いですが) ) または、stackoverflow を参照してください。
lg、
そして成功を祈る、
フロー