Jump to content

Note/Message client n'apparaissent pas dans la commande en BO


Recommended Posts

Hello,

 

comme dis dans le titre, j'ai un petit bug tout bête sur une boutique.

La seule note inscrite dans la commande en BackOffice, est le retour du paiement.

Si le client laisse un message lié à la commande, ou si le marchant laisse une note, rien n’apparaît...

Quelqu'un a t'il déjà eu ce problème ?

Si non, vers quelle Classe ou Controller dois-je m'orienter (ça ne doit pas être méchant...) ?

 

Merci !

 

Seb.

Link to comment
Share on other sites

Salut,

 

J'ai une question à se sujet, comment procéder pour faire apparaître les messages concernant une commande, dans la vue de la cette commande, au lieu dans la SAV?

 

De cette manière, on a une vue total des informations concernant une commande, lorsque l'on se trouve sur la fiche de la commande.

 

A+

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

 

j'ai le même problème et je ne trouve pas la solution. Je ne sais pas si c'est un bug ou un problème de configuration, mais dans ma version 1.4.7 je voyais ces messages/notes dans la commande et plus maintenant (Version 1.5.4).

Szed, tu as trouvé une solution ?

 

Merci et à bientôt.

Romain

Link to comment
Share on other sites

  • 4 months later...

Super merci cela marche bien

Juste un truc cela n'affiche que les message en SAV mais y a t'il possibilité que cela affiche aussi les notes d'information de la fiche client ?

et surtout est ce que c'est possible que ces message s'affiche en haut de la commande juste en dessous de la partie tab-customers.gif Informations client

Merci encore en tour cas

Link to comment
Share on other sites

Oki je vais pas m'y aventuré alors ...

Notes d'information ce sont les commentaire que tu écrit quand tu ouvre la fiche du client 

 

Menu clients clients tu clique sur un client cela ouvre la fiche client et la tu peux mettre une note privée

 

cms.gif Ajoutez une note privée

 

Voila j'espere avoir été clair sinon dit moi

Link to comment
Share on other sites

Déjà premier point, il y as un module (pas cher) qui fait ce que tu veux : http://boutique.weacms.com/fr/home/11-notty-note-sur-backoffice-prestashop.html

 

Un autre qui est ce que tu veux également (mais plus cher) : http://addons.prestashop.com/en/administration-tools-prestashop-modules/8641-private-customer-notes-on-order-page.html

 

Et pour gratuitement si tu bidouille un peu y a ca : http://www.prestashop.com/forums/topic/237079-how-to-display-customer-private-note-indicator-on-orders-tab/

Edited by semor (see edit history)
Link to comment
Share on other sites

C'est pas exactement ce que je veux pour le premier module car je ne veux pas communiqué avec d'autre employé je voudrais juste que la note caché sur un client apparaisse sur toutes ces commandes afin de faire un historique sur les problème ou autre information utile sur le client

 

Voila Pour le deuxième vue qu'il n'est pas en français cela ne poserai pas de problème si je l'installe ? de plus il indique 1.5.5 alors que je suis sur la version 1.5.6.1 donc je ne sais pas si il fonctionne

 

Merci pour vos aides

Link to comment
Share on other sites

Normalement aucun soucis lors de l'installation, le plus simple c'est que tu contacte le développeur.

 

Et puis sinon, il y a le troisieme point, l'avantage c'est que tu peut tester sans soucis (enfin pense à faire une sauvegarde des fichiers que tu modifie quand meme) ;)

Link to comment
Share on other sites

Je suis en train de tester le 3 eme point de mon coté ;)

 

Alors on s'en rapproche grandement, en fait dans le lien que je t'ai laissé, soit tu l'affiche sur la liste des commandes, soit sur la fiche client. 

Je cherche à le mettre sur la commande, ça devrait pas être loin

Edited by semor (see edit history)
Link to comment
Share on other sites

C'est en tout cas à renseigner la dedans (dans le fichier AdminOrdersController.php),

 

