Дві спеціальні опції у поєднанні: ціна на рівень не працює


11

Я встановлюю ціни на продукти та рівні в Magento, але я помітив, що у простому продукті зі спеціальними параметрами (наприклад, синя футболка, червона футболка) ціна рівня не працюватиме, якщо ми їх комбінуємо щоб досягти кількості.

Ціни на рівень рівня, здається, працюють лише тоді, коли кількість досягається в одному варіанті продукту, але не в поєднанні двох.

Я прочитав кілька відповідей на форумі Stack Overflow та на форумах Magento, і вони рекомендують створити налаштовані продукти. Однак це може бути досить складно, якщо в магазині є багато продуктів або багато варіацій.

Чи знаєте ви якесь рішення, щоб застосувати ціну на рівень - із комбінацією варіацій?


Ви можете уточнити, який тип синьої футболки та червоної футболки? Це поодинокі продукти, що не мають зв’язку між ними?
Крістоф Ферребоуф

Це були б спеціальні параметри ("синій", "червоний") простого товару "футболка". На Magento в даний час, якщо Tier Ціна була, скажімо так , «10 або більше ви отримуєте знижку», він буде працювати при купівлі 10 червоних або 10 синіх, але не тоді , коли я купити 5 + 5 ...
Арахіс

Як Магенто може знати, що ці два продукти пов'язані?
Крістоф Ферребоуф

Що ж, у моєму прикладі є лише 1 продукт (Simple Product), який має два спеціальні варіанти (варіанти): синій та червоний. Magento не розраховує рівень рівня, коли ви додаєте два варіанти одного простого продукту (тут мова йде про прості продукти, а не про настроювані продукти). Для продуктів, що настроюються , є розширення, яке дозволяє поєднувати цінову ціну ( magentocommerce.com/magento-connect/… ), але знову ж таки, це не мій випадок, у нас занадто багато варіантів для створення продукту за варіантом).
Арахіс

Для цього вам знадобиться спеціальний модуль. Або якби я був ти, я б розглядав можливість настроювати продукти з вказаним вами модулем рівня рівня.
paj

Відповіді:


11

Проблема тут полягає в тому, що Magento розглядає продукти з різними спеціальними параметрами як різні позиції у кошику. Отже, кількість двох варіантів користувацьких варіантів ніколи не додається, щоб мати змогу кваліфікувати позицію котирування за певним рівнем багаторівневого ціноутворення.

Тепер, щоб ця робота передбачала роботу на замовлення. Я можу дати вам вказівки на те, куди ви можете подивитися, щоб він працював у коді.

Перевіряти Mage_Sales_Model_Quote_Address_Total_Subtotal::collect()

У цьому методі вам потрібно буде проглянути всі цитати та зв’язати багаторівневу кількість, що застосовується до кожного з пунктів цитати. Тож скажіть, у вас є два варіанти A і B з кількістю 1 і 3. Ви перейдете цитати та зробите щось на кшталт:

$quoteItemA->setTieredQty(1+3);
$quoteItemB->setTieredQty(1+3); //ofcourse 1 and 3 are dynamic here

Тоді в Mage_Sales_Model_Quote_Address_Total_Subtotal::_initItem

замість використання: $finalPrice = $product->getFinalPrice($quoteItem->getQty()); //on line 115 use:

$finalPrice = $product->getFinalPrice($quoteItem->getTieredQty());

Це передбачає власну роботу, але підхід, який я перелічу, повинен працювати з деякими налаштуваннями льоту, коли ви працюєте через нього.


4

Я можу підтвердити, це працює

        /* hard coded - start */ 
        $cart = Mage::getModel('checkout/cart')->getQuote();
        $total_qty = 0;
        foreach ($cart->getAllItems() as $item2) {
          if ($item2->getProductId() == $quoteItem->getProductId()) $total_qty+= $item2->getQty();    
        }
        $finalPrice = $product->getFinalPrice($total_qty);
        // $finalPrice = $product->getFinalPrice($quoteItem->getQty());
        /* hard coded - end */ 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.