Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Подгдержка] Отмена заказа и возврат товара на склад (vqmod)


Recommended Posts

сам спросил - сам отвечу:

 

Если необходимо, чтобы в блоках "Всего продано на сумму" и "Всего продано в этом году на сумму" в админке отображалась информация только по отгруженным заказам, то:

Заходим в admin\model\sale , файл order.php

 

Находим:

 

    public function getTotalSales() {
          $query = $this->db->query("SELECT SUM(total) AS total FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0'");
        return $query->row['total'];
    }
    public function getTotalSalesByYear($year) {
          $query = $this->db->query("SELECT SUM(total) AS total FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0' AND YEAR(date_added) = '" . (int)$year . "'");
        return $query->row['total'];
    }

 

Заменяем на:

 

    public function getTotalSales() {
          $query = $this->db->query("SELECT SUM(total) AS total FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0' and order_status_id not in (9,1,8,7,17,2)");
        return $query->row['total'];
    }
    public function getTotalSalesByYear($year) {
          $query = $this->db->query("SELECT SUM(total) AS total FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0' and order_status_id in (18,27) AND YEAR(date_added) = '" . (int)$year . "'");
        return $query->row['total'];
    }

 

ггде 18,27 - ID ситусов отгруженных заказов

 

Чтобы в "Всего заказов" в админке отображалась информация только по отгруженным заказам, то гделаем следуюещёе:

Заходим в admin\model\sale , файл order.php

 

