Я бы хотел установить глобальный лимит заказов на определенные продукты.Дело в том, что я хочу включить задержку заказов для определенных продуктов и определить несколько периодов дат, когда существуют ограничения на количество этих отдельных продуктов, которые можно заказать.
В настоящее время моя пользовательская модель загружена с соответствующимиинформация за выбранный период даты и прикрепленная к моделям продуктов, когда они загружены как $product->setMyModel(...)
в следующих событиях:
catalog_product_load_after
catalog_product_collection_load_after
sales_quote_item_collection_products_after_load
Доступ к моей модели с данными для конкретного продукта так же прост, как и вызов $product->getMyModel()
, который я, следовательно, буду называть просто моя модель .
Вот что я хочу сделать:
1. Всякий раз, когда товар добавляется в корзину / предложение или размещается в заказе, яхочу сделать что-то вроде этого (псевдокод):
// Somehow get $product and $requestedQty (most likely from an event)
$myModel = $product->getMyModel();
if($myModel->applyOrderLimit()) {
// ($orderedQty + $requestedQty) <= $orderLimit
if($myModel->isRequestedQtyAvailable($requestedQty)) {
// Issue an error and prevent the item from being ordered
return;
}
// $orderedQty += $requestedQty
$myModel->addToQtyOrdered($requestedQty);
}
// Continue Magentos default behaviour
1.1. Я подозреваю, что Mage_CatalogInventory_Item::checkQuoteItemQty()
должен быть переопределен, чтобы захватить $requestedQty
здесь.
2. Обновление $myModel::ordered_qty
всякий раз, когда заказ отменяется, возвращается или тому подобное.
Полагаю, реальный вопрос в том, где я запускаю этот код, и есть ли что-нибудь еще для реализации такого предела порядка и отслеживания количества, чем я понял?
Мне кажется, этокак довольно сложная задача.Вот почему мне нужна помощь более опытных разработчиков Magento!
Примечание: я не мог понять, как смешивать нумерованные списки и блоки кода, но я надеюсь, что он достаточно читабелен