Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

usability

E-commerce: интересное за неделю (w45)

5 уроков по электронной коммерции - eMagnat

Поздравляя клиента правильно, повышаем свои продажи - eMagnat

4 аспекта, влияющие на комиссию в партнерских программах | Маркетинг и работа с товаром

Где располагать призывы к действию?

Почему первый экран — это миф, или где на самом деле располагать призывы к действию?
Все зависит от мотивации. Насколько высока мотивация потенциального клиента нажать на кнопку? Насколько желанно для него предложение именно тогда, когда вы просите клиента кликнуть?
Призывы к действию во втором экране обладают лучшей конверсией, и обязаны этому не самим призывам: это значит, что потенциальные клиенты были мотивированы принять предложение ПОСЛЕ того, как прочитают текст.
Оригинал на английском: Why “The Fold” Is A Myth – And Where To Actually Put Your Calls To Action

SMM

Готовая стратегия контент-маркетинга

Существует две модели ведения бизнеса в интернете. Первая модель, назовем ее традиционная, может быть описана простой формулой: «приведи покупателя на сайт и продай». По такому алгоритму действует абсолютное большинство компаний. Реальность данного метода – это ежемесячные расходы на SEO и Директ, тотальная зависимость от поисковых алгоритмов и отсутствие хоть какой-либо лояльности посетителей.
Другая модель ведения бизнеса в интернете опирается на совершенно иные принципы. Лояльность формируется до того, как человек познакомится с вашим коммерческим предложением. Вопрос «у кого купить?» перестает существовать в принципе – клиент точно знает, к кому обратиться. И это знание в корне отличает его от посетителя, которого привела обычная реклама.

Социальная коммерция: ленивым покупателям посвящается / Хабрахабр

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

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

Что-то идет не так? Многие владельцы страниц брендов отмечают, что в этом году, несмотря на рост числа подписчиков, трафик, генерируемый страницами, значительно снизился.
Источник: Is Facebook “broken on purpose” to sell promoted posts?
Traffic from fan pages drops as new option to pay for reach appears.

Другое

Онлайн-оплата "пластиком": бухгалтерские аспекты

Почему российские торговцы не любят карточки

Opencart - автопубликация отзывов

8 октября 2012 г. JohnnyVega E-commerce » Howto » OpenCart3

По умолчанию в Opencart'е включено модерирование отзывов к товарам, которые оставляют покупатели. То есть нужно зайти в панель администрирования, далее в "Каталог-Статьи", где будет список еще непроверенных отзывов. Затем заходим в каждый отзыв, и либо одобряем (включаем) его, либо не одобряем (не включаем).

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

Далее...

Opencart - тюнинг полей описания (CKeditor)

30 сентября 2012 г. JohnnyVega E-commerce » Howto » OpenCart21

В Opencart для описаний товара, категории, статей и т.д. используются поля описания. Такие, как на рисунке ниже.

CKEditor custom toolbar

Технически это реализовано с помощью компонента CKEditor - свободного WYSIWYG-редактора, который может быть использован на веб-страницах. В поле описания отображается описание продукта, категории, статьи и т.д. в том виде, который вы увидите в магазине. Это основное достоинство WYSIWYG-редактора.

Разработчики CKEditor заложили в своё детище гораздо больше возможностей, чем первоначально доступно в Opencart. Настало время устранить эту историческую несправедливость :)

Далее...

(oc1513)(admin) Ссылка на просмотр товара в магазине при просмотре заказа в админке

28 февраля 2012 г. Ruslan Brest E-commerce » Howto » OpenCart3

При просмотре заказа в админке ссылка на заказываемый товар ведёт на редактирование товара. Мне показалось гораздо более удобным иметь здесь прямую ссылку на страницу товара в магазине.

В некоторых магазинах менеджер-продажник всё равно не имеет прав на редактирование товаров.

Есть здесь один момент: у нас ВСЕ товары имеют SEO Keyword, поэтому не делались никакие проверки. Гораздо более универсальным и более простым решением будет использовать ссылку HTTP_CATALOG . 'index.php?route=product/product&product_id=' . $product['product_id'].

В таком случае указанный код надо подставить в контроллере на место 'href_catalog', а запрос к базе в модели вообще не модифицировать.

