Jump to content

Déclinaisons ne s'affichent pas (+7000) 1.6


Recommended Posts

Bonjour,

je n'ai aucunes déclinaisons qui s'affichent dans la fiche produit.

Déclinaisons importées en csv (tout s'est bien passé hors mis le temps que ça a mis)
J'ai un produit qui à plus de 7000 références et sur le FO, tout est présent mais possible de modifier quoi que ce soit en BO.

post-96811-0-11970600-1396287758_thumb.jpg

 

Merci de votre aide

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

essaye d'activer le mode dev : http://www.prestashop.com/forums/topic/232472-que-faire-en-cas-de-page-blanche-ou-partie-blanche-dans-le-shop/ mais à mon avis ça ne va pas fonctionner, je ne suis pas sûre mais je crois qu'il n'y a pas de système de pagination sur les déclinaisons donc de toute façon tu ne pourrais pas enregistrer les changements.

Link to comment
Share on other sites

essaye d'activer le mode dev : http://www.prestashop.com/forums/topic/232472-que-faire-en-cas-de-page-blanche-ou-partie-blanche-dans-le-shop/ mais à mon avis ça ne va pas fonctionner, je ne suis pas sûre mais je crois qu'il n'y a pas de système de pagination sur les déclinaisons donc de toute façon tu ne pourrais pas enregistrer les changements.

 

Ca change rien et ne permet même pas de voir le beug ....; :blink:

  • Like 1
Link to comment
Share on other sites

essaye d'activer le mode dev : http://www.prestashop.com/forums/topic/232472-que-faire-en-cas-de-page-blanche-ou-partie-blanche-dans-le-shop/ mais à mon avis ça ne va pas fonctionner, je ne suis pas sûre mais je crois qu'il n'y a pas de système de pagination sur les déclinaisons donc de toute façon tu ne pourrais pas enregistrer les changements.

J'ai essayé mais sans succès en effet....

Quelqu'un aurait'il un bout de code pour permettre cette pagination des déclinaisons?

Link to comment
Share on other sites

Ca change rien et ne permet même pas de voir le beug ....; :blink:

 

Je suis presque sur que si, sauf que le chargement des onglets se faisant en Ajax, l'erreur n'est pas directement retransmise à l'écran mais dans la console de développement inhérent au navigateur, en réalité.

Link to comment
Share on other sites

Le plus simple étant d'utiliser Firefox, à ce niveau. Il faut afficher la console (clic droit) et charger la page. Vous verrez dans celle-ci plusieurs lignes (noires, en chargement). L'une d'elle pourrait devenir rouge...

 

... au pire, si vous l'occasion, vous pouvez me MP en mentionne l'url Back Office et un accès temporaire, je verrais ça pour vous ;)

Link to comment
Share on other sites

Le plus simple étant d'utiliser Firefox, à ce niveau. Il faut afficher la console (clic droit) et charger la page. Vous verrez dans celle-ci plusieurs lignes (noires, en chargement). L'une d'elle pourrait devenir rouge...

 

... au pire, si vous l'occasion, vous pouvez me MP en mentionne l'url Back Office et un accès temporaire, je verrais ça pour vous ;)

Désolé suis en local.

Sinon, j'ai ça dans la console quand je charge la fiche produit:

L'encodage de caractères d'un document dans un cadre n'a pas été déclaré. Le document peut apparaître différent s'il est visionné sans le document qui l'encadre. enquire.min.js

L'encodage de caractères d'un document dans un cadre n'a pas été déclaré. Le document peut apparaître différent s'il est visionné sans le document qui l'encadre. admin-theme.js

 

Link to comment
Share on other sites

Mais je sais pas si nous parlons de la même chose ??

Pour ma part je cherche à trouver le problème qui est : Pourquoi je n'ai plus de déclinaisons ?

ici c'est le post de CharlyAes32, créé le tiens, symptômes similaire ne veux pas dire même problème
Link to comment
Share on other sites

Bonjour,

