Jump to content

Insérer le champ id_product_pack dans l'import CSV Prestashop


Recommended Posts

Environnement de travail :

localhost : xampp dernière version, sur Ubuntu

apache web server

mySQL database

 

Bonjour,

J'essaie de me former sur Prestashop seule. Et je voudrais intégrer des produits sous forme de pack. Mais imaginons que nous ayons 300 produits packs avec des milliers de produits standards. 

Je ne voudrais pas les faire manuellement. Donc, je me suis dit que je modifierais le fichier AdminImportController.php. et que j'ajouterais les 3 champs suivants : cache_is_pack, id_product_pack et id_product_item.

Ps : AdminImportController.php se trouve dans controllers/admin

Grace à certains forums, j'ai réussi à faire apparaitre ces trois champs dans ma barre de sélection lorsque je souhaite importer des produits. C'est grace à ça :

                    'accessories' => ['label' => $this->trans('Accessories (x,y,z...)', [], 'Admin.Advparameters.Feature')],
                    'cache_is_pack' => ['label' => $this->trans('Cache is pack (0 = No, 1 = Yes)', [], 'Admin.Advparameters.Feature')],
                    'id_product_pack' => array('label' => $this->trans('Id pack') ,[], 'Admin.Advparameters.Feature'),
                    'id_product_item' => ['label' => $this->trans('id du produit dans le pack', [], 'Admin.Advparameters.Feature')],

C'est vers la ligne 300 (ligne 338)

 

Bon, je fais l'import, mais le produit qui devait être un produit pack est resté un produit standard. 

 

Je pensais rajouter cela, dans la fonction "public function productImport($offset = false, $limit = false, &$crossStepsVariables = false, $validateOnly = false, $moreStep = 0)" :

        if (isset($product->id_product_pack)) {
            $product->id_product_pack = $product->id_product_pack;
            $pack = new Pack();
            $datas = Db::getInstance()->getRow('
					SELECT product_shop.`date_add`, p.`id_product`
					FROM `' . _DB_PREFIX_ . 'product` p
					' . Shop::addSqlAssociation('product', 'p') . '
					WHERE p.`reference` = "' . pSQL($product->reference) . '"
				', false);
            $id_product ='';
            $id_product->id = (int) $datas['id_product'];
            $pack -> isPack($id_product);
        }

Mais cela ne marche toujours pas.

Auriez-vous des idées ?

 

Merci d'avance pour vos réponses

Cordialement

Futamiya

Share this post


Link to post
Share on other sites

  • 1 month later...

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