Pull to refresh

Приложения-магазины «Вконтакте». Откровенно и без купюр. Наша история

Reading time7 min
Views1.9K
Не так давно социальная сеть «Вконтакте» объявила о запуске собственной платёжной системы и возможности подключения к ней сторонних интернет-магазинов. Тогда это навело нас на мысль: а что если переосмыслить идею работы интернет-магазина и представить её в совершенно новом свете? Возьмём сферического коня в вакууме некий замкнутый мир (сеть «Вконтакте») и попробуем что-нибудь продать этой аудитории. Этот мир замкнут (закрыт извне, правда уже не так, как раньше), поэтому нашими инструментами будут только внутренние сервисы социальной сети.


Описание идеи

Итак, что мы имеем: есть сервис приложений — им заменяем сайт магазина, есть собственная рекламная площадка (таргетинговая реклама «Вконтакте») — ей заменяем Яндекс.Директ, баннеры и т.д., есть группы — ими заменяем блоги и форумы, есть личные сообщения — ими заменяем ICQ, e-mail и пр. В итоге у нас есть собранная в одном месте аудитория и все инструменты, чтобы из работы с этой аудиторией что-нибудь извлечь. Дополнительным плюсом является то, что продавцом теперь является не обезличенный сайт в интернет-пространстве, а вполне конкретные люди (любой посетитель «Вконтакте» видит под приложением магазина ссылки на наши настоящие, открытые профайлы, наши фотографии, заметки и т.д.) — в какой-то мере это добавляет +1 в показатель доверия к магазину.
Высказав эту идею в заметках Влада Цыплухина (invladis) о платёжной системе «Вконтакте» и получив её одобрение, мы принялись за работу. Чем это отличается от бесчисленных групп-магазинов «Вконтакте»? Во-первых, мы не идём против системы и используем сервисы «Вконтакте» только по их прямому назначению (группы — только для общения), во-вторых функционал групп является не самым удобным для магазина, тогда как в приложении можно применять все современные веб-технологии, в-третьих, мы не работаем с наличкой, принимаем только платёжную систему «Вконтакте» — это является дополнительной подстраховкой для покупателей, поскольку в отношения покупатель-продавец теперь вмешивается дополнительный регулятор, который может своевременно принять меры к недобросовестному продавцу.
Ну а теперь плюшки. В отличие от обычных интернет-магазинов, вас уже не волнует поисковый рейтинг, SEO и прочее — вам это не нужно. Разработка хорошего приложения-магазина намного проще разработки хорошего интернет-магазина — разработчикам остаётся креативить только над собственно представлением товара, их уже не заботит красота шапки сайта, заполнение колонок и подвала. В отличие от обычных интернет-магазинов, вам не нужно выцеплять вашу аудиторию, разбежавшуюся по разным уголкам сети — все и так здесь, к тому же проводят здесь большую часть времени.
Сплошные плюшки да экономия — разве может быть всё так хорошо? Да, вы правы, есть и минусы. Платёжная система «Вконтакте» ещё совсем молода, непривычна для пользователей. Несколько разрозненная, хаотичная документация затрудняет разработку. Возможность приёма оплаты рублями в приложениях была введена всего несколько дней назад (до этого в приложениях можно было расплачиваться только голосами), поэтому программная часть иногда сбоит.

Реализация идеи

Не все знают, что многие современные поставщики дают возможность работы прямо со склада — вам остаётся только создать виртуальную витрину и начать торговать. Так поступили и мы. Одной из сложностей работы с поставщиком было отсутствие удобного для экспорта/импорта каталога формата. Весь каталог представлен в виде обычной HTML-таблички, причём тип одежды, название бренда, модели, размера и цвета находятся в одном поле — нам пришлось разработать парсер, который разбирал эту строку по полочкам, при этом учитывал опечатки (например в каталоге нашего поставщика чёрный цвет обозначается и как black, и blk, и blck).
Поскольку мы с вами находимся в социальной сети ITшников, я остановлюсь немного поподробнее на работе парсера, дабы у вас не оставался привкус пиара от прочтённого топика. Большинство хабраюзеров являются более опытными программистами, чем я, так что у вас будет возможность покритиковать алгоритмы.

