Перейти к содержанию

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

Добрый день! Подскажите, пожалуйста, как сделать у сопутствующих товаров (related) сортировку по тому порядку, по которому их добавили. Сейчас, как я понимаю, сортировка идет по ID товара. - 

 

я добавил товары в таком порядке - fb9899bdf8.png и надо вывести в витрине в таком же.

Модель:

	public function getProductRelated($product_id) {
		$product_data = array();

		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_related pr LEFT JOIN " . DB_PREFIX . "product p ON (pr.related_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pr.product_id = '" . (int)$product_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

		foreach ($query->rows as $result) {
			$product_data[$result['related_id']] = $this->getProduct($result['related_id']);
		}

		return $product_data;
	}

 

Изменено пользователем nash

Поделиться сообщением


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

Вообщем решил добавить input (для значения сортировки) в Сопутствующие товары. В таблице product_related сделал поле sort_related.

<label class="col-sm-2 control-label" for="input-related"><span data-toggle="tooltip" title="<?php echo $help_related; ?>"><?php echo $entry_related; ?></span></label>
                <div class="col-sm-10">
                  <input type="text" name="related" value="" placeholder="<?php echo $entry_related; ?>" id="input-related" class="form-control" />
                  <div id="product-related" class="well well-sm" style="height: 150px; overflow: auto;">
                    <?php foreach ($product_relateds as $product_related) { ?>
                    <div id="product-related<?php echo $product_related['product_id']; ?>">
					<input type="text" name="product_related_sort" value="<?php echo $product_related['sort_related']; ?>" />
					<i class="fa fa-minus-circle"></i><?php echo $product_related['name']; ?>
                      <input type="hidden" name="product_related[]" value="<?php echo $product_related['product_id']; ?>" />
                    </div>
                    <?php } ?>
                  </div>
                </div>

 

А как в контроллере объявить не понимаю:

if (isset($this->request->post['product_related'])) {
			$products = $this->request->post['product_related'];
		} elseif (isset($this->request->get['product_id'])) {
			$products = $this->model_catalog_product->getProductRelated($this->request->get['product_id']);
		} else {
			$products = array();
		}
		
		$data['product_relateds'] = array();

		foreach ($products as $product_id) {
			$related_info = $this->model_catalog_product->getProduct($product_id);

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

 

 

Поделиться сообщением


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

Можно решить совсем по-простому, используя любое "лишнее" поле из карты товара.

У меня используется mpn, решение подсказал  shchs , за что ему еще раз спасибо.

 

При вводе товара туда вводится значение sort_order товара, предваренное назначенной цифрой для категории.

В приведенной в стартовом посте функции getProductRelated в конец запроса

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_related pr LEFT JOIN " ...и так далее........

просто пишется  ORDER BY p.mpn ASC .

 

Всё замечательно работает уже почти 5 лет.  У меня порядок сортировки по категориям не сквозной для всей базы,

поэтому пришлось для каждой из категорий назначить некий префикс от 1 до 8  Например внутри категории товар имеет

порядок 334, а самой категории назначен префикс 5. Тогда в поле mpn вводится 5334.

Т.е. таким образом автоматически выстраивается сортировка related по категориям.

Изменено пользователем alex39

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Otvet
      300.00 руб
      Скачать/Купить дополнение


      Sorts&Limits : Настраиваемая сортировка
       
       
      Модуль позволяет настраивать сортировку товаров в категориях/производителях/поиске/акциях, а так же добавляет новые варианты сортировки товаров.
      Так же имеется возможность управлять кол-вом товара на страницу и скрывать товары не в наличии
      Функции:
      настройка вывода пунктов сортировки в магазине выбор сортировки по умолчанию добавление сортировки по Новизне и Остатку возможность выводить сначала товары в наличии выбор вариантов сортировки по наличию (статус или нулевой остаток) возможность скрыть товары не в наличии настроить список чисел вывода кол-ва товара    
       
      Установка 2.3:
       
      Установка 2.0-2.1:
      Зайдите в Дополнения - Установка Выберите файл *.ocmod.zip (распаковывать не нужно) После установка перейдите в Дополнения - Модификации и обновите кеш Перейдите в Дополнения - Модули и активируйте модуль SORTS+ Выберите нужные настройки и Сохраните При возникновении проблем, установите это http://www.opencart.com/index.php?route=extension/extension/info&extension_id=18892 Установка 1.5:
      Распакуйте архив в корень сайта Очистите папку vqcache Перейдите в Дополнения - Модули и активируйте модуль SORTS+ Выберите нужные настройки и Сохраните Добавил Otvet Добавлено 04.10.2015 Категория Фильтры Системные требования Сайт разработчика Старая цена Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1 ocStore 2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От Otvet
      Модуль позволяет настраивать сортировку товаров в категориях/производителях/поиске/акциях, а так же добавляет новые варианты сортировки товаров.
      Так же имеется возможность управлять кол-вом товара на страницу и скрывать товары не в наличии
      Функции:
      настройка вывода пунктов сортировки в магазине выбор сортировки по умолчанию добавление сортировки по Новизне и Остатку возможность выводить сначала товары в наличии выбор вариантов сортировки по наличию (статус или нулевой остаток) возможность скрыть товары не в наличии настроить список чисел вывода кол-ва товара    
       
      Установка 2.3:
       
      Установка 2.0-2.1:
      Зайдите в Дополнения - Установка Выберите файл *.ocmod.zip (распаковывать не нужно) После установка перейдите в Дополнения - Модификации и обновите кеш Перейдите в Дополнения - Модули и активируйте модуль SORTS+ Выберите нужные настройки и Сохраните При возникновении проблем, установите это http://www.opencart.com/index.php?route=extension/extension/info&extension_id=18892 Установка 1.5:
      Распакуйте архив в корень сайта Очистите папку vqcache Перейдите в Дополнения - Модули и активируйте модуль SORTS+ Выберите нужные настройки и Сохраните
    • От spectre
      300.00 руб
      Скачать/Купить дополнение


      SP Cart Featured
      Версия под 2.3.х
      Адаптация под любую версию линейки 2.x.x и/или шаблон - бесплатная и быстрая
       
       
      Модуль позволяет выводить рекомендуемые товары к товарам, которые находятся в корзине пользователя.
       
      Товары берутся из стандартных сопутствующих товаров, которые на вкладке связи
       
       
      Возможности:
       
      Показ рекомендуемых товаров к товарам, которые находятся в корзине
       
      Можно выводить модуль прямо в корзине Simple!
       
       
       
      Если вам нужна другая реализация вывода или выбора товаров - пишите в личку, договоримся
       
       
      АКЦИЯ!
      ПРИ ПОКУПКЕ ЛЮБЫХ 2х МОДУЛЕЙ - ТРЕТИЙ В ПОДАРОК!
       
      Как получить - купить 2 модуля и написать в ЛС
      Поддержка на 3й - только на этапе установки. Модуль предоставляется только под вашу версию ОС
       
      АКЦИЯ РАБОТАЕТ С 26.12.2018 до XX.XX.XXXX
      Добавил spectre Добавлено 04.04.2018 Категория Модули Системные требования Сайт разработчика Старая цена 555 Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Opencart.pro 2.3  
    • От spectre
      Версия под 2.3.х
      Адаптация под любую версию линейки 2.x.x и/или шаблон - бесплатная и быстрая
       
       
      Модуль позволяет выводить рекомендуемые товары к товарам, которые находятся в корзине пользователя.
       
      Товары берутся из стандартных сопутствующих товаров, которые на вкладке связи
       
       
      Возможности:
       
      Показ рекомендуемых товаров к товарам, которые находятся в корзине
       
      Можно выводить модуль прямо в корзине Simple!
       
       
       
      Если вам нужна другая реализация вывода или выбора товаров - пишите в личку, договоримся
       
       
      АКЦИЯ!
      ПРИ ПОКУПКЕ ЛЮБЫХ 2х МОДУЛЕЙ - ТРЕТИЙ В ПОДАРОК!
       
      Как получить - купить 2 модуля и написать в ЛС
      Поддержка на 3й - только на этапе установки. Модуль предоставляется только под вашу версию ОС
       
      АКЦИЯ РАБОТАЕТ С 26.12.2018 до XX.XX.XXXX
    • От LionHunter
      Здравствуйте
       
      Возможно кто-то такое делал или знает как: необходимо, чтобы товары в категории сортировались (по умолчанию) в зависимости от количества продаж. То есть, товары, которых продано  больше всего за период существования магазина были вверху и далее по убыванию.
      Это вообще реально сделать? Если вдруг есть тема, где что-то подобное уже обсуждалось - буду благодарен за подсказку.  
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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