Jump to content

prestashop 1.6 нет товара у производителя


Domolov

Recommended Posts

Здравствуйте!

Недавно после обновления до версии 1,6,0,14 обнаружил, что у меня не работает блок Производителей. Вернее при нажатии для вывода списка он список выводит, но у всех производителей пишет "0 товаров", а у одного 116.

Если попытаться просмотреть все товары у всех производителей, то на странице вывода пишет "Нет товаров этого производителя".

В админке все товары назначены разным производителям. И при просмотре в админте товаров производителей также всё корректно считатется и отображается.

Не могу точно сказать когда этот баг вылез (до обновления или после). Помогите пожалуйста.

Спасибо заранее.

Вот ссылка на список производителей http://domsador.ru/manufacturers

вот на конкретного производителя http://domsador.ru/4_belorusskie-oboi-gomel-minsk

Link to comment
Share on other sites

только что на чисто установленной престе 16014 добавил еще одного производителя и перенес туда 1 товар - отображает всё нормально.

 

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

Link to comment
Share on other sites

я попробовал создать нового производителя и новый товар, привязанный к этому производителю. Не видит !

Я удалил модуль Производители и установил его заново, также не помогает.

Edited by Domolov (see edit history)
Link to comment
Share on other sites

а в админке в каталоге в производителях напротив каждого производителя отображается соответствующее количество товаров?

Link to comment
Share on other sites

Да, как раз и смущает то, что в админке всё корректно, и количество отображает и сам список товаров выводит.

Кэш чистил, шаблон перекомпилировал.

Из сторонних модулей стоит Smart Blog, но он стоит давно. так и его отключал.

Хостинг ТаймВэб. Пробовал менять версии ПХП

Link to comment
Share on other sites

Тема стандартная

Если поможет код manufacturer.tpl


{include file="$tpl_dir./errors.tpl"}

{if !isset($errors) OR !sizeof($errors)}
	<h1 class="page-heading product-listing">
		{l s='List of products by manufacturer'} {$manufacturer->name|escape:'html':'UTF-8'}
	</h1>
	{if !empty($manufacturer->description) || !empty($manufacturer->short_description)}
		<div class="description_box rte">
			{if !empty($manufacturer->short_description)}
				<div class="short_desc">
					{$manufacturer->short_description}
				</div>
				<div class="hide_desc">
					{$manufacturer->description}
				</div>
				<a href="#" class="lnk_more" onclick="$(this).prev().slideDown('slow'); $(this).hide();$(this).prev().prev().hide(); return false;">
					{l s='More'}
				</a>
			{else}
				<div>
					{$manufacturer->description}
				</div>
			{/if}
		</div>
	{/if}

	{if $products}
		<div class="content_sortPagiBar">
	    	<div class="sortPagiBar clearfix">
				{include file="./product-sort.tpl"}
				{include file="./nbr-product-page.tpl"}
			</div>
	    	<div class="top-pagination-content clearfix">
	        	{include file="./product-compare.tpl"}
	            {include file="$tpl_dir./pagination.tpl" no_follow=1}

	        </div>
		</div>

		{include file="./product-list.tpl" products=$products}

		<div class="content_sortPagiBar">
	        <div class="bottom-pagination-content clearfix">
	        	{include file="./product-compare.tpl"}
				{include file="./pagination.tpl" no_follow=1 paginationId='bottom'}
	        </div>
		</div>
	{else}
		<p class="alert alert-warning">{l s='No products for this manufacturer.'}</p>
	{/if}
{/if}

и manufacturer-list.tpl

{capture name=path}{l s='Manufacturers:'}{/capture}

<h1 class="page-heading product-listing">
	{l s='Brands'}
    {strip}
		<span class="heading-counter">
			{if $nbManufacturers == 0}{l s='There are no manufacturers.'}
			{else}
				{if $nbManufacturers == 1}
					{l s='There is 1 brand'}
				{else}
					{l s='There are %d brands' sprintf=$nbManufacturers}
				{/if}
			{/if}
		</span>
    {/strip}
