Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Нет метода edit или editOrder в файле модели admin/model/sale/order.php


Recommended Posts

В общем понадобилось совершать определенное действие при изменении статуса заказа, первой мыслю было сделать это в соответствующем методе модели, в файле: admin/model/sale/order.php есть метод getOrder() однако никакого намека на метод edit либо же editOrder в этом файле нет... произвел поиск по слову UPDATE, в итоге единственный UPDATE нашелся в строчке:
$this->db->query("UPDATE `" . DB_PREFIX . "order` SET invoice_no = '" . (int)$invoice_no . "', invoice_prefix = '" . $this->db->escape($order_info['invoice_prefix']) . "' WHERE order_id = '" . (int)$order_id . "'");

 

которая явно не подходит под обновление всего заказа. Короче говоря не пойму, какой именно метод добавляет или обновляет в базу данных информацию о заказе. Думаю ладно поищу нужный метод в контроллере в итоге в файле admin/controller/sale/order.php нашел метод edit() со следующим содержимым:
 

public function edit() {
   $this->load->language('sale/order');

   $this->document->setTitle($this->language->get('heading_title'));

   $this->load->model('sale/order');

   $this->getForm();
}

Ну то есть никаких тебе $this->request->post и опять же нет вызова модели которая обновляет информацию о заказе. Есть правда вызов метода $this->getForm(); но он достаточно большой и там не очевидно как понять что форма была отправлена на сервер, а не скажем просто загружена при открытии заказа на редактирование. Ну и опять же любопытно какой метод все таки обновляет информацию о заказе в бд.

Надіслати
Поділитися на інших сайтах


Статус заказа меняется на фронте.

Надіслати
Поділитися на інших сайтах

Интересно, а куда в таком случае улетает форма при сохранении заказа в админке? В пути указано: ?route=sale/order/edit значит по идее ее должен контроллер в админке принимать? Каким образом получается что эту форму обрабатывает фронт?

Надіслати
Поділитися на інших сайтах


В общем нашел, статус меняется в файле: catalog/model/checkout/order.php если точнее то меняют его вот эти строки:
 

// Update the DB with the new statuses
$this->db->query("UPDATE `" . DB_PREFIX . "order` SET order_status_id = '" . (int)$order_status_id . "', date_modified = NOW() WHERE order_id = '" . (int)$order_id . "'");

$this->db->query("INSERT INTO " . DB_PREFIX . "order_history SET order_id = '" . (int)$order_id . "', order_status_id = '" . (int)$order_status_id . "', notify = '" . (int)$notify . "', comment = '" . $this->db->escape($comment) . "', date_added = NOW()");
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.