Jump to content
eric69

[resolu] comment changer la date création produits?(pour nouveau)

Recommended Posts

Bonjour,

pour préparer les produits futur de ma boutique je créer mes produits a l'avance, puisque je marche par saison!!

Le souci est que quand j'active mes produits ils ne sont pas forcément dans le module nouveauté !!

Y a t'il un moyen de changer la date de création du produit ( à la date de l'activation) sans passer par phpadmin?

merci de vos infos
eric

Share this post


Link to post
Share on other sites

Bonjour,

A ma connaissance il n'existe pas d'autre moyen que de passer par ta base de données.

Share this post


Link to post
Share on other sites

Merci , Divine!

Peux tu me dire quel est la différence entre date_add et date_upd stp?

fut il changer les deux dates ou juste date_add ?

y a t'il une importance?

merci
eric

Share this post


Link to post
Share on other sites

Bonjour,

Peut-être une solution plus simple mais aussi plus limite:
Dans le BO/Préférences/Produits, changer la valeur des jours dans :Nombre de jours durant lesquels un produit est considéré comme "nouveau"

Cordialement.

Domido8

Share this post


Link to post
Share on other sites

Alors date_add c'est la date à laquelle tu as ajouté le produit et date_upd c'est la date de la dernière modification de ton produit (mise à jour de la description, changement d'une photo, etc...)
La date à changer est date_add puisque c'est cette date qui est prise en compte pour les nouveautés.

Share this post


Link to post
Share on other sites

Salut,

J'ai une autre proposition pour réafficher des produits déjà créés dans la partie "nouveaux produits".

En fait, les nouveaux produits sont sélectionnés d'après la date de création "dat_add". Il faudrait simplement qu'ils soient sélectionnés d'après la date de mise à jour "date_upd".
Pour se faire, ouvrer le fichier : classes/Product.php

Environ aux alentours de la ligne 1020 (dans la partie " Get new products"), modifiez :

WHERE p.`active` = 1
AND DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0
AND (cg.`id_customer` = '.intval($cookie->id_customer).' OR ctg.`id_group` = 1)


Par :

WHERE p.`active` = 1
AND DATEDIFF(p.`date_upd`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0
AND (cg.`id_customer` = '.intval($cookie->id_customer).' OR ctg.`id_group` = 1)



Il ne reste plus qu'à réactualiser 1 par 1 les produits que vous voudrez réaffecter en tant que "nouveau produit", dans le backoffice.

J'espère que ça aide ...

Share this post


Link to post
Share on other sites

Bonjour manuphi,

effectivement c'est très intéressant, mais pour que cela soit valable
il faudrait que quand on enlève une déclinaison le produit ne soit pas considéré comme nouveau!!

je m'explique, je vends des chaussure, si j'enlève une pointure qui n'est plus dispo,

la date de mise à jour change-elle? si oui ta solution n'est pas intéressante!!
Par contre si la date de mise a jour ne change que si je modifie le texte de description, là oui c'est très intéressant!!

si quelqu'un à la réponse?

Share this post


Link to post
Share on other sites

Tout à fait raison Eric69, si tu changes le moindre truc dans la fiche produit, la date de mise à jour change et donc, avec ma solution, le produit passe dans les nouveautés.

Ma solution n'est pas la panacée, je m'en rends compte, mais ça évite au moins d'aller trifouiller la base de données à chaque fois qu'on souhaite passer un produit en nouveauté.

Il est évident que le mieux serait d'avoir genre une case à cocher "nouveau produit" dans la fiche produit. Pour cela, il faut demander à l'équipe prestashop ... ;-)

Share this post


Link to post
Share on other sites

Je doute qu'ils puissent avoir le temps de regarder ce genres de problèmes!

Merci de ta réponse o)

eric

Share this post


Link to post
Share on other sites

Mais je ne pense pas que ce soit un "petit problème", je pense que bien des gestionnaires de site prestashop aimerait une solution aisée et pratique pour la gestion des nouveaux produits

Share this post


Link to post
Share on other sites

Bonjour,

Vous pouvez modifier AdminProducts.php en back office autour de la ligne 1440 en fonction des versions. Répercussion qu'il faut re implémenter après une mise à jour.

';
                   /* Modif coeur + date_add */
                   echo'
'.$this->l('Date add:').'

                           <input size="22" type="text" id="date_add" name="date_add" type="text" value="'.htmlentities($this->getFieldValue($obj, 'date_add'), ENT_COMPAT, 'UTF-8').'"



Cordialement,

Share this post


Link to post
Share on other sites
Bonjour,

Vous pouvez modifier AdminProducts.php en back office autour de la ligne 1440 en fonction des versions. Répercussion qu'il faut re implémenter après une mise à jour.

';
                   /* Modif coeur + date_add */
                   echo'
'.$this->l('Date add:').'

                           <input size="22" type="text" id="date_add" name="date_add" type="text" value="'.htmlentities($this->getFieldValue($obj, 'date_add'), ENT_COMPAT, 'UTF-8').'"



Cordialement,



Tu peux expliquer plus stp ?

Share this post


Link to post
Share on other sites