</h1>
{if isset($errors) AND $errors}
	{include file="$tpl_dir./errors.tpl"}
{else}
	{if $nbManufacturers > 0}
    	<div class="content_sortPagiBar">
        	<div class="sortPagiBar clearfix">
				{if isset($manufacturer) && $manufacturer.nb_products > 0}
					<ul class="display hidden-xs">
						<li class="display-title">
							{l s='View:'}
						</li>
						<li id="grid">
							<a rel="nofollow" href="#" title="{l s='Grid'}">
								<i class="icon-th-large"></i>{l s='Grid'}
							</a>
						</li>
						<li id="list">
							<a rel="nofollow" href="#" title="{l s='List'}">
								<i class="icon-th-list"></i>{l s='List'}
							</a>
						</li>
					</ul>
				{/if}
                {include file="./nbr-product-page.tpl"}
            </div>
        	<div class="top-pagination-content clearfix bottom-line">
				{include file="$tpl_dir./pagination.tpl" no_follow=1}
            </div>
        </div> <!-- .content_sortPagiBar -->

        {assign var='nbItemsPerLine' value=3}
        {assign var='nbItemsPerLineTablet' value=2}
        {assign var='nbLi' value=$manufacturers|@count}
        {math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines}
        {math equation="nbLi/nbItemsPerLineTablet" nbLi=$nbLi nbItemsPerLineTablet=$nbItemsPerLineTablet assign=nbLinesTablet}

		<ul id="manufacturers_list" class="list row">
			{foreach from=$manufacturers item=manufacturer name=manufacturers}
	        	{math equation="(total%perLine)" total=$smarty.foreach.manufacturers.total perLine=$nbItemsPerLine assign=totModulo}
	            {math equation="(total%perLineT)" total=$smarty.foreach.manufacturers.total perLineT=$nbItemsPerLineTablet assign=totModuloTablet}
	            {if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if}
	            {if $totModuloTablet == 0}{assign var='totModuloTablet' value=$nbItemsPerLineTablet}{/if}
				<li class="{if $smarty.foreach.manufacturers.iteration%$nbItemsPerLine == 0} last-in-line{elseif $smarty.foreach.manufacturers.iteration%$nbItemsPerLine == 1} first-in-line{/if} {if $smarty.foreach.manufacturers.iteration > ($smarty.foreach.manufacturers.total - $totModulo)}last-line{/if} {if $smarty.foreach.manufacturers.iteration%$nbItemsPerLineTablet == 0}last-item-of-tablet-line{elseif $smarty.foreach.manufacturers.iteration%$nbItemsPerLineTablet == 1}first-item-of-tablet-line{/if} {if $smarty.foreach.manufacturers.iteration > ($smarty.foreach.manufacturers.total - $totModuloTablet)}last-tablet-line{/if}{if $smarty.foreach.manufacturers.last} item-last{/if} col-xs-12">
					<div class="mansup-container">
						<div class="row">
			            	<div class="left-side col-xs-12 col-sm-3">
								<div class="logo">
									{if $manufacturer.nb_products > 0}
										<a
										class="lnk_img"
										href="{$link->getmanufacturerLink($manufacturer.id_manufacturer, $manufacturer.link_rewrite)|escape:'html':'UTF-8'}"
										title="{$manufacturer.name|escape:'html':'UTF-8'}" >
									{/if}
										<img src="{$img_manu_dir}{$manufacturer.image|escape:'html':'UTF-8'}-medium_default.jpg" alt="" />
									{if $manufacturer.nb_products > 0}
										</a>
									{/if}
								</div> <!-- .logo -->
							</div> <!-- .left-side -->

							<div class="middle-side col-xs-12 col-sm-5">
								<h3>
									{if $manufacturer.nb_products > 0}
										<a
										class="product-name"
										href="{$link->getmanufacturerLink($manufacturer.id_manufacturer, $manufacturer.link_rewrite)|escape:'html':'UTF-8'}">
									{/if}
										{$manufacturer.name|truncate:60:'...'|escape:'html':'UTF-8'}
									{if $manufacturer.nb_products > 0}
										</a>
									{/if}
								</h3>
								<div class="description rte">
									{$manufacturer.short_description}
								</div>
			                </div> <!-- .middle-side -->

							<div class="right-side col-xs-12 col-sm-4">
			                	<div class="right-side-content">
			                        <p class="product-counter">
			                            {if $manufacturer.nb_products > 0}
			                            	<a href="{$link->getmanufacturerLink($manufacturer.id_manufacturer, $manufacturer.link_rewrite)|escape:'html':'UTF-8'}">
			                            {/if}
			                            {if $manufacturer.nb_products == 1}
			                            	{l s='%d product' sprintf=$manufacturer.nb_products|intval}
			                            {else}
			                            	{l s='%d products' sprintf=$manufacturer.nb_products|intval}
			                            {/if}
			                            {if $manufacturer.nb_products > 0}
			                        		</a>
			                        	{/if}
			                        </p>
				                    {if $manufacturer.nb_products > 0}
				                        <a
				                        class="btn btn-default button exclusive-medium"
				                        href="{$link->getmanufacturerLink($manufacturer.id_manufacturer, $manufacturer.link_rewrite)|escape:'html':'UTF-8'}">
				                        	<span>
				                        		{l s='view products'} <i class="icon-chevron-right right"></i>
				                        	</span>
				                        </a>
				                    {/if}
			                    </div>
			                </div> <!-- .right-side -->
			            </div>
			        </div>
				</li>
			{/foreach}
		</ul>
        <div class="content_sortPagiBar">
        	<div class="bottom-pagination-content clearfix">
				{include file="$tpl_dir./pagination.tpl" no_follow=1 paginationId='bottom'}
            </div>
        </div>
	{/if}
{/if}

