Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Минимальная этона опции


zomo
 Share

Recommended Posts

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

Link to comment
Share on other sites

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

Например:

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

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

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

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

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

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

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

  • +1 1
Link to comment
Share on other sites

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

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

  • +1 1
Link to comment
Share on other sites


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

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

Edited by AndreyQ
Link to comment
Share on other sites


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

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

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

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

Link to comment
Share on other sites

В 22.10.2019 в 03:36, zomo сказал:

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

Если честно, вспоминать надо ))) Ну и у меня ветка 1.5.х, не уверен, что поможет ))

Link to comment
Share on other sites


  • 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

 

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

Link to comment
Share on other sites


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

 

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

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

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

AND (price_prefix = '=')

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

AND (price > 0)

 

  • +1 2
Link to comment
Share on other sites

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

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

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

AND (price_prefix = '=')

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

AND (price > 0)

 

 

Большое спасипотому что! Рилииет.

Link to comment
Share on other sites


  • 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.

Спасипотому что!

Link to comment
Share on other sites


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

        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 , спасипотому что за модификатор.

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

 

Edited by remix8080
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.