Encore un post déterré !

Je vous propose ici ma solution pour afficher et modifier la date d'ajout d'un produit (pour gérer les nouveautés) sur un PS 1.5.4

Il faut modifier le fichier suivant (et même l'overrider pour bien faire) :

VOTRE_DOSSIER_ADMIN\themes\default\template\controllers\products\informations.tpl

 

A partir de la ligne 155 (ca peut-être ailleurs) j'ai rajouté les lignes suivantes :

 

<tr>
<td class="col-left"><label>{$bullet_common_field} {l s='Date Nouveauté :'}</label></td>
<td style="padding-bottom:5px;">
<input size="55" maxlength="12" type="text" id="date_add" name="date_add" value="{$product->date_add|htmlentitiesUTF8|date_format:'%Y-%m-%d'}" style="width: 150px; margin-right: 5px;" class="updateCurrentText" />
</td>
</tr>

 

Et pour le côté friendly de la gestion de la date on rajoute le code suivant (gestion du datepicker) tout en haut de la page :

 

<script type="text/javascript">
{literal}
	$(function(){
			$('#date_add').datepicker({
				dateFormat:'yy-mm-dd'
			});
	});
{/literal}
</script>

 

Note : Pour plus de simplicité (et parce que je n'ai pas le temps de faire plus) j'ai laissé le format de la date comme il est configuré dans la base de données (datetime : yyyy-mm-dd mais sans les heures,minutes et secondes)

  • Like 4

Share this post


Link to post
Share on other sites

Une petite recherche pour le même problème m'amène sur ce topic... Merci Chourak, ta solution fonctionne parfaitement !

Share this post


Link to post
Share on other sites

bonjour

 

10 ans après :) ne déterrez pas les topics quand c'est marqué

 

[resolu] comment changer la date création produits?(pour nouveau)

 

Merci de votre compréhension.

Share this post


Link to post
Share on other sites

Bonjour,

Je sais que ce topic est marqué résolu cependant j'avais tout de même une question.

 

La méthode de Chourak fonctionne aussi en 1.6.0.5, cela dit elle engendre un chargement très long dans le backoffice sur la page produit, quelqu'un a-t'il une idée d'ou ce ralentissement peut provenir ? j'ai essayé en enlevant le datepicker mais ça ne semble pas venir de la.

Share this post


Link to post
Share on other sites

Voici ce que j'ai ajouté à mon  PrestaShop™ 1.6.0.9 - et la page de back-office est crée en  0.364s. Ça marche pour le moment.

 30 <!-- dirty date_add hack--> 31 <script type="text/javascript">
 32 {literal}
 33                 $(function(){
 34                                 $('#date_add').datepicker({
 35                                         dateFormat:'yy-mm-dd'
 36                                 });
 37                 });
 38 {/literal}
 39 </script>
 40 <!-- end  dirty date_add hack-->
 200 <!-- dirty date hack - -->201         <div class="form-group">
202                 <label class="control-label col-lg-3" for "date-creation">
203                         <span class="label-tooltip" data-toggle="tooltip"
204                                 title="{l s='Changement de date pour entrer dans la catégorie nouveautés.'}">
205                                 {$bullet_common_field} {l s='Date Nouveauté'}
206                         </span>
207                 </label>
208                 <div class="col-lg-3">
209                         <input  maxlength="12" type="text" id="date_add" name="date_add" value="{$product->date_add|htmlentitiesUTF8|date_format:'%Y-%m-%d'}" />
210                 </div>
211         </div>
212         <hr/>
213 <!-- end of dirty date hack -->
  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

 

Je sais le topic est résolu mais pas pour PS 1.6.0.9.

 

Voici le code que j'ai copié dans classes/product.php

<!-- dirty date_add hack-->
<script type="text/javascript">
{literal}
               $(function(){
                                $('#date_add').datepicker({dateFormat:'yy-mm-dd'});
				});
{/literal}
</script>
<!-- end  dirty date_add hack-->

<!-- dirty date hack - -->

         <div class="form-group">
                 <label class="control-label col-lg-3" for "date-creation">
                         <span class="label-tooltip" data-toggle="tooltip"
                                 title="{l s='Changement de date pour entrer dans la catégorie nouveautés.'}">
                                 {$bullet_common_field} {l s='Date Nouveauté'}
                         </span>
                 </label>
                 <div class="col-lg-3">
                         <input  maxlength="12" type="text" id="date_add" name="date_add" value="{$product->date_add|htmlentitiesUTF8|date_format:'%Y-%m-%d'}" />
                 </div>
         </div>
         <hr/>
 <!-- end of dirty date hack -->

J'obtiens une page blanche!

Y'a t'il un endroit (haut, bas de page) ou copier ce code?

 

Merci

Share this post


Link to post
Share on other sites

Bonjour,

 

Je sais le topic est résolu mais pas pour PS 1.6.0.9.

 

Voici le code que j'ai copié dans classes/product.php

 

Salut Jean M.

 

Le code n'est pas à copier dans classes/product.php mais bien dans le fichier informations.tpl situé dans ce dossier :

 

TonDossierPrestaShop ▸ gestion_site ▸ themes ▸ default ▸ template ▸ controllers ▸ products

 

Je remet le code (fonctionnel pour la version 1.6.0.9) pour ceux qui comme moi, ont eu un peu de mal à retirer les numéros des lignes des codes cités précédemment :

	 <!-- dirty date hack - -->
	<div class="form-group">
		<label class="control-label col-lg-3" for "date-creation">
			<span class="label-tooltip" data-toggle="tooltip" title="{l s='Changement de date pour entrer dans la catégorie nouveautés.'}">
				{$bullet_common_field} {l s='Date Nouveauté'}
			</span>
		</label>
		<div class="col-lg-3">
			<input  maxlength="12" type="text" id="date_add" name="date_add" value="{$product->date_add|htmlentitiesUTF8|date_format:'%Y-%m-%d'}" />
		</div>
	</div>
	<!-- end of dirty date hack -->

<hr/>

Et, dans le haut du même fichier informations.tpl (à la suite de la balise <script type="text/javascript"> ligne 36 en ce qui me concerne), il est possible de rajouter une petite fonction Javascript qui permet d'afficher un calendrier dynamique convivial :

// dirty date_add hack
$(function(){
		$('#date_add').datepicker({
			dateFormat:'yy-mm-dd'
		});
});
// end dirty date_add hack

Ce hack a pour effet de rajouter, sur la page Informations d'un produit (dans le back-office), un champ texte dans lequel il est possible de modifier la date de création d'un produit (qui par défaut n'est pas accessible sans passer par la base).

 

Le contrôle de la date de publication est ce qui fait la force de Wordpress, et qui permet notamment de programmer des publications futures. C'est une fonctionnalité tellement essentielle qu'on ne comprend pas qu'elle ne figure pas dans la dernière version officielle de Prestashop ;)

Edited by Klemart3D (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

Salut Jean M.

Merci.

Ca marche bien maintenant pour l'ajout du champ "date nouveauté" par contre le petit javascript avec le calendrier ne semble pas fonctionner...

Share this post


Link to post
Share on other sites

Salut Jean M.

 

Le code n'est pas à copier dans classes/product.php mais bien dans le fichier informations.tpl situé dans ce dossier :

 

TonDossierPrestaShop ▸ gestion_site ▸ themes ▸ default ▸ template ▸ controllers ▸ products

 

Je remet le code (fonctionnel pour la version 1.6.0.9) pour ceux qui comme moi, ont eu un peu de mal à retirer les numéros des lignes des codes cités précédemment :

	 <!-- dirty date hack - -->
	<div class="form-group">
		<label class="control-label col-lg-3" for "date-creation">
			<span class="label-tooltip" data-toggle="tooltip" title="{l s='Changement de date pour entrer dans la catégorie nouveautés.'}">
				{$bullet_common_field} {l s='Date Nouveauté'}
			</span>
		</label>
		<div class="col-lg-3">
			<input  maxlength="12" type="text" id="date_add" name="date_add" value="{$product->date_add|htmlentitiesUTF8|date_format:'%Y-%m-%d'}" />
		</div>
	</div>
	<!-- end of dirty date hack -->

<hr/>

Et, dans le haut du même fichier informations.tpl (à la suite de la balise <script type="text/javascript"> ligne 36 en ce qui me concerne), il est possible de rajouter une petite fonction Javascript qui permet d'afficher un calendrier dynamique convivial :

// dirty date_add hack
$(function(){
		$('#date_add').datepicker({
			dateFormat:'yy-mm-dd'
		});
});
// end dirty date_add hack

Ce hack a pour effet de rajouter, sur la page Informations d'un produit (dans le back-office), un champ texte dans lequel il est possible de modifier la date de création d'un produit (qui par défaut n'est pas accessible sans passer par la base).

 

Le contrôle de la date de publication est ce qui fait la force de Wordpress, et qui permet notamment de programmer des publications futures. C'est une fonctionnalité tellement essentielle qu'on ne comprend pas qu'elle ne figure pas dans la dernière version officielle de Prestashop ;)

Merci Klemart3D, cela marche bien chez moi par contre j'ai le bandeau nouveau sur la photo mais le produit n'apparait pas dans le module nouveaus produits...

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour ... cela fonctionne effectivement sans souci sur la 1.6.0.9 ... mais une p'tite question cependant ... y aurait-il moyen d'importer cette date dans le .csv d'import ??... Je rentre mes produits par import en .csv donc si je pouvais spécifier la date dans ce fichier cela m'arrangerait bien ... merci à vous.

Share this post


Link to post
Share on other sites

félicitations pour cette aide sur 1.6.0 cela correspond exactement à mes besoins

juste dommage que la date continue d'être en anglais mais c'est déjà énorme

à quand cette fonction en native ?

Share this post


Link to post
Share on other sites
1 hour ago, Klemart3D said:

Pas de module pour la v1.7

Corrigé, c'était un problème de cache. Merci de me l'avoir signalé.

Il reste juste un petit bug d'affichage du prix que je corrigerai demain.

Bonne soirée

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More