Ok du coup je t'ai fais la fonctionnalité:
http://demo1750.baba-agency.com/hommes/1-1-hummingbird-printed-t-shirt.html
je me suis basé sur le code du module ps_featured
1- on crée un override de Category.php /override/classes
<?php /** * 2007-2018 PrestaShop. * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2018 PrestaShop SA * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ use PrestaShop\PrestaShop\Core\Module\WidgetInterface; use PrestaShop\PrestaShop\Adapter\Category\CategoryProductSearchProvider; use PrestaShop\PrestaShop\Adapter\Image\ImageRetriever; use PrestaShop\PrestaShop\Adapter\Product\PriceFormatter; use PrestaShop\PrestaShop\Core\Product\ProductListingPresenter; use PrestaShop\PrestaShop\Adapter\Product\ProductColorsRetriever; use PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext; use PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery; use PrestaShop\PrestaShop\Core\Product\Search\SortOrder; class Category extends CategoryCore { public function getProductsByIdCategory($id_category,$nProducts) { $context = Context::getContext(); $category = new Category((int)$id_category); $searchProvider = new CategoryProductSearchProvider( $context->getTranslator(), $category ); $context = new ProductSearchContext($context); $query = new ProductSearchQuery(); if ($nProducts < 0) { $nProducts = 12; } $query ->setResultsPerPage($nProducts) ->setPage(1) ; if (Configuration::get('HOME_FEATURED_RANDOMIZE')) { $query->setSortOrder(SortOrder::random()); } else { $query->setSortOrder(new SortOrder('product', 'position', 'asc')); } $result = $searchProvider->runQuery( $context, $query ); $context = Context::getContext(); $assembler = new ProductAssembler($context); $presenterFactory = new ProductPresenterFactory($context); $presentationSettings = $presenterFactory->getPresentationSettings(); $presenter = new ProductListingPresenter( new ImageRetriever( $context->link ), $context->link, new PriceFormatter(), new ProductColorsRetriever(), $context->getTranslator() ); $products_for_template = []; foreach ($result->getProducts() as $rawProduct) { $products_for_template[] = $presenter->present( $presentationSettings, $assembler->assembleProduct($rawProduct), $context->language ); } return $products_for_template; } }
2 - dans le product.tpl /themes/classic/templates/catalog/
{* Modif Alex *} {assign var=productsCustom value=Category::getProductsByIdCategory(6,4)} <section class="product-accessories clearfix"> <p class="h5 text-uppercase">{l s='You might also like' d='Shop.Theme.Catalog'}</p> <div class="products"> {foreach from=$productsCustom item="product_custom"} {block name='product_miniature'} {include file='catalog/_partials/miniatures/product.tpl' product=$product_custom} {/block} {/foreach} </div> </section> {* Modif Alex *}
Category::getProductsByIdCategory(6,4) le 1er parametre est la categorie qu'on target id 6 dans cet exemple, le deuxieme parametre le nombre de produits que l'on souhaite afficher ici 4
cdt