Ruslan Brest, rb.labtodo.com

Разработка ПО, сайтов и веб-сервисов. CodeIgniter, PHP, MySQL, W3C CSS/XHTML, MaxSite CMS, OpenCart, PrestaShop

Opencart 1.5.x -- 1.5.1.2 (admin): редактирование заказов

Опубликовано: 18 октября 2011.
Автор: Ruslan Brest.

Рубрика: Howto | OpenCart.
Метки: .

Просмотров: 1301.
Подписаться на комментарии по RSS.
Не рекомендуется применять! В 1.5.1.1 / 1.5.1.2 вроде бы работает, но отсутствия проблем никто не обещал.
Добавляем команду редактирования заказа в админке. Изменения для 1.5.1.2 и 1.5.1.3 идентичны. Но в 1.5.1.3 форма редактирования переделывается и на данный момент не работает полностью. То есть удалить товар может и получится, а вот добавить - вряд ли. Поэтому пользователям OpenCart 1.5.1.3 лучше подождать обновлений или следующей версии.

Впрочем, всем остальным -- тоже.

На свой страх и риск. Авторы OpenCart не закончили модификацию редактирования заказов и поэтому функция спрятана в версии 1.5

diff --git a/public_html/admin/controller/common/home.php b/public_html/admin/controller/common/home.php
index 8d96fac..daa59b9 100644
--- a/public_html/admin/controller/common/home.php
+++ b/public_html/admin/controller/common/home.php
@@ -174,10 +174,14 @@ class ControllerCommonHome extends Controller {
 			 
 			$action[] = array(
 				'text' => $this->language->get('text_view'),
 				'href' => $this->url->link('sale/order/info', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'], 'SSL')
 			);
+			$action[] = array(
+				'text' => $this->language->get('text_edit'),
+				'href' => $this->url->link('sale/order/update', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'], 'SSL')
+			);
 					
 			$this->data['orders'][] = array(
 				'order_id'   => $result['order_id'],
 				'customer'   => $result['customer'],
 				'status'     => $result['status'],
diff --git a/public_html/admin/view/stylesheet/stylesheet.css b/public_html/admin/view/stylesheet/stylesheet.css
index cde1569..556b225 100644
--- a/public_html/admin/view/stylesheet/stylesheet.css
+++ b/public_html/admin/view/stylesheet/stylesheet.css
@@ -31,10 +31,13 @@ a, a:visited {
 	cursor: pointer;
 }
 a img {
 	border: 0;
 }
+a.action {
+	padding-left: 5px;
+}
 form {
 	margin: 0;
 	padding: 0;
 }
 label {
diff --git a/public_html/admin/view/template/common/home.tpl b/public_html/admin/view/template/common/home.tpl
index dd0d996..83a57f7 100644
--- a/public_html/admin/view/template/common/home.tpl
+++ b/public_html/admin/view/template/common/home.tpl
@@ -103,11 +103,11 @@
                 <td class="left"><?php echo $order['customer']; ?></td>
                 <td class="left"><?php echo $order['status']; ?></td>
                 <td class="left"><?php echo $order['date_added']; ?></td>
                 <td class="right"><?php echo $order['total']; ?></td>
                 <td class="right"><?php foreach ($order['action'] as $action) { ?>
-                  [ <a href="<?php echo $action['href']; ?>"><?php echo $action['text']; ?></a> ]
+                  <a href="<?php echo $action['href']; ?>" class="action"><?php echo $action['text']; ?></a>
                   <?php } ?></td>
               </tr>
               <?php } ?>
               <?php } else { ?>
               <tr>

Не пользуйтесь этим для версии 1.5.1.3! Авторы OpenCart не закончили её модификацию и поэтому она спрятана в версии 1.5

diff --git a/upload/admin/controller/common/home.php b/upload/admin/controller/common/home.php
index b3eb55a..e41a285 100644
--- a/upload/admin/controller/common/home.php
+++ b/upload/admin/controller/common/home.php
@@ -174,10 +174,14 @@ class ControllerCommonHome extends Controller {
 			 
 			$action[] = array(
 				'text' => $this->language->get('text_view'),
 				'href' => $this->url->link('sale/order/info', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'], 'SSL')
 			);
+			$action[] = array(
+				'text' => $this->language->get('text_edit'),
+				'href' => $this->url->link('sale/order/update', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'], 'SSL')
+			);
 					
 			$this->data['orders'][] = array(
 				'order_id'   => $result['order_id'],
 				'customer'   => $result['customer'],
 				'status'     => $result['status'],
diff --git a/upload/admin/view/stylesheet/stylesheet.css b/upload/admin/view/stylesheet/stylesheet.css
index d80516b..bb9e451 100644
--- a/upload/admin/view/stylesheet/stylesheet.css
+++ b/upload/admin/view/stylesheet/stylesheet.css
@@ -29,10 +29,13 @@ a, a:visited {
 	cursor: pointer;
 }
 a img {
 	border: 0;
 }
+a.action {
+	padding-left: 5px;
+}
 form {
 	margin: 0;
 	padding: 0;
 }
 label {
diff --git a/upload/admin/view/template/common/home.tpl b/upload/admin/view/template/common/home.tpl
index dd0d996..83a57f7 100644
--- a/upload/admin/view/template/common/home.tpl
+++ b/upload/admin/view/template/common/home.tpl
@@ -103,11 +103,11 @@
                 <td class="left"><?php echo $order['customer']; ?></td>
                 <td class="left"><?php echo $order['status']; ?></td>
                 <td class="left"><?php echo $order['date_added']; ?></td>
                 <td class="right"><?php echo $order['total']; ?></td>
                 <td class="right"><?php foreach ($order['action'] as $action) { ?>
-                  [ <a href="<?php echo $action['href']; ?>"><?php echo $action['text']; ?></a> ]
+                  <a href="<?php echo $action['href']; ?>" class="action"><?php echo $action['text']; ?></a>
                   <?php } ?></td>
               </tr>
               <?php } ?>
               <?php } else { ?>
               <tr>

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us

Комментариев: 14

  1. 19.10.2011 в 21:15:13 | #1

    Вы случайно не оказываете услуг по OpenCart?

  2. Ruslan Brest
    19.10.2011 в 21:31:50 | #2

    Бывает. Но сейчас занят сильно и если за что браться, то за небольшие изменения и с большими оговорками про время и сроки.

    На этой неделе точно никаких заказов брать не буду.

  3. 19.10.2011 в 21:39:14 | #3

    Интересует мелкая правка шаблона или консультация по работе с шаблонами на данной CMS. В английском не силен, а рунете мало инфы по работе с шаблонами. Может посоветуете что и где почитать? Понравился скрипт, сейчас поднимаю магазин и сталкиваюсь с мелкими проблемами.

  4. Ruslan Brest
    19.10.2011 в 22:27:00 | #4

    Я не спец в вёрстке, но тут надо смотреть конкретно, что Вас интересует. Исходя из этой информации пока ничего конкретного сказать нельзя. Что-то может подскажу. Оперативно - не всегда. Но по мелочам обычно стараюсь помочь, если соображу с ответом.

    Если информация не для публичных комментариев - воспользуйтесь формой на странице "Контакт".

  5. 06.12.2011 в 20:18:17 | #5

    Добрый вечер, очень хороший и нужный у вас сайт - спасибо! Есть такой вопрос: сложно ли будет сделать в списке заказов индикацию в виде заполнения определенным цветом строки обработанного заказа при изменении статуса? Например, ставим статус "выполнено" в "истории заказа" и в списке заказов вся строка выделяется зеленым цветом, а при изменении статуса на "отказ" - красным ну и так далее.

  6. Ruslan Brest
    06.12.2011 в 20:57:03 | #6

    Спасибо! У меня так и сделано: http://rb.labtodo.com/uploads/opencart15/oc151-admin-color-order-status.png

    В общем списке они выглядят точно так же, разукрашенными.

    Всю строку перекрашивать не получится (или это будет связано с доп. изменениями). Так, как у меня, сделать несложно. Но описывать это я сейчас не готов - времени нет. Да и там ещё не доделано: HTML теги из статусов надо вырезать при отправке писем.

    Могу только кратко подсказать: в базе надо удлинить это поле (оно слишком короткое) и сразу там же вписать названия с HTML тегами. При желании редактировать статусы через админку надо код переделывать, там HTML не предусматривался и кажется не пройдёт валидацию при проверке. Если так на коленке устроит - этого достаточно. Но в письмах лишний мусор уходит, не очень красиво. Я это пока не исправлял.

  7. 06.12.2011 в 21:24:17 | #7

    Спасибо, за подсказку - буду пробовать.

  8. guest
    12.01.2012 в 22:36:54 | #8

    diff сложно выложить? мне руками эти строчки вставлять?

  9. Ruslan Brest
    12.01.2012 в 23:02:51 | #9

    Не то чтобы сложно, но мне неудобно их дублировать, закачивать, линковать. При том, что 99% посетителей не понимают, что такое дифф и тем более в виде файла - им надо наглядно и руками копировать. Поэтому я понадеялся на то, что тем, кто понимает, несложно сделать copy/paste.

    И кстати -- именно этот дифф как раз даром никому не нужен и вреден. Не работает нормально эта функция почти во всех случаях. Активно дорабатывается автором уже долгое время. Поэтому не зря её убрали из 1.5.

  10. 15.02.2012 в 16:13:02 | #10

    а цену и сумму в заказе можно поправить?

  11. Ruslan Brest
    15.02.2012 в 19:31:08 | #11

    Уже близится выход релиза Опенкарт 1.5.2 - автор это редактирование заказов уже с полгода делает и, судя по комментариям, конец близок. Редактирование там есть, поэтому лучше дождаться релиза и уже там использовать эту функцию.

  12. Максим
    30.04.2012 в 21:47:45 | #12

    1.5.2 времени совсем нет ждать. Может всё же есть выход из ситуации с отсутствием редактирования заказов в oc 1.5.1.3?

  13. Ruslan Brest
    30.04.2012 в 23:48:51 | #13

    В каком смысле ждать? 1.5.2 давно доступна.

  14. serg
    14.05.2012 в 15:42:56 | #14

    http://opencartforum.ru/topic/9291-редактирование-заказов-1513/#entry60617

Оставьте комментарий!

Гость
Комментатор / хотите им стать

Чтобы стать комментатором, введите email и пароль. Напишите комментарий. В дальнейшем ваша связка email-пароль позволит комментировать, получать уведомления об ответах и редактировать свои данные. Не забудьте про активацию (инструкция придёт на email, указанный при регистрации).

Авторизация: Facebook. MaxSiteAuth. Loginza

(обязательно)