Jump to content

Récupérer des infos de la table product_lang et les afficher sur la facture


nicoco

Recommended Posts

Bonjour,

 

J'ai créé un nouveau champ dans la table product_lang qui me permet d'ajouter le Siret du fabricant (et autres) dans la fiche produit.

Je souhaiterai maintenant que ce champ (artisan_info) s'affiche sous le nom du produit dans la facture.

 

En fouillant le forum j'ai trouvé quelques pistes, notamment une qui permet d'ajouter le nom du fabricant de cette manière :

 

$fabricant = Db::getInstance()->ExecuteS(' SELECT id_manufacturer FROM `'._DB_PREFIX_.'product` WHERE `id_product` = '.intval($product['product_id']));
                   $this->MultiCell($w[0], 5, Tools::iconv('utf-8', self::encoding(), Manufacturer::getNameById($fabricant[0]['id_manufacturer']).' - '.$product['product_name']), 'B');

 

J'ai donc essayé de l'adapter, mais ma compréhension s'arrête à : sélectionner le champ "artisan_info" de la table "product_lang" :

 

$info = Db::getInstance()->ExecuteS(' SELECT artisan_info FROM `'._DB_PREFIX_.'product_lang` WHERE `artisan_info`

 

Après je sèche :

WHERE `id_product` = '.intval($product['product_id']));

?

 

Et pour l'affichage, d'où sort ceci (où trouve-t-on une liste des actions disponibles) :

Manufacturer::getNameById

, est-ce que je dois faire quelque-chose du genre

Product::getProductById

(ca marche pas, à priori...).

 

Enfin, je m'en sors très bien avec le HTML/CSS et je suis de plus en plus frustré de devoir (méchament) bidouiller en PHP, quelqu'un saurait me conseiller un bon tuto en ligne ou en livre pour ensuite pouvoir bidouiller correctement Prestashop?

 

Merci!

Link to comment
Share on other sites

Bonjour,

 

En avançant un peu, il semblerait qu'il soit plus aisé de récupérer des infos de la table manufacturer, j'ai donc créé un nouveau champ dansla table manufacturer : "man_infos".

 

Le code suivant semble fonctionner sur un presta 1.4.1 :

$productObj = new Product($product['product_id'], true, intval($cookie->id_lang));
 $manufacturer_name = '';
 $manufacturer = new Manufacturer($productObj->id_manufacturer, intval($cookie_id_lang));
 if (Validate::isLoadedObject($manufacturer))
 $manufacturer_name = $manufacturer->man_infos. ' ';
 $this->MultiCell($w[++$i], 5, Tools::iconv('utf-8', self::encoding(), $manufacturer_name.$product['product_name']), 'B');

 

En revanche sur la version 1.4.4 j'ai les erreurs suivantes :

 

Notice: Undefined variable: cookie in (...)\prestashop\classes\PDF.php on line 847

 

Notice: Trying to get property of non-object in (...)\prestashop\classes\PDF.php on line 847

 

Notice: Undefined variable: cookie_id_lang in (...)\prestashop\classes\PDF.php on line 849

 

Notice: Undefined property: Manufacturer::$man_infos in (...)\prestashop\classes\PDF.php on line 851

FPDF error: Some data has already been output, can't send PDF file

 

(Je précise que je fais ces tests sur une boutique de test en local, et qu'il ne m'est pas possible de mettre à jour presta, j'ai modifié trop de fichiers...)

 

Merci

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