je n'ai aucunes déclinaisons qui s'affichent dans la fiche produit.

 

J'ai exactement le même problème et j'ai déjà crée un autre post ou d'autres personnes ont aussi le même soucis rencontré ici 

Similaire ne veux pas dire même problème mais il y a quand même bcps de similitude  :ph34r:

Link to comment
Share on other sites

J'ai exactement le même problème et j'ai déjà crée un autre post ou d'autres personnes ont aussi le même soucis rencontré ici 

Similaire ne veux pas dire même problème mais il y a quand même bcps de similitude  :ph34r:

 

Certes une similitude "pourrait" résoudre votre problème, mais nous ne sommes pas sûr que cela vienne de la même source.

 

ici c'est le post de CharlyAes32, créé le tiens, symptômes similaire ne veux pas dire même problème

 

Sans vouloir m'imposer, oui, c'est un problème que j'ai posé. Merci de le défendre et de prendre le temps de vous y pencher dessus.

Link to comment
Share on other sites

mais il y a quand même bcps de similitude  :ph34r:

les déclinaisons ne s'affichent pas, c'est la seule similitude.

 

Pour ton problème (post http://www.prestashop.com/forums/topic/317842-prix-%C3%A0-0d%C3%A9clinaisons-disparus-cat%C3%A9gories-vide/)  la cause est la mise à jour 1.4->1.6

Pour le problème de CharlyAes32, la cause est indiquée dans le titre : plus de 7000 déclinaisons pour 1 seul produit, seule solution qui pourrait résoudre ce problème : créer un système de pagination pour les déclinaisons dans l'onglet "déclinaisons" des pages produits, je ne vois pas d'autres alternatives.

Link to comment
Share on other sites

les déclinaisons ne s'affichent pas, c'est la seule similitude.

 

Pour ton problème (post http://www.prestashop.com/forums/topic/317842-prix-%C3%A0-0d%C3%A9clinaisons-disparus-cat%C3%A9gories-vide/)  la cause est la mise à jour 1.4->1.6

Pour le problème de CharlyAes32, la cause est indiquée dans le titre : plus de 7000 déclinaisons pour 1 seul produit, seule solution qui pourrait résoudre ce problème : créer un système de pagination pour les déclinaisons dans l'onglet "déclinaisons" des pages produits, je ne vois pas d'autres alternatives.

 

J'y connais rien en en java et encore moins en paginations... Où pourrais-je trouver une piste? Ou du moins des infos ?

Link to comment
Share on other sites

Je m'incruste juste pour dire que je vais suivre ce post avec assiduité : j'ai moi aussi au moins un produit avec plus de 7000 déclinaisons, et du coup ça m'intéresse vivement !!!

La piste de CharlyAes32 au post 18 semble intéressante, mais là il est trop tard, mes yeux ont besoin de sommeil... :blink:

La suite demain...

Link to comment
Share on other sites

Le problème, avec cette "solution", c'est qu'il faut au préalable que les déclinaisons soient chargées. C'est donc pratique pour ne pas devoir réaliser un scroll sur la page, mais pas pour résoudre le problème premier qui se pose, en réalité.

Link to comment
Share on other sites

Le mieux serait de savoir d'où vient le problème, déjà. Et, perso, j'ai trop la flemme de générer 7.000 combinaisons pour faire un test :-/

 

Car tout ça est purement natif, cela ne devrait vraiment pas nécessiter de modules tiers (hormis pour utilisabilité et la facilité de gestion, ;-))

Link to comment
Share on other sites

Le mieux serait de savoir d'où vient le problème, déjà. Et, perso, j'ai trop la flemme de générer 7.000 combinaisons pour faire un test :-/

 

Car tout ça est purement natif, cela ne devrait vraiment pas nécessiter de modules tiers (hormis pour utilisabilité et la facilité de gestion, ;-))

Vous voulez le fichier csv?

Link to comment
Share on other sites

Allez y, pourquoi pas ! Je ferais un essai, ça m'intéresse aussi de voir ce qu'il en est ! :)

