Jump to content

Ajouter des produits, des cathégories ou des fournisseurs depuis le front office


Recommended Posts

Bonjour et merci.

Je doit créer un site un peu particulier sous prestashop, puisqu'il permet aux clients de créer des produits. Je m'explique:

-En gros un client se connecte et il a acces à une page custom qui lui permet d'enregistrer des produits ( je ne peux pas en dire plus professionnelement )

 

Donc ce que j'ai besoin c'est que :

- lorsque quelqu'un créer un compte, celà créé automatiquement un fournisseur dans prestashop (avec les infos rentré dans le formulaire d'inscription)

-lorsque cette personne créé un produit (grace à un formulaire), ce produit se créer dans prestashop avec le client loggé en temps que fournisseur

 

J'ai farfouillé partout sur le net, impossible de trouver le moindre petit bout de php, de methode d'objet, d'un petit .add() ...

 

Celà est-il possible ?

 

Merci :)

Edited by studio B-now (see edit history)
Link to comment
Share on other sites

Bonjour,

 

il faudra un peu plus qu'un petit te travail pour ca.

 

Pour la première partie, cela peut se faire par un module. Prestashop dispose des hooks nécessaires.

 

Pour la seconde, il faudra au minimum créer une page custom pour le formulaire, le controller avec les méthodes de traitement afin d'enregistrer les produits, ...

Link to comment
Share on other sites

Merci pour ta réponse. La page custom est prête, ce que j'essaye de faire c'est justement de trouver une doc ou quelqu'un pour m'indiquer ou sont ces méthode de traitement ? Je n'ai rien trouvé. Je suppose qu'un produit est un objet Products, mais qelles sont les méthode de construction et d'enregistrement de l'objet ? je pense que si j'avais au moins ça je pourrais m'en inspirer pour le reste !!!

Link to comment
Share on other sites

Bonjour,

 

Quelle est ta version de prestashop ?
Voici un code basique qui crée un produit avec les champs nécessaire sous prestashop 1.5.3

$product = new Product();
$languages = Language::getLanguages();
foreach ($languages as $lang) {
    $product->name[$lang['id_lang']] = 'Nom du produit';
    $product->link_rewrite[$lang['id_lang']] = 'lien-reecrit-du-produit';
    $product->description[$lang['id_lang']] = 'description du produit';
}
$product->reference = 'reference';
$product->quantity = 10; //Quantité en stock
$product->id_category_default = 2; //A adapter avec ta catégorie par défaut
$product->price = 0; //Prix du produit
$product->id_tax_rules_group = 1; //Indentifiant de taxe
$product->indexed = 0;


try {
    $product->save();
} catch (PrestaShopException $e) {
   echo $e->displayMessage();
}
Link to comment
Share on other sites

Merci de ta réponse, je suis en version 1.6 mais ça à l'air de fonctionner niquel pour les produits  :)  !!!  Il me reste juste a reproduire ça pour les fournisseurs.

Mais il me manque toujours l'endroit ou je doit le faire. Je ne trouve pas le fichier php qui est appelé lors de l'inscription, ou sont récupéré les données envoyée en post  :blink:  ? Car c'est dans ce fichier que je doit faire la création du nouveau fournisseur si je ne me trompe !

Après partout sur les tuto je vois "modifier le fichier authentication.php" . J'ai beau faire des milliards de recherche sur mes dossier, ce fichier n'existe pas !

 

Ou puis je trouver ce fichier en 1.6 (la toute derniere version)

Edited by studio B-now (see edit history)
Link to comment
Share on other sites

Bonjour,

 

Le plus simple dans ton cas est de créer un module que tu va greffer sur le hook "actionCustomerAccountAdd"

 

donc dans ton module un code de ce type :

 

Sachant que /dans cette fonction tu reçois en paramètre les données post du formulaire et l'objet customer contenant les données du client  nouvellement créé

public function hookActionCustomerAccountAdd( $post, $customer ) {

//Après pour créer ton fournisseur c'est le même principe que pour créer un produit
$supplier = new Supplier();
$supplier->name = 'supplier';

try {
                $supplier->save();
            } catch (PrestaShopException $exc) {
                echo $exc->displayMessage();
            }

}

Par contre après il faudra sans doute que tu surcharge soit ton objet client, soit ton object supplier afin de pouvoir lier les 2 ;-)

Link to comment
Share on other sites

  • 3 months later...
  • 4 months later...

 

Bonjour,

 

Quelle est ta version de prestashop ?

Voici un code basique qui crée un produit avec les champs nécessaire sous prestashop 1.5.3

$product = new Product();
$languages = Language::getLanguages();
foreach ($languages as $lang) {
    $product->name[$lang['id_lang']] = 'Nom du produit';
    $product->link_rewrite[$lang['id_lang']] = 'lien-reecrit-du-produit';
    $product->description[$lang['id_lang']] = 'description du produit';
}
$product->reference = 'reference';
$product->quantity = 10; //Quantité en stock
$product->id_category_default = 2; //A adapter avec ta catégorie par défaut
$product->price = 0; //Prix du produit
$product->id_tax_rules_group = 1; //Indentifiant de taxe
$product->indexed = 0;


try {
    $product->save();
} catch (PrestaShopException $e) {
   echo $e->displayMessage();
}

Bonjour et comment faire pour qu'il s'ajoute au panier?

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