Цена уровня при добавлении товара в корзину - где она рассчитывается?


При добавлении товара в корзину, где именно рассчитывается цена, указанная в предложении для каждого товара? (базовый, специальный, уровень...)

Моя проблема заключается в следующем:

  • У меня есть простой продукт с ценой уровня (кол-во: 1 и выше, группа клиентов: специальные)
  • когда я добавляю товар в корзину, вместо этого добавляется базовая цена (цена уровня игнорируется) (клиент находится в правильной группе клиентов)

НО - я использую 2 среды - разработка и постановка

  • на моей машине разработчика все работает нормально - продукт добавлен с ценой уровня - все в порядке с котировкой (sales_flat_quote_item)
  • на этапе (где у меня нет доступа к базе данных) используется базовая цена

Мне интересно, пропустил ли я какие-либо настройки, но не могу придумать ни одной.

Итак, мой вопрос: где код является лучшим местом для просмотра/проверки того, как рассчитывается указанная цена при добавлении новых кандидатов в цитата?

Использование CE 1.7.0.0

 5
Author: Aasim Goriya, 2013-02-08

1 answers

РЕШЕНО

Хорошо, после некоторого копания в коде..

Похоже, что весь процесс выполняется позже при сохранении корзины на коллекционных итогах:

  • $корзина->сохранить() (где $корзина=Маг::помощник ('оформить заказ/корзина')->Получить карту();)
  • цитата - Итоговые данные()
  • продукт - getFinalPrice()

Смотрите отладочную трассировку ниже:

[0] => Mage_Catalog_Model_Product_Type_Price::getTierPrice() : app\code\community\Mage\Catalog\Model\Product.php (653)
[1] => Mage_Catalog_Model_Product::getTierPrice() : app\code\core\Mage\Catalog\Model\Product\Type\Price.php (164)
[2] => Mage_Catalog_Model_Product_Type_Price::_applyTierPrice() : app\code\core\Mage\Catalog\Model\Product\Type\Price.php (61)
[3] => Mage_Catalog_Model_Product_Type_Price::getBasePrice() : app\code\core\Mage\Catalog\Model\Product\Type\Price.php (80)
[4] => Mage_Catalog_Model_Product_Type_Price::getFinalPrice() : app\code\community\Mage\Catalog\Model\Product.php (715)
[5] => Mage_Catalog_Model_Product::getFinalPrice() : app\code\core\Mage\Sales\Model\Quote\Address\Total\Subtotal.php (115)
[6] => Mage_Sales_Model_Quote_Address_Total_Subtotal::_initItem() : app\code\core\Mage\Sales\Model\Quote\Address\Total\Subtotal.php (48)
[7] => Mage_Sales_Model_Quote_Address_Total_Subtotal::collect() : app\code\core\Mage\Sales\Model\Quote\Address.php (957)
[8] => Mage_Sales_Model_Quote_Address::collectTotals() : app\code\core\Mage\Sales\Model\Quote.php (1263)
[9] => Mage_Sales_Model_Quote::collectTotals() : app\code\core\Mage\Checkout\Model\Cart.php (464)
[10] => Mage_Checkout_Model_Cart::save() : 

Проблема с тем, что цена уровня не используется в другой среде, связана с неправильная группа клиентов при оформлении заказа (это совсем другая проблема - в основном, когда включена проверка НДС, группа может быть автоматически изменена при оформлении заказа)

Спасибо всем, если вы потратили на это какое-то время

 4
Author: ZeD, 2013-02-12 17:43:42