Jump to content

_Product_Line BackOffice Detail Produit PS1.6


Aude5
 Share

Recommended Posts

Bonjour,

J'avoue. Je cale sur la récupération d'une information.

Dans le back office, je souhaite affiche le contenu du champs "Available_now" pour chaque ligne de détail produit.

J'ai bien tenté de "fouiller" dans les classes, mais sans succès et cette caleur n'est pas disponible pour lors de l'execution {$product|@debug_print_var} dans  _Product_Line.tpl

une idée ?

Edited by Aude5 (see edit history)

Share this post


Link to post
Share on other sites

dans le fichier le  fichier controllers / admin /  adminiproductscontroller.php ?

ou bien dans admin/themes\default\template\controllers\products\helpers ?

 

Car dans le 1er cas si j'ajoute dans le construct

        $this->fields_list['available_now'] = array(

            'title' => $this->l('available_now'),

             'align' => 'left',

        );

j'ai bien la liste de produits dans le back office qui contient bien le available_now, mais moi je le veux dans  le detail d'une commande en back office

 

au moins ça me rassure il y a une solution  :)

 

Edited by Aude5 (see edit history)

Share this post


Link to post
Share on other sites

Cette info n'étant pas dans la table order_detail (qui est utilisée pour afficher le détails des produits dans une commande)

    public function getProductsDetail()
    {
        return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
		SELECT *
		FROM `'._DB_PREFIX_.'order_detail` od
		LEFT JOIN `'._DB_PREFIX_.'product` p ON (p.id_product = od.product_id)
		LEFT JOIN `'._DB_PREFIX_.'product_shop` ps ON (ps.id_product = p.id_product AND ps.id_shop = od.id_shop)
		WHERE od.`id_order` = '.(int)$this->id);
    }

Il faut faire une jointure avec ps_product_lang pour ajouter cette info au tableau récupéré (dans classes/order/order.php)

La fonction devient donc:

    public function getProductsDetail()
    {
        return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
		SELECT od.*, p.*, ps.*, pl.available_now, pl.available_later
		FROM `'._DB_PREFIX_.'order_detail` od
		LEFT JOIN `'._DB_PREFIX_.'product` p ON (p.id_product = od.product_id)
		LEFT JOIN `'._DB_PREFIX_.'product_shop` ps ON (ps.id_product = p.id_product AND ps.id_shop = od.id_shop)
        LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (pl.id_product = od.product_id AND pl.id_lang = '.(int)Context::getContext()->language->id.' AND pl.id_shop = od.id_shop)
		WHERE od.`id_order` = '.(int)$this->id);
    }

Ensuite ajouter dans /admin/themes/default/template/controllers/orders/_product_line.tpl:

	<td class="productAvailability text-center">
		<span class="product_availability_show">{$product['available_now']}</span>
	</td>

Et terminer avec les en-têtes dans /admin/themes/default/template/controllers/orders/helpers/view/view.tpl:

<th class="text-center"><span class="title_box ">{l s='Dispo'}</span></th>

Ce qui donne:

image.thumb.png.b514d5c2df283a00585b6851a3a3762d.png

  • Like 1

Share this post


Link to post
Share on other sites

Merci @Eolia ça fonctionne impeccable !

Heureusement que la communauté est là ;)

Je me pose la question sur l'impact de la modification de cette classe ? en terme de sécurité et lors des mises à jour ? Bien que ce le soit que de la lecture

 

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More