Sign in to follow this  
Followers 0

importation fichier produits csv

23 posts in this topic

Posted · Report post

Bonsoir,

j'ai commencé à essayer d'importer mes produits par un fichier csv fait à partir d'excel.

En utilisant le module d'importation (peel 6.1) voici ce qu'il me dit à la fin de l'import :

Fichier mis sur le serveur : 130711_190228_PEEL_rPCbWNuJ.csv

Import de la ligne 1 - produit mis à jour ayant pour id=DE1

Import de la ligne 2 - produit mis à jour ayant pour id=DE2

Import de la ligne 3 - produit mis à jour ayant pour id=DE3

Import de la ligne 4 - produit mis à jour ayant pour id=DE4

Import de la ligne 5 - produit mis à jour ayant pour id=B1

Nombre de produits importés avec succès : 5 dont 5 mis à jour et 0 créés.

Mais aucun nouveau produit n'apparait... Je ne comprends pas pourquoi.

En pièce jointe une capture d'écran du fichier .csv utilisé. (car le forum refuse que j'envoi le fichier csv)post-6381-0-47958600-1310576990_thumb.jp

Merci d'avance,

Claire

Share this post


: post
Share on other sites

Posted · Report post

Ce que vous indiquez semble cohérent : l'import vous dit qu'il met à jour et ne crée aucun produit, puisqu'il a trouvé des identifiants correspondants à ce que vous indiquez.

Si vous voulez rajouter des produits en plus de ceux ayant ces identifiants, vous devez changer ces identifiants dans votre fichier Excel.

Un id est censé être unique.

Par ailleurs ça m'étonne que ça marche avec des id qui ne sont pas numériques, mettez des nombres ça serait mieux.

Share this post


: post
Share on other sites

Posted · Report post

Le problème c'est que je n'ai toujours que 2 produits dans ma liste des produits de ma console d'administration..

D'où mon incompréhension...

je viens de réimporter mon nouveau fichier csv (le même que précédemment mais avec des id numériques - 1,2,3,4,5), voici la réponse du site :

Fichier mis sur le serveur : 130711_221527_PEEL_k5sseucR.csv

Import de la ligne 1 - produit mis à jour ayant pour id=1

Import de la ligne 2 - produit mis à jour ayant pour id=2

Import de la ligne 3 - produit mis à jour ayant pour id=3

Import de la ligne 4 - produit mis à jour ayant pour id=4

Import de la ligne 5 - produit mis à jour ayant pour id=5

Nombre de produits importés avec succès : 5 dont 5 mis à jour et 0 créés.

donc toujours pas de nouveaux objets crées ??

Merci de vos réponses tardives,

Claire

Share this post


: post
Share on other sites

Posted · Report post

Essayez maintenant avec 6 7 8 9 et 10... ? En effet, les autres ont été déjà créés avec 1 2 3 4 5 a priori :)

Share this post


: post
Share on other sites

Posted · Report post

Ce que je voulais dire c'est que je n'ai toujours que 2 objets dans ma liste de produits alors que j'en ai créé 5 !

