Jump to content

Requête SQL extraction produits oscommerce


Recommended Posts

Bonjour,

Je me prend la tête à faire une extraction de produits oscommerce pour mettre dans prestashop.

Voici ma requête qui récupère mes info dans oscommerce et que j'exporte en csv

SELECT a.products_id as Identifiant, a.products_status as Actif, b.products_name as Nom, d.categories_name as Catégories, a.products_price as prix, a.products_model as Référence, a.products_model as Référence_fournisseur, a.products_weight as Poids, a. products_quantity as Quantité, b.products_head_desc_tag as Description_courte, b.products_description as Description, b.products_head_keywords_tag as Tags, b.products_head_desc_tag as title, b.products_head_keywords_tag as keywords, b.products_head_desc_tag as Meta_Description, CONCAT('http://localhost/prestashop/img/tmp/images/',a.products_image) as images
FROM products a, products_description b, products_to_categories c, categories_description d
WHERE b.products_id=a.products_id
   AND d.categories_id = c.categories_id 
   AND c.products_id = a.products_id
   AND a.products_status = '1'
   GROUP BY a.products_id



Bien entendu le CONCAT sert à préciser où sont stockées les images pour le redimensionnement automatique des images produits.

Je trouvais assez embêtant de ne rien avoir sur le site pour faire les extractions donc c'est fait.

Enfin si quelqu'un peut améliorer ma requête, je en suis pas contre.

Link to comment
Share on other sites

Je suis moi même en train de migrer une boutique osCommerce vers Prestashop. J'ai écrit quelques scripts pour exporter les catégories, les produits, les clients et les commandes.
En ce qui concerne les clients, je reprend toutes les infos sauf les mots de passe, et on enverra un mailing lors de l'ouverture de la boutique en Prestashop, afin que les clients utilisent "j'ai perdu mon pw" pour en regénérer un (ça fonctionne bien)
en ce qui concerne les commandes, je reprends l'historique, mais je ne me suis pas trop emmerdé pour les adresses de livraisons (gérées différemment sous osCommerce). J'ajoute donc X fois la meme adresse au carnet d'adresses du client s'il a passé X commandes. Je pourrais optimiser, mais c'est pas la priorité pour l'instant.

Les 2 sites OSC et PS n'étant pas sur le meme serveur, j'ai développé mon outil de migration comme ceci :
- des fichiers php coté OSC qui générent des fichiers .sql (avec plein de INSERT)
- un script php coté PS qui boucle sur un fichier .sql pour alimenter la base PS

Si ça intéresse quelqu'un, je peux mettre le code à dispo

Link to comment
Share on other sites

Bonjour,

Ta solution est intéressante, mais comment fais tu pour la gestion des images des produits ?

Car l'intéret de la moulinette csv de la version 1.2 de Prestashop, c'est justement de faire l'import des images en même temps que les produits.

Sinon, tes scripts peuvent être intéressant pour récupérer et utiliser tes requêtes sql.

Link to comment
Share on other sites

il est vrai que j'ai aussi fait l'impasse sur les images, car je profite de la migration pour changer les photos (et je n'ai que moins de 100 articles)

je jeterai un oeil à l'import de la v1.2 pour automatiser la création des images aussi.
ma moulinette était juste à unique, alors j'ai répondu qu'à mes propres besoins :-)
je mettrai les sources ici ce weekend

Link to comment
Share on other sites

  • 9 months later...

hola Amigos,

Vieux post, mais toujours d'actu pour moi !
Je ne connais pas encore bien ce forum, peut-être y a-t-il d'autres threads qui abordent la question plus avant ?
Ma requête d'extraction pour moi me fait bloquer sur la valeur tax_rate, j'ai une ligne par taux de tva, donc chaque fois 3 fois le même produit.

Voici la requête :

SELECT DISTINCT p.products_id, ptc.categories_id, pd.products_name, pd.products_description, CONCAT('http://maboutique.tld/images/',p.products_bimage,',','http://maboutique.tld/images/',p.products_bsubimage1,',','http://maboutique.tld/images/',',','http://maboutique.tld/images/',p.products_bsubimage2,',','http://maboutique.tld/images/',p.products_bsubimage3,',','http://maboutique.tld/images/',p.products_bsubimage4,',','http://maboutique.tld/images/',p.products_bsubimage5) URLimages, p.products_date_added, p.products_date_available, p.products_price, tr.tax_rate, p.products_weight, pd.products_pagetitle, pd.products_metadescription, pd.products_keywords
FROM products p, products_description pd, tax_rates tr, products_to_categories ptc
WHERE p.products_id = pd.products_id 
AND pd.language_id = 4
AND p.products_id = ptc.products_id 
AND ptc.categories_id = 73



idem avec la nomenclature de jointure JOIN :

SELECT DISTINCT p.products_id, ptc.categories_id, pd.products_name, pd.products_description, CONCAT('http://maboutique.tld/images/',p.products_bimage,',','http://maboutique.tld/images/',p.products_bsubimage1,',','http://maboutique.tld/images/',',','http://maboutique.tld/images/',p.products_bsubimage2,',','http://maboutique.tld/images/',p.products_bsubimage3,',','http://maboutique.tld/images/',p.products_bsubimage4,',','http://maboutique.tld/images/',p.products_bsubimage5) URLimages, p.products_date_added, p.products_date_available, p.products_price, tr.tax_rate, p.products_weight, pd.products_pagetitle, pd.products_metadescription, pd.products_keywords 
FROM products p
   LEFT OUTER JOIN products_description pd
       ON p.products_id = pd.products_id AND pd.language_id = 4
   LEFT JOIN tax_rates tr
       ON     p.products_tax_class_id = tr.tax_class_id
   JOIN products_to_categories ptc
       ON p.products_id = ptc.products_id AND ptc.categories_id = 73



Bon, je n'ose même pas aborder la question de la catégorie du produit, qui nécessite que l'on passe par une tierce table pour avoir le nom... ce qui est finalement le même problème.

Des idées ?
Merci pour le coup de pouce !

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...