在 Magento 2 中通过愿望清单产品 ID 获取客户详细信息
Get Customer Details by Wishlist Product Id in Magento 2
产品列表已按客户数量添加到心愿单,我需要根据产品 ID 知道哪个客户将特定产品添加到心愿单。
如何根据产品id获取客户详细信息或至少一个客户id?
我的工作代码如下:
首先我从 wishlist_item table 获取集合并使用我的产品 ID 进行过滤。
$wishlistItemCollection = $objectManager->get('Magento\Wishlist\Model\ResourceModel\Item\Collection')->addFieldToFilter('product_id', ['eq' => $productId]);
然后使用公共字段名称 wishlist_id 加入 wishlist_item 和心愿单 table 并将 customer_id 放入 wishlistItemCollection
$joinConditions = 'main_table.wishlist_id = wishlist.wishlist_id';
$wishlistItemCollection->getSelect('*')->join(
['wishlist'],
$joinConditions,
[]
)->columns("wishlist.customer_id");
使用 customer_id 我们可以获得所有客户详细信息,如下所示:
foreach($wishlistItemCollection as $wishlistData){
$customerId = $wishlistData->getCustomerId();
$customer = $this->_customer->load($customerId);
$customerData = $customer->getData();
$customerName = $customer->getFirstname();
$customerEmail = $customer->getEmail();
}
产品列表已按客户数量添加到心愿单,我需要根据产品 ID 知道哪个客户将特定产品添加到心愿单。
如何根据产品id获取客户详细信息或至少一个客户id?
我的工作代码如下:
首先我从 wishlist_item table 获取集合并使用我的产品 ID 进行过滤。
$wishlistItemCollection = $objectManager->get('Magento\Wishlist\Model\ResourceModel\Item\Collection')->addFieldToFilter('product_id', ['eq' => $productId]);
然后使用公共字段名称 wishlist_id 加入 wishlist_item 和心愿单 table 并将 customer_id 放入 wishlistItemCollection
$joinConditions = 'main_table.wishlist_id = wishlist.wishlist_id';
$wishlistItemCollection->getSelect('*')->join(
['wishlist'],
$joinConditions,
[]
)->columns("wishlist.customer_id");
使用 customer_id 我们可以获得所有客户详细信息,如下所示:
foreach($wishlistItemCollection as $wishlistData){
$customerId = $wishlistData->getCustomerId();
$customer = $this->_customer->load($customerId);
$customerData = $customer->getData();
$customerName = $customer->getFirstname();
$customerEmail = $customer->getEmail();
}