что я увидел, так это в двух строчках добавлено no_follow=1

Link to comment
Share on other sites

нет, там проставлены условные дескрипшены у некоторых производителей, у остальных я пока удалил

Востанавливал бэкапы. Оказалось. что производители работали на версии 1,6,0,6 а в последующих обновлениях перестало работать отображение товаров определенных производителей.

Link to comment
Share on other sites

Я попробовал поставить с нуля престу 1,6,0,14 и взял у неё шаблон и воткнул на сайт. После этого в списке производителей стало отображаться количество товара по каждому производителю. Но при нажатии на производителе всё равно пишет что товара нет

Link to comment
Share on other sites

  • 2 weeks later...

Решение проблемы у меня было во включении Комбинаций в панель администрирования - расширенные параметры - производительность.

  • Like 1
Link to comment
Share on other sites

  • 2 months later...
  • 2 weeks later...

А если Комбинации уже установлены?

Кэш чистил, стандартный шаблон применял, в админке тоже всё норм.

РЕШЕНО! Была такая же фигня + куча комбинаций и всё такое. Решил так:
- Заходим в админке в производителей (каталог-производители). Сверху в правом углу, под помощью, есть значки "добавить", "импорт", "экспорт". Экспортируем всех своих производителей в файл, а потом его же импортируем обратно!
В настройках импорта:
Удалить все производители перед импортом - НЕТ
Пропустить создание миниатюр - ДА
Использовать все номера ID (активно)
Далее в настройках полей отключаем все колонки кроме "ID" , "Имя производителя" и "Активен"  . Импортируем и УРА, ЗАРАБОТАЛО! :))

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

Всем удачи!
Edited by websprint (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

 

РЕШЕНО! Была такая же фигня + куча комбинаций и всё такое. Решил так:
- Заходим в админке в производителей (каталог-производители). Сверху в правом углу, под помощью, есть значки "добавить", "импорт", "экспорт". Экспортируем всех своих производителей в файл, а потом его же импортируем обратно!
В настройках импорта:
Удалить все производители перед импортом - НЕТ
Пропустить создание миниатюр - ДА
Использовать все номера ID (активно)
Далее в настройках полей отключаем все колонки кроме "ID" , "Имя производителя" и "Активен"  . Импортируем и УРА, ЗАРАБОТАЛО! :))

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

Всем удачи!

 

У меня вот не заработало... В базе все значения есть у товаров стоят правильные ID производителя, а во фронте напротив производителя с наименьшим ID стоит общее количество товара по всем производителям, а у остальных по 0. В бэке по всем производителям стоят правильные количества товара.

Нашел решение, ошибка была там куда и копал. В prestashop\classes\Manufacturer.php находим

.(Combination::isFeatureActive() ? ', MAX(product_attribute_shop.minimal_quantity) AS product_attribute_minimal_quantity' : '')
.', MAX(product_attribute_shop.`id_product_attribute`) id_product_attribute
и заменяем на:
.(Combination::isFeatureActive() ? ', MAX(product_attribute_shop.minimal_quantity) AS product_attribute_minimal_quantity , MAX(product_attribute_shop.`id_product_attribute`) id_product_attribute : '')
Edited by sanctovali (see edit history)
Link to comment
Share on other sites

  • 3 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...