Помощь Вычитание товара только при статусе заказа предоплата

svitlo1

Постоялец
Регистрация
17 Фев 2009
Сообщения
560
Реакции
112
Ребята вопрос такой, как сделать в магазине так, что бы товар минусовался со склада только при статусе заказа - предоплата! Люди заказывают товар ... он минусуется со склада, но потом отказываются от покупки... тем самым лишая возможности других которые готовы платить заказать этот товар. Товар специфический растения и поэтому хотелось бы продавать только тем - кто готов платить. Пока интересует опенкарт 1.5.6
 
идём в catalog\model\checkout\order.php
там находим строку (204 строка у меня:(
Код:
$this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = (quantity - " . (int)$order_product['quantity'] . ") WHERE product_id = '" . (int)$order_product['product_id'] . "' AND subtract = '1'");
и вставляемс условие, у меня например "предоплата" = order_status_id = 15 :
Код:
if ($order_status_id == 15) {
                    $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = (quantity - " . (int)$order_product['quantity'] . ") WHERE product_id = '" . (int)$order_product['product_id'] . "' AND subtract = '1'");
                }
если так же интересует вопрос с вычетом опций, то чуть ниже строкой, так же поставить на условие строку с опциями с:
Код:
$this->db->query("UPDATE " . DB_PREFIX . "product_option_value SET quantity = (quantity - " . (int)$order_product['quantity'] . ") WHERE product_option_value_id = '" . (int)$option['product_option_value_id'] . "' AND subtract = '1'");
на
Код:
if ($order_status_id == 15) {
                    $this->db->query("UPDATE " . DB_PREFIX . "product_option_value SET quantity = (quantity - " . (int)$order_product['quantity'] . ") WHERE product_option_value_id = '" . (int)$option['product_option_value_id'] . "' AND subtract = '1'");
                }
 
Назад
Сверху