Jump to content

ajouter une checkbox dans adminproduct


Recommended Posts

Bonjour, j'ai ajouter un champs checbox dans mon fichier adminproduct,, celui-ci apparait bien dans la page administration d'ajout de produit mais malheureusement la case ne reste pas cocher aprés donc j'ai du oublier de la rajouter dans un fichier ou ma bdd mais je voit pas à quel endroit. pouvez-vous m'aider svp.

 

ma version prestashop est la 1.4.6.2

 

Ps: je vous fourni le screen de ce ke je veut modifier.

post-132707-0-72042700-1334167781_thumb.jpg

  • Like 1
Link to comment
Share on other sites

Bonjour,

Lorsque tu ajoutes un champ dans admin product, il faut également surchargé ta classe Product.php et y ajouté tes variables. et modifier les fonctions de requetes (toujours dans la classe). Ensuite il faut juste ajouter un champ booléen (ps_product)

 

normalement tu devrai t'en sortir avec ça

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

bonjour pierrot.

 

Je vais essayer de t'aider au mieux que je peux.

 

​Pense à faire une sauvegarde de tes fichier et ta base de donnée avant toute intervention B)

 

tout dabord, ouvre le fichier admin/tabs/AdminProduct.php.

 

A la ligne 2298 environ,

 

Trouve:

 

 

<input style="float: left;" type="checkbox" name="online_only" id="online_only" value="1" '.($this->getFieldValue($obj, 'online_only') ? 'checked="checked" ' : '').' />

<label for="online_only" class="t"><img src="../img/admin/basket_error.png" alt="'.$this->l('online only').'" title="'.$this->l('online only').'" style="float:left; padding:0px 5px 0px 5px" />'.$this->l('online only (not sold in store)').'</label>

<br class="clear" />

 

Rajoute juste aprés:

 

 

<input style="float: left;" type="checkbox" name="stock" id="stock" value="1" '.($this->getFieldValue($obj, 'stock') ? 'checked="checked" ' : '').' />

<label for="stock" class="t"><img src="../img/admin/stock.jpg" alt="'.$this->l('stock').'" title="'.$this->l('stock').'" style="float:left; padding:0px 5px 0px 5px" />'.$this->l('stock ').'</label>

 

( remplace stock par le nom que tu veux)

 

Cela va te creer ta checkbox

 

 

Maintenant ouvre ton fichier classes/profuct.php

 

ligne 94 environ touve:

 

/** @var boolean online_only */

public $online_only = false;

 

rajoute aprés:

 

 

/** @var boolean stock */

public $stock = false;

 

(remplace stock par le nom de ta checkbox)

 

trouve maintenant ligne 221:

 

'online_only' => 'isBool',

 

rajoute aprés:

 

'stock' => 'isBool',

 

toujour le meme fichier , ligne 340, trouve:

 

$fields['online_only'] = (int)($this->online_only);

 

 

rajoute aprés:

 

$fields['stock'] = (int)($this->stock);

 

 

Maintenant, direction ta base de donnée dans la table product,

 

juste aprés

 

online_only

 

rajoute:

 

stock (ou le nom de ta checkbox) et met lui tinyuit (3) unsigned

 

 

Voila ta checkbox devrai fonctionner.

 

Pense à faire une sauvegarde de tes fichier et ta base de donnée avant toute intervention

  • Like 1
Link to comment
Share on other sites

attention il t'a été conseillé de surcharger la classe Products, et pas de la modifier.

 

Donc normalement tu réécris les méthodes qui vont bien dans override/classes/product.php et tu laisses la classe product inchangée.

Link to comment
Share on other sites

merci de ton renseignement, mais je ne suis pas trés douer en php et le seul moyen que j'ai trouver pour arriver à mes fin est de modifier la la classe product en rajoutant les fonctions. le fait de surchargé, je n'ai pas trés bien compris comment faire donc si tu pouvez nous donner quelques explication de comment faire cela aiderais beaucoup à l'avenir. merci à toi

Link to comment
Share on other sites

  • 4 months later...

Alors ca ca m'interresse afin d'ajouter une chekbox pour dissocier les promo des soldes

faire une case pour dire que le produit est en solde (logo solde)

et faire une case pour dire que le produit est en promo(logo promo)

 

