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

[Поддержка] QR-код на странице товара (бесплатно, vqmod)


RGB

Recommended Posts

QR-код на странице товара (бесплатно, vqmod)


QR-код на странице товара (бесплатно, vqmod)


Что это и зачем это нужно

Простое решение для вывода на каждой странице товаров из вашего магазина компактного блока с qr-кодом, содержащим сокращенную ссылку на эту страницу. Для чего это нужно - покупатель может распечатать страницу и никогда не потеряет ее адрес, ведь он закодирован в qr-коде. Также покупатель может выбрать интересующие его модели и не запоминать их полные названия или адреса, а просто отсканировать их всех смартфоном и пойти к вам в офис выбрать лучшее решение. А для владельца магазина это легкий способ дать адрес страницы на флаере или буклете, чтобы не мучать покупателей запоминанием полного адреса страниц. Кроме того, это своеобразный элемент "продвинутости" магазина, поскольку qr-коды все более интенсивно используются, и пока еще это сравнительно редкое явление в интернет-магазинах.

Как устанавливать

Можно легко обойтись без vqmod, поскольку достаточно вставить в нужное место (по умолчанию в начале блока <div class="description">) этот блок кода в файла product.tpl:

<img style="float: right;" src="http://chart.apis.google.com/chart?chs=60x60&cht=qr&chld=M|0&chl=<?php function get_bitly_short_url($url,$login,$appkey,$format='txt') {$connectURL = 'http://api.bit.ly/v3/shorten?login='.$login.'&apiKey='.$appkey.'&uri='.urlencode($url).'&format='.$format;return curl_get_result($connectURL);}function curl_get_result($url) {$ch = curl_init();$timeout = 5;curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);$data = curl_exec($ch);curl_close($ch);return $data;}$src_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];$short_url = get_bitly_short_url($src_url,'BITLY_LOGIN','BITLY_API_KEY');echo $short_url; ?>" alt="<?php echo $heading_title; ?> QR Code">

Но есть один нюанс - для работы дополнения (для использования сервиса сокращения ссылок bit.ly) нужно иметь логин и код Bit.ly API, которые и нужно вставить вместо BITLY_LOGIN и BITLY_API_KEY соответственно (можно обойтись и без него, но тогда ваши qr-коды будут очень большими, чем это плохо - ответ в теме.).

Чтобы получить код Bit.ly API:

1) Зарегистрироваться на сайте bit.ly

2) Перейти в меню профиля в пункт Settings.

3) В нижней части страницы нажать Show legacy API Key

4) Скопировать поля Login и API Key в соответствующие места в коде дополнения (BITLY_LOGIN и BITLY_API_KEY)

В отличии от сокращения ссылок на основе Google API, здесь все должно работать даже при отключенном Seo URL.

Протестировано на стандартных версиях 1.5.1.3, 1.5.2.1, 1.5.4.1, должно работать и на более старых/новых.

Особенности использования

Зачем сокращать ссылку - ответ в теме.

В куске строки

http://chart.apis.google.com/chart?chs=60x60&cht=qr&chld=M|0

можно указать не только размер блока с кодом, но и уровень коррекции при ошибках распознавания (чем он выше, тем больше шансов, что код прочитается даже в плохих условиях), по умолчанию он равен L (низкий), я использую M (средний), поскольку кодируется компактная сокращенная ссылка и можно без усилий увеличить читабельность кода.

Еще один важный момент - после уровня коррекции указывается ширина рамки (у меня там 0), ее указывают не в пикселях, а в строках, поэтому при изменении учитывайте особенности QR-кода.


  • Автор
    RGB
  • долучення
    04.03.13
  • Категорія

 

  • +1 6
Надіслати
Поділитися на інших сайтах

Меня спрашивают, зачем усложнять простую работу с апи гугла по построению qr-кодов (как, например, в дополнении товарища mzn) и применять еще и сокращение ссылок. Объясню наглядно, допустим у нас есть магазин с таким адресом к товару:

supershop.com/Компьютеры/Программное_обеспечение/Музыкальные_редакторы/Sony_Sound_Forge

