Magento的检查客户端的ID,如果他已经购买的产品
问题描述:
我有一个仅仅只能为每个客户一次购买的产品.. 如果我把在管理,在购物车中只有一个项目,铱力可以一次购买一个,所以购买一次以上。 如何检查客户的“ID”已经买了,所以,如果他们买了,他已经购买该产品的消息? 我认为你必须做购买按钮Magento的检查客户端的ID,如果他已经购买的产品
答
你可以做的最好的事情是编写你自己的观察者,在add_to_cart事件之前/之后调用。 (了解更多有关here)
该观察员内部文件,它是最好的,你得到那个特定客户的所有先前的订单:
$orderCollection = Mage::getModel('sales/order')->getCollection();
$customer_orders = $orderCollection->getSelect()->where('e.customer_id =CUSTOMER_ID_GOES_HERE');
这个客户你遍历所有的orderded项目
的foreach秩序,如果他们中的一个产品相匹配:
$order = Mage::getModel('sales/order')->load($order_id);
$items = $order->getAllItems();
foreach ($items as $itemId => $item)
{
if($item->getProductId() == ordered_product_id_goes_here){
//Show output message here that customer can only buy this once
}
break;
}
祝你好运;)
我想这是最好创建表客户为>产品,增加新的排它,我n下单后放置观察员并在下单前查看观察者是否当前客户已经购买了该产品。每次查看所有订单最好。 – Zyava
嗨,你就不必通过所有的订单看,刚才那个客户的所有订单这不应该是在大多数情况下,一个很大的数目。 – Kenny