Перейти к содержанию
Godzilla

Как добавить способ оплаты в печатную форму заказа?

Рекомендуемые сообщения

Доброго времени сутоу всем.

Не могу до конца разобраться, как сделать вывод способа оплаты в печатную форму заказа, которая (форма) печатается из админки. Сейчас сводная информация по заказу выглядит так:

post-687857-0-84088200-1413047090_thumb.png

 

Вполне устроит, если после "Итого" будет информация о способе оплаты.

 

Начал искать, что, где и как в эту форму выводится. Нашел следующее: файл admin\view\template\sale\order_invoice.tpl В нем есть код:

<?php foreach ($order['total'] as $total) { ?>
    <tr>
      <td align="right" colspan="4"><b><?php echo $total['title']; ?></b></td>
      <td align="right"><?php echo $total['text']; ?></td>
    </tr>
<?php } ?>

А чуть выше в этом же файле код

    <tr>
      <td>
        <?php echo $order['payment_address']; ?><br/>
        <?php echo $order['customer_email']; ?><br/>
        <?php echo $order['customer_telephone']; ?>
      </td>
      <td><?php echo$order['shipping_address']; ?></td>
    </tr>

В самой базе данных у заказа, помимо общей суммы, информации о клиенте, его адресе и прочих параметров есть и метод оплаты - поле payment_method Резонно предположив, что в файле, где корректно обрабатывается строчка <?php echo $order['payment_address']; ?> будет так же корректно обрабатываться строка <?php echo $order['payment_method']; ?>, в файл admin\view\template\sale\order_invoice.tpl сразу после вывода суммарной информации по заказу (картинка выше и первый приведеный код) было добавлено:

    <tr>
      <td align="right" colspan="4"><b>Способ оалты:</b></td>
      <td align="right"><?php echo $order['payment_method']; ?></td>
    </tr>

Результат - на картинке ниже:

post-687857-0-33093200-1413049329_thumb.png

 

В принципе, все. На этом мои поиски зашли в тупик, поскольку на сегодняшний день так и не понял, как мне вытащить в печатную форму заказа способ оплаты. Надеюсь на помощь и советы знающих людей.

PS: в письме, которое приходит клиенту после оформления заказа, и которое прходит на почту менеджеру магазина, способ оплаты присутствует. Но там он печатается другой конструкцией и "другими файлами". Движок магазина - OpenCart 1.4.8b, если это существенно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уже совсем потерялся...

в файле admin\view\template\sale\order_form.tpl код

          <tr>
            <td><?php echo $entry_payment_method; ?></td>
            <td><input type="text" name="payment_method" value="<?php echo $payment_method; ?>" /></td>
          </tr>

в самой админке запросто выдает способ оплаты (см. картинку ниже), но как и где формируется $payment_method я вообще не понял...

post-687857-0-65697500-1413118272_thumb.png

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какая "печатная форма заказа"?

заказы :: отметил заказ -> нажал "показать счет" - справа вверху есть инфа

Дата добавления: 08.09.2014
№ заказа: 55
Способ оплаты: Оплата при доставке
Способ доставки: Бесплатная доставка
всё.

в total`ах никогда не было и не будет данных о способе оплаты.

это другая опера. другие данные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В админке меню: "Продажи -> Заказы" - получаем список заказов, У заказа жмем "Изменить" - открывается заказ:

post-687857-0-52348500-1413481992_thumb.png

В котором на вкладке "Детали заказа" видим в том числе "способ доставки" (1) и "способ оплаты" (2). Жмем кнопку "Счет фактура" и получаем следующее:

post-687857-0-67804900-1413482516_thumb.png

где "способ доставки" (1) присутствует. Никаких способов оплаты и доставки "справа вверху" нету. "Право вверху" выводится в том же admin\view\template\sale\order_invoice.tpl следующим кодом:

        <td align="right" valign="top"><table>
            <tr>
              <td><b><?php echo $text_date_added; ?></b></td>
              <td><?php echo $order['date_added']; ?></td>
            </tr>
            <?php if ($order['invoice_id']) { ?>
            <tr>
              <td><b><?php echo $text_invoice_id; ?></b></td>
              <td><?php echo $order['invoice_id']; ?></td>
            </tr>
            <?php } ?>
            <tr>
              <td><b><?php echo $text_order_id; ?></b></td>
              <td><?php echo $order['order_id']; ?></td>
            </tr>
          </table></td>

Добавление после вывода номера заказа кода <br/><?php echo $order['payment_method']; ?> ни к чему не приводит.

 

Вопрос заключается в том, как "способ оплаты" (2), который есть на вкладке "детали заказа" вывести в "счет-фактуру" заказа, для начала - хоть куда нибудь, хоть в шапку "счет-фактуры"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какая "печатная форма заказа"?

заказы :: отметил заказ -> нажал "показать счет" - справа вверху есть инфа

Дата добавления: 08.09.2014
№ заказа: 55
Способ оплаты: Оплата при доставке
Способ доставки: Бесплатная доставка
всё.

в total`ах никогда не было и не будет данных о способе оплаты.

