Делаем в VirtueMart вывод товарного чека в админке

Да, дорогие друзья, сегодня снова про ВиртуеМарт.

А добавим мы такую вещь как формирование и печать чека. Обычного товарного чека. Нафиг это надо? Ну например, чтобы печатать его и вкладывать в посылку с заказом)))

Или, когда есть торговая точка, и интернет-магазин, и у них всех одна база — та, которая в VirtueMarte. И вот продал клиенту товары, в админке быстренько оформил заказ, напечатал чек, выдал клиенту.

Ну, для тех кто еще не очень понял, niceseo как всегда заготовил парочку скриншотов.

Итак, сначала мы, как обычно, заходим в админку в список заказов, но видим у каждого заказа (о, нифига себе) новую кнопку:

И вот после клика на неё, во всплывающем окошке мы видим… ЧЕК!

Вот такая штука :) Сейчас мы её сделаем.

Во-первых открываем файлец  /administrator/components/com_virtuemart/html/order.order_list.php, в котором меняем

на

но это не всё, рано файл закрывать, еще находим

и меняем вторую строку на 

Всё, теперь сей файл можно закрыть, и открыть /administrator/components/com_virtuemart/languages/order/russian.php, в который, куда-нить в середину там добавить следующие строки:

Всё, его теперь сохраняем и тоже закрываем, ну и остался самый главный шаг.

Нужно создать файл order.order_check_bassboom.php, положить его в /administrator/components/com_virtuemart/html, и вставить в него следующий код (осторожно, ща будет много строк :) ):

На самом деле кода тут не много, и разобраться крайне легко, просто в блоге так выглядит монструозно)))

Ну, статью подготовил как обычно linur, за сим прощаюсь с вами до, наверное, завтра, т.к. тенденция пошла что уже который день пост в день выходит писать, не хочется её прерывать))) А вам на прощание пожелаю офигенных заработков с виртуемарт, ну и конечно же чтоб niceseo никогда не лагал :D

UPDATE! Для комментирующих, у которых неправильно отображается «Итого»:

Попробуйте

заменить на

Разобрались с товарным чеком?
Да, всё гуд!Не, чет не получилось

Оцените статью!