J.Danse, je vous envoi ça en MP.

 

Pour tous, voici le code que j'ai adapté pour avoir une "pseudo" pagination dans la fiche "déclinaisons":

 

Div ajoutée dans admin\themes\default\template\controllers\products\combinations.tpl ligne 361 juste avant {$list}

<div class="col-lg-8">
		
		<span class="pagination">
			Affichage: 
			<button data-toggle="dropdown" class="btn btn-default dropdown-toggle" type="button">
				50
				<i class="icon-caret-down"></i>
			</button>
			<ul class="dropdown-menu">
							<li>
					<a data-list-id="combinations" data-items="20" class="pagination-items-page" href="javascript:void(0);">20</a>
				</li>
							<li>
					<a data-list-id="combinations" data-items="50" class="pagination-items-page" href="javascript:void(0);">50</a>
				</li>
							<li>
					<a data-list-id="combinations" data-items="100" class="pagination-items-page" href="javascript:void(0);">100</a>
				</li>
							<li>
					<a data-list-id="combinations" data-items="300" class="pagination-items-page" href="javascript:void(0);">300</a>
				</li>
							<li>
					<a data-list-id="combinations" data-items="1000" class="pagination-items-page" href="javascript:void(0);">1000</a>
				</li>
						</ul>
			/ 304 résultat(s) {*ICI JE NE SAIS PAS COMMENT RECUPERER LE NOMBRE TOTAL DE DECLINAISONS INCLUES DANS LE PRODUIT CONCERNE*}
			<input type="hidden" value="50" name="combinations_pagination" id="combinations-pagination-items-page">
		</span>
		<script type="text/javascript">
			$('.pagination-items-page').on('click',function(e){
				e.preventDefault();
				$('#'+$(this).data("list-id")+'-pagination-items-page').val($(this).data("items")).closest("form").submit();
			});
		</script>
		<ul class="pagination pull-right">
			<li class="disabled">
				<a data-list-id="combinations" data-page="1" class="pagination-link" href="javascript:void(0);">
					<i class="icon-double-angle-left"></i>
				</a>
			</li>
			<li class="disabled">
				<a data-list-id="combinations" data-page="0" class="pagination-link" href="javascript:void(0);">
					<i class="icon-angle-left"></i>
				</a>
			</li>
															<li class="active">
						<a data-list-id="combinations" data-page="1" class="pagination-link" href="javascript:void(0);">1</a>
					</li>
																<li>
						<a data-list-id="combinations" data-page="2" class="pagination-link" href="javascript:void(0);">2</a>
					</li>
																<li>
						<a data-list-id="combinations" data-page="3" class="pagination-link" href="javascript:void(0);">3</a>
					</li>
																<li class="disabled">
						<a href="javascript:void(0);">…</a>
					</li>
															<li>
				<a data-list-id="combinations" data-page="2" class="pagination-link" href="javascript:void(0);">
					<i class="icon-angle-right"></i>
				</a>
			</li>
			<li>
				<a data-list-id="combinations" data-page="7" class="pagination-link" href="javascript:void(0);">
					<i class="icon-double-angle-right"></i>
				</a>
			</li>
		</ul>
		<script type="text/javascript">
			$('.pagination-link').on('click',function(e){
				e.preventDefault();

				if (!$(this).parent().hasClass('disabled'))
					$('#submitFilter'+$(this).data("list-id")).val($(this).data("page")).closest("form").submit();
			});
		</script>
	</div>

Le problème est que comme vous le verrez dans le code, je ne sais pas comment récupérer le nombre total de déclinaisons du produit concerné et que la navigation me renvoi vers la liste des produits. :wacko:

L'incrémentation du nombre de pages (je ne sais pas encore comment ça fonctionne et comment le corriger pour qu'il s'adapte au nombre de pages qu'il faudrait (si 20 produit ou moins = 1 seule page, si > 100 = 3 pages, etc..)).

