gpt4 book ai didi

php - 从 magento 表结构获取客户信息

转载 作者:IT王子 更新时间:2023-10-29 00:19:47 25 4
gpt4 key购买 nike

我想从 magento 表中获取所有客户详细信息的行。

谁能给我查询?

表格是:

  • 客户实体
  • eav_attribute
  • customer_entity_varchar

最佳答案

可以从 Magento MySQL DB 中提取一些数据,但在执行下面的查询之前注意以下事项:

1) Magento 被构建为可配置的,因此您不能从 MySQL 获取数据,但您必须使用 Magento 客户模块(模型、资源模型)和 Magento 配置数据来检索客户数据。不保证任何直接查询与不同的 Magento 版本兼容,甚至不保证与相同版本的安装兼容。

2) Magento EAV 结构不允许您在一次查询中以良好的形式获取所有客户数据,因为表名与属性动态匹配。

3) 您不能仅通过一个查询甚至多个查询来提取所有客户数据。因为许多信息对象是在模型中创建的,并且只有模型具有在一个客户对象中收集所有数据的逻辑。我谈论送货/账单地址、商店信用、奖励积分(对于 EE 版本)等等。

然而,只要获取所有客户的 varchar 属性,您可以使用以下代码(由于上面 1 中提到的,不能保证工作):

SELECT ce.*, ea.attribute_code, cev.value
FROM customer_entity AS ce
LEFT JOIN eav_attribute AS ea ON ce.entity_type_id = ea.entity_type_id AND ea.backend_type = 'varchar'
LEFT JOIN customer_entity_varchar AS cev ON ce.entity_id = cev.entity_id AND ea.attribute_id = cev.attribute_id

也可以使用这样的查询来提取客户的所有属性

SELECT ce.*, ea.attribute_code, 
CASE ea.backend_type
WHEN 'varchar' THEN ce_varchar.value
WHEN 'int' THEN ce_int.value
WHEN 'text' THEN ce_text.value
WHEN 'decimal' THEN ce_decimal.value
WHEN 'datetime' THEN ce_datetime.value
ELSE NULL
END AS value
FROM customer_entity AS ce
LEFT JOIN eav_attribute AS ea ON ce.entity_type_id = ea.entity_type_id
LEFT JOIN customer_entity_varchar AS ce_varchar ON ce.entity_id = ce_varchar.entity_id AND ea.attribute_id = ce_varchar.attribute_id AND ea.backend_type = 'varchar'
LEFT JOIN customer_entity_int AS ce_int ON ce.entity_id = ce_int.entity_id AND ea.attribute_id = ce_int.attribute_id AND ea.backend_type = 'int'
LEFT JOIN customer_entity_text AS ce_text ON ce.entity_id = ce_text.entity_id AND ea.attribute_id = ce_text.attribute_id AND ea.backend_type = 'text'
LEFT JOIN customer_entity_decimal AS ce_decimal ON ce.entity_id = ce_decimal.entity_id AND ea.attribute_id = ce_decimal.attribute_id AND ea.backend_type = 'decimal'
LEFT JOIN customer_entity_datetime AS ce_datetime ON ce.entity_id = ce_datetime.entity_id AND ea.attribute_id = ce_datetime.attribute_id AND ea.backend_type = 'datetime'

关于php - 从 magento 表结构获取客户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4154451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com