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

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


Recommended Posts

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

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

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/

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


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

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


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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