Magento 1.9.3: Как отобразить цену пользовательских опций (отдельно) на странице корзины и оформления заказа?


11

Я хочу отобразить цену пользовательской опции на странице корзины и оформления заказа.

Я следую за этим URL, но отображается ошибка «Неустранимая ошибка: вызов функции-члена getValue () для необъекта» в

приложение / дизайн / интерфейс / по умолчанию / тема / шаблон / выписка / корзина / товар / default.phtml

    $optionId = $_option['option_id'];
    $product = $_item->getProduct();
    $option = $product->getOptionById($optionId);
    $itemOption = $_item->getOptionByCode('option_' . $option->getId());
    $price = false;
    foreach ($option->getValues() as $values) {
        if ($values->getId() == $itemOption['value']) {
            $price = $values->price;
        }
    }
    if ($price !== false) {
        echo Mage::helper('core')->currency($price);
    }

Ссылочный URL: /programming/11966256/magento-custom-options-showing-price-in-cart-checkout-page

У меня есть еще одно требование с ценой пользовательского варианта на странице корзины и оформления заказа.

Пожалуйста, откройте ссылку ниже и установите флажок «Интересует вышивка». Некоторые параметры покажут, какие из них являются пользовательскими. Здесь у двух вариантов есть цена «Плата за создание логотипа» и «Стоимость вышивки логотипа» . Когда я выберу все варианты и добавлю в корзину. На странице корзины, если я увеличу количество товара, цена всех опционов возрастет с количеством. Но я хочу, чтобы при увеличении количества товара изменялась только опция «Вышивка логотипа (35 долларов США)», а не «Сбор за создание логотипа (300 долларов США)» .

Пример. Если цена продукта составляет 50 долларов США, а для продукта предусмотрены две опции: «Плата за создание логотипа (300 долларов США)» и «Плата за вышивание логотипа (35 долларов США)» . Когда мы добавляем товар (количество 1) в корзину с обоими пользовательскими опциями (промежуточный итог составляет $ 385).

Итого: (цена продукта (50 долларов) + сбор за создание логотипа (300 долларов) + сбор за вышивку логотипа (35 долларов)) * 1 = 385 долларов

Теперь мы увеличиваем количество продукта (2), тогда промежуточный итог:

Итого: (цена продукта (50 долларов) + сбор за создание логотипа (300 долларов) + сбор за вышивку логотипа (35 долларов)) * 2 = 770 долларов

Но я хочу изменить в подытоге. Я хочу промежуточный итог, как это:

Итого: ((цена продукта (50 долларов США) + плата за вышивку логотипа (35 долларов США) * 2) + плата за создание логотипа (300 долларов США) = 470 долларов США (170 долларов США + 300 долларов США)

«Плата за создание логотипа ($ 300)» не зависит от количества, добавьте только одно количество для одного продукта.

Означает отображение товара "Цена за единицу" без цены пользовательской опции.

URL демонстрации: http://superbuniforms.com/magento/medical-lab-coat-unisex-sky-blue.html

Пожалуйста, предложите.

Спасибо!


привет чандра бхушан, нужен ли вам вывод, как показано на этом снимке экрана? prnt.sc/fbjupp
K

да, но некоторые изменения. На скриншоте цена пользовательского параметра (238 и 30 долларов) не включена в промежуточный итог. Но мне нужно добавить промежуточный итог. Согласно вашему скриншоту, мне нужно это как- "(цена за единицу (35,62 $) + опция рамки (30 $)) * 2 (количество) + Квадрат (238 * 1 $) = 369,24 $ (промежуточный итог продукта)"
Чандра Бхушан

Вы сообщаете «Неустранимая ошибка: вызов функции-члена getValue ()», но я не вижу getValue () в вашем коде ¿?
Рауль Санчес

Ответы:


1

Вам нужно переопределить файл phtml и добавить пользовательскую цену.

app\design\frontend\venoder\theme\Magento_Catalog\templates\product\view\addtocart.phtml,

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.