public function renderView()
{
$order = new Order(Tools::getValue('id_order'));
if (!Validate::isLoadedObject($order))
throw new PrestaShopException('object can\'t be loaded');


$customer = new Customer($order->id_customer);
$carrier = new Carrier($order->id_carrier);
$products = $this->getProducts($order);
$currency = new Currency((int)$order->id_currency);
// Carrier module call
$carrier_module_call = null;
if ($carrier->is_module)
{
$module = Module::getInstanceByName($carrier->external_module_name);
if (method_exists($module, 'displayInfoByCart'))
$carrier_module_call = call_user_func(array($module, 'displayInfoByCart'), $order->id_cart);
}


// Retrieve addresses information
$addressInvoice = new Address($order->id_address_invoice, $this->context->language->id);
if (Validate::isLoadedObject($addressInvoice) && $addressInvoice->id_state)
$invoiceState = new State((int)$addressInvoice->id_state);


if ($order->id_address_invoice == $order->id_address_delivery)
{
$addressDelivery = $addressInvoice;
if (isset($invoiceState))
$deliveryState = $invoiceState;
}
else
{
$addressDelivery = new Address($order->id_address_delivery, $this->context->language->id);
if (Validate::isLoadedObject($addressDelivery) && $addressDelivery->id_state)
$deliveryState = new State((int)($addressDelivery->id_state));
}


$this->toolbar_title = sprintf($this->l('Order #%1$d (%2$s) - %3$s %4$s'), $order->id, $order->reference, $customer->firstname, $customer->lastname);
if (Shop::isFeatureActive())
{
$shop = new Shop((int)$order->id_shop);
$this->toolbar_title .= ' - '.sprintf($this->l('Shop: %s'), $shop->name);
}


// gets warehouses to ship products, if and only if advanced stock management is activated
$warehouse_list = null;


$order_details = $order->getOrderDetailList();
foreach ($order_details as $order_detail)
{
$product = new Product($order_detail['product_id']);


if (Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT')
&& $product->advanced_stock_management)
{
$warehouses = Warehouse::getWarehousesByProductId($order_detail['product_id'], $order_detail['product_attribute_id']);
foreach ($warehouses as $warehouse)
{
if (!isset($warehouse_list[$warehouse['id_warehouse']]))
$warehouse_list[$warehouse['id_warehouse']] = $warehouse;
}
}
}


$payment_methods = array();
foreach (PaymentModule::getInstalledPaymentModules() as $payment)
{
$module = Module::getInstanceByName($payment['name']);
if (Validate::isLoadedObject($module) && $module->active)
$payment_methods[] = $module->displayName;
}


// display warning if there are products out of stock
$display_out_of_stock_warning = false;
$current_order_state = $order->getCurrentOrderState();
if (!Validate::isLoadedObject($current_order_state) || ($current_order_state->delivery != 1 && $current_order_state->shipped != 1))
$display_out_of_stock_warning = true;


// products current stock (from stock_available)
foreach ($products as &$product)
{
$product['current_stock'] = StockAvailable::getQuantityAvailableByProduct($product['product_id'], $product['product_attribute_id'], $product['id_shop']);


$resume = OrderSlip::getProductSlipResume($product['id_order_detail']);
$product['quantity_refundable'] = $product['product_quantity'] - $resume['product_quantity'];
$product['amount_refundable'] = $product['total_price_tax_incl'] - $resume['amount_tax_incl'];
$product['amount_refund'] = Tools::displayPrice($resume['amount_tax_incl'], $currency);
$product['refund_history'] = OrderSlip::getProductSlipDetail($product['id_order_detail']);
$product['return_history'] = OrderReturn::getProductReturnDetail($product['id_order_detail']);


// if the current stock requires a warning
if ($product['current_stock'] == 0 && $display_out_of_stock_warning)
$this->displayWarning($this->l('This product is out of stock: ').' '.$product['product_name']);
}


// Smarty assign
$this->tpl_view_vars = array(
'order' => $order,
'cart' => new Cart($order->id_cart),
'customer' => $customer,
'customer_addresses' => $customer->getAddresses($this->context->language->id),
'addresses' => array(
'delivery' => $addressDelivery,
'deliveryState' => isset($deliveryState) ? $deliveryState : null,
'invoice' => $addressInvoice,
'invoiceState' => isset($invoiceState) ? $invoiceState : null
),
'customerStats' => $customer->getStats(),
'products' => $products,
'discounts' => $order->getCartRules(),
'orders_total_paid_tax_incl' => $order->getOrdersTotalPaid(), // Get the sum of total_paid_tax_incl of the order with similar reference
'total_paid' => $order->getTotalPaid(),
'returns' => OrderReturn::getOrdersReturn($order->id_customer, $order->id),
'customer_thread_message' => CustomerThread::getCustomerMessages($order->id_customer, 0),
'orderMessages' => OrderMessage::getOrderMessages($order->id_lang),
'messages' => Message::getMessagesByOrderId($order->id, true),
'carrier' => new Carrier($order->id_carrier),
'history' => $order->getHistory($this->context->language->id),
'states' => OrderState::getOrderStates($this->context->language->id),
'warehouse_list' => $warehouse_list,
'sources' => ConnectionsSource::getOrderSources($order->id),
'currentState' => $order->getCurrentOrderState(),
'currency' => new Currency($order->id_currency),
'currencies' => Currency::getCurrencies(),
'previousOrder' => $order->getPreviousOrderId(),
'nextOrder' => $order->getNextOrderId(),
'current_index' => self::$currentIndex,
'carrierModuleCall' => $carrier_module_call,
'iso_code_lang' => $this->context->language->iso_code,
'id_lang' => $this->context->language->id,
'can_edit' => ($this->tabAccess['edit'] == 1),
'current_id_lang' => $this->context->language->id,
'invoices_collection' => $order->getInvoicesCollection(),
'not_paid_invoices_collection' => $order->getNotPaidInvoicesCollection(),
'payment_methods' => $payment_methods,
'invoice_management_active' => Configuration::get('PS_INVOICE', null, null, $order->id_shop)
);


return parent::renderView();
}

 

 