J'espère que je suis assez explicite et clair dans ce que je raconte. :unsure:

Voilà, pour les experts, à vous de voir ce que vous en pensez.... :ph34r:

Link to comment
Share on other sites

Bon, pour le moment j'ai importé 3845 déclinaisons. Elles s'affichent, mais ça rame (évidemment !). Il faudrait, de toutes, éventuellement prévoir cette pagination.

 

Par contre, sinon, je pensais que pour voir l'erreur avec votre PrestaShop en local, nous pourrions passer par Teamviewer, éventuellement. Ceci permettrait de "mettre la main" sur l'inspection le tout sur l'installation que vous avez ! ;-)

 

EDit: Aaaah, après 4870 déclinaisons importées, j'ai aussi une page blanche tiens ! :)

Edited by J. Danse (see edit history)
Link to comment
Share on other sites

Voici l'erreur...: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 11780104 bytes) in /prestashop/tools/smarty/sysplugins/smarty_internal_templatebase.php on line 207

 

En gros, ça mouline et ensuite, générant le rendu, ça ne va plus du tout !

Link to comment
Share on other sites

Voici l'erreur...: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 11780104 bytes) in [/size]/prestashop/tools/smarty/sysplugins/smarty_internal_templatebase.php on line [/size]207

 

En gros, ça mouline et ensuite, générant le rendu, ça ne va plus du tout !

Je dois ajouter de la mémoire sur ce fichier? Oui mais combien pour ne plus etre embêté? Comment je fais pour teamviewer ? Et c'est quoi au juste un plugin ou un logiciel? Edited by CharlyAes32 (see edit history)
Link to comment
Share on other sites

Teamviewer est un logiciel, et désolé de ne pas avoir répondu tiens ! ;-) Donc, on en a plus besoin car j'ai visualisé le problème sur une de mes installations.

 

Je suis sur une piste, mais elle n'est pas encore opérationnelle :-)

Link to comment
Share on other sites

Teamviewer est un logiciel, et désolé de ne pas avoir répondu tiens ! ;-) Donc, on en a plus besoin car j'ai visualisé le problème sur une de mes installations.

 

Je suis sur une piste, mais elle n'est pas encore opérationnelle :-)

Il me tarde de voir à quoi cela ressemble :)

Link to comment
Share on other sites

Désolé, je suis pas doué avec les images et j'arrive pas à l'optimiser pour qu'elle ne fasse que 11 Ko...

Donc, en fait, la page mouline environ 40 secondes, et tout apparait. En haut, le choix du nombre de produits à afficher par page (qui ne fonctionne pas :) ), et les onglets des pages fleches gauches et droites, et numéro des pages (qui ne servent à rien également...)

Et sur la page, toutes les déclinaisons.

Sur le produit que je teste, il y en a déjà 5040 et toutes sont affichées sur la page

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

@J.Danse : je crois que vous êtes sur la bonne voie, merci de vous décarcasser comme ça !!!

 

Avec le code que j'ai essayé, j'avais toutes les déclinaisons sur la même page (scroll un peu long mais au moins on pouvait modifier), sauf que là je viens de dépasser les 7000 déclinaisons et c'est à nouveau la page blanche (maximum time exceded...)

Link to comment
Share on other sites

C'est en effet le problème qui se pose, avec la pagination qui était présentée plus haut. Ici, nous utilisons vraiment un chargement réduit/restreint, ce qui permet d'aller plus vite et surtout de pouvoir établir cette pagination.

Link to comment
Share on other sites

C'est en effet le problème qui se pose, avec la pagination qui était présentée plus haut. Ici, nous utilisons vraiment un chargement réduit/restreint, ce qui permet d'aller plus vite et surtout de pouvoir établir cette pagination.

Vous pouvez me faire passer le morceaux de code ?

Link to comment
Share on other sites

tu d'abord rajouter un attribut dans "atribu" tout à gauche sur un mini menu sur fond blanc qui apparaît seulement lorsque tu va dans créé une déclinaison où tu doit ensuite utiliser le générateur de déclinaison