Чтобы такая страница правильно открывалась, кириллица преобразуется в свой формат, и получается такая ссылка (в нормальных браузерах, не считая ie, отображается первый, читабельный, вариант):

http://supershop.com/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D1%8B/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5/%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D1%8B/Sony_Sound_Forge

Чтобы закодировать такую длинную ссылку в QR-код, нужен большой блок, но если мы сократим эту ссылку, используя апи гугла, то получим адрес (ведущий на ту же страницу):

http://goo.gl/BX9Ny

Естественно, для кодирования такой ссылки, нам нужно гораздо меньше места. Слева - результат кодирования полной ссылки, справа - сокращенной:

MWlz+.png

Думаю разница очевидна.

  • +1 3
Надіслати
Поділитися на інших сайтах

Извиняюсь, с чем-то конфликтует:

2013-03-04 16:56:56 - PHP Notice: Undefined property: stdClass::$id in /var/www/user....../data/www/lamponoff.ru/vqmod/vqcache/vq2-catalog_view_theme_default_template_product_product.tpl on line 65

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


в файле vqmod/vqcache/vq2-catalog_view_theme_default_template_product_product.tpl строка 65:

<img style="float: right;" src="http://chart.apis.google.com/chart?chs=85x85&cht=qr&chld=M|0&chl=<?php $longUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $apiKey = '*****************'; $postData = array('longUrl' => $longUrl, 'key' => $apiKey); $jsonData = json_encode($postData); $curlObj = curl_init(); curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url'); curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curlObj, CURLOPT_HEADER, 0); curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json')); curl_setopt($curlObj, CURLOPT_POST, 1); curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData); $response = curl_exec($curlObj); $json = json_decode($response); curl_close($curlObj); $url = $json->id; echo $url; ?>" alt="<?php echo $heading_title; ?> QR Code">

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


в файле vqmod/vqcache/vq2-catalog_view_theme_default_template_product_product.tpl строка 65:

<img style="float: right;" src="http://chart.apis.google.com/chart?chs=85x85&cht=qr&chld=M|0&chl=<?php $longUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $apiKey = '*****************'; $postData = array('longUrl' => $longUrl, 'key' => $apiKey); $jsonData = json_encode($postData); $curlObj = curl_init(); curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url'); curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curlObj, CURLOPT_HEADER, 0); curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json')); curl_setopt($curlObj, CURLOPT_POST, 1); curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData); $response = curl_exec($curlObj); $json = json_decode($response); curl_close($curlObj); $url = $json->id; echo $url; ?>" alt="<?php echo $heading_title; ?> QR Code">

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

$url = $json->id;

что-то вроде

$id; 

чтобы получилось вот так:

$id; $url = $json->id;

или просто отключите запись предупреждений в логах сервера.

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

Главное чтобы у вас адрес был без символов типа "&" и т.п.

В новой версии допустимы любые адреса

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

что-то у меня на сайте при сканировании ссылки не туда ведут куда надо. Google API подключил (прописал в VQMOD)

Просканируйте у себя

http://аксессуарыдлятебя.рф/index.php?route=product/product&path=160_161&product_id=153

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


Ну так у вас ведь не используется seo-url, посмотрите первое сообщение в теме:

Также для корректной работы дополнения очень рекомендуется использовать seo-url
Надіслати
Поділитися на інших сайтах

Хорошая новость для тех, у кого нет сео_урл - скоро обновлю мод с использованием апи bit.ly вместо гугловского, тогда все должно будет работать даже в самых запущенных случаях :-)

P.S. И у кого были проблемы с Undefined property: stdClass::$id, тоже все ок станет

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

Дополнение обновлено, у кого были предупреждения про Undefined property - не забудьте обновиться и получить новый код API

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

Умел бы - прикрутил :-) Если у вас есть идеи, пишите - сразу добавлю в дополнение

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

  • 2 weeks later...

Интересно. Спасибо. У меня короткие ссылки, не вижу смысла пользоваться Bit.ly. Но не могу понять как url данной страницы вытащить? =)

<img style="float: right;" src="http://chart.apis.google.com/chart?chs=60x60&cht=qr&chld=M|0&chl=УРЛ_страицы">

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


  • 1 month later...

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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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