это другая опера. другие данные.

 

Напишите, в каком файле какой код выводит Вам такое "право вверху"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо, мальчики и девочки, "научным методом" мне удалось сделать самостоятельно то, что  мне хотелось получить. Сделал я это следующим образом (пользуйтесь, если у кого есть подобная необходимость):

 

1) В файле admin\controller\sale\order.php ищем конструкцию 

                $this->data['orders'][] = array(
                    'order_id'               => $order_id,
                    'invoice_id'           => $invoice_id,
                    'date_added'           => date($this->language->get('date_format_short'), strtotime($order_info['date_added'])),
                    'store_name'           => $order_info['store_name'],
                    'store_url'            => rtrim($order_info['store_url'], '/'),
                    'address'              => nl2br($this->config->get('config_address')),
                    'telephone'            => $this->config->get('config_telephone'),
                    'fax'                  => $this->config->get('config_fax'),
                    'email'                => $this->config->get('config_email'),
                    'shipping_address'     => $shipping_address,
                    'payment_address'      => $payment_address,
                    'customer_email'       => $order_info['email'],
                    'ip'                   => $order_info['ip'],
                    'customer_telephone'=> $order_info['telephone'],
                    'comment'             => $order_info['comment'],
                    'product'              => $product_data,
                    'total'                => $total_data

у меня этот код начинается с 1211 строки. Добавляем после 'payment_address'      => $payment_address, код 'payment_method'      => $order_info['payment_method'],

 

2) В файле admin\view\template\sale\order_invoice.tpl ищем, где выводится Total заказа: (у меня это начинается с 80 строки):

    <?php foreach ($order['total'] as $total) { ?>
    <tr>
      <td align="right" colspan="4"><b><?php echo $total['title']; ?></b></td>
      <td align="right"><?php echo $total['text']; ?></td>
    </tr>
    <?php } ?>

и добавляем после него

    <?php foreach ($orders as $order) { ?>
    <tr>
      <td align="right" colspan="4"><b>Спосб оплаты:</b></td>
      <td align="right"><?php echo $order['payment_method']; ?></td>
    </tr>
    <?php } ?>

и вуаля!

post-687857-0-12116500-1413487158_thumb.png

 

Правда, такой способ работает, если нажимать кнопку "счет фактура" из одного заказа, с которым работаешь. Если отметить несколько чекбоксов в списке заказов в админке ("Продажи" -> "заказы") и нажать кнопку "счет-фактура", то у каждого из отмеченных заказов способ доставки напечатается столько раз, сколько чекбоксов отмечено (на картинке - один из заказов при отмеченных трех чекбоксах)

post-687857-0-35283600-1413487850_thumb.png

Но, думаю, допилю эту проблему (думается, надо найти, где формируется тот самый "тотал" для каждого заказа, который выводится кодом

    <?php foreach ($order['total'] as $total) { ?>
    <tr>
      <td align="right" colspan="4"><b><?php echo $total['title']; ?></b></td>
      <td align="right"><?php echo $total['text']; ?></td>
    </tr>
    <?php } ?>

и добавить туда вывод способа оплаты)

 

 

И, конечно, чтобы было совсем честно, надо вместо <b>Способ оплаты:</b> написать все правильно, типа <?php echo $text_payment_method; ?>, но в мои планы на данном этапе этого не требуется. Теперь только заменить "оплата при доставке" на "оплату наличными" (это я знаю как сделать) и разобраться, почему стал таким широким крайний правый столбец, но это мелочи.

 

