Jump to content

Comment utiliser une classe fille de "ObjectModel"


Recommended Posts

Bonjour tout le monde, j'ai un petit problème, je dispose d'une base de donnée contenant plus de 4000 produits à réintégrer dans prestashop, et je voudrais le faire par le biais d'un module utilisant la classe "ProductCore".

 

Seulement je ne trouves pas trop sur le net comment m'y prendre, j'ai essayé ceci:

$test = new Product();

$test->id_supplier = 0;
$test->id_shop_default = 1;
$test->id_manufacturer = 0;
$test->quantity = 0;
$test->minimal_quantity = 1;
$test->price = 5;
$test->reference = null;
$test->description = "LA DESCRIPTION"
$test->link_rewrite = 'mon-super-url';
$test->name = 'Mon produit';

$test->add();

Seulement problème, lorsque j'ajoute la fonction "add" j'ai une belle erreur "500 Internal server error".

 

Je dois mal m'y prendre mais je trouves nul part un exemple ou quoi... J'ai essayé de suivre dans le code la procédure effectuée quand on post un nouveau produit depuis le panel admin mais je me suis vite perdu :')

Link to comment
Share on other sites

Bonsoir,

 

Je ne vais pas vous donner de solutions à proprement dit sur l'ajout d'un produit et donc sur l'utilisation d'une classe native de PrestaShop.

 

Cependant, à première vue, il est clair que le code génère une erreur. Qui se traduit par une erreur 500.

 

Il vous faut activer le mode développeur afin d'avoir un message d'informations sur l'erreur rencontrée.

Link to comment
Share on other sites

D'accord mais pouvez vous me dire si je dois instancier la classe Product avec des paramètres? si oui à quoi correspondent t-ils, et est-il judicieux de modifier les variables publiques sans passer par une fonction.

 

Merci d'avance

Link to comment
Share on other sites

Bonjour tout le monde, j'ai un petit problème, je dispose d'une base de donnée contenant plus de 4000 produits à réintégrer dans prestashop, et je voudrais le faire par le biais d'un module utilisant la classe "ProductCore".

 

Seulement je ne trouves pas trop sur le net comment m'y prendre, j'ai essayé ceci:

$test = new Product();

$test->id_supplier = 0;
$test->id_shop_default = 1;
$test->id_manufacturer = 0;
$test->quantity = 0;
$test->minimal_quantity = 1;
$test->price = 5;
$test->reference = null;
$test->description = "LA DESCRIPTION"
$test->link_rewrite = 'mon-super-url';
$test->name = 'Mon produit';

$test->add();

Seulement problème, lorsque j'ajoute la fonction "add" j'ai une belle erreur "500 Internal server error".

 

Je dois mal m'y prendre mais je trouves nul part un exemple ou quoi... J'ai essayé de suivre dans le code la procédure effectuée quand on post un nouveau produit depuis le panel admin mais je me suis vite perdu :')

Votre méthode est trop "simpliste", regardez votre base de données et le nombre de champs que comporte la table ps_product et vous comprendrez rapidement qu'il vous en manque énormément...

Lors de la création d'un produit en BO, vous avez dû remarquer qu'il y avait plusieurs onglets à remplir: descriptif, prix, images, déclinaisons, etc... 

Vous devez gérer tous ces paramètres.

Si votre problème est essentiellement au niveau de l'import et que vous voulez faire un module pour cela, regardez plutôt du coté de AdminImportController.php.

Si vos produits à importer diffèrent vraiment dans leur structure, par rapport à ceux de Prestashop, écrivez votre classe pour compléter les champs manquants et leur attribuer une valeur par défaut, par exemple.

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