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

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


magneto2010

Recommended Posts

Речь идет о сопутствующих товарах, которые задаются товару во вкладке Связи.
Задача выводить товары в той последовательности, в которой добавили эти товары в список сопутствующих в админке. Сейчас они выводятся по 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 користувачів

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

×
×
  • Створити...

Important Information

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