Интересует теперь, имеет ли "право" на существование такой способ реализации, учитывая "научный метод" поиска решения?

Изменено пользователем Godzilla

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"показать счет" из списка заказов - тот же самый "счет-фактура" из самого заказа.

>> Напишите, в каком файле какой код выводит Вам такое "право вверху"

родной код движка, файл admin/controller/sale/order.php

если у вас эта информация не выводится - либо шаблон "счета" изменен, либо шаблон и остальные связанные файлы.

в admin/view/template/sale/order_invoice.tpl есть такой код

      <td align="right" valign="top"><table>
          <tr>
            <td><b><?php echo $text_date_added; ?></b></td>
            <td><?php echo $order['date_added']; ?></td>
          </tr>
          <?php if ($order['invoice_no']) { ?>
          <tr>
            <td><b><?php echo $text_invoice_no; ?></b></td>
            <td><?php echo $order['invoice_no']; ?></td>
          </tr>
          <?php } ?>
          <tr>
            <td><b><?php echo $text_order_id; ?></b></td>
            <td><?php echo $order['order_id']; ?></td>
          </tr>
          <tr>
            <td><b><?php echo $text_payment_method; ?></b></td>
            <td><?php echo $order['payment_method']; ?></td>
          </tr>
          <?php if ($order['shipping_method']) { ?>
          <tr>
            <td><b><?php echo $text_shipping_method; ?></b></td>
            <td><?php echo $order['shipping_method']; ?></td>
          </tr>
          <?php } ?>
        </table></td>
сравните свои файлы с оригинальными из чистого дистрибутива вашей версии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

attachicon.gif5.png

где "способ доставки" (1) присутствует. Никаких способов оплаты и доставки "справа вверху" нету. "Право вверху" выводится в том же 

вообще-то у вас "способ доставки" (1) - это выводится стоимость доставки, а не способ доставки.. будет выбран не самовывоз - то там будет ставиться стоимость...

 

найдите у вас 

<td align="right" valign="top"><table>
            <tr>
              <td><b><?php echo $text_date_added; ?></b></td>
              <td><?php echo $order['date_added']; ?></td>
            </tr>
            <?php if ($order['invoice_id']) { ?>
            <tr>
              <td><b><?php echo $text_invoice_id; ?></b></td>
              <td><?php echo $order['invoice_id']; ?></td>
            </tr>
            <?php } ?>
            <tr>
              <td><b><?php echo $text_order_id; ?></b></td>
              <td><?php echo $order['order_id']; ?></td>
            </tr>
          </table></td>

и замените на:

<td align="right" valign="top"><table>
            <tr>
              <td><b><?php echo $text_date_added; ?></b></td>
              <td><?php echo $order['date_added']; ?></td>
            </tr>
            <?php if ($order['invoice_id']) { ?>
            <tr>
              <td><b><?php echo $text_invoice_id; ?></b></td>
              <td><?php echo $order['invoice_id']; ?></td>
            </tr>
            <?php } ?>
<tr>
<td><b><?php echo $text_order_id; ?></b></td>
<td><?php echo $order['order_id']; ?></td>
</tr>
           <tr>
<td><b><?php echo $text_payment_method; ?></b></td>
<td><?php echo $order['payment_method']; ?></td>
</tr>
<?php if ($order['shipping_method']) { ?>
<tr>
<td><b><?php echo $text_shipping_method; ?></b></td>
<td><?php echo $order['shipping_method']; ?></td>
</tr>
<?php } ?>
          </table></td>

и будет вам счастье!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
сравните свои файлы с оригинальными из чистого дистрибутива вашей версии.

 

 

У меня нет такого кода

<tr>
<td><b><?php echo $text_payment_method; ?></b></td>
<td><?php echo $order['payment_method']; ?></td>
</tr>

Тем не менее, его добавление ни к чему не превело, пока я не прописал 'payment_method'      => $order_info['payment_method'], в файле admin\controller\sale\order.php

 

