Jump to content

Ajout d'un champ dans la partie admin


Recommended Posts

Salut,

Je souhaite ajouter "Prix généralement constaté"

Prix d'achat HT : € Le prix d'achat auquel vous avez eu le produit
Prix de vente HT : € * Le prix de vente hors taxe du produit
Prix généralement constaté: €
Taxe : 19.6
Prix de vente TTC : €

Il n'y aura aucun calcul dessus et sera a sortir sur la page d'appel du produit

Donc j'ai cree dans la base produit un champs, mais afin de pas mettre dans le souc dans le code je cherche a savoir ou il faut intervenir dans AdminProducts.php (enfin je l'imagine) pour

1 - qu'il recupere la valeur du champs
2 - ajouter le champs dans le formulaire
3 - qu'il update si besoin dans la base

question bonus :::> cela fait y a t il beaucoup de choses a faire pour recuupere la valeur dans la page appel produit?

Mes notions de php etant un peu rouillée j'en appel a votre bonté d'âme.

By the way.... bonnes fêtes de fin d'année a tous

Link to comment
Share on other sites

Salut à toi... je cherche à faire exactement la même chose que toi ;)
Pour info il faut également modifier la page classes/product.php !
Bon je vais essayer d'être assez clair et simple, dans classes/product.php :

/** @var float PPI in euros */
   public         $price_public = 0;
....
protected $fieldsValidate = array(
       'id_tax' => 'isUnsignedId',
       ...
       'price' => 'isPrice',
       'price_public' => 'isPrice',
       ...
       'ean13' => 'isEan13'
   );
....
public function getFields()
   {
       parent::validateFields();
       if (isset($this->id))
           $fields['id_product'] = intval($this->id);
       ...
       $fields['price'] = floatval($this->price);
       $fields['price_public'] = floatval($this->price_public);
       ...
       $fields['date_upd'] = pSQL($this->date_upd);

       return $fields;
   }



Après il te suffit de rajouter le champ "price_public" dans mon exemple dans l'affichage du back office donc dans Admin/tabs/AdminProducts.php (vers la ligne 1713 chez moi) :


'.$this->l('Prix public indicatif :').'

                           '.($currency->format == 1 ? $currency->sign.' ' : '').'<input size="11" maxlength="11" id="price_public" name="price_public" type="text" value="'.$this->getFieldValue($obj, 'price_public').'" onchange="this.value = this.value.replace(/,/g, \'.\');" onkeyup="[removed]calcMarges();" />'.($currency->format == 2 ? ' '.$currency->sign : '').'




En espérant avoir pu aider,
Bonne chance ;)

EDIT: Ah oui par contre j'oubliais de préciser que cette manip ne fonctionne que sur le produit "brut", et donc devient caduque si tu utilises les déclinaisons... Dans ce cas les modifications à apporter sont un peu plus tricky mais pas non plus la mort une fois que tu as compris le principe ;)

Link to comment
Share on other sites

Salut!

Ecoute merci! Je vais de ce pas tester ta solution... donc en fait dans classes/product.php tu definis le champs et tu l'ouvres.. puis dans tabs/AdminProducts.php tu mets le champs que tu veux!!

C'est ca que je comprenais pas!!! et ca marche toujours comme ca: dans les classes la definition et les 'appels' dans les php dédiés?

Comment je fais apres pour recupere la valeur dans la fiche produit en front Office? Qu'entends tu par "cette manip ne fonctionne que sur le produit “brut” ... moi il y a pas de calcul a faire c'est juste une valeur a entrer et a afficher.

Mais ton poste me donne de l'espoir ...

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour à vous,

Etant tout nouveau dans le monde magnifique de Prestashop, j'aimerai mettre en place ce parametrage et le faire affiché en FO.

Créer un champ "Prix généralement constaté" & affichage de celui ci en BO/FO

Est ce possible ?

Si oui quelles sont les manipulations à effectuer ?

Merci d'avance

Link to comment
Share on other sites

Bien pour etre tout a fait franc avec toi ... c'est le probleme qu'il va me falloir résoudre dans les semaines a venir mais je pense qu'il faudra mettre la main sur la class product (bref celle qui est appellee pour genere le prix et la photo etc...) et rajouter la variable price_public precedement crée...


Si tu as trouver la soluce d'ici la!! partage!! sinon je la trouverais et je la posterai :) mais ca doit pas etre trop trop compliqué

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