Magento Проверьте ID клиента, если он уже купил продукт - PullRequest
1 голос
/ 26 сентября 2011

У меня есть продукт, который можно приобрести только один раз для каждого покупателя. Если я добавлю в админку только одну вещь в корзину, Элея сможет купить по одной за раз, и, следовательно, покупать больше, чем один раз. Как я могу проверить, если «ID» клиента уже купил, и если они купили сообщение, что он уже купил этот продукт.? Я думаю, что вы должны сделать кнопку покупки

1 Ответ

2 голосов
/ 26 сентября 2011

Лучшее, что вы можете сделать - написать собственного наблюдателя, который вызывается до / после события add_to_cart. (Подробнее об этом здесь )

Внутри этого файла наблюдателя лучше всего получить все предыдущие заказы этого конкретного клиента:

$orderCollection = Mage::getModel('sales/order')->getCollection();
$customer_orders = $orderCollection->getSelect()->where('e.customer_id =CUSTOMER_ID_GOES_HERE'); 

По каждому заказу этого клиента вы перебираете все заказанные товары, и если один из них соответствует товару:

$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;
}

Удачи;)

...