Même en changeant les id (avec (5, 6, 7, 8 etc) il me dit toujours la même chose :

Fichier mis sur le serveur : 140711_103416_PEEL_ccKUqzRx.csv

Import de la ligne 1 - produit mis à jour ayant pour id=6

Import de la ligne 2 - produit mis à jour ayant pour id=7

Import de la ligne 3 - produit mis à jour ayant pour id=8

Import de la ligne 4 - produit mis à jour ayant pour id=9

Import de la ligne 5 - produit mis à jour ayant pour id=10

Nombre de produits importés avec succès : 5 dont 5 mis à jour et 0 créés.

Et toujours que 2 objets dans ma liste de produits...

Quelle solution avez vous ?

Merci

Claire

Share this post


: post
Share on other sites

Posted · Report post

Vous n'avez pas d'idée pour ce problème ?

Share this post


: post
Share on other sites

Posted · Report post

Si le script dit que c'est mis à jour, c'est probablement que c'est bien le cas.

Il doit y avoir une différence entre ce que vous voyez dans la boutique, et le nombre réel de produits en base de données.

Affichez dans l'administration tous les produits, et regardez aussi en base de données directement dans peel_produits pour voir ce qui est réellement là.

Gilles

Share this post


: post
Share on other sites

Posted · Report post

j'ai déjà vérifié dans la base de donnée également, et il n'y a aucun produit.

MySQL n'a retourné aucune ligne. ( Traitement en 0.0004 sec. )

SELECT *

FROM `peel_produits`

LIMIT 0 , 30

De plus suite aux imports de fichier csv, peel met à jour 5 ou 6 produits alors que mon fichier csv contient 11 produits.

Cela prouve que ce n'est pas qu'un problème de produits que peel croit identifier comme présents dans la base (lignes de code résiduels) mais bien un problème d'exploitation du fichier csv... peut être mal rempli... mais je ne vois pas où...

Merci

Claire

Share this post


: post
Share on other sites

Posted · Report post

Vous me dites qu'il y a 0 produit alors qu'avant il y en avait 2... ?

Je vous propose de faire comme suit :

- créez un produit via l'administration

- vérifiez que votre site est OK comme vous voulez

- exportez ce produit

- supprimez le

- importez le

=> normalement ça marche (testé dans divers contextes)

=> il ne vous reste plus qu'à dupliquer cette ligne et modifier quelques aspects, et vérifier avec 2 produits. Et ensuite avec N.

NB : faites bien attention au format de fichier

Share this post


: post
Share on other sites

Posted · Report post

Entre temps j'ai commencé à créer des catégories et quelques produits.

Je viens tout de même de faire un export de mes produits et j'obtiens un fichier plus qu'étrange dont voici l'image :

post-6381-0-97527200-1310739587_thumb.jp

Et aussi le lien du fichier csv complet si vous voulez y jeter un coup d'oeil.

voici aussi la ligne 257 du fichier lib/fonction/format.php :

function fxsl($number_string)

{

$number_string = number_format($number_string, 2);

$number_string = str_replace(array(".", " "), array(",", ""), $number_string);

return $number_string;

Voilà,

je n'ai donc pas dépassé l'export de mes produits... car là je ne comprends pas le fichier exporter.

merci

Claire

Share this post


: post
Share on other sites

Posted · Report post

Il y a un problème avec une donnée.

Avant :

$number_string = number_format($number_string, 2);

mettez :

var_dump($number_string);

if(!is_numeric($number_string)){

echo '#not_numeric#';

}

C'est pour voir ce qui se passe, et faites un copier coller du fichier CSV généré.

Share this post


: post
Share on other sites

Posted · Report post

Bonsoir,

voici le fichier csv fourni apres le changement de code que vous m'avez indiqué.

Merci

Claire

Share this post


: post
Share on other sites

Posted · Report post

Il s'agit donc d'un problème de conversion implicite qui n'est pas géré de la même manière dans votre version PHP que dans celles utilisées lors de tests passés.

Il faut en effet normalement que la devise ne soit pas mise dans la colonne d'export de prix.

=> Modifiez les lignes :

$output .= fxsl($product_object->get_original_price(true, false, true)) . "\t";

$output .= fxsl($product_object->get_original_price(false, false, true)) . "\t";

du fichier administrer/export_produits.php par :

$output .= fxsl($product_object->get_original_price(true, false, false)) . "\t";

$output .= fxsl($product_object->get_original_price(false, false, false)) . "\t";

Gilles

Share this post


: post
Share on other sites

Posted · Report post

J'ai donc modifier le fichier administrer/export_produits.php comme vous l'avez indiquez.

Voici le fichier csv en réponse... je ne comprends pas encore pourquoi tout les titres de colonnes sont inscrits dans une même case d'excel.

Je suis aussi aller remettre le fichier lib/format.php comme initialement avant de refaire un export. Voici alors le fichier csv.

Merci de votre aide...

Ca avance,

Claire

Share this post


: post
Share on other sites

Posted · Report post

J'ai donc modifier le fichier administrer/export_produits.php comme vous l'avez indiquez.

Voici le fichier csv en réponse... je ne comprends pas encore pourquoi tout les titres de colonnes sont inscrits dans une même case d'excel.

Je suis aussi aller remettre le fichier lib/format.php comme initialement avant de refaire un export. Voici alors le fichier csv.

Merci de votre aide...

Ca avance,

Claire

Le fichier de votre premier lien est bien, sauf qu'il faut maintenant retirer les var_dump que je vous avais demandé de mettre.

Et manifestement ce sera OK.

L'autre fichier que vous donnez (avec (2)) n'est pas correct, je ne sais pas ce que vous avez fait mais il y a des ; qui ne sont normalement pas là.

Share this post


: post
Share on other sites

Posted · Report post

Le fichier (2) que je vous avais joint était justement avec le fichier lib/format.php sans la variable dump.

Je vois bien qu'effectivement il manque des ";", mais je suis bien avec le fichier original lib/format.php.

au niveau de la ligne 256, il n'ya plus que ça :

function fxsl($number_string)

{

$number_string = number_format($number_string, 2);

$number_string = str_replace(array(".", " "), array(",", ""), $number_string);

return $number_string;

}

Claire

Share this post


: post
Share on other sites

Posted · Report post

Claire,

Le séparateur est la tabulation, vous n'êtes pas censée avoir des ;;;;;

Le fichier de votre premier est bon si vous retirez les var_dump.

Vous aviez indiqué "Je suis aussi aller remettre le fichier lib/format.php comme initialement avant de refaire un export. Voici alors le fichier csv."

=> annulez ces changements, vu que ce fichier (2) ne va pas.

Gilles

Share this post


: post
Share on other sites

Posted · Report post

Deux choses :

- comment lire un fichier csv avec des tabulations pour séparateur (avec excel ? une option à choisir ?)

- vous me dites "Le fichier de votre premier est bon si vous retirez les var_dump." mais si je retire les var dump, je me retrouve avec le fichier lib/format.php initial. or vous me dites : "annulez ces changements (ceux de retirer les var dump), vu que ce fichier (2) ne va pas". Donc que dois-je faire ? les laisser ou les retirer (pour moi les retirer si j'ai bien compris) ?

Share this post


: post
Share on other sites

Posted · Report post

Revenez tout comme au début, et changez les 2 lignes avec true en false comme indiqué, et voilà.

Il me semble qu'une autre modification a été faite quelque part dans votre code qui pose problème.

Ces fichiers CSV avec séparateurs tabulation peuvent être ouverts avec divers tableurs, mais à la base le but est de permettre d'exporter vers une autre application serveur. Chaque version d'Excel a une interface différente pour l'import, donc je vous laisse voir dans votre cas.

NB : Par défaut l'encodage est en UTF8 (le format des export paramétrable dans l'administration).

Share this post


: post
Share on other sites

Posted · Report post

En enregistrant mon fichier d'export en .txt avec des tabulations, l'import fonctionne sans aucun bug ou alerte, mais il ne me crée aucun nouveau produit, alors que j'en importe 10 et qu'il me dit bien que 10 ont été mis à jour :

Import de la ligne 1 - produit mis à jour ayant pour id=6

Import de la ligne 2 - produit mis à jour ayant pour id=7

Import de la ligne 3 - produit mis à jour ayant pour id=8

Import de la ligne 4 - produit mis à jour ayant pour id=9

Import de la ligne 5 - produit mis à jour ayant pour id=10

Import de la ligne 6 - produit mis à jour ayant pour id=11

Import de la ligne 7 - produit mis à jour ayant pour id=12

Import de la ligne 8 - produit mis à jour ayant pour id=13

Import de la ligne 9 - produit mis à jour ayant pour id=14

Import de la ligne 10 - produit mis à jour ayant pour id=15

Nombre de produits importés avec succès : 10 dont 10 mis à jour et 0 créés.

Voici en lien le fichier .txtque j'ai utilisé, en prenant comme base le fichier export du site.

Merci de votre aide, car on avance...

Je vais peut etre bientôt pouvoir ajouter plein de produits sur mon site !!

Claire

Share this post


: post
Share on other sites

Posted · Report post

Maintenant que vous avez ce fichier :

- si vous supprimez tous vos produits en base de données, et que vous importez ce fichier, ça va créer les produits

- si vous faites l'import alors que vos produits existent, c'est normal puisque ça met à jour, et que les informations sont les mêmes

- si vous retirez les valeurs des ids dans ce fichier en supprimant les valeurs sans autre modification, ça retirera l'association entre id et ligne importée, et donc ça va créer de nouvelles lignes. Ou idem si vous changez les id par d'autres qui n'existent pas encore

Share this post


: post
Share on other sites

Posted · Report post

J'ai supprimé tous mes produits dans ma console administration de mon site peel.

J'ai bien une table peel_produits dans ma base de donnée qui semblait vide.

En faisant cela, lorsque j'essaye d'ajouter des produits avec le fichier txt que je vous ai présenté dans mon précédent message. Peel continue de me dire qu'il met à jour 10 produits, alors que je n'en vois aucun dans ma liste de produit...

En essayant de retirer, dans mon fichier texte (pour l'import des produits), la colonne correspondant aux valeurs des ids des produits. Cela a fonctionné.

Il y a encore une ou 2 bizarrerie.

Je regarde et je vous tiens au courant s'il y a lieu.

Merci pour tout.

Vous êtes vraiment très efficace !!

Vive Peel !

Claire

Share this post


: post
Share on other sites

Posted · Report post

Après vérification du code :

lorsqu'on précise des id produits dans l'import produit, alors ça cherche à mettre à jour les produits correspondants, mais ça ne les créait pas si ils n'existaient pas.

Dorénavant dans la version 6.2, lorsque le produit avec l'id donnée n'est pas trouvé, il sera créé.

Share this post


: post
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
Sign in to follow this  
Followers 0

Twitter Advisto ecommerce

Facebook PEEL Shopping