こんにちは、私が直面している問題は、最初は非常に単純なように見えましたが、今では本当の悪夢に変わりました。
すべての製品に属性(つまりポイント)を追加し(管理パネルを使用して非常に簡単に実行されました)、その合計をカート属性としてルールを設定できるようにするように求められました!?
カートの属性が次のように定義されていることは非常に肯定的です。
class Mage_SalesRule_Model_Rule_Condition_Address extends Mage_Rule_Model_Condition_Abstract
{
public function loadAttributeOptions()
{
$attributes = array(
'base_subtotal' => Mage::helper('salesrule')->__('Subtotal'),
'total_qty' => Mage::helper('salesrule')->__('Total Items Quantity'),
'weight' => Mage::helper('salesrule')->__('Total Weight'),
'payment_method' => Mage::helper('salesrule')->__('Payment Method'),
'shipping_method' => Mage::helper('salesrule')->__('Shipping Method'),
'postcode' => Mage::helper('salesrule')->__('Shipping Postcode'),
'region' => Mage::helper('salesrule')->__('Shipping Region'),
'region_id' => Mage::helper('salesrule')->__('Shipping State/Province'),
'country_id' => Mage::helper('salesrule')->__('Shipping Country'),
);
$this->setAttributeOption($attributes);
return $this;
}
<...>
したがって、このモデルを上書きしてその配列に項目を追加すると、ルール定義の管理パネルに表示される属性が取得されます。total_qtyとpayment_methodを除いて、これらすべての属性のsales_flat_quote_addressテーブルに一致する列があるようです。
ここで問題となるのは、ルール処理で新しい属性を計算して評価するにはどうすればよいですか?このテーブルに列を追加し、カートの変更時にその値を更新する必要がありますか?
これを行う方法についての洞察は、非常に価値のあるものになります。