Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Минимальная цена опции


zomo

Recommended Posts

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

Надіслати
Поділитися на інших сайтах

Опция содержит информацию как должна измениться цена товара при выборе опции.

Например:

Есть товар с тремя опциями, цена на товар с опцией А = 100 руб, с опцией Б = 110 руб., с опцией В = 120 руб.

В базу это заносится следующим образом:

Цена товара 100 руб.

Опция А + 0 руб.

Опция Б + 10 руб.

Опция В + 20 руб.

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

  • +1 1
Надіслати
Поділитися на інших сайтах

Мне в свое время вообще пришлось несколько все усложнить, поскольку понадобилось выводить в категориях стоимость минимально доступной опции. В противном случае выглядело не совсем правильно и вводило людей в заблуждение (либо предъявляли, что обманываем).

Т.е., у товара три опции, 100, 200 и 300 рублей. Первого нет в наличии, соответственно выводится цена 200 рублей. В моем случае с надписью "от..."

  • +1 1
Надіслати
Поділитися на інших сайтах


А зачем усложнять? Опции не удобны людям, не нужны поисковикам,  зачем оно вообще? Мне как покупателю твоя цена от,  накол не важна. Я листаю, вижу цену "от" закрыл сайт и пошел дальше.

Или  я  покупаю айфон за сотку, мне что 20 раз перепроверять какой цвет я выбрал, ну в каком веке живем. Скажите про мебель, профнастил и тд, так оно вообще не продается так, чисто цену показать, аля калькулятор

Змінено користувачем AndreyQ
Надіслати
Поділитися на інших сайтах


2 часа назад, AndreyQ сказал:

Опции не удобны людям, не нужны поисковикам,  зачем оно вообще?

Этого не понять засоткуайфонопокупателям...

Надіслати
Поділитися на інших сайтах

6 часов назад, Moonwalker сказал:

Мне в свое время вообще пришлось несколько все усложнить, поскольку понадобилось выводить в категориях стоимость минимально доступной опции. В противном случае выглядело не совсем правильно и вводило людей в заблуждение (либо предъявляли, что обманываем).

Т.е., у товара три опции, 100, 200 и 300 рублей. Первого нет в наличии, соответственно выводится цена 200 рублей. В моем случае с надписью "от..."

Именно то, что нужно... как усложнить ?))

Надіслати
Поділитися на інших сайтах

Поступил проще, в бд сортировка по цене и break, не камельфо вроде но пойдет...

Надіслати
Поділитися на інших сайтах

Может поможет.

Делал когда-то модификатор по выводу цен опций 'от', если у товара выставлена нулевая цена.

Тестировалось на OC2.3

fix_zero_price_in_category_OC2.3_v2.0.0.ocmod.xml

  • +1 3
Надіслати
Поділитися на інших сайтах

  • 2 months later...
В 23.10.2019 в 22:49, mpn2005 сказал:

Может поможет.

Делал когда-то модификатор по выводу цен опций 'от', если у товара выставлена нулевая цена.

Тестировалось на OC2.3

fix_zero_price_in_category_OC2.3_v2.0.0.ocmod.xml 2 \u043a\u0411 · 2 downloads

 

Почему-то вообще ничего не меняется(. Модификатор рабочий?

Надіслати
Поділитися на інших сайтах


17 часов назад, surlan сказал:

 

Почему-то вообще ничего не меняется(. Модификатор рабочий?

Модификатор делался под префикс цены '='

Найдите в модуле это 

AND (price_prefix = '=')

И замените на это:

AND (price > 0)

 

  • +1 2
Надіслати
Поділитися на інших сайтах

22 часа назад, mpn2005 сказал:

Модификатор делался под префикс цены '='

Найдите в модуле это 


AND (price_prefix = '=')

И замените на это:


AND (price > 0)

 

 

Большое спасибо! Работает.

Надіслати
Поділитися на інших сайтах


  • 1 year later...

Добрый вечер.

В выложенном модификаторе есть кусок кода:

<file path="catalog/model/catalog/product.php">
    <operation>  
      <search><![CDATA[return array(]]></search>
      <add position="before"><![CDATA[
        $price_text = '';
        if (!(float)$query->row['price']) {
            $option_price_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_option_value WHERE product_id = '" . (int)$query->row['product_id'] . "' AND (subtract = '0' OR quantity > '0') AND (price_prefix = '=') ORDER BY price LIMIT 1");
            if ($option_price_query->num_rows) {
                $query->row['price'] = $option_price_query->row['price'];
                $price_text = '<span style="font-weight:normal;">от</span> ';
            }
        }
      ]]></add>
    </operation>        
  </file>

Хочу добавить проверку на уникальность цен опций, т.е. добавлять приставку "от" только для тех товаров, для которых есть более одного уникального значения цены опции.

Запрос должен выглядеть так:

"SELECT count(distinct price) FROM " . DB_PREFIX . "product_option_value WHERE product_id = '" . (int)$query->row['product_id'] . "' AND (subtract = '0' OR quantity > '0') AND (price_prefix = '=')"

Подскажите, пожалуйста, как это правильно "оформить" для catalog/model/catalog/product.php.

Спасибо!

Надіслати
Поділитися на інших сайтах


Вроде разобрался, работает.

        if (!(float)$query->row['price']) {
            $option_price_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_option_value WHERE product_id = '" . (int)$query->row['product_id'] . "' AND (subtract = '0' OR quantity > '0') AND (price_prefix = '=') ORDER BY price LIMIT 1");
            $option_price_query_dist = $this->db->query("SELECT distinct(price) FROM " . DB_PREFIX . "product_option_value WHERE product_id = '" . (int)$query->row['product_id'] . "' AND (subtract = '0' OR quantity > '0') AND (price_prefix = '=')");
            if (($option_price_query->num_rows) && ($option_price_query_dist->num_rows > '1')) {
                $query->row['price'] = $option_price_query->row['price'];
                $price_text = '<span style="font-weight:normal;">от</span> ';
            } else {
                $query->row['price'] = $option_price_query->row['price'];
            }
        }

@mpn2005 , спасибо за модификатор.

П.С. Всех с наступающими новыми цифрами в календаре!
 

 

Змінено користувачем remix8080
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.