Link to comment
Share on other sites

Je fais un petit aparté concernant les 7000+ déclinaisons : pour ma boutique en prod (PS 1.5.5.0.) je suis hébergé par ovh en mutualisé pro, et les pages des produits avec 7000+ déclinaisons ne s'affichent pas à cause, semble-t-il, de trop nombreuses requêtes sql.

En local, avec la 1.6, la page met environ 40 secondes à s'afficher...

(je parle bien de la page produit en FO)

Du coup, je me demande si il ne vaudrait pas mieux trouver une autre option...

Link to comment
Share on other sites

40s en FO, à mon avis les clients sont déjà en train de commander chez un concurrent alors que chez toi la page n'est pas affichée, essaye de "découper" en plusieurs produits 

Et encore, ça c'est en local !!! En prod, la page mouline 8 à 10 minutes pour afficher : "la connexion au serveur a été réinitialisée"...

Le souci, c'est qu'il s'agit d'un pack, dont chaque produit a des déclinaisons proposées (33*33*7)...

J'ai déjà réfléchi au découpage sans trouver de solution qui me convienne vraiment.

D'ailleurs je rebondis : j'avais envisagé aussi de ne mettre que les déclinaisons de chaque produit (sans passer par le générateur). Sur la page produit, ça permettait au client de faire quand même son choix dans les trois menus déroulants. Le souci, c'est qu'en BO, sur la commande, seule la première déclinaison apparait... C'est légèrement hors sujet, mais si on pouvait modifier ça, ça pourrait aussi bien aider...

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

  • 1 month later...

Urgent !!

Je peux pas mettre en ligne à cause de cette pagination de m**** !

Le produit s'affiche comme il faut mais je peux pas choisir la déclinaison par défaut !

Quelqu'un à une idée par la BDD ? J'ai beau essayé de mettre l'id de la déclinaison que je veux, sur la fiche produit c'est toujours la première  :angry:  :angry:  :angry:

Link to comment
Share on other sites

Bonsoir,

 

Vous avez essayer en modifiant le cache_defaut_attribute, aussi bien dans la table product et product_shop ?

 

Pour mon retour, il n'était pas exactement concluant et je n'ai pas encore eu le temps d'approfondir pour le moment, mes excuses !

Link to comment
Share on other sites

Bonsoir,

 

Vous avez essayer en modifiant le cache_defaut_attribute, aussi bien dans la table product et product_shop ?

 

Pour mon retour, il n'était pas exactement concluant et je n'ai pas encore eu le temps d'approfondir pour le moment, mes excuses !

 

Oui, j'ai mis l'ID de la déclinaison que je souhaite, mais rien à faire.

Et puis c'est quoi au juste le "cache_default_attribute" ? Quel ID je doit mettre? Je suis perdu :(

Link to comment
Share on other sites

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

Bonjour,

 

je suis confronté au même problème que vous sur Prestashop 1.6 : Nous avons plus de 5000 déclinaisons sur certains produits.

Nous avons augmenté le memory_limit à 1 Go pour que toutes puissent être générées. Mais après, le temps d'affichage de la page produit est beaucoup trop long (> 30s), la faute à l'intégration du tableau des déclinaisons en javascript dans la page html.

 

Avez-vous trouvé une solution ou une alternative ?

 

Merci

Link to comment
Share on other sites

malheureusement je ne pense pas qu'il y ai une solution simple à ce problème, si vous avez des milliers de déclinaisons par produits, les pages produits font logiquement plusieurs Mo, saturent le serveur et sont très longues à charger...

 

Il me semble avoir vu un confrère avoir un module qui chargeait par ajax les données attributs par attributs, mais je ne sais plus qui avait ce module.

Link to comment
Share on other sites

Juste un suggestion vous avez pensser a augmenter la mémoire et à vérifier que ce n'est pas tout simplement une limite php (max_execution_time par exemple).

 

Ce que je ferai dans un premier temps

