Watchaa Posted May 15, 2014 Share Posted May 15, 2014 Bonjour, je cherche à ajouter des champs supplémentaires pour les produits. Et aussi que ça soit possible d'importer ces champs perso en CSV. J'ai créé mes champs dans la table ps_product mais l'import CSV n'ajoute rien dans ces champs. Je l'avais fait avec prestashop 1.5x mais avec la nouvelle version 1.6 ça ne marche plus. Si quelqu'un a la solution je suis preneur. Merci. Link to comment Share on other sites More sharing options...
Henki Posted May 16, 2014 Share Posted May 16, 2014 Bonjour, Pour ajouter un champ pour l'import de CSV il faut modifier le fichier AdminImportController.php . Par exemple, pour ajouter "monChamp" à la fin du menu déroulant il faut insérer vers la ligne 160 environ de ce fichier, les lignes suivante : 'monChamp' => array( 'label' => $this->l('Mon Champ'), 'help' => $this->l('ID de monChamp.') ), Codialement, Henki Link to comment Share on other sites More sharing options...
Watchaa Posted May 16, 2014 Author Share Posted May 16, 2014 Bonjour, ça marchait très bien dans la version 1.5 de prestashop mais ça ne marche pas dans la 1.6. C'est pour cela que je fais appelle à vous. Désolé d'écrire un message sans sauts de lignes mais mon Smartphone ne veut pas en faire Bonjour, Pour ajouter un champ pour l'import de CSV il faut modifier le fichier AdminImportController.php . Par exemple, pour ajouter "monChamp" à la fin du menu déroulant il faut insérer vers la ligne 160 environ de ce fichier, les lignes suivante : 'monChamp' => array( 'label' => $this->l('Mon Champ'), 'help' => $this->l('ID de monChamp.') ), Codialement, Henki c Link to comment Share on other sites More sharing options...
Henki Posted May 16, 2014 Share Posted May 16, 2014 (edited) C'est pas très compliqué ! Le fichier en question se trouve à l'adresse suivante : "monDomaine.com/prestashop/controllers/admin/AdminImportControllers.php" Ensuite il vous suffit de repérer les lignes suivantes (chez moi lignes 118 à 160) : $this->available_fields = array( 'no' => array('label' => $this->l('Ignore this column')), 'id_product' => array('label' => $this->l('Product ID').'*'), 'group' => array( 'label' => $this->l('Attribute (Name:Type:Position)').'*' ), 'attribute' => array( 'label' => $this->l('Value (Value:Position)').'*' ), 'supplier_reference' => array('label' => $this->l('Supplier reference')), 'reference' => array('label' => $this->l('Reference')), 'ean13' => array('label' => $this->l('EAN13')), 'upc' => array('label' => $this->l('UPC')), 'wholesale_price' => array('label' => $this->l('Wholesale price')), 'price' => array('label' => $this->l('Impact on price')), 'ecotax' => array('label' => $this->l('Ecotax')), 'quantity' => array('label' => $this->l('Quantity')), 'minimal_quantity' => array('label' => $this->l('Minimal quantity')), 'weight' => array('label' => $this->l('Impact on weight')), 'default_on' => array('label' => $this->l('Default (0 = No, 1 = Yes)')), 'image_position' => array( 'label' => $this->l('Image position') ), 'image_url' => array('label' => $this->l('Image URL')), 'delete_existing_images' => array( 'label' => $this->l('Delete existing images (0 = No, 1 = Yes).') ), 'shop' => array( 'label' => $this->l('ID / Name of shop'), 'help' => $this->l('Ignore this field if you don\'t use the Multistore tool. If you leave this field empty, the default shop will be used.'), ), 'advanced_stock_management' => array( 'label' => $this->l('Advanced Stock Management'), 'help' => $this->l('Enable Advanced Stock Management on product (0 = No, 1 = Yes)') ), 'depends_on_stock' => array( 'label' => $this->l('Depends on stock'), 'help' => $this->l('0 = Use quantity set in product, 1 = Use quantity from warehouse.') ), 'warehouse' => array( 'label' => $this->l('Warehouse'), 'help' => $this->l('ID of the warehouse to set as storage.') ), ); Ensuite il vous suffit d'ajouter après : 'warehouse' => array( 'label' => $this->l('Warehouse'), 'help' => $this->l('ID of the warehouse to set as storage.') ), le code cité ci-dessus. Edited May 16, 2014 by Henki (see edit history) Link to comment Share on other sites More sharing options...
Watchaa Posted May 16, 2014 Author Share Posted May 16, 2014 je sais bien mais ca marche pas en 1.6 man !! Link to comment Share on other sites More sharing options...
Henki Posted May 16, 2014 Share Posted May 16, 2014 (edited) Je n'avais pas compris désolé ! Edited May 16, 2014 by Henki (see edit history) Link to comment Share on other sites More sharing options...
Watchaa Posted May 16, 2014 Author Share Posted May 16, 2014 Je n'avais pas compris désolé ! Je te remercie pour ton aide. Avec la version 1.6 de prestashop, ça importe sans erreur mais mes champs supplémentaires de la table ps_product restent vides. En 1.5.6 j'avais déjà fait cette modif, ça marchait bien. Link to comment Share on other sites More sharing options...
Henki Posted May 16, 2014 Share Posted May 16, 2014 (edited) Après quelques recherches, je pense avoir trouvé la solution. Il faut non seulement faire ce que je t'ai dis de faire plus tôt, mais il faut également changer un bout de code, quelques lignes plus bas. Tout d'abord tentes de repérer cette ligne là : "$this->available_fields = array(" puis tu insères ton même bout de code en bas de cette requête : même bout de code => 'test' => array( 'label' => $this->l('Test'), 'help' => $this->l('ID of the test to set as storage.') ), à placer après => $this->available_fields = array( 'no' => array('label' => $this->l('Ignore this column')), 'id' => array('label' => $this->l('ID')), 'active' => array('label' => $this->l('Active (0/1)')), 'name' => array('label' => $this->l('Name *')), 'category' => array('label' => $this->l('Categories (x,y,z...)')), 'price_tex' => array('label' => $this->l('Price tax excluded')), 'price_tin' => array('label' => $this->l('Price tax included')), 'id_tax_rules_group' => array('label' => $this->l('Tax rules ID')), 'wholesale_price' => array('label' => $this->l('Wholesale price')), 'on_sale' => array('label' => $this->l('On sale (0/1)')), 'reduction_price' => array('label' => $this->l('Discount amount')), 'reduction_percent' => array('label' => $this->l('Discount percent')), 'reduction_from' => array('label' => $this->l('Discount from (yyyy-mm-dd)')), 'reduction_to' => array('label' => $this->l('Discount to (yyyy-mm-dd)')), 'reference' => array('label' => $this->l('Reference #')), 'supplier_reference' => array('label' => $this->l('Supplier reference #')), 'supplier' => array('label' => $this->l('Supplier')), 'manufacturer' => array('label' => $this->l('Manufacturer')), 'ean13' => array('label' => $this->l('EAN13')), 'upc' => array('label' => $this->l('UPC')), 'ecotax' => array('label' => $this->l('Ecotax')), 'width' => array('label' => $this->l('Width')), 'height' => array('label' => $this->l('Height')), 'depth' => array('label' => $this->l('Depth')), 'weight' => array('label' => $this->l('Weight')), 'quantity' => array('label' => $this->l('Quantity')), 'minimal_quantity' => array('label' => $this->l('Minimal quantity')), 'visibility' => array('label' => $this->l('Visibility')), 'additional_shipping_cost' => array('label' => $this->l('Additional shipping cost')), 'unity' => array('label' => $this->l('Unity')), 'unit_price_ratio' => array('label' => $this->l('Unit price ratio')), 'description_short' => array('label' => $this->l('Short description')), 'description' => array('label' => $this->l('Description')), 'tags' => array('label' => $this->l('Tags (x,y,z...)')), 'meta_title' => array('label' => $this->l('Meta title')), 'meta_keywords' => array('label' => $this->l('Meta keywords')), 'meta_description' => array('label' => $this->l('Meta description')), 'link_rewrite' => array('label' => $this->l('URL rewritten')), 'available_now' => array('label' => $this->l('Text when in stock')), 'available_later' => array('label' => $this->l('Text when backorder allowed')), 'available_for_order' => array('label' => $this->l('Available for order (0 = No, 1 = Yes)')), 'available_date' => array('label' => $this->l('Product available date')), 'date_add' => array('label' => $this->l('Product creation date')), 'show_price' => array('label' => $this->l('Show price (0 = No, 1 = Yes)')), 'image' => array('label' => $this->l('Image URLs (x,y,z...)')), 'delete_existing_images' => array( 'label' => $this->l('Delete existing images (0 = No, 1 = Yes)') ), 'features' => array('label' => $this->l('Feature(Name:Value:Position:Customized)')), 'online_only' => array('label' => $this->l('Available online only (0 = No, 1 = Yes)')), 'condition' => array('label' => $this->l('Condition')), 'customizable' => array('label' => $this->l('Customizable (0 = No, 1 = Yes)')), 'uploadable_files' => array('label' => $this->l('Uploadable files (0 = No, 1 = Yes)')), 'text_fields' => array('label' => $this->l('Text fields (0 = No, 1 = Yes)')), 'out_of_stock' => array('label' => $this->l('Action when out of stock')), 'shop' => array( 'label' => $this->l('ID / Name of shop'), 'help' => $this->l('Ignore this field if you don\'t use the Multistore tool. If you leave this field empty, the default shop will be used.'), ), 'advanced_stock_management' => array( 'label' => $this->l('Advanced Stock Management'), 'help' => $this->l('Enable Advanced Stock Management on product (0 = No, 1 = Yes).') ), 'depends_on_stock' => array( 'label' => $this->l('Depends on stock'), 'help' => $this->l('0 = Use quantity set in product, 1 = Use quantity from warehouse.') ), 'warehouse' => array( 'label' => $this->l('Warehouse'), 'help' => $this->l('ID of the warehouse to set as storage.') ), J'ai vérifié et maintenant je vois mon champ "Test" dans le menu déroulant lorsque j'importe mon csv. Edited May 16, 2014 by Henki (see edit history) Link to comment Share on other sites More sharing options...
Watchaa Posted May 16, 2014 Author Share Posted May 16, 2014 (edited) Après quelques recherches, je pense avoir trouvé la solution. Il faut non seulement faire ce que je t'ai dis de faire plus tôt, mais il faut également changer un bout de code, quelques lignes plus bas. Tout d'abord tentes de repérer cette ligne là : "$this->available_fields = array(" puis tu insères ton même bout de code en bas de cette requête : 'test' => array( 'label' => $this->l('Test'), 'help' => $this->l('ID of the test to set as storage.') ), J'ai vérifié et maintenant je vois mon champ "Test" dans le menu déroulant lorsque j'importe mon csv. En fait moi aussi je vois mes champs dans les menus déroulants, je les fais correspondre aux colonnes, je lance l'importation, pas d'erreurs, mais quand je regarde les données dans la table ps_product, les champs additionnels restent vides. As tu tenté d'importer ? Bon, je vais recommencer encore une fois Edited May 16, 2014 by Watchaa (see edit history) Link to comment Share on other sites More sharing options...
Watchaa Posted May 16, 2014 Author Share Posted May 16, 2014 Je pense qu'au final je vais utiliser les caractéristiques. Ca va pas être plus mal. Link to comment Share on other sites More sharing options...
Henki Posted May 16, 2014 Share Posted May 16, 2014 "les champs additionnels restent vides." Qu'appelles tu "champs additionnels" ? Link to comment Share on other sites More sharing options...
Watchaa Posted May 16, 2014 Author Share Posted May 16, 2014 Qu'appelles tu "champs additionnels" ? J'appelle "champs additionnels" les champs perso que j'ai rajouté dans la table ps_product. (= une colonne supplémentaire dans phpmyadmin) Link to comment Share on other sites More sharing options...
Henki Posted May 16, 2014 Share Posted May 16, 2014 J'appelle "champs additionnels" les champs perso que j'ai rajouté dans la table ps_product. (= une colonne supplémentaire dans phpmyadmin) Je vois, je commence à cerner ton vrai problème ! Tentes avec les caractéristiques ce que ça donne, n'oublie pas de nous tenir au courant de ton avancement ! Bon courage Link to comment Share on other sites More sharing options...
Futamiya Posted July 28, 2021 Share Posted July 28, 2021 Bonjour, Je rencontre le même problème mais en version 1.7 : voici le topic Link to comment Share on other sites More sharing options...
DavidMucci Posted July 30, 2021 Share Posted July 30, 2021 Bonjour, Est-ce que cette méthode pour être utilisée pour rajouter le champs "Emplacement du Stock" dans l'import, car actuellement je n'ai pas trouvé de manière d'importer en CSV la donnée de la case "Emplacement du Stock" dans la fiche produit sur PS1.7 ? Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now