Jump to content

[Résolu] Modification Back Office Commandes


Recommended Posts

Bonjour,

J'ai besoin de votre aide. Je souhaiterais modifier le BO de commande. J'ai dans un premier temps ajouté une colonne avec le numéro de suivi de ma commande et ça fonctionne parfaitement (CF image ModifBOCommande.png).
Maintenant, je souhaiterais faire un peu plus compliqué, j'espère que vous pourrez m'aider.

J'affiche donc lorsque j'en ai un, un numéro de suivi. Je souhaiterais pouvoir rendre ce numéro de suivi cliquable en récupérant le lien dans la commande du numéro de suivi (celui qui permet de suivre le colis (CF CommandeNumSuivi).

Je souhaite donc récupéré le lien en plus du numéro de suivi qui est dans la commande dans la partie livraison de ma commande, pour mettre ce lien dans la colonne numéro de suivi de ma liste de commande.

Le but est de m'éviter de rentrer dans la commande à chaque fois.

Auriez-vous une solution ?

D'avance merci.

ModifBOCommande.png

CommandeNumSuivi.png

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

Bonjour,

Merci pour votre réponse rapide. J'ai regardé ce que vous m'avez envoyé.

La difficulté pour moi c'est que je cherche à récupéré le lien de tracking pour le mettre sur le BO.

Voici mon fichier AdminOrdersController.php de l'override.

Avec ce que vous m'avez envoyé, j'ai essayé quelques idées mais qui ne fonctionnent pas. Je précise, je ne suis pas développer :).

J'espère que vous pourrez m'aider.

D'avance merci.

 

AdminOrdersControllerModifié.php

AdminOrdersController.php

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

Bonjour,

Merci pour votre réponse.

N'étant pas développeur, je ne suis pas sur de comprendre la fonction que vous m'avez donné. Mais si je comprends un peu, la fonction ne peut pas récupérer le lien en fonction de la commande si ?

En attendant une réponse de votre part.

Cordialement

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

J'ai enfin trouvé la solution :). Je précise que ma version de Prestashop est la 1.6.0.11.

C'est dans mon fichier AdminOrdersController.php que ça se passe.

Je créé ma colonne Numéro de suivi comme suit :

public function __construct()
{
	parent::__construct();
	// Ajout de la colonne Numero de suivi
	$this->_join .= '
	LEFT JOIN `'._DB_PREFIX_.'order_carrier` oc ON (oc.`id_order` = a.`id_order`)
    LEFT JOIN `'._DB_PREFIX_.'carrier` ca ON (ca.`id_carrier` = oc.`id_carrier`)';
    	$this->_select .= ", CONCAT(`url`, '|', `tracking_number`) as otracking";
		$this->fields_list['otracking'] = array(
            'title' => $this->l('Numéro de suivi'),
            'havingFilter' => true,
            'href' => '',
            'callback' => 'addTrackingLink'
        	);
}

Ensuite, juste après la création de la colonne dans le même fichier, je créé ma fonction pour insérer le lien de tracking. La particularité est que je gère 2 modes de livraison alors que je n'en propose qu'un. C'est à dire que par défaut c'est tout le temps chronopost qui est actif, mais lorsque mes colis font plus de 30kg je passe par schenker. Quand j'utilise la fonction explode sur mon lien de tracking $otracking, il va me récupéré toute l'URL du lien chronopost $tracking_data[0] et le numéro de suivi $tracking_data[1]. Je regarde si dans $tracking_data[1] s'il y a le mot "Schenker" dedans et bien j'utilise un autre lien (celui fournit par Schenker) auquel j'ajoute $tracking_data[1]. Ce qui donne le résultat suivant :

public function addTrackingLink($otracking)
    {
		$tracking_data = explode('|',$otracking);
		if (stristr($tracking_data[1],'Schenker'))
			{
				return '<span><a href="https://eschenker.dbschenker.com/nges-portal/public/fr-FR_FR/#!/tracking/customer-search?refType=aam&refNumber='.substr($tracking_data[1], 12).'&transportMode=LAND" target="_blank">'.substr($tracking_data[1], 12).'</a></span>';
			}
		else
		{
			return '<a href="'.str_replace('@', $tracking_data[1], $tracking_data[0]).'" target="_blank">'.$tracking_data[1].'</a>';
		}			
	}

Si vous avez des questions, je pourrais vous répondre.

Je passe le sujet en résolu.

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