Jump to content

Modifier retour produits


Recommended Posts

Bonjour à tous,

 

Je souhaite faire une petite modification dans prestashop pour avoir le processus suivant :

 

Lorsque l'admin modifie le statut d'un retour produit, il peut également rentrer un commentaire. Ce commentaire s'affichera dans la page du client, lorsqu'il visualise le retour produit.

 

J'ai un souci de compréhension du fonctionnement de prestashop, et à la limite si quelqu'un avait l'opportunité de m'expliquer comment ça marche, je pourrais comprendre la philosophie, ça m'aiderait grandement.

 

Pour le moment, j'ai compris (ou je crois que j'ai compris) :

 

- Dans tabs/AdminReturn.php, dans la fonction displayForm vers la ligne 197, j'ai rajouté :

 

 

// RAJOUT COMMENTAIRE ADMIN 
echo ' <label>Commentaire :</label>
<div class="margin-form">
<textarea name="comment_admin_return" cols="70" rows="5"></textarea>
</div>';
// FIN RAJOUT COMMENTAIRE ADMIN

 

ça marche il apparait dans l'onglet correspondant....

 

- Toujours dans tabs/AdminReturn.php, dans la fonction postProcess vers la ligne 97, j'ai rajouté :

 

 

// RAJOUT
 $orderReturn->comment = Tools::getValue('comment_admin_return'); 
// FIN RAJOUT

 

en dessous de :

 

$orderReturn->state = (int)(Tools::getValue('state'));

 

Pour cette partie je n'en suis vraiment pas sûr, mais ça me semble naturel de rajouter une récupération de mon nouveau champ.

 

Puis juste en dessous, il y a cette fonction :

 

if ($orderReturn->save())

 

Donc là j'imagine qu'on fait appel à la fonction save() de ObjectModel.php, laquelle fait appel à la fonction update ou add (update là en l'occurrence.)

 

- Dans ma table j'ai créé un champ 'comment' dans la table order_return

 

Que faut-il faire de plus ? ou de différent ?

 

Merci à qui voudra bien me répondre....

Link to comment
Share on other sites

Un p'tit up car j'ai trouvé et ça peut aider quelqu'un :

 

1- J'ai dans la table 'ps_order_return' un champ 'comment'.

2- Dans OrderReturnController.php, c'est la fonction preProcess() qui fait appel aux modèles, donc aux données, en instanciant un objet $orderRet :

$orderRet = new OrderReturn((int)($_GET['id_order_return']));

 

3- Dans OrderReturn.php, j'ai donc déclaré une variable public :

public  $comment;

puis dans getFields() j'ai protégé le string :

$fields['comment'] = pSQL($this->comment);

puis dans getOrdersReturn, la requête de sélection prend tout ce qu'il y a dans la table '._DB_PREFIX_.'order_return,

et lorsque le tableau $data est parcouru, j'ai affecté à la ligne $k une colonne 'comment' dans laquelle je place ce que la requête a trouvé dans le champ 'comment' :

 

foreach ($data AS $k => $or)
{
$state = new OrderReturnState($or['state']);
$data[$k]['state_name'] = $state->name[$cookie->id_lang];
$data[$k]['comment'] = $or['comment']; // RAJOUT 30-11-2011
}

 

- dans OrderReturnController.php, j'ai affecté une variable 'comment' dans l'array qui est envoyé à Smarty :

 

self::$smarty->assign(array(
'orderRet' => $orderRet,
'order' => $order,
'comment' => $comment, //RAJOUT 30-11-2011
'state_name' => $state->name[(int)(self::$cookie->id_lang)],
'return_allowed' => false,
'products' => OrderReturn::getOrdersReturnProducts((int)($orderRet->id), $order),
'returnedCustomizations' => OrderReturn::getReturnedCustomizedProducts((int)($orderRet->id_order)),
'customizedDatas' => Product::getAllCustomizedDatas((int)($order->id_cart))
));

 

- et enfin dans order-return.tpl, j'ai mis la variable 'comment' :

 

{$orderRet->comment}

 

voilà a+

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