Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Сортировка рекомендуемых/сопутствующих товаров.


magneto2010
 Поделиться

Рекомендованные сообщения

Речь идет о сопутствующих товарах, которые задаются товару во вкладке Связи.
Задача выводить товары в той последовательности, в которой добавили эти товары в список сопутствующих в админке. Сейчас они выводятся по id от меньшего к большему.

 

Всё что придумал, это добавить еще один столбец в таблицу product_related с названием sort.

В это поле добавлять число из input, равное кол-ву дивов родителя id="product_related"

 

1) В шаблон товара в админке в javascript было внесена переменная n.

 

$('#product-related' + item['value']).remove();
    var n = $("#product-related > div").length;
        $('#product-related').append('<div id="product-related' + item['value'] + '"><i class="fa fa-minus-circle"></i> ' + item['label'] + '<input type="hidden" name="product_related[]" value="' + item['value'] + '" /><input id="count" type="hidden" name="product_related_sort[]" value="' + n + '" /></div>');

 

Не уверен, что это норм вариант, но при добавлении товара добавляется input так как нужно, по моему воображению (а оно может быть не совсем верным).

 

 

Screenshot_2.thumb.jpg.91183618f605ff32591baf37c3ca79f7.jpg

 

2) в контроллере товара 

 

if ($related_info) {
                $data['product_relateds'][] = array(
                    'product_id' => $related_info['product_id'],
                    'name'       => $related_info['name'],
                    'sort'       => $related_info['sort']
                );
            }

 

3) Осталось подключить базу, но не совсем вытягиваю с sql - мог бы кто-то подсобить? Пробовал по аналогии добавить этот столбец (sort) но не работает, уверен, что где-то накосячил.

 

Файл модели с моими "каруселями" product.php

Изменено пользователем magneto2010
Ссылка на комментарий
Поделиться на других сайтах


8 минут назад, nikifalex сказал:

был же модуль готовый где мышкой перетаскивали рекомендуемые.

 

Вы про это? Там  для модуля, а у модуля по другому данные записываются, нежели у товара. Или должно сработать?

 

 

 

Изменено пользователем magneto2010
Ссылка на комментарий
Поделиться на других сайтах


не понял. Идея -  сохранить данные в столбец sort и уже по этим данным сортировать. Или вы говорите, что эти данные не смогут записаться?

Ссылка на комментарий
Поделиться на других сайтах


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

 

 

 

 

Изменено пользователем magneto2010
Ссылка на комментарий
Поделиться на других сайтах


Можете и свой столбец добавить

Только нужно переделывать то, что что связано с рекомендуемыми в админке. Посмотрите как в модели формируется список, метод getProductRelated

Ссылка на комментарий
Поделиться на других сайтах


В 03.09.2018 в 21:29, nikifalex сказал:

а значит сортироваться будут точно так же кто выше у того ID меньше и sort не нужен

Та вы шо?

В реляционных базах, если не указан ORDER BY то порядок сортировки не предсказуем!

 

В 03.09.2018 в 21:33, nikifalex сказал:

и записываться будут точно так же.

Это с каких таких делов?

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

Ссылка на комментарий
Поделиться на других сайтах

4 минуты назад, nikifalex сказал:

порядок указан кто первый в списке у того меньше ID

CREATE TABLE `oc_product_related` (  `product_id` int(11) NOT NULL,  `related_id` int(11) NOT NULL,  PRIMARY KEY (`product_id`,`related_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8

Где здесь id

здесь индекс, а как посчитает оптимизатор так и применит сортировку.

 

8 минут назад, nikifalex сказал:

не надо прямо так серьезно все воспринимать,

Ни в коем случае, я только цитировал вас, в том как я прочитал и понял

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.