Парсер

Возьмём для примера обычную строку наименования из каталога и посмотрим как её можно разобрать по нужным нам параметрам.
поло жен. AWK10072 Robbins Black/Light Green M

Поступать будем следующим образом: с помощью регулярных выражений отсекаем те элементы, которые обладают достаточными характеристиками, чтобы их можно было однозначно отнести к тем или иным характеристикам (например наименование типа одежды состоит только из русских букв, пробела и точки; код поставщика может состоять только из заглавных латинских букв и цифр, общей длиной от 3-х до 9-и символов), потом в оставшейся части выделяем цвета (об этом чуть ниже) и размер, и в сухом остатке получаем наименование модели одежды.
Первым в глаза бросается наименование типа одежды/обуви — оно единственное в строке состоит исключительно из русских букв. В качестве «подпаттерна» для извлечения типа одежды будем использовать следующий шаблон: ([а-яА-Я \.]*).
Затем мы видим код поставщика (в нашем примере это AWK10072). Мы уже выяснили, что код поставщика может состоять только из латинских символов и цифр, и общей длительностью он может быть от 3-х до 9-и символов. Кстати, кода поставщика может и не быть, так что не забываем про квантификатор «ноль или одно совпадение». В итоге у нас получается такой подпаттерн: ([A-Z0-9]{3,9})?. Используя preg_match и данные паттерны, извлекаем тип одежды и код поставщика.
Теперь от первоначальной строки у нас осталось следующее:
Robbins Black/Light Green M

С цветами всё намного сложнее. Они не обладают какими-то уникальными характеристиками, по которым их можно выделить в строке. Отделить от остальных элементов их можно только полностью прочитав и сопоставив. Прикидываем логику: собираем список всех встречающихся в каталоге цветов (тяжёлая ручная работа), и, поочерёдно перебирая весь массив (подставляя очередной цвет), ищем совпадение подстроки (функция strpos()) — если находим, то запоминаем цвет и удаляем его из общей строки, после чего продолжаем поиск, пока не переберём все цвета.
Но тут возникают две проблемы: 1) некоторые цвета обозначаются словосочетаниями (например может быть цвет просто Green, а может быть Light Green — нам нужно чтобы сначала отработал именно поиск Light Green и только потом просто Green); 2) в названиях цветов встречаются опечатки, как я уже писал (Black, Blk, Blck).
Первую проблему я решал выполняя сортировку массива по длине его ключей (т.е. в процессе перебора массива сначала брались элементы с более длинным названием цвета). Вторая проблема решалась топорно: в варианты названий цвета вбивались также и варианты с опечатками.
Далее просто: используя функции нахождения подстроки и её замены (strpos() и substr()) мы извлекаем цвета и оставляем только наименование модели и размер (в нашем случае это Robbins M). Кстати, по поводу функций нахождения подстроки, могу посоветовать специальный комплект UTF-8 функций, правда комплект более чем тяжеловесен в работе — скорость парсинга снижается раз в 5.
Последний этап — извлечение размера. Он может быть представлен в буквенном формате (M, XL, S, S/XL) или в цифровом формате (38, 40/42 или 8.5, 9, 10.5). Здесь мы снова можем использовать регулярные выражения, поэтому составляем шаблон: ([XMLS,\.\/0-9]*). Всё, теперь от первоначальной строки у нас осталось только наименование модели. Таким нехитрым способом мы поделили нашу кашу на мухи и котлеты. Если у вас есть замечания по предложенному алгоритму — буду рад выслушать.

Дальше по бизнес-части идеи

