Je ne vais pas poster toute requête SQL, car il est beaucoup trop fastidieux d'essayer d'obtenir des données sur Magento manuellement via la base de données, mais je dirai que vous êtes sur la bonne voie. Pour réduire le nombre de jointures pour ce genre de chose, je récupère mes attributs_attributs de la table eav et les utilise directement. Cela signifie que ma requête ne fonctionnera que sur mon installation de Magento, mais cela n'a pas été un problème pour moi.
select attribute_code, attribute_id, backend_type from eav_attribute
where entity_type_id = (select entity_type_id from eav_entity_type where entity_type_code = 'catalog_product')
and attribute_code in ('name', 'url_path', 'price', 'image', 'description', 'manufacturer');
Rendement:
+----------------+--------------+--------------+
| attribute_code | attribute_id | backend_type |
+----------------+--------------+--------------+
| description | 61 | text |
| image | 74 | varchar |
| manufacturer | 70 | int |
| name | 60 | varchar |
| price | 64 | decimal |
| url_path | 87 | varchar |
+----------------+--------------+--------------+
Maintenant vous êtes prêt pour l'ennui! Pour chaque code d'attribut, joignez-vous à la table de backend (catalog_product_entity_$BACKEND_TYPE
) sur votre identifiant d'attribut donné. Pour moi, cela tournerait un sku/nom/id requête (votre requête n'a pas réellement besoin de se joindre contre les produits, puisque vous utilisez le entity_id pour faire la jonction ...) dans:
select p.sku, p.entity_id, n.value name
from catalog_product_entity p
join catalog_product_entity_varchar n on n.entity_id = p.entity_id
where n.attribute_id = 60;
continuer à ajouter new joint-statement | where-clause | select-clause définit jusqu'à ce que vous ayez toutes les jointures voulues à l'origine. Cela dit, Jonathan a raison de dire que l'utilisation du framework Magento pour gérer ces données serait beaucoup plus simple que de le faire manuellement via la base de données. À moins d'avoir un nombre extrême de produits que vous devez charger en même temps (notez qu'il y a deux hypothèses là-bas, et vous pouvez travailler à réduire l'un ou l'autre), il serait beaucoup plus robuste d'utiliser le framework.
Espérons que ça aide!
Merci, Joe
pourquoi vous essayez de le faire dans SQL, il serait plus facile en utilisant muchhhhh collections Magento ... –
Serait-ce bon pour les produits de masse de téléchargement en vrac? –