obtenir des informations sur les clients de la structure de la table magento
Je veux obtenir des lignes pour tous les détails sur le client à partir de magento tables.
Quelqu'un peut-il me donner la requête?
Tables sont les suivantes:
- customer_entity
- eav_attribute
- customer_entity_varchar
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Il est possible d'extraire des données à partir de Magento de bases de données MySQL, mais avant l'exécution des requêtes ci-dessous l'avis suivant:
1) Magento est construit pour être configurable, de sorte que vous ne devez pas récupérer les données de MySQL, mais vous devez utiliser Magento module Client (les modèles, les modèles de ressources) et Magento données de configuration pour récupérer les données du client. Tout droit de requête n'est pas garanti pour être compatible avec les différentes versions de Magento et même des installations de la même version.
2) Magento EAV structure ne vous permet pas de récupérer toutes les données client dans une belle forme au sein d'une même requête, parce que les noms de table de correspondance des attributs de façon dynamique.
3) Vous ne pouvez pas extraire TOUTES les données des clients juste par une requête ou même de plusieurs requêtes. Parce que beaucoup d'information les objets sont créés à l'intérieur des modèles et le modèle dispose de la logique de réunir toutes les données dans un délai d'un client de l'objet. Je parle de l'expédition/les adresses de facturation, la banque de crédit, des points de récompense (par EE version) et ainsi de suite.
Cependant, pour aller chercher tous les clients' varchar les attributs, vous pouvez utiliser le code suivant (pas garanti de fonctionner pour des raisons mentionnées ci-dessus en 1):
Il est de plus possible d'utiliser une telle requête pour extraire tous les attributs pour un client
C'est un peu requête pour extraire les informations du client à partir de magento tables:
Juste pour compléter @Stefanos réponse, j'ai fait une grosse requête, d'en extraire quelques autres détails importants, tels que l'adresse et le téléphone. Certains de ces détails n'ont de sens que sur ma base de données, mais peut aider quelqu'un:
Vous êtes à la recherche pour SQL réel ou certains Magento code? La réelle SQL va déraper, et probablement ne jamais regarder la façon dont vous le souhaitez.
Car il n'y a pas de "pivot" de MySQL, vous pouvez ignorer essentiellement
eav_attribute
dans le réel de la requête. Vous serez à la recherche à elle de trouver l'attribut Id que vous voulez. Voici un exemple trivial de savoir comment sélectionner ces données:Garder l'ajout de ces clauses de jointure pour chaque attribut, et vous serez d'avoir votre requête. Fondamentalement, la VAE n'est pas optimisé pour ce type d'accès.
Si vous donnez un peu plus de détails sur ce que vous essayez de faire (ou si le code PHP dans Magento va travailler pour vos besoins), nous pourrions être en mesure de vous aider.
Espère que ça aide!
Grâce,
Joe
J'ai lu ce qui est au dessus et je me sens beaucoup mieux en sachant que certaines personnes là sont à essayer de comprendre le problème que le mien.
Eh bien, Comme vous le savez, vous ne pouvez pas trouver toutes les informations sur vos clients dans magento back-office.
Je voulais avoir une très grande table où je peux voir tous mes clients (ceux qui ont un compte= identifié) ( et ceux qui ont juste inscrit à la news letters newsletter_subscribers)
Depuis je ne sais pas vraiment comment magento fournit ces informations, j'ai écrit som code SQL pour extraire des données.
Comme Il est dit ci-dessus, vous ne pouvez pas avoir tous les renseignements sur les clients dans une seule requête. En fait, vous aurez besoin d'autant de requêtes que les clients Attributs.
Si l'entité client a 45 attributs (nom, prénom, middlename e-mail .....)
ensuite, vous aurez besoin de 45 requêtes pour extraire...
Ma question était COMMENT ???
La réponse est VUES !!
En fait, j'ai écrit Vues pour extraire chaque attribut de l'information. Cela signifie que j'ai écrit 45 veiws, chaque vue choisit un attribut
Je ne sais pas Comment c'est fait dans votre base de données, mais, Vous savez que Chaque entité a une entity_type_id.
Dans mon cas, je suis intéressé par le customer_entity et la customer_address_entity.
le customer_entity a un entity_type_id = 1
le customer_address_entity a un entity_type_id = 2
Chaque entité a des attributs. Donc, si vous voulez voir quels sont les attributs disponibles pour le client, entité d'exécuter la requête :
Select attribute_code, attribute_id, backend_type from eav_attribute where entity_type_id =1
Même chose pour l'adresse de l'entité en remplaçant le 1 par 2.
La colonne attributes_id est très important car cela va vous permettre de trouver vos attributs par les id des tables :
entity_customer_vachar, entity_customer_int, entity_customer_text, entity_customer_datetime
Vous allez peut-être trouver le prénom attribute_id = 5 dans ce tableau comme Joseph Mastey il a écrit dans la requête...
Les informations sont expédiés par type dans les tableaux ci-dessus.
Lorsque vous exécutez la requête ci-dessus, vous verrez que chaque attribut a un backendtype. cela signifie que les informations que vous cherchez est l'une des tables suffixé par son type.
Par exemple, si vous êtes à la recherche pour le prénom qui est de type varchar, alors vous le trouverez dans customer_entity_varchar et ainsi de suite.
Si vous lisez encore, cela peut signifier que vous comprenez de quoi je parle.
Autres sage, vous avez besoin de regarder le modèle EAV
Et magento 1.3.2.4 schéma de base de données à
http://inchoo.net/wp-content/uploads/2010/09/MAGENTO_v1.3.2.4-Database_Diagram.pdf
Je ne peux pas poster l'ensemble de la solution, car Il n'est pas encore prêt, je vais mettre un fichier zip si cela peut vous aider.
En attendant, Si quelqu'un sait comment l'utiliser magento objets avec un fichier php pour accéder aux données sans modifier la Base magento, ce serait génial!
Grâce
Particulier, j'ai été de tenter de clients à l'exportation des numéros de téléphone mobile à partir de ma boutique Magento.
Tout d'abord, vous pouvez le faire en utilisant les Données des profils qu'elle s'étend à l'ensemble de données Client.
Dans mon cas, les données des profils de fonction n'a pas de travail pour une raison quelconque et que je n'ai pas eu le temps de savoir pourquoi je suis allé directement à MySQL, pour récupérer mes données.
La suite de requête MySQL va vous permettre d'extraire les clients du royaume-UNI numéros de téléphone mobile. Remarque: vous devrez peut-être travailler sur la attribute_id les données dont vous avez besoin est et de mise à jour de la requête en conséquence.
REQUÊTE:-
Remarque la limite où une déclaration limitant le résultat à des données spécifiques, le groupe s'arrête de dupliquer les numéros que les données réelles je veux, c'est le numéro de téléphone. Vous pouvez ajouter INTO OUTFILE à l'exportation ensemble de résultats au format CSV.
Espère que cela aide quelqu'un...
J'ai modifié la grande réponse de Andrey Tserkus. Et ajout d'une nouvelle clause where. Maintenant, vous suffit de remplacer la référence du produit et vous obtiendrez tous les clients des jeux d'enregistrements, qui ont acheté le produit. Fonctionne très bien pour moi dans Magento 1.5.1
Je crois que ça pourrait être plus simple requête avec aucun des sous-requêtes:
Ci-dessous le code que vous pouvez récupérer la clientèle de détail dans Magento
Sa sortie sera dans le tableau comme ci-dessous:-
Un autre exemple de code sql pour obtenir les valeurs d'attribut. J'ai utilisé seulement int et varchar attributs, vous pouvez aussi en ajouter d'autres.