Pierre-Henri Posted March 16, 2015 Share Posted March 16, 2015 (edited) Bonjour, Je travaille actuellement sur un Prestashop et je suis particulièrement intéressé par la fonction d'import de produits via CSV. Toutefois, j'ai une problèmatique. J'ai nommé toutes mes images en fonction de la référence du produit associé. J'ai par-exemple un produit portant la référence AFF001. Les images correspondant à ce produit portent le nom de fichier aff001-1.jpg, aff001-2.jpg, ... Dans le fichier d'import, je souhaiterais créer une boucle PHP afin que pour chaque produit disposant d'une référence, je cherche s'il existe des images et si oui, les ajouter au produit... Voici le type de code auquel j'ai pensé. Toutefois, je ne sais pas où l'intégrer et s'il est correct... $product_reference = ... // Nom de la variable contenant la référence du produit ? $prestashop_absolute_url = .. // URL du prestashop $images_path = 'img/p/' // Dossier contenant mes images produit $images_list = array(); // Array qui contiendra les éventuelles images trouvées $i = 1; $do_while = true; while($do_while) { $image_path_filename = $images_path.strtolower($product_reference).'-'.$i.'.jpg'; if(file_exists($image_path_filename)) { $images_list[] = $prestashop_absolute_url.$image_path_filename ; $i++; } // Pas d'image trouvée ... else { $do_while = false; } } $images_list = explode(',', $images_list); // Liste de toutes les URLs des images sous forme d'une chaîne de caractère compatible avec le fichier d'import CSV En fonction de l'emplacement de cette portion de code, je devrais sans doute modifier ma variable $images_path (ajouter un ou plusieurs '../')D'avance, merci pour votre aide. pH Edited March 16, 2015 by Pierre-Henri (see edit history) Link to comment Share on other sites More sharing options...
Pierre-Henri Posted March 16, 2015 Author Share Posted March 16, 2015 Je me réponds à moi-même car j'ai terminé et ça fonctionne : // Images des produits en fonction de la référence du produit - BOF $prestashop_absolute_url = _PS_BASE_URL_.__PS_BASE_URI__; $images_path = 'img/p/'; $product_reference = $info['reference']; $images_list = array(); $i = 1; $do_while = true; while($do_while) { $image_path_filename = $images_path.strtolower($product_reference).'-'.$i.'.jpg'; if(file_exists('../'.$image_path_filename)) { $images_list[] = $prestashop_absolute_url.$image_path_filename ; $i++; } // Pas d'image trouvée ... else { $do_while = false; } } if(sizeof($images_list) > 0) { $product->image = $images_list; // Ecrase le tableau contenant les URLs des images (suplante la valeur de la colonne Image URLs) } // Images des produits en fonction de la référence du produit - EOF Cette portion de code a été placée dans le fichier controllers/admin/AdminImportController.php, ligne 1713 Toutefois, je recontre un souci que je n'avais pas juste avant que ça fonctionne ... L'import ne se termine pas car il semble durer trop longtemps (il n'y a que 12 produits pour mes tests). Auriez-vous une idée de ce qui peut clocher ? D'avance, merci pour votre aide. pH Link to comment Share on other sites More sharing options...
Alexandre Carette Posted March 16, 2015 Share Posted March 16, 2015 (edited) Hello, ca m'a l'air d'être super intéressant ca... je vais tester tes modifications car je recherche également à gérer les images produits via csv. Ton pb pourrait venir de la configuration de ton serveur. Je teste et je te dis si ca marche de mon coté, ce que j'aimerais faire pour ma part serait de mettre le nom du produit au lieu de la référence car il parait que google scan les url des images. Edited March 16, 2015 by Alexandre-KM (see edit history) 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