Понравилась статья? Поделиться с друзьями:
Комментариев: 82
  1. Zvmihail

    Добрый день,

    не заработало :(
    joomla 1.5, virtuemart 1.1.9

    По нажатии кнопки «Вывод чека» открывается доп. окно браузера в котором не чек, а вновь страница «список заказов».
    Сделал все как описано в статье, перепроверил все несколько раз … не работает.
    Куда копать?

    1. Аноним

      Так, для начала отладки сделайте следующее: в файл /administrator/components/com_virtuemart/html/order.order_printdetails.php удалите всё и вставьте код, который в статье дан для файла order.order_check_bassboom.php.
      Теперь при нажатии на «Вид для печати» должен открыться желаемый чек. Открылся или также внось страница с заказами?

      1. Сергей Куляев

        Странно у меня всё равно не выводит, даже если код из order.order_check_bassboom.php вставляю в order.order_printdetails.php.

        1. linur

          Значит у вас, видимо, версия VirtueMart сильно отличается и данный хак вам не подойдёт

      2. Андрей

        а для Вирумарт 2 планируется сделать что то подобное ? Популярная вещь будет !

        1. linur

          планируется) в ближайший месяц, думаю

          1. Igor

            С нетерпением ждем))

  2. Zvmihail

    Да, теперь по кнопке «вид для печати» открывается товарный чек!

    1. Аноним

      Значит всё, проблема решена? :)

  3. Zvmihail

    Криво конечно :) по кнопке «вид для печати» хотелось бы накладную, но да бог с ней, и так хорошо :) Спасибо!!

  4. rezon99

    А как ты сделал поле отправки номера отправления?

    1. Аноним

      а там легко, в рунете у какого то блоггера мануал нашел, гугл в помощь :)

  5. me

    Спасибо, огромное. Все ОК! Правда под себя немного доработал.

  6. lin

    Большое спасибо за статью , очень нужная вещь, ещё бы как-нибудь сумму прописью прикрутить((

    1. linur

      так найдите функцию нужную и прикрепите. В моем случае не было такой необходимости.

  7. Kreolka_8

    А у меня не выводит «Итого: » Возможно потому, что в заказе присутствует ещё стоимость доставки, а в товарном чеке её нет. А в последней строке » Всего наименований …» пишет 1 и сумма с учетом доставки. Может что то не доработано?

    1. linur

      Добавил UPDATE в конце статьи, попробуйте

      1. Kreolka_8

        К сожалению ничего не изменилось. Пробовала и с новым заказом, все равно «Итого:» нет. :-(

  8. Дмитрий

    Спасибо! Это во-первых. :)
    Во-вторых. Там, где вносится второе исправление в файл order.order_list.php обратите внимание на код:
    «$listObj->addCell(« http://69level.com/administrator/index.php…."

    А ведь вместо " http://69level.com" у каждого должен быть свой адрес!

    И в-третьих. У меня тоже не работает "Итого". :(((

  9. Дмитрий

    (Не полностью предыдущее сообщение ушло)
    А ведь вместо «http://69level.com» у каждого должен быть свой адрес!

    И в-третьих. У меня тоже не работает «Итого». :(((

    1. linur

      1. Изменил, спасибо
      2. Добавил UPDATE в конце статьи, попробуйте

  10. MouseSport

    Блин круто!
    Когда акты и счета фактур ждать?

    1. linur

      Когда появится необходимость сделать их на каком-либо сайте :) В принципе — то же самое, но чуть усложнено, попробуйте сами, или дайте ссылки на примеры того и другого, если действительно нужно — напишу подобный мануал

  11. Пётр

    Здравствуйте. Если делать, как написано в статье, то при нажатии на кнопку открывается новое окно с списком заказов. Если весь код из файла order.order_check_bassboom.php скопировать в order.order_printdetails.php , то чек выводится нормально, однако заказчику удобно открывать Вид для печати, и не хочется терять этот функционал. Подскажите пожалуйста, как исправить?
    Спасибо!

  12. Пётр

    Нашел! Что бы нормально открывался чек, так, как вы описали в статье, нужно поправить у вас в коде:
    $listObj->addCell(«addCell(« http://".$_SERVER['HTTP_HOST']."/administrator/index3.php?

    , в файле /administrator/components/com_virtuemart/html/order.order_list.php

    Большое спасибо за чек!

  13. Пётр

    Нашел! Что бы нормально открывался чек, так, как вы описали в статье, нужно поправить у вас в коде:
    «/administrator/index. на «/administrator/index3.
    в файле «order.order_list.php»
    Удалите пожалуйста предыдущий пост.

    Большое спасибо!

  14. Alex

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

    1. linur

      Статья обновлена, обновите код в order.order_check_bassboom.php, теперь указывается скидка (купон на скидку).

  15. Дмитрий

    Неа, ничего не изменилось. Все равно в файле order.order_list указано «»http://69level.com/images/M_» :)

    1. linur

      Спасибо, исправил) Если не сложно, прикрепите скрин с «итого» нерабочим, попробую разобраться)

      1. Роман

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

        1. linur

          Добавил строку с доставкой, обновите order.order_check_bassboom.php

      2. Роман

        Огромное спасибо за статью!

  16. Andrey561

    Подскажите, а тут учитывается стоимость доставки товара?

    1. linur

      Учитывается, и даже теперь показывается. Если нужно, обновите order.order_check_bassboom.php

  17. Игорь

    Здравствуйте, у меня оператору магазина дан доступ в админку виртумарта только с фронтенда, а оттудова кнопка печати товарного чека не работает. Не подскажите чего подправить надо?

    1. Игорь

      Уже сам сообразил.
      в ссылке в файле order.order_list.php надо подправить немного вот так
      …window.open(‘index2.php?page=…

  18. Criat

    Подскажите пожалуйста как сделать название сайта в верху страницы печати читабельным для клиентов, то есть так http://www.71рус.рф?
    прикрепил скрин к этому посту.

  19. Criat

    Подскажите пожалуйста как сделать название сайта в верху страницы печати читабельным для клиентов, то есть так http://www.71рус.рф?
    прикрепил скрин к этому посту.

    1. linur

      Найдите нужную функцию перевода из Punycode в Unicode.

      Но если у вас единичный случай, проще прям в коде заменить «» на «www.71рус.рф»

  20. Rewire-it

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

    1. linur

      запрос изменить, и добавить в таблице th и td соответствующий. Доработка не минутная, могу сделать на правах фриланса

  21. Sergkidman

    фраза «Товарный чек» «№» выводить ромбиками с вопросами, как это исправить не подскажите?

    1. linur

      Подскажу :) Найти в коде эту фразу и заменить её на переменную, которую в свою очередь прописать в языковой файл, как это сделано с фразами «Вывод чека» и т.д.
      Или просто пробуйте сохраните файл order.order_check_bassboom.php в других кодировках, если в UTF-8, то без подписи (галочка ставится такая в редакторах)

  22. Rewire-it

    Как можно показать кнопочку вывода чека только при статусе заказа «Оплачено»

  23. Kristyn

    Привет ! Спасибо большое за статью. Но у меня совсем не выводит Итого. И еще скажи пожалуйста ,как добавить еще сумму за пересылку ?

    1. Kreolka_8

      И меня эти вопросы волнуют давно. Так же совсем нет ИТОГО и хотелось бы отдельной строкой- Доставку!

      1. linur

        Доставку отдельной строкой дописал, как в обычном «виде для печати», обновите order.order_check_bassboom.php

        1. Kreolka

          Спасибо! Строка с доставкой вывелась. А вот ИТОГО в конце табл. так и нет, странно даже. Пробовала, хотя это одно и то же, скопировать вывод ИТОГО из файла order.order_printdetails.php. Почему то там все выводится.

        2. Kreolka

          И «ИТОГО» появилось! При новом заказе все появилось! Спасибо!

          1. linur

            Рад, что в итоге всё ок :) а почему только к новым заказам действительно хз.

  24. madmouzel

    подскажите а как вывести еще в чеке сумму услуг доставки?

    1. madmouzel

      f(«order_subtotal»)).» грн»?>

      вот такой код надо вставить в выводе Итого и тогда отобразиться
      и чуть ниже через вставить код вывода суммы доставки

      f(«order_shipping»))?>

      1. madmouzel

        неправильно код преобразовался в Дискусе)))
        пусть будет картинкой

  25. alex

    Все отлично
    но когда делаю в заказе скидку — оно считает итоговую сумму сразу со скидкой.
    Как сделать чтобы в чеке были видны поля «Промежуточный итог», «Скидка», и уже потом Итого?

    1. linur

      Если скидка по купону, то всё показывается. Иные случаи не рассматривал, если эти строки есть в обычном «виде для печати», то попробуйте скопировать их из order.order_printdetails.php, должно заработать

  26. dan_killerus2

    Извините пожалуйста за тривиальный вопрос. Только начинаю изучать Virtuemart. Можно ли сделать то же самое только для пользователя в корзине? Или это уже реализовано в Virtuemart 1.1.9 ? Сейчас разрабатываю самый простой магазин. Человек набрал товара в корзину, нажал «Распечатать счёт», сохранил файл, распечатал файл, отнес в магазин, оплатит и забрал товар. Заранее спасибо.

    1. linur

      Данный хак для админки, во фронтенде всё несколько по-другому, так что не подойдёт. А пользователю приходит же e-mail с номером заказа, там и номер заказа и всё что нужно, вот пусть его печатает и идёт в магазин :)

      1. dan_killerus2

        Большое спасибо за ответ, не знал о такой опции. Просто ещё не испытывал на интернет хостинге.

  27. linur

    Данный хак для админки, во фронтенде всё несколько по-другому, так что не подойдёт. А пользователю приходит же e-mail с номером заказа, там и номер заказа и всё что нужно, вот пусть его печатает и идёт в магазин :)

  28. linur

    Данный хак для админки, во фронтенде всё несколько по-другому, так что не подойдёт. А пользователю приходит же e-mail с номером заказа, там и номер заказа и всё что нужно, вот пусть его печатает и идёт в магазин :)

  29. Роман

    Спасибо

    1. linur

      Всегда рад помочь ;)

  30. Mack

    Уже пора опубликовывать хак на версию VM 2.X

  31. Дмитрий

    Привет! Сделал всё как указано в этой статье. Создал фаил order.order_check_bassboom.php. Добавил CHECK BASSBOOMы в russian.php, в
    order.order_list.php заменил строчки PHPSHOP_ORDER_LIST_TRACK на

    PHPSHOP_ORDER_LIST_CHECK_BASSBOOM, и $listObj->addCell(«»); на $listObj->addCell(«

    1. linur

      Смотрите в сторону второй правки, где listObj->addCell изменяем, в этой строке и указан путь к иконке печати, можно вообще текстовую ссылку сделать а не изображением.

      1. Дмитрий

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

        1. linur

          Рад, что в итоге всё получилось!

    2. Дмитрий

      Всё, я разобрался с одной проблемой и тут же возникла другая. Как вывести Итого и сумму?
      Менял с

      getFullValue($db->f(«order_total»), », »); ?>

      на

      getFullValue($total, », »); ?>

  32. ia

    Подскажите, чек формируется, а печать не идет. Т.е. окно как у на картинке в писании, но нет окна далее печать.

    1. linur

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

  33. Игорь

    Здравствуйте, спасибо за Ваш труд!
    Подскажите пожалуйста как сделать что бы логотип магазина был в самом верху по центру под ним url-адрес, адрес магазина тож по центру.
    пробовал менять код, ничего не получилось.
    и еще как убрать Стоимость доставки и плата за отгрузку: 0.00 руб.
    Заранее спасибо.

  34. Сергей

    Привет ! Спасибо большое за статью. Но у меня возник вопрос. Как на подобие этого можно сделать Товарную накладную и Акт выполненных работ?

  35. Владимир

    Все-равно нет ИТОГО
    И подскажите, как сделать отступ от логотипа? Товарный чек №… печатается на логотипе!

  36. Григорий

    Как в virtuemart 2 сделать такую же? В каких файлах править?

    1. linur

      до виртумарта 2 пока руки полноценно не дошли, там по другому всё( могу сделать на платной основе

      1. Евгений

        сколько будет стоить редактировать товарный чек в virtuemart 2
        +380636626297

  37. dma

    добрый день!

    а как сделать вывод Имени и Фамилии в одной строке а на следующей строке адрес в одну строку?

    как я понял что за данное дело отвечаеет часть кода :
    name) { case ‘country’: require_once(CLASSPATH.’ps_country.php’); $country = new ps_country(); $dbc = $country->get_country_by_code($dbst->f($field->name)); if( $dbc !== false ) echo $dbc->f(‘country_name’); break;
    default:
    echo $dbst->f($field->name);
    break;
    }
    ?>»

  38. Антон

    Здравствуйте! Огромное спасибо за статью, очень полезна. А для Virtuemart 2,х есть решение этой проблемы?

  39. Сергей

    Для JoomShopping есть похожее решение? На сколько я понял, здесь отсутствует возможность правки чека в случаи отсутствия какой нибудь позиции?

    1. linur

      Ток для вм1.1, править нельзя, могу если надо на коммерческой основе сделать.

  40. Мария Волкова

    Добрый день! Будет ли статья для VM2. Очееень хотелось бы!

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Для отправки сообщения выберите лишнее изображение