car pour l'instant , quand je suis en periode de solde , je change mon logo et je met solde et hors solde je met promo

est ce le meme principe ?

Link to comment
Share on other sites

Bonjour,

 

J'ai pris l’habitude de changer le logo uniquement (le fichier image dans le répertoire en ligne et dans toutes les langues)

J'obtiens le même résultat mais c'est limité.

 

c'est ce que je fais egalement mais ca veut dire que tu ne peut pas avoir des produits en soldes et produit en promo

Link to comment
Share on other sites

oui tu peu mettre a la place un champs texte ou bien un bouton radio si cela te fais plaisirs mais je vois pas ce ke tu va mettre dans ce champs. il serais plus judicieux dans ces cas la de creer 2 stock distint ou bien passer sur la version 1.5 qui elle je pense permet d'avoir plusieurs stock grace a la multiboutique

Link to comment
Share on other sites

mon soucis c'est que je suis en multi canaux , j'ai un magasin physique et un magasin sur prestahop

sur le site web , je peux me permettre de vendre des produit que je n'ai pas en stock via mon fournisseur

donc le soucis c'est que mon stock sur le site web n'est pas vraiment reel

et si je me cale au stock fournisseur , j'ai également un faux stock

 

un exemple , un produit qui n'est pas en stock chez un fournisseur , peut etre en stock chez moi

c'est pour cela qu'il faudrait 2 stock , stock magasin et stock internet(fournisseur) comme font beaucoup de site lorsque 'ils ont un magasin physique

 

de creer un second stock sur la 1.4 est assez lourd a faire

et la v1.5 , il n'est pas en natif , c'est le multientrepot qui est géré

et pour l'instant , je n'ai pas trop le temps de passer le site en 1.5

en conclusion , je vais creer une checkbox pour un stock internet , c'est a dire que lorsque qu'il sera coché cela voudrait dire qu'il est en stock chez le fournisseur et le vrai stock , ca sera mon stock reel

 

 

 

 

je pense que cette solution peut aider pas mal de personne

Link to comment
Share on other sites

le message est quand meme lié avec la quantité en stock , si le stock est à 0 , le message est different ......

bref , l'ideal c'est adavoir 2 gestion de stock ..et de plus c'est sur la 1.5

j'ai des modules qui ne fonctionnent pas sous 1.5

 

l'idée d'ajouter une checkbox peut me convenir et je suis en train de tester

je pense ajouter une checkbox pour les nouveau produit, les promo, et le double stock

 

et pourquoi un champs pour les garantie ect ...

Link to comment
Share on other sites

j'ai donc ajouter un champs texte sur ma page produit afin d'indiquer un second stock

 

 

 

dans le fichier product.phpligne 228'stock_supplier' => 'isUnsignedInt',

 

 

 

ligne 355$fields['stock_supplier'] = (int)($this->stock_supplier);

 

 

 

ligne 96/** @var integer Quantity stock supplier available */public $stock_supplier = 0;

 

 

 

 

en dessous de<tr><td class="col-left">'.$this->l('Quantity in stock:').'</td>	<td style="padding-bottom:5px;"><b>'.$qty.'</b><input type="hidden" name="quantity" value="'.$qty.'" /></td>  </tr><tr><td class="col-left">'.$this->l('Quantité en stock fournisseur:').'</td>						<td style="padding-bottom:5px;"></b><input  size="3" maxlength="10" type="text" name="stock_supplier" value="'.($this->getFieldValue($obj, 'stock_supplier') ? $this->getFieldValue($obj, 'stock_supplier') : 1).'" /></td>						</td>					</tr>	

 

 

 

et bien evidemment dans la base de données , il faut creer un champs en int(10) , defaut = 0

 

alors d'un coté , c'est bien et pas bien ce que j'ai fait ,

disons que generalement , on ne connait pas le stock reel d'un fournissueur donc la case a cocher suffissait

0 si pas de stock et 1 si il ya du stock

 

mais si ca peut aider d'autre personne a rajouter des champs

 

de plus ,

c'est un stock à titre indicatif car si l'on valide un panier , c'est le stock principal qui se deduit

 

donc il faudrait que si le stock principal est inferieur a zero

et que une commande est passé , il faudrait un moyen desavoir que c'est un stock fournisseur ou il faut piocher le materiel

Edited by ultraxa (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...