Le fichier tpl qui correspond est à ce chemin themes/default/template/controllers/orders/helpers/view , mais la j'ai besoin d'aide ;)

Edited by semor (see edit history)
Link to comment
Share on other sites

Toujours dans le fichier view.tpl situé dans le chemin cité juste au dessus : 

 

{if $customer->id}
<!-- Customer informations -->
<br />
<fieldset>
<legend><img src="../img/admin/tab-customers.gif" /> {l s='Customer information'}</legend>
<span style="font-weight: bold; font-size: 14px;"><a href="?tab=AdminCustomers&id_customer={$customer->id}&viewcustomer&token={getAdminToken tab='AdminCustomers'}"> {$customer->firstname} {$customer->lastname}</a></span> ({l s='#'}{$customer->id})<br />
(<a href="mailto:{$customer->email}">{$customer->email}</a>)<br /><br />
{if ($customer->isGuest())}
{l s='This order has been placed by a guest.'}
{if (!Customer::customerExists($customer->email))}
<form method="post" action="index.php?tab=AdminCustomers&id_customer={$customer->id}&token={getAdminToken tab='AdminCustomers'}">
<input type="hidden" name="id_lang" value="{$order->id_lang}" />
<p class="center"><input class="button" type="submit" name="submitGuestToCustomer" value="{l s='Transform a guest into a customer'}" /></p>
{l s='This feature will generate a random password and send an email to the customer.'}
</form>
{else}
<div><b style="color:red;">{l s='A registered customer account has already claimed this email address'}</b></div>
{/if}
{else}
{l s='Account registered:'} <b>{dateFormat date=$customer->date_add full=true}</b><br />
{l s='Valid orders placed:'} <b>{$customerStats['nb_orders']}</b><br />
{l s='Total spent since registration:'} <b>{displayPrice price=Tools::ps_round(Tools::convertPrice($customerStats['total_orders'], $currency), 2) currency=$currency->id}</b><br />
</fieldset>
{/if}
{/if}

Tu as normalement ça, c'est l'encart qui affiche l'information client sur la commande.
 

A TESTER

Cette modification : 