Ещё один большой камешек в огород нашего поставщика — это отсутствие фотографий у значительной части товара из каталога. Такой товар мы просто не выставляем в продажу — ясно что кота в мешке никто покупать не будет.
Само подключение магазина к платёжной системе «Вконтакте» происходит относительно просто: создаём и загружаем приложение, соответствующее требованиям, предъявляемым к приложениям-магазинам; через специальный интерфейс создаём новый магазин, заполняем реквизиты, после чего отправляем заявку; вносим 10 голосов на свой баланс и отправляем приложение на модерацию.
Здесь будет большой камешек в огород ООО «В контакте»: условия заключаемого агентского договора вы сможете почитать только после того, как проверят ваш магазин; соответственно об одном очень важном факте, который непременно повлияет на вашу ценовую политику (замечание о нём есть только непосредственно в агентском договоре), вы узнаете в самый последний момент. Хуже всего то, что этот момент может свести на нет всю вашу идею. При этом рассказать, что это за момент, я не могу из-за условий конфиденциальности заключённого договора.
В итоге наше приложение-магазин выглядит вот так:



Итоги работы первых двух дней

После тестового прогона магазина мы запустили его в полноценную работу. Вся реклама магазина на данный момент была выражена в приглашении друзей в приложение, а также создании небольшой рекламной кампании на 10 голосов, возвращённых после модерации приложения. Приятный бонус: если вы в таргетинговой рекламе «вконтакте» рекламируете приложение, то ваш бюджет удваивается (соответственно мы получили рекламную кампанию на 20 голосов).
Установив ставку на рекомендуемое значение в 0.43 голоса за уникальный переход, мы получили 69 370 показов, 47 уникальных переходов, отношение переходов к показом составило 0.07%. Всего бюджета хватило буквально на 15 минут.

Ads

За два дня приложение установили 93 пользователя, из них примерно 25 анкет — фейковые. Количество уникальных просмотров в максимуме достигло 207 человек, соотношение мужчин к женщинам составило 3 к 1, средний возраст аудитории — от 16 до 24 лет.

Сатистика

Из 70 человек (общее количество установивших минус фейки) установивших приложение, 15 положили в товар корзину на общую сумму в 62 000 рублей (это за два дня). Ни одна из этих корзин на данный момент не оплачена.
Здесь есть важный момент: мы понимаем, что большая часть заказов на самом деле и не будет покупаться, что товар добавлен в корзину «любопытства ради». Но тем не менее, для нас было более важным предотвратить момент, когда два и более покупателей покупают один и тот же товар, имеющийся на складе в одном единственном экземпляре. Поэтому мы установили следующую схему: товар, добавленный в корзину, резервируется за покупателем на 3 рабочих дня (конкретная единица товара исчезает из прайса для остальных покупателей) — этого должно хватить даже на любой банковский перевод; по истечении трёх рабочих дней резервирование снимается и товар поступает обратно в продажу; при этом в корзине он остаётся как «история заказов».

Вместо резюме

На мой взгляд, главной причиной такого ступора покупателей является исключительная новизна платёжной системы (люди в большинстве своём ещё попросту не знают о ней) и непродуманный интерфейс пополнения личного баланса (вы не найдёте прямой ссылки на пополнение своего баланса в своей анкете). Пообщавшись с представителями других приложений-магазинов, я узнал, что и у них схожая статистика — на примерно 100 корзин чуть больше 10 оплаченных счетов.
Реализация платёжной системы «Вконтакте» весьма необычна — платёжная система не берёт комиссии за свои услуги (в том числе при выводе денег продавцу), уже есть возможность пополнения баланса без комиссии, плюс существует немаловажный момент, о котором я писал выше, который хорошо подстраховывает покупателей.
Сможем ли мы выиграть в этом «закрытом мире», в котором свои правила и законы реклама и платёжная система — покажет время. Будут вопросы по теме — задавайте в комментах, отвечу.

Собственно ссылка на наш магазин.

UPD: открыли статистику нашего приложения-магазина. Теперь вы можете наблюдать за Хабраэффектом в режиме онлайн. Прочие результаты Хабраэффекта: +120 корзин меньше чем за сутки, общая ценность всех корзин достигла 500 тыс. руб., оплаченных корзин — ровно ноль (по состоянию на 14:25 MSK 01/06/2010)
Tags:
Hubs:
Total votes 85: ↑51 and ↓34+17
Comments102

Articles