Вобщем, сейчас я получил что хотел - после добавления строки 'payment_method'      => $order_info['payment_method'] наконец-то добавленный код  <?php echo $order['payment_method']; ?> в файле admin/controller/sale/order.php начал выдавать не "пустое место" а именно способ оплаты. Пока я поставил вывод этого дела после "Итого" по зкакзу, но окончательное мето вывода определиться после общения с менеджером - куда ему удобнее смотреть будет в заказ. А сейчас это выглядит так (в файле admin\view\template\sale\order_invoice.tpl):

    <?php foreach ($order['total'] as $total) { ?>
    <tr>
      <td align="right" colspan="4"><b><?php echo $total['title']; ?></b></td>
      <td align="right"><?php echo $total['text']; ?></td>
    </tr>
    <?php } ?>
    <tr>
        <td align="right" colspan="5"><b>Способ оплаты: </b><?php echo $order['payment_method']; ?></td>
    </tr>

И выводит мне то, что надо.

 

вообще-то у вас "способ доставки" (1) - это выводится стоимость доставки, а не способ доставки.. будет выбран не самовывоз - то там будет ставиться стоимость...

 

Способ доставки - это способ доставки, в моем магазине их только два - самовывоз или доставка курьером. В обоих случаях способ оплаты описанной выше конструкцией выводится.

 

Я думаю, тема закрыта, вопрос решен. Остальные "красивости" касаемо вывода способа оплаты в форме заказа "допилю" самостоятельно. Всем спасибо за советы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я думаю, тема закрыта, вопрос решен. Остальные "красивости" касаемо вывода способа оплаты в форме заказа "допилю" самостоятельно. Всем спасибо за советы.

вам предлагали не красивости, а правильности!

во первых: криво делаете одно - ломается потом другое!

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

посмотрите на другие модули и увидите как правильно делаются документы (счета) для магазина,

например: 

https://opencartforum.com/files/file/1868-soforp-товарный-чек/

https://opencartforum.com/files/file/1635-счет-фактура-на-e-mail/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здесь спрашивалось исключительно о том, как в впечатную форму заказа вывести способ оплаты. Какие документы какой "силой" обладают я и без подобного комментария знаю. Ссылки, приведенные Вами, мне не подходят по ряду причин. А делать выводы о магазине по документам, которые магазин предоставляет, мягко говоря, глупо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От W1ndRunn3r
      Доброе время суток. Подскажите пожалуйста, в чем может быть причина:
      Установил модуль оплаты PayBox, но он не выводится в списке оплаты

    • От hardcore1994
      Всем доброго дня. Столкнулся с такой проблемой. Создал свой способ оплаты (клонировал оплата при получении) и переименовал его в оплату на карту приватбанка. Всё нормально добавилось, в модуле симпл регистрация и оформление заказа всё нормально отображается, но при оформление заказа при выборе именно этого способа оплаты - заказ приходит в админку в ошибочные заказы, на почту и в обычные заказы уведомления не приходят.
      Я так понимаю, проблема именно со способом оплаты, но в чем именно причина не могу понять.
      Буду благодарен за любую помощь. Заранее спасибо.
    • От notografik
      Народ нужно просто отобразить способ оплаты в форме заказа.
      Я так понял нужно подправить total_data.tpl или контролер checkout.php
      Как синхронизировать нажатую галочку способом оплаты с её выводом в форме.
       
      Было:
      <?php foreach($totals as $total) { ?>
      <tr>
          <td colspan="5" class="price"><b><?php echo $total['title']; ?>:</b></td>
          <td class="total"><?php echo $total['text']; ?></td>
      </tr>
      <?php } ?>
       
      ВСТАВЛЕННО
       
      <tr>
      <td align="right" colspan="6"><b>Способ оплаты: </b><?php echo $payment_method; ?></td>
      </tr>
       
      Выдаёт ошибку я так понимаю <?php echo $payment_method; ?> не верное решение.
       
      Идеальное решение поместить способ оплаты под способом доставки, но так как я не силён пока в этом коде нужна помощь специалистов

    • От msk966
      Добрый день. Как нибудь можно изменить текст "Оплата при получении"? Например на "оплата при получении (+5 дней)". 
      Заранее спасибо за Ваши ответы

    • От sayweb
      Необходимо осуществить привязку способов оплаты в зависимости от адреса доставки, по умолчанию стоит привязка способа оплаты от адреса указанного в Личных Данных клиента(платежные данные). Кто сталкивался с подобной задачей? Прошу помощи!
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.