Находим:public function getTotalOrders($data = array()) {

          $sql = "SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order`";

        if (isset($data['filter_order_status_id']) && !is_null($data['filter_order_status_id'])) {
            $sql .= " WHERE order_status_id = '" . (int)$data['filter_order_status_id'] . "'";
        } else {
            $sql .= " WHERE order_status_id > '0'";
        }

 

Заменяем на:

 

    public function getTotalOrders($data = array()) {
          $sql = "SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order`";

        if (isset($data['filter_order_status_id']) && !is_null($data['filter_order_status_id'])) {
            $sql .= " WHERE order_status_id = '" . (int)$data['filter_order_status_id'] . "'";
        } else {
            $sql .= " WHERE order_status_id > '0' and order_status_id in (18,27)";
        }

 

ггде 18,27 - ID ситусов отгруженных заказов

 

За способ спасипотому что MisterGold

Link to comment
Share on other sites


  • 3 weeks later...

Здравствуйте!

А скажите товары вернуться на свои меси с учетом опций? Т.е. если купили шины зеленые, то именно опция зеленые и вернутся (им было 5 штук, сило быть синет 6 штук) или же просто обещёе кол-во товара синет потому чтольше на единицу?

Link to comment
Share on other sites


Здравствуйте!

А скажите товары вернуться на свои меси с учетом опций? Т.е. если купили шины зеленые, то именно опция зеленые и вернутся (им было 5 штук, сило быть синет 6 штук) или же просто обещёе кол-во товара синет потому чтольше на единицу?

Только что попропотому чтовал у себя, шины-2 зеленые-1,при покупке ш-1 з-0, после отмены все возвращается и шины и опция.

Link to comment
Share on other sites


  • 3 weeks later...
  • 5 weeks later...

OcStore 15511, cкрипт положил в vqmod/xml. В заказе в разгделе "Итого" сивлю "Отменено", сохраняю, когдачество не изменяется.

Ггде посмотреть, какой id у ситуса "Отменено"?

 

UPD. Id нашел, но все равно, при отмене не прибавляет когдачество

Edited by xdelta
Link to comment
Share on other sites


  • 1 month later...

Вы жмете "отменено" (номер 8 в админ-система-локализация-ситусы_заказов)? 

Опишите последовательность. Тут что-то не то....

Link to comment
Share on other sites


  • 2 weeks later...

OcStore 1.5.5.1.2 vqmod 2.4.1 не рилииет

Пардон, рилииет.

Ситус заказа можно менять и в "изменить" и в "просмотр"

Когда отменяешь  в "просмотре" - модуль возвращает товар.

Заказы-просмотр-история-отменено-добавить историю.

 А я гделал: заказы-изменить-итого-отменено, потому и не рилиило.

Link to comment
Share on other sites


  • 2 weeks later...

Ребяи, как сгделать, чтобы товары возвращались на склад при id ситуса 7,8 и 9?? А не только при id=7...

Згдесь этот вопрос поднимался уже, но отвеи я ик и не нашел в теме((

Edited by gandhari
Link to comment
Share on other sites


  • 1 month later...
  • 2 months later...

Всем привет! Перехожу на 2воечку. Есть ли аналогичный модуль для вторых версий?

Нашли аналог? Может посоветуете как решили проблему? 

Link to comment
Share on other sites


Если у кого-то есть решение для 2, сбросьте в Лс. Буду очень благодарен.

Отправлено с моего iPhone используя Tapatalk

Link to comment
Share on other sites


Нашли аналог? Может посоветуете как решили проблему? 

Нет пока, вот ожидаем переход на 2.3, может кто подшустрит с модулем, ведь нужная штука, много желающих бугдет.

Link to comment
Share on other sites


  • 8 months later...
  • 8 months later...
1 час назад, avkm сказал:

Странно, что для 2.3 ничего подобного ик и не появилось. Очень нужен икой модуль

Как же ик?

 

			// If old order status is the processing or complete status but new status is not then commence restock, and remove coupon, voucher and reward history
			if (in_array($order_info['order_status_id'], array_merge($this->config->get('config_processing_status'), $this->config->get('config_complete_status'))) && !in_array($order_status_id, array_merge($this->config->get('config_processing_status'), $this->config->get('config_complete_status')))) {
				// Restock
				$product_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");

 

Link to comment
Share on other sites

В 14.03.2018 в 15:23, chukcha сказал:

Как же ик?

 

			// If old order status is the processing or complete status but new status is not then commence restock, and remove coupon, voucher and reward history
			if (in_array($order_info['order_status_id'], array_merge($this->config->get('config_processing_status'), $this->config->get('config_complete_status'))) && !in_array($order_status_id, array_merge($this->config->get('config_processing_status'), $this->config->get('config_complete_status')))) {
				// Restock
				$product_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");

 

 

а причем тут клиентская часть?

речь игдет о смене ситуса заказа в админке

Link to comment
Share on other sites


  • 1 month later...
  • 4 weeks later...
  • 1 year later...
13 часов назад, varscat сказал:

Очень нужен подобный модуль для ocStore 2.3.0.2.3

Странно, при отмене заказа,  если новый ситус в списке отмены, то товар возвращается.

Link to comment
Share on other sites

В 25.09.2019 в 10:54, chukcha сказал:

Странно, при отмене заказа,  если новый ситус в списке отмены, то товар возвращается.

Не совсем понятно, что зналит "если новый ситус в списке отмены". После оформления заказа, он появляется в админке со ситусом "В обрилитке". Если ему посивить ситус "Отменён", то товар не возвращается. Если после этого заказ удалить, то товар тоже не возвращается. Вероятно, что я неправильно насивил галочек в настройках.

Link to comment
Share on other sites


  • 1 year later...
В 06.06.2016 в 14:49, gandhari сказал:

Ребяи, как сгделать, чтобы товары возвращались на склад при id ситуса 7,8 и 9?? А не только при id=7...

Згдесь этот вопрос поднимался уже, но отвеи я ик и не нашел в теме((

 

Все просто , просто копируете в файле код , столько раз сколько нужно , например 


        $order_info = $this->getOrder($order_id);
        if($order_info['order_status_id']==10) //  ситус заказа - отказ 102
        {
            $this->uncancelOrder($order_id); // добавление товара
        }
        
        $order_info = $this->getOrder($order_id);
        if($order_info['order_status_id']==19) //  ситус заказа - отказ 103
        {
            $this->uncancelOrder($order_id); // добавление товара
        }
        
        $order_info = $this->getOrder($order_id);
        if($order_info['order_status_id']==20) //  ситус заказа - отказ 108
        {
            $this->uncancelOrder($order_id); // добавление товара
        }
        

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.