commit da02db89ca4be51a282cb49cd58a3160cc4bf747
Author: Ruslan Brest <rb@labtodo.com>
Date:   Tue Feb 28 02:37:40 2012 +0200
    [+] backend: view order - link to frontend (product page)
diff --git a/upload/admin/controller/sale/order.php b/upload/admin/controller/sale/order.php
index 871c36f..029ba41 100644
--- a/upload/admin/controller/sale/order.php
+++ b/upload/admin/controller/sale/order.php
@@ -1327,7 +1327,8 @@ class ControllerSaleOrder extends Controller {
 					'quantity'		   => $product['quantity'],
 					'price'    		   => $this->currency->format($product['price'], $order_info['currency_code'], $order_info['currency_value']),
 					'total'    		   => $this->currency->format($product['total'], $order_info['currency_code'], $order_info['currency_value']),
-					'href'     		   => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $product['product_id'], 'SSL')
+					'href'     		   => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $product['product_id'], 'SSL'),
+					'href_catalog'     => HTTP_CATALOG . $product['keyword']
 				);
 			}
 
diff --git a/upload/admin/model/sale/order.php b/upload/admin/model/sale/order.php
index b580167..c702009 100644
--- a/upload/admin/model/sale/order.php
+++ b/upload/admin/model/sale/order.php
@@ -365,7 +365,8 @@ class ModelSaleOrder extends Model {
 	}
 
 	public function getOrderProducts($order_id) {
-		$query = $this->db->query("SELECT op.*,p.sku FROM " . DB_PREFIX . "order_product op LEFT JOIN ".DB_PREFIX."product p ON (op.product_id = p.product_id)  WHERE order_id = '" . (int)$order_id . "'");
+		//$query = $this->db->query("SELECT op.*,p.sku FROM " . DB_PREFIX . "order_product op LEFT JOIN ".DB_PREFIX."product p ON (op.product_id = p.product_id)  WHERE order_id = '" . (int)$order_id . "'");
+		$query = $this->db->query("SELECT op.*,p.sku,ua.* FROM " . DB_PREFIX . "order_product op LEFT JOIN ".DB_PREFIX."product p ON (op.product_id = p.product_id) LEFT JOIN ".DB_PREFIX."url_alias ua ON CONCAT('product_id=', op.product_id) = ua.query WHERE order_id = '" . (int)$order_id . "'");
 
 		return $query->rows;
 	}
diff --git a/upload/admin/view/image/url-icon.gif b/upload/admin/view/image/url-icon.gif
new file mode 100644
index 0000000..8165dc9
Binary files /dev/null and b/upload/admin/view/image/url-icon.gif differ
diff --git a/upload/admin/view/template/sale/order_info.tpl b/upload/admin/view/template/sale/order_info.tpl
index 673b599..55be799 100644
--- a/upload/admin/view/template/sale/order_info.tpl
+++ b/upload/admin/view/template/sale/order_info.tpl
@@ -269,6 +269,7 @@
               <td class="left"><?php echo $product['sku']; ?></td>
               <td class="left"><?php if ($product['product_id']) { ?>
                 <a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>
+                <a href="<?php echo $product['href_catalog']; ?>" target="_blank"><img src="view/image/url-icon.gif" width="13" height="13" /></a>
                 <?php } else { ?>
                 <?php echo $product['name']; ?>
                 <?php } ?>

Opencart 1.5.x: удобный вид email-уведомлений админу о заказе

24 февраля 2012 г. Ruslan Brest Howto » OpenCart87

Формируемое в Опенкарт v1.5.x письмо-уведомление для администрации магазина о новом заказе выглядит криво-косо и неудобно для обработки поступивших заказов: не хватает информации о покупателе, а та информация, что есть, сложна для восприятия.

Можно сделать удобнее.

Формирование и отсылка писем происходит в файле catalog/model/checkout/order.php

Тексты частей писем находятся в папке catalog/language/russian/mail -- из содержащихся там фраз формируются письма.

Далее...

Opencart 1.5.1.3 (admin): пара мелких улучшений Admin Dashboard

10 января 2012 г. Ruslan Brest Howto » OpenCart7

