Jump to content

Doublons Import attributs


rasdri

Recommended Posts

Bonjour,
je rencontre un problème lors de l'import des attributs.
J'ai créé un groupe d'attributs "Taille choisie" avec les valeurs
S, M, L
Je crée un fichier d'import pour les attributs :
806;Taille choisie:S;50;1
806;Taille choisie:M;50;0
806;Taille choisie:L;50;0

les 2 dernieres colonnes correspondent à quantité et defaut
ca marche bien, j ai mes attributs pour mon produit;
le problème c'est que dans la liste des options de mon attribut taille choisie, j ai maintenant S, M, L en double...si je refais la meme opération avec un autre produit, je les ai en triple et ainsi de suite...ca me créé des options de l'attribut au lieu de prendre en compte ceux existants..(cf image jointe)
quelqu'un pourrais il me dire si c est un bug ou si je fais mal quelque chose ??
Et j en profites pour une autre question :
le prix ne change pas en fonction de la taille, donc j ai mis Impact sur le prix : aucun, pourtant ca me supprime les chiffres après la virgule de mon prix définit sur le produit...des idées sur ce problème aussi svp ??

6028_pteu5GGGwiWrPxFGmIn8_t

Link to comment
Share on other sites

  • 3 weeks later...

Salut,
Je ne sais pas si les problemes sont liés mais j'avais signaler un bug dans le bug tracker ici
http://www.prestashop.com/bug_tracker/view/1511/
et qui a été resolu dans le svn
Depuis je ne rencontre plus de bug lors de l import des attributs
Pour en beneficier j'ai modifier le fichier AdminImport.php pour qu il puisse etre utiliser avec la version 1.1.0.5
Je n'ai pas tester toute les importations juste celui d attribut (car j'ai modifié les autre fonctions qui utilise une fonction custom d arraywalk qui semblé etre diff selon les version de php) mais en principe cela devrait fonctionné

AdminImport - attribut fixed v2.php

Link to comment
Share on other sites

  • 1 month later...

Bonjour,
Bon, il y a un second bug avec les import d attribut.

La version que j'ai proposer plus haut se base sur le fix de la derniere SVN (961) pour ceux qui sont en 1.1.0.5 mais il persiste un autre bug, peut etre un peu moins genant (mais ca peut le devenir si on projete de filtrer par attribut dans le FO, ou bien de faire des updates de combinaison d attribut):

Lorsque l'on fait par exemple 2 imports successifs avec 2 fois le même attribut (et pas forcement sur le même produit) , un nouveau est creer a chaque fois.
On se retrouve alors dans le BO avec plusieur attribut identique.
Ce qui fait que le bug cité au debut de ce fil n'est en realité que la consequence de 2 bug, dont j'ai posté le 1er ici dans le bug tracker avec une eventuel solution au probleme, qui semble marcher pour l'instant chez moi et qui necessite de modifier 2 fichiers: Attribute.php et AttributeImport.php.
http://www.prestashop.com/bug_tracker/view/2059/

On se retouve donc apres ce fixe avec le meme probleme de doublon de combinaison d attribut cite au debut de ce fil, mais car l'update n'est pas gerer par le script.
Une solution simple serait de verifier que la reference n'existe pas deja avant, mais cela neccessite d avoir ce champs rempli lors de l import d attribut.

Bref j attand deja une reponse de la team au bug que j ai posté dans le bug traker car il est possible que je me sois planté sur toute la ligne avec ce probleme de doublons multiple :P

Link to comment
Share on other sites

  • 8 months later...

Non toujours pas resolu.
Pourtant signaler dans le bug tracker:
http://www.prestashop.com/bug_tracker/view/3279/

La solution proposée, sans être parfaite, devrait pouvoir eviter ce probleme dans la majorité des cas pour ceux qui utilisent souvent l'importation par csv.
En pratique cela n empeche pas la boutique de fonctionner normalement, mais c'est tres embetant pour ceux qui utilise des filtres de recherche par attribut par exemple (on se retrouve par exemple avec plusieurs valeur identique par critere de recherche)

Link to comment
Share on other sites

  • 1 year later...

Bonjour,

