Jump to content
magic_lilou

Comment faire apparaitre le Code-barres EAN-13 ou JAN dans le catalogue produit du BO

Recommended Posts

Coucou les prestanautes,

Est-il possible de faire apparaitre, le Code-barres EAN-13 ou JAN, dans la liste du catalogue des produits du BO ?

Car j'aimerais, voir apparaitre cette colonne quand j'ouvre mon fichier .csv de mon catalogue.

Amicalement.

Lilou

Share this post


Link to post
Share on other sites
Posted (edited)

Surtout pas d'override sinon vous allez êtes embêté pour faire vos mises à jour, c'est une très mauvaise pratique. A n'utilisez que lorsqu'aucun hook n'est disponible pour y greffer un module.

Vous pouvez faire un module pour ajouter autant de colonne que vous souhaitez mais il faut connaitre la version de prestashop que vous utilisez.

Module pour prestashop 1.6, à mettre ici : modules/displayproductean/displayproductean.php

<?php

if (!defined('_PS_VERSION_')) {
    exit;
}

class DisplayProductEan extends Module
{
    /**
     * @var array list of hooks used
     */
    public $hooks = [
        'actionAdminProductsListingFieldsModifier',
        'actionAdminProductsListingResultsModifier',
    ];

    /**
     * Constructor.
     */
    public function __construct()
    {
        $this->name = 'displayproductean';
        $this->tab = 'administration';
        $this->version = '1.0.0';
        $this->author = 'Janett';
        $this->need_instance = 0;
        $this->ps_versions_compliancy = [
            'min' => '1.6.1.0',
            'max' => '1.6.1.99',
        ];

        parent::__construct();

        $this->displayName = $this->l('Display EAN13 on Product list');
        $this->description = $this->l('Adds EAN13 on Product list');
    }

    /**
     * Install Module.
     *
     * @return bool
     */
    public function install()
    {
        return parent::install()
            && $this->registerHook($this->hooks);
    }

    /**
     * Append custom fields.
     *
     * @param array $params
     */
    public function hookActionAdminProductsListingFieldsModifier(array $params)
    {
        // If hook is called in AdminController::processFilter() we have to check existence
        if (isset($params['select'])) {
            $params['select'] .= ', a.ean13';
        }

        $params['fields']['ean13'] = [
            'title' => $this->l('Barcode'),
            'align' => 'text-center',
            'class' => 'fixed-width-xs',
        ];
    }

    /**
     * Set additional data.
     *
     * @param array $params
     */
    public function hookActionAdminProductsListingResultsModifier(array $params)
    {
        foreach ($params['list'] as $key => $fields) {
            if (isset($fields['ean13'])) {
                $params['list'][$key]['ean13'] = empty($fields['ean13']) ? '-' : $fields['ean13'];
            }
        }
    }
}

Pour prestashop 1.7, il faut procéder différemment.

La prochaine fois, préciser votre version !

Edited by Janett (see edit history)

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

×

Important Information

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