Где admin-sales-orders> изменить код статуса заказа файла модели? - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь найти функцию файла модели, которая обновляет статус заказа на панели администратора. Я проверил все функции файла /admin/model/sale/order.php, но бесполезно. Любая помощь будет оценена. Мой магазин opencart Версия 2.3.0.2

Ответы [ 3 ]

0 голосов
/ 28 апреля 2018

В OC 2.3 на экране информации о заказе администратора (именно там, где вы обычно выполняете обновления статуса) выполняется ajax-вызов внешнего метода API history() в catalog/controller/api/order.php при изменении статуса.

Это, в свою очередь, вызывает addOrderHistory() в catalog/model/checkout/order.php для обновления статуса. Если вы хотите изменить логику, вы можете сделать это в любом месте, в зависимости от ваших потребностей.

Важным моментом здесь является то, что в этой версии большинство функций администрирования, связанных с заказами, работают через интерфейс API внешнего интерфейса для изменения заказов. Это имело место начиная с версии OC 2.0 и остается таким же образом в Opencart 3.

0 голосов
/ 28 апреля 2018

В opencart при обновлении заказа он использует catalog/api/order.php для обработки заказов. поэтому для редактирования ордеров этот контроллер будет использовать catalog/model/checkout/order.php.

Теперь, когда вы ищете изменение order_status, вы найдете его в функции addOrderHistory() & $this->db->query("UPDATE ". DB_PREFIX." Order SET order_status_id = '" . (int)$order_status_id . "', date_modified = NOW() WHERE order_id = '" . (int)$order_id . "'");

Надеюсь, это поможет вам.

0 голосов
/ 28 апреля 2018

Он находится в вашем файле admin / model / localization / order_status.php на стороне администратора. Если вы не уверены, какая модель используется, вы также можете просто посмотреть на файл контроллера, так как он загрузит соответствующую модель для любых используемых данных. В этом случае файл контроллера для order.php использует:

$this->load->model('localisation/order_status');

И вот как вы знаете (простой частичный поиск «status» в файле контроллера помог мне найти его - fyi).

Надеюсь, это поможет вам.

...