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

Сортировка в "сопутствующих" товара


nash

Recommended Posts

Добрый день! Подскажите, пожалуйста, как сделать у сопутствующих товаров (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']
				);
			}
		}

 

 

Надіслати
Поділитися на інших сайтах


  • 7 months later...
  • 4 weeks later...

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

У меня используется 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
Надіслати
Поділитися на інших сайтах


  • 1 year later...

Такая же проблема, перерыл модели и контроллеры, но не понял куда вставить сортировку. Нужно, что бы в блоки related_products, в product_tpl выводилась сортировка согласно полю "sort_order " из таблицы "_product". Версия ocStore 2.3.0.2.3. Помогите с решением. Поиск не дал решения.

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

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

Important Information

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