Сегодня пара мелких, но полезных визуальных улучшений админки:

  • Выделение цветом разрешенных элементов в списках расширений (Дополнения / доставка, оплата и т.п.);
  • Dashboard - выделение красным пунктов, ожидающих модерации;
  • подсветка строки под курсором в таблицах (hover) (кажется было раньше, здесь для 1.5.1.3 уже за компанию попалось под руку)
  • Вспомните, как вы пропускали новые комментарии и ожидающих активации партнеров, а также с трудом пытались сориентироваться на большом экране, какой же модуль разрешён, а какой запрещён...

    Вспомнили? Тогда информация будет вам полезна:

    Далее...

    Не хватает сбора-подсчета спамерских IP в MaxSite CMS

    8 декабря 2011 г. Ruslan Brest MaxSite CMSОбсудить

    При модерируемых комменатриях от анонимов иногда возникают наплывы спам-ботов, которые мешают.

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

    Но вот просто удалять спамерские комментарии мне не хочется. Шаблон у меня такой: если это разовое - то удалю и забуду, пусть тешатся, а если где-то бот поселился - хотелось бы подождать и убедиться, что это регулярное явление и забанить IP. Из-за одного спам-комментария банить весь IP как-то чересчур. Но сейчас приходится заниматься этим вручную.

    Пригодился бы подсчёт количества удаленных спам-комменатриев с определенного IP. Чтобы я мог удалять их сразу (десяток в день удалить несложно и руками), но информация об их авторстве не пропадала впустую.

    И через отметку галочек удалять или разрешать комментарии тоже очень не нравится: я обычно разрешаю 1-2 комментария. А для этого надо их отметить, промотать список до конца (спамеров гораздо больше успевает накопиться) и там не ошибиться с кнопкой (потому что пока проматываешь, иногда забывается - это я сейчас разрешить полезные хотел и их отметил? Или запретить/удалить бесполезное?).

    Мне гораздо больше подошл бы вариант с парой ссылок возле комментария: разрешить, запретить, удалить.

    Opencart 1.5.1: возможность регулировать точность и количество десятичных знаков при выводе веса и размеров

    4 декабря 2011 г. Ruslan Brest Howto » OpenCartОбсудить

    Добавлена возможность настройки точности чисел при выводе веса и размеров (количество знаков после зяпятой). Регулируется парой цифр в языковых файлах - там же, где и десятичные разделители и разделители тысяч (точка, запятая, пробел, апостроф и т.п. - кому что нравится).

    Далее...

    (Не?)Эффективность стандартной формы заказа Opencart 1.5.1

    Магазин молодой, так что цифры соответствующие. В люди вышел в сентябре (может ближе к концу - в 20 числах; точно не помню). Посещаемость небольшая, но мы над этим работаем и она понемногу стабильно растёт. Заказов было немного, и во многом это заслуга монстрообразной формы оформления заказа. А не только малой посещаемости.

    Недавно я поставил укороченную форму оформления заказа (на выходных) и поэтому решил сохранить предыдущую историю как иллюстрацию и чтобы иметь возможность визуально убедиться во влиянии этого шага оформления покупки. На картинках - данные до её установки.

    Далее...

    Opencart 1.5.1.x: Упрощённое оформление заказа на одной странице (Quickcheckout one-page simple checkout)

    15 ноября 2011 г. Ruslan Brest E-commerce » OpenCart303

    Сделал вот такую укороченную форму заказа (скриншоты ниже). Упрощённое гостевое оформление заказа на одной странице.

    Преимущества (они же и недостатки):

    • Предельно компактно и быстро, не утомляет покупателя. По статистике на каждом лишнем шаге при оформлении заказа сходят с дистанции 20% покупателей;
    • Всё на виду и получилось весьма удобно и наглядно;
    • Предполагается оплата исключительно методом "Cash on delivery" (оплата наличными по факту доставки). Всё остальное решается по телефону и комментариями;
    • В админке нет никаких настроек (это касаемо предыдущего пункта; используется только cash-on-delivery способ, и он указан в коде и должен быть разрешен).
    • Нет никакого учёта всего, что связано с адресом и гео-информацией (включая налоги, так как они зависят от адреса)

    Модуль совместим только с версиями 1.5.1.*. Под более новые адаптировать не планирую, т.к. альтернатив уже существует большое количество и можно взять готовое решение. Создавать ещё одно решение будет также стоить денег, причины постарался описать в отдельной статье (см. также в конце, в списке связанных статей). Есть версия под Opencart 1.4.9.x (ocStore 0.2.2 / 0.2.0). Ниже описаны недостатки и возможности.

    Купить

    Оплата вручную:
    Webmoney кошельки: Z385421512525, R304747241741 U415109965360 E180553785592


    Оплата карточкой или Paypal:

    Version
    Email for sending .ZIP-file:
    1. Удобнее всего купить модуль быстрого оформления заказа на Opencart.com. Там архив сразу доступен для скачивания и не надо ждать, пока я его отправлю. Также проще будет забирать обновления в любой удобный момент - вы будете получать уведомления от сервиса по email;
    2. Вручную за 10WMZ, или по курсу в WMR или WMU. Или 10$ через Paypal (там же принимаются банковские карты). В комментариях к платежу укажите свой email, на который надо выслать ZIP архив с модулем.

    Вручную я высылаю архив сразу после того, как узнаю о платеже. Обычно это занимает не более суток. Чаще гораздо меньше, но случаи разные бывают и иногда я могу быть недоступен. Webmoney не присылает мне никаких уведомлений на email (единственный из сервисов, кстати), поэтому о платеже там лучше написать дополнительно на email или через форму обратной связи в блоге. Иначе узнать о платеже там я могу лишь по чистой случайности.

    Поэтому рекомендую довериться автоматике на Opencart.com. Там немного дороже, но покупка удобнее для последующих обновлений. И может оказаться быстрее, чем с моим участием.

    Если покупаете на Опенкарт.ком, посмотрите на пару способов доставки с текстом и ссылками вместо цены — они удобны для курьерских служб.

    Возможности и ограничения

    Версия Quickcheckout для Opencart 1.5.1 поставляется в 2 версиях:

    • более старая (QC) не имеет выбора способов оплаты (покупателю надо выбрать только доставку), но может быть гораздо удобней тем магазинам, которые торгуют локально по городу и доставляют товары по стране, используя единственный способ оплаты - из рук в руки;
      • Этот вариант не заменяет никакие файлы Opencart;
    • QCPM (с поддержкой способов оплаты, payment methods) существует для версии Опенкарт 1.5.1.3.
      • этот вариант заменяет часть стандартных файлов - более подробная информация в README в соответствующей папке. Присылайте неизвестные мне модули или содержимое этой папки (tpl файлы) - я их модифицирую для QC/PM и включу tpl в архив

    Admin: Дополнения / Доставка:

    Будут использоваться только те модули, в которых установлена географическая зона ВСЕ РЕГИОНЫ. Это связано с тем, что из модуля полностью убрано всё, что связано с географической информацией.

    Внимание: модуль "Доставка в зависимости от веса" не будет работать -- у него отсутствуют настройки для всех регионов.
    Если вы используете вес товаров - включите вместо него способ "Доставка по городу Citylink".
    Если вес не нужен - попробуйте "Фиксированную стоимость доставки" или другой подходящий способ.

    Если пользователь зарегистрирован и предварительно залогинился, его данные подставятся в форму (имя, email, телефон) и заказ будет связан с этим покупателем. Планируется добавить возможность быстрой регистрации, но сроки неизвестны.

    Поддерживаются Shoppica и Spicylicious темы оформления - для них в архиве есть отдельные папки. По вопросам поддержки других специфических тем оформления, на которых форма заказа выглядит плохо - обращайтесь.

    Демо: http://rb.labtodo.com/shop/test-demo

    В версии Quickcheckout для Opencart 1.4.9.x (ocStore 0.2.2 / 0.2.0) есть и оплата, и доставка, но не проверялась работа с зарегистрированными пользователями - было сделано только гостевое оформление. Эта версия заменяет стандартные файлы опенкарт, поэтому если используется другая тема оформления -будьте аккуратны при установке и сделайте предварительно резервные копии ваших файлов.

    Демо: http://ocs020.labtodo.com/

    Далее...