Перейти к содержанию
Официальный форум поддержки Simpla

Вывод в карточке товара других товаров данной категории автоматически


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

Может кто подскажет, как сделать в карточке товара, вывод товаров этой же категории автоматически? по аналогии со связанными товарами, только что бы не в админке указывать, а они сами автоматически выводились в случайном порядке?

 

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

Вам нужно в productView.php передать в шаблон переменную, где буду выбраны товары по категории

Ниже строчки

$this->design->assign('category', reset($product->categories));

 

 

$cat_products=$this->products->get_products(array('category_id'=>$product->categories->id));

и передать в шаблон

$this->design->assign('cat_products', $cat_products);

 

Могут быть пунктуационные ошибки,пишу просто по памяти

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

"   и передать в шаблон

$this->design->assign('cat_products', $cat_products);     " 

 

 

Можно с этого места поподробнее? не совсем понятно, в какой шаблон именно, и в какое место шаблона?

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

в view/Product.php 

 

после 

 

 

$this->design->assign('related_products', $related_products); 
}
 

Добавить:

 

 

        else {
    $products->categories = $this->categories->get_categories(array('product_id'=>$product->id)); 
    $category = reset($products->categories);


    $related_products = array();
    $after = false;


    $products = $this->products->get_products(array('category_id' => $category->id, 'limit' => 100, 'in_stock'=>1, 'visible'=>1));


    foreach($products as $p)
    {
        if($after && count($related_products) < 6)
            $related_products[$p->id] = $p;
        elseif($p->id == $product->id)
            $after = true;
    }


    if(count($related_products) < 6)
        foreach($products as $p)
            if($p->id != $product->id && count($related_products) < 6)
                $related_products[$p->id] = $p;
            else break;  


    $related_products_images = $this->products->get_images(array('product_id'=>array_keys($related_products)));
    foreach($related_products_images as $related_product_image)
        if(isset($related_products[$related_product_image->product_id]))
            $related_products[$related_product_image->product_id]->images[] = $related_product_image;
    $related_products_variants = $this->variants->get_variants(array('product_id'=>array_keys($related_products), 'instock'=>true));
    foreach($related_products_variants as $related_product_variant)
    {
        if(isset($related_products[$related_product_variant->product_id]))
        {
            $related_product_variant->price *= (100-$discount)/100;
            $related_products[$related_product_variant->product_id]->variants[] = $related_product_variant;
        }
    }
    foreach($related_products as $r)
    {
        $r->image = &$r->images[0];
        $r->variant = &$r->variants[0];
    }
    $this->design->assign('related_products', $related_products);
}
 

 

Спасибо скажите mart'y!

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

в view/Product.php 

 

после 

 

 

$this->design->assign('related_products', $related_products); 
}
 

Добавить:

 

 

        else {
    $products->categories = $this->categories->get_categories(array('product_id'=>$product->id)); 
    $category = reset($products->categories);


    $related_products = array();
    $after = false;


    $products = $this->products->get_products(array('category_id' => $category->id, 'limit' => 100, 'in_stock'=>1, 'visible'=>1));


    foreach($products as $p)
    {
        if($after && count($related_products) < 6)
            $related_products[$p->id] = $p;
        elseif($p->id == $product->id)
            $after = true;
    }


    if(count($related_products) < 6)
        foreach($products as $p)
            if($p->id != $product->id && count($related_products) < 6)
                $related_products[$p->id] = $p;
            else break;  


    $related_products_images = $this->products->get_images(array('product_id'=>array_keys($related_products)));
    foreach($related_products_images as $related_product_image)
        if(isset($related_products[$related_product_image->product_id]))
            $related_products[$related_product_image->product_id]->images[] = $related_product_image;
    $related_products_variants = $this->variants->get_variants(array('product_id'=>array_keys($related_products), 'instock'=>true));
    foreach($related_products_variants as $related_product_variant)
    {
        if(isset($related_products[$related_product_variant->product_id]))
        {
            $related_product_variant->price *= (100-$discount)/100;
            $related_products[$related_product_variant->product_id]->variants[] = $related_product_variant;
        }
    }
    foreach($related_products as $r)
    {
        $r->image = &$r->images[0];
        $r->variant = &$r->variants[0];
    }
    $this->design->assign('related_products', $related_products);
}
 

 

Спасибо скажите mart'y!

Всем спасибо. Очень помогло.  Всех с КРЕЩЕНИЕМ. Здоровья, успехов и творчества

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...