dangee Posted July 11, 2013 Share Posted July 11, 2013 (edited) Bonjour à Tous, Lorsque je fais des imports de déclinaisons sur PS 1.5.4, ceux-ci mettent extrêmement longtemps pour terminer. Exemple avec le fichier en pj de 4672 lignes pour lequel l'import a duré environ 6h !!! Avec cette durée, impossible de faire ça "online" car même sur un dédié, cela coupe au bout d'1H. Donc obligé de faire ça en local. Savez-vous si c'est un bug, ou s'il y a un moyen pour accélérer tout ça car j'ai une 50aine de produits et si tous prennent ~6h, je ne suis pas près d'avoir terminé !! Merci d'avance. newPrima.zip Edited July 25, 2013 by dangee (see edit history) Link to comment Share on other sites More sharing options...
Michel presta Posted July 12, 2013 Share Posted July 12, 2013 Bonjour, Même lenteur chez moi pour l'import de produits. Je poste dans tous les topics traitant de la lenteur d'import en espérant trouver une solution un jour. J'ai des dizaines de milliers de produits a importer Link to comment Share on other sites More sharing options...
Julie S. Posted July 12, 2013 Share Posted July 12, 2013 bonjour à tous, je laisse votre sujet en place puisque vous êtes deux à avoir le même souci mais merci de bien respecter les règles liées au rapport de bugs. C'est important pour que les développeurs ne se retrouvent pas inonder de sujets liés à des problèmes perso. de configuration ou de serveur... ce qui est très souvent le cas ici... malheureusement. http://www.prestashop.com/forums/topic/24670-lire-ceci-avant-de-poster-dans-ce-forum/ merci Link to comment Share on other sites More sharing options...
dangee Posted July 12, 2013 Author Share Posted July 12, 2013 Merci Julie, C'est vrai que je n'ai pas été très explicite et donné beaucoup de détails, mais sachez que j'ai effectué énormément de test avant de poster ici. J'ai d'ailleurs également poser la question sur le forum FR et le forum ENG il y a quelques temps, mais sans aucune réponse...Il faut dire que d'importer des milliers de déclinaisons par produits n'est pas très fréquents. Si ça peut aider, voici la config php actuelle du serveur dédié sur lequel le site est installé (tirée du BO) : Informations sur votre serveur: Linux #2 SMP Thu Aug 25 16:43:23 UTC 2011 x86_64 Version du logiciel serveur: Apache Version de PHP: 5.3.21 Limite de mémoire: 300M Temps d'exécution maximal (max_execution_time): 259200 En regardant un peu le traitement de l'import par PS, j'ai l'impression que la durée de celui-ci est exponentiel, car PS "revient" au début du fichier à chaque nouvel ligne... En espérant que cela puisse aider Link to comment Share on other sites More sharing options...
Michel presta Posted July 12, 2013 Share Posted July 12, 2013 (edited) Bonjour Julie, Pour ma part, je parle d'un import de 40 produits et non pas de centaines ni de milliers. Quand bien même le serveur serait un serveur mutualisé, on parle de tout petits fichiers Edited July 12, 2013 by Michel Faure (see edit history) Link to comment Share on other sites More sharing options...
dangee Posted July 12, 2013 Author Share Posted July 12, 2013 Pour ma part, je parle d'un import de 40 produits... Oula !! Sachant que je vais devoir réaliser un import de presque 2000 produits pour un client prochainement, j'ai déjà peur ! Link to comment Share on other sites More sharing options...
Michel presta Posted July 12, 2013 Share Posted July 12, 2013 Bon courage Link to comment Share on other sites More sharing options...
Michel presta Posted July 17, 2013 Share Posted July 17, 2013 De pis en pis J'ai importé 20 produits sur 54 et ça plante (erreur 404) ????? Cela ne vient pas de l'hébergeur. Chez certains ça fonctionne mai il faut admettre qu'il y a un problème... Link to comment Share on other sites More sharing options...
dangee Posted July 17, 2013 Author Share Posted July 17, 2013 Mettez votre version de php et les caractéristiques de votre hébergement, cela pourra peut-être intéresser un Dev de Prestashop si il y en a un qui passe par là. Toujours est-il que le pb est plus que gênant, et je ne peux pas croire que nous ne sommes que 2 dans ce cas là. Link to comment Share on other sites More sharing options...
Michel presta Posted July 17, 2013 Share Posted July 17, 2013 (edited) Version Apache: 2.2.24 version php: 5.3.26 Version MySQL: 5.5.28 cll Système: Lynux Hébergeur O2SWITCH hébergement mutualisé. Si ça peut aider!! Edited July 17, 2013 by Michel Faure (see edit history) Link to comment Share on other sites More sharing options...
dangee Posted July 17, 2013 Author Share Posted July 17, 2013 Et en local, ça fonctionne pour vous ? Link to comment Share on other sites More sharing options...
Michel presta Posted July 17, 2013 Share Posted July 17, 2013 Je n'ai plus l'installation en local depuis longtemps. Hélas Link to comment Share on other sites More sharing options...
dangee Posted July 18, 2013 Author Share Posted July 18, 2013 Bonjour, Petite question...Je vois que le fichier que j'ai mis en PJ sur mon 1er post a été téléchargé 3X. Pourrait-on savoir si c'est 1 dev qui l'a téléchargé ou un contributeur, et qu'en est-il du résultat ? L'import a t-il fonctionné ? Si oui, en combien de temps ? Sur quel config ? etc...et Si non, l'info a t-elle été remontée à l'équipe de développement ? Merci. Link to comment Share on other sites More sharing options...
indesign47 Posted July 18, 2013 Share Posted July 18, 2013 Je vois que le fichier que j'ai mis en PJ sur mon 1er post a été téléchargé 3X Maintenant, c'est 4 fois Quelques précisions • la ref c'est la référence du produit ou celle du fournisseur ? • PR c'est quoi ? Link to comment Share on other sites More sharing options...
dangee Posted July 18, 2013 Author Share Posted July 18, 2013 Ref = référence produit PR à ignorer lors de l'import Je viens de refaire un test avec un fichier beaucoup plus petit (400 lignes). Cela prend 5'40mn et je n'ai que 240 déclinaisons pris en compte dans la fiche du produit alors que les 400 sont bien présentes en BDD ?!? Link to comment Share on other sites More sharing options...
indesign47 Posted July 18, 2013 Share Posted July 18, 2013 Le csv est reconnu comme un fichier SYLK http://support.microsoft.com/kb/323626/fr Fichier Excell ? PC ? Unicode UTF-8 ? j'ai les caractères accentués qui ne s'affichent pas correctement. Configuration Mac Couleur - 2650k normal ? Link to comment Share on other sites More sharing options...
dangee Posted July 18, 2013 Author Share Posted July 18, 2013 (edited) oui, c'est une mesure Kelvin donc k. Pour le fichier SYLK, si je regarde le lien que vous avez mis, ce n'est pas grave et certainement dû à : Ce problème se produit car vous ouvrez un fichier texte ou un fichier CSV dans lequel les deux premiers caractères sont les lettres majuscules « I » et « D ». Et comme le fichier commence justement par ID Produit... EDIT : Je travail avec Office 2013 sur PC Edited July 18, 2013 by dangee (see edit history) Link to comment Share on other sites More sharing options...
indesign47 Posted July 18, 2013 Share Posted July 18, 2013 Oui, pas grave... c'était pour info. C'est ID en capitale qui provoque le problème. ID en minuscule plus de problème le fichier s'ouvre correctement dans Excell ou OpenOffice Revenons à l'importation : 200 lignes environ 4 minutes. - le module mail alert est-il actif ? envoie un email stock en dessous de 3 - la gestion des stocks est active ? - cocher supprimer tous les déclinaisons avant l'import ? Importation : 200 lignes moins d'1 minutes en désactivant la gestion de stock, en désactivant le module mail alert et en cochant supprimer tous les déclinaisons avant l'import ? Link to comment Share on other sites More sharing options...
indesign47 Posted July 18, 2013 Share Posted July 18, 2013 • l'importation du fichier complet ne progresse plus après 600 lignes chez moi Scinde le fichier (4 673 lignes) en 8 fichiers environ. A tester. • Dans AdminImportController.php ces deux paramètres à voir @ini_set('max_execution_time', 0); /** No max line limit since the lines can be more than 4096. Performance impact is not significant. */ define('MAX_LINE_SIZE', 0); Link to comment Share on other sites More sharing options...
dangee Posted July 18, 2013 Author Share Posted July 18, 2013 - cocher supprimer tous les déclinaisons avant l'import ? Mais dans ce cas, est-ce que cela ne supprime pas toutes les déclinaisons de tous les produits ?? Je vais essayer de désactiver les différents modules et voir ce que ça donne....et pour ce qui est du fichier AdminImportController.php, la modification des paramètres n'a aucun effet Link to comment Share on other sites More sharing options...
indesign47 Posted July 18, 2013 Share Posted July 18, 2013 (edited) Mais dans ce cas, est-ce que cela ne supprime pas toutes les déclinaisons de tous les produits ?? Oui, bien sûr, mais cela permet de repartir à zéro. Si toutes tes déclinaisons sont contenues dans ton fichier csv alors pas de problème protected function truncateTables($case) { switch ((int)$case) { case $this->entities[$this->l('Combinations')]: Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'attribute`'); Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'attribute_impact'); Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'attribute_lang`'); Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'attribute_group`'); Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'attribute_group_lang`'); Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'attribute_group_shop`'); Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'attribute_shop`'); Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'product_attribute`'); Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'product_attribute_shop`'); Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'product_attribute_combination`'); Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'product_attribute_image`'); Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'stock_available` WHERE id_product_attribute !=0'); break; } } Edited July 18, 2013 by indesign (see edit history) Link to comment Share on other sites More sharing options...
dangee Posted July 18, 2013 Author Share Posted July 18, 2013 Si toutes tes déclinaisons sont contenues dans ton fichier csv alors pas de problème Heu...impossible car alors j'aurai au moins 100 000 lignes...J'imagine même pas le temps qu'il faudrait Sinon, la fonction c'est pour mettre où ?? Link to comment Share on other sites More sharing options...
indesign47 Posted July 18, 2013 Share Posted July 18, 2013 Ok en effet il faudrait des jours... La function citée dans l'autre post est tirée de l'AdminImportController.php Elle gère la suppression de toutes les tables liées aux attributs et au valeurs Link to comment Share on other sites More sharing options...
dangee Posted July 19, 2013 Author Share Posted July 19, 2013 Je suis entrain de tester le gestionnaire de déclinaisons, même si ça ne correspond pas vraiment à ce dont j'ai besoin, et ça tourne depuis 3h30 !!...et en mettant le max_execution_time à 0 et le memory_limit à 3072M (en dessous prestashop n'a pas assez de mémoire alloué) !! Link to comment Share on other sites More sharing options...
dangee Posted July 19, 2013 Author Share Posted July 19, 2013 on en est à plus de 5H !! mais j'ai l'impression que le script est bloqué... Link to comment Share on other sites More sharing options...
indesign47 Posted July 19, 2013 Share Posted July 19, 2013 Bonsoir dangee, Regarde d'un œil attentif (ou des deux) ce lien /http://www.prestashop.com/forums/topic/195033-product-combination-csv-import/ Post 4 et 10 notamment Link to comment Share on other sites More sharing options...
indesign47 Posted July 19, 2013 Share Posted July 19, 2013 (edited) importation des 4 673 déclinaisons en 2 minutes en local sur Mac La preuve en image 156 pages dans BD La solution ignorée la colonne référence lors de l'importation du fichier csv Par contre, en front office il faut vérifié si tout est là ! Edited July 19, 2013 by indesign (see edit history) Link to comment Share on other sites More sharing options...
dangee Posted July 20, 2013 Author Share Posted July 20, 2013 Humm...ok....Mais ça m'arrange pas car j'ai besoin de la Ref car sur chaque produit il y a une demande de devis...Je vais essayer avec la méthode présente sur le post que vous avez mis en lien...à voir...Merci en tout cas Link to comment Share on other sites More sharing options...
indesign47 Posted July 20, 2013 Share Posted July 20, 2013 Bonjour dangee, Humm...ok.... Quel enthousiasme... après tant de temps et de recherche consacré Un import en 2 minutes au lieu de + de 5 heures ... certes sans la ref mais c'est une belle progression non ? Link to comment Share on other sites More sharing options...
dangee Posted July 22, 2013 Author Share Posted July 22, 2013 mais c'est une belle progression non ? C'est plus qu'une progression !! D'autant plus qu'avec le générateur de déclinaison le script n'a jamais terminé...Je me demande quand même en quoi le fait d'ajouter une ref pose autant de pb ... Vous avez désactivé les différents modules pour votre test ou pas ?? Link to comment Share on other sites More sharing options...
indesign47 Posted July 22, 2013 Share Posted July 22, 2013 Je me demande quand même en quoi le fait d'ajouter une ref pose autant de pb ... Selon le code AdminImportController • si la référence existe il fait un update et "il se perd" dans la boucle • si la référence n'existe pas il l'ajoute simplement : c'est plus rapide // if a reference is specified for this product, get the associate id_product_attribute to UPDATE if (isset($info['reference']) && !empty($info['reference'])) { $id_product_attribute = Combination::getIdByReference($product->id, strval($info['reference'])); // updates the attribute if ($id_product_attribute) { // gets all the combinations of this product $attribute_combinations = $product->getAttributeCombinations($default_language); foreach ($attribute_combinations as $attribute_combination) { if ($id_product_attribute && in_array($id_product_attribute, $attribute_combination)) { $product->updateAttribute( $id_product_attribute, (float)$info['wholesale_price'], (float)$info['price'], (float)$info['weight'], 0, (float)$info['ecotax'], $id_image, strval($info['reference']), strval($info['ean13']), (int)$info['default_on'], 0, strval($info['upc']), (int)$info['minimal_quantity'], 0, null, $id_shop_list ); $id_product_attribute_update = true; } } } } // if no attribute reference is specified, creates a new one if (!$id_product_attribute) { $id_product_attribute = $product->addCombinationEntity( (float)$info['wholesale_price'], (float)$info['price'], (float)$info['weight'], 0, (float)$info['ecotax'], (int)$info['quantity'], $id_image, strval($info['reference']), 0, strval($info['ean13']), (int)$info['default_on'], 0, strval($info['upc']), (int)$info['minimal_quantity'], $id_shop_list ); } Vous avez désactivé les différents modules pour votre test ou pas ?? Juste le module mailalerts Link to comment Share on other sites More sharing options...
indesign47 Posted July 22, 2013 Share Posted July 22, 2013 une idée : doublon de ref dans le fichier csv qui ferait tourner le script en boucle ? à vérifier Link to comment Share on other sites More sharing options...
dangee Posted July 22, 2013 Author Share Posted July 22, 2013 une idée : doublon de ref dans le fichier csv qui ferait tourner le script en boucle ? à vérifier En fait, chaque attributs donne une partie de la réf et comme celle-ci est calculée sur mon tableur, il ne peut normalement pas y avoir de doublon. Donc en fait, il faudrait modifier le fichier AdminImport pour que le script ne vérifie pas s'il y a déjà une ref en BDD pour faire l'UPDATE...ou peut être même supprimer tout simplement cette partie ?! Link to comment Share on other sites More sharing options...
indesign47 Posted July 22, 2013 Share Posted July 22, 2013 (edited) ou peut être même supprimer tout simplement cette partie ?! Pas aussi simple, j'ai déjà essayé la valeur de la ref est unique : 1 Plutôt de ceci qui pointe vers la classe Combination.php $id_product_attribute = Combination::getIdByReference($product->id, strval($info['reference'])); /** * For a given product_attribute reference, returns the corresponding id * * @param int $id_product * @param string $reference * @return int id */ public static function getIdByReference($id_product, $reference) { if (empty($reference)) return 0; $query = new DbQuery(); $query->select('pa.id_product_attribute'); $query->from('product_attribute', 'pa'); $query->where('pa.reference LIKE \'%'.pSQL($reference).'%\''); $query->where('pa.id_product = '.(int)$id_product); return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query); } Edited July 22, 2013 by indesign (see edit history) Link to comment Share on other sites More sharing options...
indesign47 Posted July 22, 2013 Share Posted July 22, 2013 en supprimant juste ceci $attribute_combinations = $product->getAttributeCombinations($default_language); foreach ($attribute_combinations as $attribute_combination) { } Le fichier csv s'importe en 3 minutes avec les ref ... Par contre, il n'est pas complet. Je te laisse maintenant. La solution n'est plus très loin normalement. Link to comment Share on other sites More sharing options...
dangee Posted July 24, 2013 Author Share Posted July 24, 2013 Bon...en fait j'ai opté pour une solution radicale ! Refaire le site sous Prestashop 1.4.x car ce problème n'existe pas dans cette version. Merci pour tout Indesign et j'espère vraiment que les DEV de Presta vont se pencher sur le sujet pour les prochaines versions. Je ne mets pas le post en "résolu" car il ne l'est pas. Link to comment Share on other sites More sharing options...
dangee Posted July 25, 2013 Author Share Posted July 25, 2013 Bonjour, A priori le problème est le même pour l'import de produits. j'essaye d'importer un fichier de 1120 lignes et le script ne va pas au bout pour se terminer avec "page réinitialisée" au bout de 40-60mn... Je précise que c'est sur un serveur différent que mon pb d'import de déclinaison. J'espère vraiment que l'équipe de Presta se penche sur le sujet car pas facile de travailler dans ces conditions... PS : Comment on modifie le titre du post ?? Link to comment Share on other sites More sharing options...
indesign47 Posted July 25, 2013 Share Posted July 25, 2013 Un exemple du fichier csv de produit ? La colonne ref est-elle présente dans ce fichier ? PS : Comment on modifie le titre du post ?? Editer le premier post, click use full editor Link to comment Share on other sites More sharing options...
dangee Posted July 25, 2013 Author Share Posted July 25, 2013 Editer le premier post, click use full editor Merci ! Pour ce qui est du fichier, oui, il y a les ref, mais aussi les images, les descriptions (longues + courtes), les meta,...la totale quoi ...Ce qui n'excuse pas le fait que vu que la fonctionnalité est implémentée, elle doit fonctionner, sinon, autant ne pas la mettre...Surtout que ça marche nickel sous PS1.4.x Link to comment Share on other sites More sharing options...
indesign47 Posted July 25, 2013 Share Posted July 25, 2013 Un exemple du fichier csv de produit ? Est-il possible d'avoir le fichier ? pour tester en local et sur ma config Link to comment Share on other sites More sharing options...
jf Viguier Posted March 9, 2016 Share Posted March 9, 2016 Bonjour à tous, J'utilise également la référence dans l'import de mes CSV produit et j'ai trouvé un moyen d’accélérer énormément l'import avec utilisation de la référence (option "Utiliser la référence du produit comme clé" cochée). Il suffit d'ajouter un index mysql à la colonne référence dans la table ps_product. Et oui, cet index n'est pas présent par défaut et comme l'import vérifie en permanence la présence des références, plus la table est volumineuse, plus c'est sera long. Voila la commande sql à lancer : ALTER TABLE `ps_product`ADD UNIQUE INDEX `product_reference` (`reference`); Jean-François Viguier Creabilis 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