ini_set('max_execution_time', '500');

dans le fichier config.php ligne 37.

 

Si cela ne passe pas, il suffit de faire un système de pagination comme déjà suggéré, récupérer les données avec json et faire un break de 1secondes tous les 500enregistrements... pas de quoi casser trois pattes à un lapin ^^

 

Et comme c'est noel je suis gentil, si j'ai le temps je vous sortirai les fichiers modifiés ce soir :)

Link to comment
Share on other sites

Ha oui effectivement je n'avais pas pensser à cela.... la ça risque d'être plus chiant x), après cela dépend aussi du type de déclinaison si c'est du texte en partant sur un ratio text-code de 1kb même sur 7000 déclinaisons avec un preloading ça peut passer (et encore vive les requêtes sql) par contre si ce sont des déclinaisons avec images et compagnies ça risque de piquer un peut plus. Je pense que le plus gros du travail est la partie agencement, je ferai bien des tests mais honnetement j'ai la flemme de me constituer 7000déclinaisons pour un seul et même produit, même sur mon trunk.

 

Il va a mon avoir falloir voir pour un développement sur mesure.

Link to comment
Share on other sites

  • 2 months later...

Bonjour,

J'ai le même problème, et cela m’empêche maintenant de modifier mes produits (le bouton reste en gris et boucle).

Je suis sur un serveur dédié et il n'y a que cela dessus. D'un point de vue front office, cela s'affiche bien et suffisamment rapidement. C'est un serveur Xeon avec 32Go de ram.

Dans la page produit, je ne peu plus me rendre dans l'onget "déclinaison" (sur un seul de mes article (celui qui a plus 5000 déclinaisons)) les autres qui en ont moins fonctionnes bien.

Ce n'est pas un "simple" problème de ressources et de temps max car j'ai mis des valeurs importantes.

Prestashop : 1.6.0.14

Version de PHP 5.4.39

Limite de mémoire 512M

Temps d'exécution maximal (max_execution_time) 3000

et pas d'erreur dans les log (ni php, ni apache)....

J'ai pas trouvé de solution......

Edited by r.carlier (see edit history)
Link to comment
Share on other sites

Je commence la réponse (a moi même mais ca pourrait en intéresser d'autres)

1ere des choses, a partir de php 5.3.9, une nouvelle limitations a fait son apparition : max_input_vars et si c'elle ci n'est pas définie dans le php.ini alors elle prends comme valeurs 1000. Or sur un produit avec bcp de déclinaisons ce n'est pas suffisant !

J'ai regardé et, dans ma base les requetes qui viennent chercher les déclinaison mettent moins de 0.3 s

 

Pour continuer :

 -La fonction getAttributeCombinations (dans product.php de /classes/) ne mets pas longtemps a s'executer mais a la fin de cette derniere, celle ci renvoie "return $res;", si on laisse la fonction telle qu'elle mais qu'on renvoie un simple return array(); alors, la rapidité revient bien...

 

Non, je vous rassure, je ne suis pas stupide... je sais bien que cela n'est en rien une solution, mais cela m'indique simplement qu'il faut maintenant que je recherche les traitements qui sont fait sur ce que retourne la fonction getAttributeCombinations.....

 

GetAttributeCombinations est appellé par renderListAttributes de /controllers/admin/AdminProductsController.php

Chez moi, sur les 40 secondes necessaires pour rendre disponible le bouton enregistrer, cette fonction prends 1.8 s

et encore une fois, si on renvoie un array vide on gagne du temps
return $helper->generateList($comb_array, $this->fields_list); ==> return $helper->generateList($vide, $this->fields_list);

 

Il me reste a trouver ou est utilisé ce $helper->generateList ....

Par : initFormAttributes toujours dans le meme fichier.

Lui meme appelé par initFormCombinations toujours dans le meme fichier.

 

Voila, j'ai pas reussi a trouver ce qui appelle initFormCombinations

:angry:

Edited by r.carlier (see edit history)
Link to comment
Share on other sites

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...