Привет, проблема, с которой я столкнулся, сначала казалась очень простой, но теперь превратилась в настоящий кошмар.
Меня попросили добавить атрибут (а именно точку) ко всем продуктам (что было сделано довольно просто с помощью панели администратора) и иметь его сумму в качестве атрибута корзины, на который можно установить правила!?
Я совершенно уверен, что атрибуты корзины определены в:
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;
}
<...>
Поэтому, если я перезапишу эту модель и добавлю элемент в этот массив, я получу атрибут, показанный в административной панели определения правила. Кажется, что все эти атрибуты имеют соответствующие столбцы в таблице sales_flat_quote_address, кроме total_qty и payment_method!
Теперь проблема в том, что мне делать, чтобы мой новый атрибут вычислялся и оценивался при обработке правил? я должен добавить столбец в эту таблицу и обновить его значение при изменении корзины?
Любое понимание того, как это сделать, будет иметь большое значение, спасибо.