Le bug est-il corrigé avec les dernières versions de PS ? Je suis en 1.2.5.
C'est très problématique de gérer des imports de centaines de déclinaisons de produits avec à chaque fois création d'un doublon pour chaque attribut. Et la dernière "solution" n'étant en fait qu'un vulgaire hack, je suis vraiment preneur d'une solution propre permettant par ailleurs de filtrer par attributs.

[Edit: en attendant mieux je vais utiliser la contrib de Moncler, cela semble fonctionner sur les quelques tests que j'ai pu effectuer]

Au plaisir de vous lire,
Kharfud

(PS: StoreCommander est sans doute très bien mais je me passerai de publicité le concernant, merci ;) )

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour,

Serait-il possible d'avoir une réponse sur ma dernière question ? Ce point est bloquant pour beaucoup de monde, et j'aimerais pouvoir donner une réponse un peu plus précise à mon client.

Le bug est-il corrigé ? Si c'est prévu, peut-on avoir une estimation de temps quant à sa correction ?

Merci par avance !

Link to comment
Share on other sites

  • 2 weeks later...

Bon j'ai pris le temps de bien relire le code source (merci au gentil Directeur Technique qui m'a libéré du temps pour ça).
Il existe en effet une incohérence dans la classe AdminImport (backoffice/tabs/AdminImport.php).
Remplacez simplement la ligne commentée par celle en gras dans le code ci-dessous :

public function attributeImport()
{    
   $defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
   $groups = array();
   foreach (AttributeGroup::getAttributesGroups($defaultLanguage) as $group)
       $groups[$group['name']] = $group['id_attribute_group'];
   $attributes = array();
   foreach (Attribute::getAttributes($defaultLanguage) as $attribute)        
           // CORRECTIF : pour eviter les doublons d'attributs a l'import CSV
       //$attributes[$attribute['name'].'_'.$attribute['id_attribute']] = $attribute['id_attribute'];
       // cette ligne creait un tableau d'une façon et on l'utilisait autrement ; resultat aucun des attributs stockés n'était reconnu, d'ou création systématique de doublons... 
       [b]$attributes[$attribute['attribute_group'].'_'.$attribute['name']] = $attribute['id_attribute'];[/b] 
   $this->receiveTab();
   $handle = $this->openCsvFile();
   $fsep = Tools::getValue('multiple_value_separator');
...



Problème résolu.
Kharf

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour,
J'aurai besoin de ton karf
je rencontre egalement le souci des doublons mais je suis debutant je n'y connais pas grand chose.
Donc je n'ai pas tres bien compris comment faut acceder au code suivant :

public function attributeImport()
{
$defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
$groups = array();
foreach (AttributeGroup::getAttributesGroups($defaultLanguage) as $group)
$groups[$group['name']] = $group['id_attribute_group'];
$attributes = array();
foreach (Attribute::getAttributes($defaultLanguage) as $attribute)
// CORRECTIF : pour eviter les doublons d'attributs a l'import CSV
//$attributes[$attribute['name'].'_'.$attribute['id_attribute']] = $attribute['id_attribute'];
// cette ligne creait un tableau d'une façon et on l'utilisait autrement ; resultat aucun des attributs stockés n'était reconnu, d'ou création systématique de doublons...
$attributes[$attribute['attribute_group'].'_'.$attribute['name']] = $attribute['id_attribute'];
$this->receiveTab();
$handle = $this->openCsvFile();
$fsep = Tools::getValue('multiple_value_separator');
...


Peut tu m'expliquer comment faire.
Merci d'avance ;)

Link to comment
Share on other sites

  • 5 months later...

Salut !

Désolé, je n'ai pas été notifié des réponses...

As-tu toujours le problème ? SI oui je pense que ton incompréhension vient du faut que l'URL que j'ai fournie indique /backoffice/...

Il s'agit du répertoire initialement nommé "admin" et qu'il faut renommer post-installation. J'ai pris l'habitude de toujours le renommer "backoffice" ^^

Pour aller patcher le code il faut simplement te rendre dans "[ton dossier admin]/tabs/AdminImport.php.

TU remplaces juste la ligne que j'ai commentée en

//$attributes[$attribute['name'].'_'.$attribute['id_attribute']] = $attribute['id_attribute'];

par

$attributes[$attribute['attribute_group'].'_'.$attribute['name']] = $attribute['id_attribute'];

 

Le correctif semble avoir été adopté par la v1.4.

Amitiés ^^

Kharf'

Link to comment
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
×
×
  • Create New...