Daen Posted April 1, 2011 Share Posted April 1, 2011 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 Link to comment Share on other sites More sharing options...
Daen Posted April 2, 2011 Author Share Posted April 2, 2011 Bon j'avance pas bien viteDans new_order.htmlaprès Référence rajout Type Dans mailalerts.phpaprè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 More sharing options...
Daen Posted April 3, 2011 Author Share Posted April 3, 2011 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 More sharing options...
Daen Posted April 8, 2011 Author Share Posted April 8, 2011 Personne n'a une idée... A j’oublie quelque chose d'important version 1.4 de prestashop Link to comment Share on other sites More sharing options...
Broceliande Posted April 8, 2011 Share Posted April 8, 2011 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 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 More sharing options...
Daen Posted April 9, 2011 Author Share Posted April 9, 2011 Bonjour et merci pour cette réponse,Pas d'erreur sur la réception du mail marchand, mais le champ reste bien vide. Link to comment Share on other sites More sharing options...
Broceliande Posted April 9, 2011 Share Posted April 9, 2011 Question bête : tu as vidé le cache smarty apres modification ? Link to comment Share on other sites More sharing options...
Broceliande Posted April 9, 2011 Share Posted April 9, 2011 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 More sharing options...
Daen Posted April 9, 2011 Author Share Posted April 9, 2011 Bonjour,Oui pour la vidange du cache.Et cela ne marche toujours pas même avec la deuxième modification. Link to comment Share on other sites More sharing options...
Broceliande Posted April 9, 2011 Share Posted April 9, 2011 Je me demande, tu as copié l'intégralité de ce que je t'ai donné , y compris le : foreach ($products AS $key => &$product) ?J'ai rajouté un & pour avoir $product par référence et pouvoir lui ajouter l'entrée category_name . Link to comment Share on other sites More sharing options...
Daen Posted April 9, 2011 Author Share Posted April 9, 2011 Bien sur que j'ai copié l'intégralité du code. Link to comment Share on other sites More sharing options...
frato Posted June 28, 2011 Share Posted June 28, 2011 Tu dois pouvoir faire ça : $tmpprod = new Product($product['product_id']); $tmpcat = new Category($tmpprod->id_category_default); Et pour afficher la catégorie : $tmpcat->name[1] Link to comment Share on other sites More sharing options...
Daen Posted June 28, 2011 Author Share Posted June 28, 2011 Je regarde cela rapidement. Merci Frato Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now