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

Товары из той же категории


Recommended Posts

Ребята, помогите поправить модуль товаров из той же категории. Стандартный модуль выводит товары из всех категорий, в которых находится товар. Нужно, чтобы выводил только из главной категории (она же последняя подкатегория). Версия движка ostore 2.3.0.2.3

 

<modification>
  <code>automatic-related-products</code>
  <name>Automatic related products</name>
  <version>1.0</version>
  <author><![CDATA[<span class="label label-primary">STARTUJEME WEBY</span>]]></author>
  <link>https://www.startujemeweby.cz</link>

  <!-- *** MODEL *** -->
  
  <file path="catalog/model/catalog/product.php">
    <operation>
      <search><![CDATA[$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') . "'");]]></search>
            
      <add position="replace"><![CDATA[
        $query = $this->db->query("SELECT *, (p.product_id) AS related_id FROM
          " . DB_PREFIX . "product_to_category p2c 
            LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)
            LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)
          WHERE 
            p2c.category_id IN (SELECT p2c2.category_id FROM " . DB_PREFIX . "product_to_category p2c2 WHERE p2c2.product_id = " . (int) $product_id . ")
              AND p.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') . "'
            ORDER BY RAND() ASC
          LIMIT 0,8");
      ]]></add>
    </operation>
  </file>  
</modification>

 

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


или вот ещё аналогичный. Не понимаю, зачем выводить товары из всех категорий, главное же в какой подкатегории он находится

 

<?xml version="1.0" encoding="UTF-8"?>
<modification>
	<name>Enable Related Product</name>
	<code>enable-related-product</code>
	<version>1.0.1</version>
	<author>Yasir Malik</author> 
	<link>https://yasmalik.com/</link>
	<vqmver></vqmver>
	<date>17/06/2018</date>
	
	<file path="catalog/model/catalog/product.php">
		<operation>
            <search><![CDATA[$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') . "'");]]></search>
            <add position="replace"><![CDATA[$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_category p2c LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p2c.category_id IN (SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "') AND p.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') . "' ORDER BY RAND() LIMIT 0, 14"); ]]></add>
        </operation>
	
    	<operation>
            <search><![CDATA[$product_data[$result['related_id']] = $this->getProduct($result['related_id']);]]></search>
            <add position="replace"><![CDATA[$product_data[$result['product_id']] = $this->getProduct($result['product_id']);]]></add>
        </operation>
	</file>
	
	 

</modification>

 

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


27 minutes ago, konorws said:

Вам нужно добавить примерно это. в секцию WHERE
 


p2c.main_category = 1

 

Спасибо за ответ. Пожалуйста, покажите для тупых как именно) 

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


 $query = $this->db->query("SELECT *, (p.product_id) AS related_id FROM
          " . DB_PREFIX . "product_to_category p2c 
            LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)
            LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)
          WHERE 
            p2c.category_id IN (SELECT p2c2.category_id FROM " . DB_PREFIX . "product_to_category p2c2 WHERE p2c2.product_id = " . (int) $product_id . ")
              AND p.product_id <> " . (int) $product_id . "
              AND p.status = '1'
			  AND p2c.main_category = 1,
              AND p.date_available <= NOW()
              AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'
            ORDER BY RAND() ASC
          LIMIT 0,8");
1 час назад, mihailgoryachev сказал:

Спасибо за ответ. Пожалуйста, покажите для тупых как именно) 

Во втором варианте по аналогии

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

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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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