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

[Решено] Блок Похожие товары. Как выводить только ненулевые позиции?


Recommended Posts

Добрый день. Стоит ocStore 1.5.4.1.

 

Подскажите, пожалуйста, как сделать так, чтобы в блоке Похожие товары (был в сборке) показывались лишь ненулевые позиции.

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


catalog/model/catalog/product.php

	public function getProductRelated($product_id) {
...
AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
...
>>

	public function getProductRelated($product_id) {
...
AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND p.quantity>0");
...
Надіслати
Поділитися на інших сайтах

catalog/model/catalog/product.php

	public function getProductRelated($product_id) {
...
AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
...
>>

	public function getProductRelated($product_id) {
...
AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND p.quantity>0");
...

Большое спасибо, всё заработало!

 

Возможно, раз всё решается одной строчкой, имеет смысл добавить тему в FAQ?

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


Аналогичный вопрос вдогон. Стоит сторонний блок "С этим товаром также покупали", выглядит так

 

<?php
 
class ModelModuleAlsopurchased extends Model
{
    public function getPurchasedProductsPerProductId( $product_id, $limit )
    {
        if ( $this->customer->isLogged() )
        {
            $customer_group_id = $this->customer->getCustomerGroupId();
        }
        else
        {
            $customer_group_id = $this->config->get( 'config_customer_group_id' );
        }
 
        $product_data = $this->cache->get( 'product.alsopurchased.' . ( int )$this->
            config->get( 'config_language_id' ) . '.' . ( int )$this->config->get( 'config_store_id' ) .
            '.' . $customer_group_id . '.' . ( int )$limit . '.' . ( int )$product_id );
 
        if ( !$product_data )
        {
            $product_data = array();
 
            $sql = "SELECT order_id FROM " . DB_PREFIX .
                "order_product WHERE product_id = '" . ( int )$product_id . "'";
            $query = $this->db->query( $sql );
 
            $order_id = array();
            foreach ( $query->rows as $result )
            {
                $order_id[] = $result['order_id'];
            }
            
            $orders_id = implode( ',', $order_id );
            if ( !$orders_id )
            {
                $orders_id = 0;
            }
 
            $sql = "SELECT op.product_id, COUNT(*) AS total FROM " .
                DB_PREFIX . "order_product op LEFT JOIN `" . DB_PREFIX .
                "order` o ON (op.order_id = o.order_id) LEFT JOIN `" . DB_PREFIX .
                "product` p ON (op.product_id = p.product_id)";
 
            $sql .= " LEFT JOIN " . DB_PREFIX .
                "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1'";
 
            $sql .= " AND p.date_available <= NOW() AND op.order_id IN (" . $orders_id .
                ") AND op.product_id != '" . ( int )$product_id . "'";
 
            $sql .= " AND p2s.store_id = '" . ( int )$this->config->get( 'config_store_id' ) .
                "' GROUP BY op.product_id ORDER BY total DESC LIMIT " . ( int )$limit;
 
            $query = $this->db->query( $sql );
 
            $this->load->model( 'catalog/product' );
 
            foreach ( $query->rows as $result )
            {
                $product_data[$result['product_id']] = $this->model_catalog_product->getProduct( $result['product_id'] );
            }
 
            $this->cache->set( 'product.alsopurchased.' . ( int )$this->config->get( 'config_language_id' ) .
                '.' . ( int )$this->config->get( 'config_store_id' ) . '.' . $customer_group_id .
                '.' . ( int )$limit . '.' . ( int )$product_id, $product_data );
        }
        return $product_data;
    }
}
 
Куда здесь нужно добавить условие AND p.quantity>0 или что-то ещё, чтобы в этом модуле тоже показывались лишь ненулевые позиции?
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Уважаемый afwollis, у меня стоит задача не выводить позиций, у которых статус "нет в наличии". Движок версии 1.5.3.1. Что-то я совсем забыл, можно ли в визуальной части движка этот параметр изменить?

 

Если нет, где это вручную написать?

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


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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