Jump to content

Rajout d'un champ catégorie dans facture


Recommended Posts

Bonjour a tous,

Je cherche a rajouté un champ supplémentaire dans le mail d'envoi suite a une commande.

Ce champ comme indiqué comme dans les images ci-dessous doit indique le nom de la catégorie d’où le produit est commander ce qui va me permettre dans mon cas d'enlever dans le titre de mon produit le nom de la catégories.

Si j'ai suivit correctement il faut aller dans le le répertoire modules\mailalerts\mails\fr sur le fichier new_order.html pour rajouté le visuel, et déclarer dans le fichier modules\mailalerts\mailalerts.php ma variable.

mais je ne sais pas comment mis prendre, si vous avez une idée je suis preneur.

Merci d'avance

41924_iHLT8aiCJbqy17zrra8O_t

41925_uoPj7J58jihsvadrvE5S_t

Link to comment
Share on other sites

Bon j'avance pas bien vite

Dans new_order.html
après

Référence


rajout

Type



Dans mailalerts.php
après

'.$product['product_reference'].'


rajout

'.$categorie['name'].'



Mais il doit bien manqué quelque chose le champ reste vide a la réception du mail

Link to comment
Share on other sites

Bon je seiche grave...

Si je comprend un peu la marche a suivre, je demande d'afficher quelque chose qui n'est pas déclarer(en gros) dans itemsTable du fichier mailalerts.php.
le champ qui m’intéresse est dans category_lang -> name


       $itemsTable = '';

       $products = $order->getProducts();
   $customizedDatas = Product::getAllCustomizedDatas(intval($params['cart']->id));
       Product::addCustomizationPrice($products, $customizedDatas);
       foreach ($products AS $key => $product)
       {
           $unit_price = $product['product_price_wt'];
           $price = $product['total_price'];

           $customizationText = '';
           if (isset($customizedDatas[$product['product_id']][$product['product_attribute_id']]))
                   {

                       foreach ($customizedDatas[$product['product_id']][$product['product_attribute_id']] AS $customization)
                       {
                           if (isset($customization['datas'][_CUSTOMIZE_TEXTFIELD_]))
                               foreach ($customization['datas'][_CUSTOMIZE_TEXTFIELD_] AS $text)
                                   $customizationText .= $text['name'].':'.' '.$text['value'].'
';

                           if (isset($customization['datas'][_CUSTOMIZE_FILE_]))
                               $customizationText .= sizeof($customization['datas'][_CUSTOMIZE_FILE_]) .' '. Tools::displayError('image(s)').'
';

                           $customizationText .= '---
';                            
                       }

                       $customizationText = rtrim($customizationText, '---
');
           }

           $itemsTable .=
               '
'.$product['product_reference'].'
'.$categorie['name'].'
'.$product['product_name'].(isset($product['attributes_small']) ? ' '.$product['attributes_small'] : '').(!empty($customizationText) ? '
'.$customizationText : '').'
'.Tools::displayPrice($unit_price, $currency, false, false).'
'.intval($product['product_quantity']).'
'.Tools::displayPrice(($unit_price * $product['product_quantity']), $currency, false, false).'
';
       }

Link to comment
Share on other sites

Personne n'a une idée...

A j’oublie quelque chose d'important version 1.4 de prestashop


sans ça je te répondais pas :lol:

Donc Bonsoir,

et avec ça ? :

global $cookie; /* faut que ce soit quelque part */
$itemsTable = '';

       $products = $order->getProducts();
   $customizedDatas = Product::getAllCustomizedDatas(intval($params['cart']->id));
       Product::addCustomizationPrice($products, $customizedDatas);
       foreach ($products AS $key => &$product) /* peut être besoin d'avoir $product par référence */
       {
           $unit_price = $product['product_price_wt'];
           $price = $product['total_price'];
           /* instance de la catégorie par défaut pour récupérer le nom */
           $category = new Category($product['id_category_default']);
           $product['category_name']=$category->name[$cookie->id_lang];
           /* - that's all folks i got it - */
           $customizationText = '';
           if (isset($customizedDatas[$product['product_id']][$product['product_attribute_id']]))
                   {

                       foreach ($customizedDatas[$product['product_id']][$product['product_attribute_id']] AS $customization)
                       {
                           if (isset($customization['datas'][_CUSTOMIZE_TEXTFIELD_]))
                               foreach ($customization['datas'][_CUSTOMIZE_TEXTFIELD_] AS $text)
                                   $customizationText .= $text['name'].':'.' '.$text['value'].'
';

                           if (isset($customization['datas'][_CUSTOMIZE_FILE_]))
                               $customizationText .= sizeof($customization['datas'][_CUSTOMIZE_FILE_]) .' '. Tools::displayError('image(s)').'
';

                           $customizationText .= '---
';                            
                       }

                       $customizationText = rtrim($customizationText, '---
');
           }

           $itemsTable .=
               '
'.$product['product_reference'].'
'.$product['category_name'].'
'.$product['product_name'].(isset($product['attributes_small']) ? ' '.$product['attributes_small'] : '').(!empty($customizationText) ? '
'.$customizationText : '').'
'.Tools::displayPrice($unit_price, $currency, false, false).'
'.intval($product['product_quantity']).'
'.Tools::displayPrice(($unit_price * $product['product_quantity']), $currency, false, false).'
';
       }

Link to comment
Share on other sites

essaye comme ça en ne modifiant que ces deux lignes par rapport au code que je t'ai déja donné :

            /* instance de la catégorie par défaut pour récupérer le nom */
           $category = new Category($product['id_category_default'],$cookie->id_lang);
           $product['category_name']=$category->name;
           /* - that's all folks i got it - */



NB : le global $cookie doit absolument être présent au début de la fonction.

Link to comment
Share on other sites

  • 2 months later...

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