Название варианта товара в выпадающем списке результатов поиска

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #1 makki » 27.09.2017, 14:28

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

Screen.jpg


1) В ajax/search_products.php
после строчки

Код: Выделить всё

$suggestion->value = $product->name;

добавляем

Код: Выделить всё

        foreach ($variants[$product->id] as $key => $variant) {
            if($key == 0) {
                $suggestion->variant = $variant->name;
            } else {
                $suggestion->variant .= ", " .$variant->name;
            }
        }


2) В design/ваш_шаблон/js/okay.js в функции

Код: Выделить всё

$( ".fn_search" ).autocomplete( {

вместо строчки

Код: Выделить всё

return "<div>" + (suggestion.data.image ? "<img align=absmiddle src='" + suggestion.data.image + "'> " : '') + "</div>" + "<a href=" + suggestion.lang + "products/" + suggestion.data.url + '>' + suggestion.value.replace( new RegExp( pattern, 'gi' ), '<strong>$1<\/strong>' ) + '<\/a>' + "<span>" + suggestion.price + " " + suggestion.currency + "</span>";

пишем

Код: Выделить всё

return "<div>" + (suggestion.data.image ? "<img align=absmiddle src='" + suggestion.data.image + "'> " : '') + "</div>" + "<a href=" + suggestion.lang + "products/" + suggestion.data.url + '>' + suggestion.value.replace( new RegExp( pattern, 'gi' ), '<strong>$1<\/strong>' ) + (suggestion.variant ? " (" + suggestion.variant + ")" : '') + '<\/a>' + "<span>" + suggestion.price + " " + suggestion.currency + "</span>";
Последний раз редактировалось makki 27.09.2017, 17:16, всего редактировалось 5 раз.
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #2 OkayCMS » 27.09.2017, 15:22

А если люди будут искать именно синий телефон? Они же тогда даже не перейдут на красный товар

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #3 korshunov » 27.09.2017, 15:50

Аналогично будет, если названия вариантов - размеры одежды или обуви. Если есть многие размеры товары, то поиск все равно будет показывать ОДИН размер, тем самым дезориентируя покупателя. Очень сомнительно, что такой поиск удобен.

Как-то раз по индивидуальному заказу дорабатывал поиск, чтобы выводились и варианты, но в том случае каждый вариант выводился отдельной строкой. На том сайте число вариантов одного товара было в пределах полдесятка, список результатов особо не разбухал и получилось довольно удобно.

Либо надо писать в результатах поиска что-то типа "Телефон. Синий, зеленый и еще 9 вариантов".

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #4 makki » 27.09.2017, 16:11

Спасибо, за отзывы. Исправил в первоначальном сообщении. Теперь показываются названия всех вариантов через запятую.
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #5 OkayCMS » 27.09.2017, 17:09

makki писал(а):Спасибо, за отзывы. Исправил в первоначальном сообщении. Теперь показываются названия всех вариантов через запятую.
Опять таки, неплохо если у вас пара вариантов. А для сайта типа https://imatras.com.ua/products/matras-latte--latte будет плохо. Там один товар будет занимать 3-4 строки в поиске.

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

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #6 korshunov » 29.09.2017, 06:41

Если уж такое делать, то надо бы заодно:
1. При поиске анализировать, нашлось ли совпадение в товаре или имени варианта.
2. Если нашлось только в варианте, то выводить название товара + название варианта.
3. Если нашлось только в товаре, то выводить только название товара.
4. Если нашлось и в товаре и в варианте, то выводить название товара + название варианта.
Также хорошо бы учесть порядок.
5. Вначале выводить найденное в п.4, затем в п.3, затем в п.2.

Чтобы, например поиск на 'туф сини' давал сначала
ТУФли женские летние СИНИе
потом
ТУФли женские подростковые
потом
Пиджак СИНИй

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #7 OkayCMS » 30.09.2017, 07:45

А вот это уже неплохая логика.


Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 7 гостей