{if $customer->id}
<!-- Customer informations -->
<br />
<fieldset>
<legend><img src="../img/admin/tab-customers.gif" /> {l s='Customer information'}</legend>
<span style="font-weight: bold; font-size: 14px;"><a href="?tab=AdminCustomers&id_customer={$customer->id}&viewcustomer&token={getAdminToken tab='AdminCustomers'}"> {$customer->firstname} {$customer->lastname}</a></span> ({l s='#'}{$customer->id})<br />
(<a href="mailto:{$customer->email}">{$customer->email}</a>)<br /><br />
{if ($customer->isGuest())}
{l s='This order has been placed by a guest.'}
{if (!Customer::customerExists($customer->email))}
<form method="post" action="index.php?tab=AdminCustomers&id_customer={$customer->id}&token={getAdminToken tab='AdminCustomers'}">
<input type="hidden" name="id_lang" value="{$order->id_lang}" />
<p class="center"><input class="button" type="submit" name="submitGuestToCustomer" value="{l s='Transform a guest into a customer'}" /></p>
{l s='This feature will generate a random password and send an email to the customer.'}
</form>
{else}
<div><b style="color:red;">{l s='A registered customer account has already claimed this email address'}</b></div>
{/if}
{else}
{l s='Account registered:'} <b>{dateFormat date=$customer->date_add full=true}</b><br />
{l s='Valid orders placed:'} <b>{$customerStats['nb_orders']}</b><br />
{l s='Total spent since registration:'} <b>{displayPrice price=Tools::ps_round(Tools::convertPrice($customerStats['total_orders'], $currency), 2) currency=$currency->id}</b><br />
</fieldset>
{/if}
{if $customer->note}
<br />
<fieldset>
<legend><img src="../img/admin/tab-customers.gif" />Note Client</legend>
<span style="font-weight: bold; font-size: 14px;">{$customer->note}</span>
</fieldset>
{/if}
{/if}
 
Edited by semor (see edit history)
Link to comment
Share on other sites

Super, merci beaucoup semor.

Quand tu dis "fichier à mettre en Override dans le dossier classes.", ça veut dire quoi, remplacer le fichier message.php par le tien (j'obtiens une page blanche) ou coller le code dans le fichier en question à la suite ?

 

Merci d'avance.

Romain

 

P.S: je suis en version 1.5.4.

  • Like 1
Link to comment
Share on other sites

J'aimerai bien mais ce n'est pas moi qui est créée ce topic donc je ne pense pas pouvoir modifier le titre

 Ah oui mince, je n'avais pas fait attention à ça ..

 

 

 

Super, merci beaucoup semor.

Quand tu dis "fichier à mettre en Override dans le dossier classes.", ça veut dire quoi, remplacer le fichier message.php par le tien (j'obtiens une page blanche) ou coller le code dans le fichier en question à la suite ?

 

Merci d'avance.

Romain

 

P.S: je suis en version 1.5.4.

Désolé de ne pas avoir répondu plus tot, tu cherche simplement à avoir les messages client dans la commande ?

Pour l'override, le fichier est à placer dans le dossier Override/Controllers/Classes comme j'ai du l'indiqué (sinon autant pour moi)

et je t'invite à lire la documentation prestashop pour plus d'informations quand à l'utilisation de Prestashop ;)  http://doc.prestashop.com/display/PS14/Surcharge+et+override

Link to comment
Share on other sites

Merci, je ne connaissais pas l'override.

J'ai donc mis le fichier dans override/classes et ça marche ! (pas dans le dossier controllers. Je devrai ?)

 

Comment ça se fait que par défaut ça ne s'affichait pas ?

Dans tous les cas, merci bien, ça fait un moment que je cherchais.

  • Like 1
Link to comment
Share on other sites

Tu l'as mis dans le bon dossier, c'est déjà ça ;)

 

Ensuite tu dois vider ton cache smarty (comme à chaque manipulation de prestashop dans le cadre d'un dév, enfin la plupart du temps, mais la faut le faire :) )

 

Et normalement dans chaque commande tu devrais voir les messages !

Link to comment
Share on other sites

  • 8 years later...

Bonjour Semor

Tout d'abord bonne année 2022!

j'ai ce souci sur la version 1.7 la note du client n'apparait nulle part, merci m'aiguiller sur l'ajout de code à insérer. rien trouvé à part de poste de 2014.

Merci d'avance

Cordialement

Link to comment
Share on other sites

Il y a 3 heures, clem974 a dit :

Bonjour Semor

Tout d'abord bonne année 2022!

j'ai ce souci sur la version 1.7 la note du client n'apparait nulle part, merci m'aiguiller sur l'ajout de code à insérer. rien trouvé à part de poste de 2014.

Merci d'avance

Cordialement

8 ans ... la 1.7 n'existait pas donc merci de respecter les règles de ce forum et d'ouvrir votre propre sujet en expliquant clairement votre besoin et votre installation.

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