Мы добавили атрибут продукта «да/нет» с надписью: «Разрешить использование этого продукта для купонов?» со значением по умолчанию «да».Корзина Правила, противоположные
Причина в том, что мы никогда не хотим, чтобы команда по продажам предоставляла скидки на определенные основные продукты из доступных тысяч.
Мы можем добавить эти продукты в качестве SKU к каждой из тысяч созданных купонов, но это может быть изменено случайно или неправильно указано продавцом, создающим купоны.
Поэтому мы попросили их добавить это правило к своим новым купонам, чтобы исключить эти продукты. Мы также обновили все остальные купоны с помощью кода, включив это правило.
Когда я проверить правила на Magento 1.5, Community Edition, он делает именно противоположное тому, что говорит состояние.
Когда я проверяю одно и то же правило на нашем другом Enterprise решении (magento 1.9), он фактически делает то, что он должен.
Когда у меня есть один продукт в корзине покупок, являющийся продуктом, у которого этот атрибут установлен на «Нет», и я применяю код купона, он принимает код купона. На другой системе (Enterprise) она отвергает ее, как и должно.
Неужели кто-то еще сталкивался с этим?
ОБНОВЛЕНИЕ: Хорошо, это только стало более интересным. Когда я прошел классы Rule, продукт был передан, но атрибут продукта не прошел. Областью применения является веб-сайт, и я проверил, что он сохранен под этой областью в конце.
Это действительно странно ...
О системе предприятия, атрибут продукта, с одной и той же конфигурации и данные поступают через.
Я даже пытался не иметь двойных негативов, с другим новым атрибутом, чтобы убедиться. Выполнение следующего правила: купон получает отказ: «Код купона недействителен». Это правильно, так как продукт установлен как «Можно использовать купон? = Нет».
Но проблема в том, что я не хочу, чтобы сделать проверку в отношении всех других продуктов, а против, те немногие, которые были помечены как «Нет».
В любом случае это не сработает для нас, так как мы не хотим применять купон, если в тележке есть какой-либо продукт, который имеет значение «Нет» для атрибута «Может использовать купон?».
Это двойное отрицательное правило, независимо от того, как вы его смотрите.
Я выполнил операцию /app/code/core/Mage/SalesRule/Model/Rule/Condition/Product.php через функцию validate() при добавлении продукта во второй раз, и данные отображаются в атрибуты, но когда я перехожу и повторно применяю купон и снова выполняю эту функцию, эти значения исчезают. это странно.
При добавлении нового продукта в корзине:
При Re приложени Купон:
Где, черт возьми, сделал описание и некоторые другие атрибуты деваться?
ОБНОВЛЕНИЕ ПРИМЕЧАНИЕ Я приближаюсь. Когда я изменяю следующий Validate() в "/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product.php" из следующих функций:
public function validate(Varien_Object $object)
{
$product = false;
if ($object->getProduct() instanceof Mage_Catalog_Model_Product) {
$product = $object->getProduct();
} else {
$product = Mage::getModel('catalog/product')
->load($object->getProductId());
}
$product
->setQuoteItemQty($object->getQty())
->setQuoteItemPrice($object->getPrice())
->setQuoteItemRowTotal($object->getBaseRowTotal());
return parent::validate($product);
}
Для этого:
public function validate(Varien_Object $object)
{
$product = false;
$product = Mage::getModel('catalog/product')
->load($object->getProductId());
$product
->setQuoteItemQty($object->getQty())
->setQuoteItemPrice($object->getPrice())
->setQuoteItemRowTotal($object->getBaseRowTotal());
return parent::validate($product);
}
Тогда он отлично работает!
Ты просто спас мне жизнь, чувак! –