На чем написан wildberries

Основательница Wildberries рассказала, как придумала название компании

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

Фото © ТАСС / Виктория Виатрис

История развития российской торговой площадки Wildberries — это снежный ком, на пути которого были кризисы и сложности. О компании, сотрудниках, проектах рассказала её руководитель и основатель Татьяна Бакальчук в интервью телеканалу «360».

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

«Кризис 2013 года, когда у нас сильно вырос кассовый разрыв. Наступил момент, когда нужно было рассчитываться с поставщиками — то есть и они оказались в тяжёлой ситуации, потому что им нужно было по своей цепочке тоже покрывать разницу, и мы. Безвыходная ситуация, нужно было что-то новое придумывать. Мне кажется, что в тот момент бизнес под угрозой был. Мы долго думали и смогли найти решение. Нам пришлось полностью перестроиться, на 180° развернуться. И это был очень хороший шаг — он помог дальше развиваться», — рассказала Бакальчук.

Источник

Как продвигать товары в топ на Wildberries

На чем написан wildberries. Смотреть фото На чем написан wildberries. Смотреть картинку На чем написан wildberries. Картинка про На чем написан wildberries. Фото На чем написан wildberries

Сооснователь и совладелец Digit Trading

Компания Digit Trading выпускает одежду и обувь под брендами Moon River и Moonsky. Несколько лет назад она полностью перешла на цифровую торговлю. Сейчас сотрудничает с несколькими маркетплейсами. Среди них лидирующее положение занимает Wildberries. В 2020 году объем продаж на нем составил 108 млн рублей.

Как увеличить продажи на популярном маркетплейсе, рассказал сооснователь и совладелец Digit Trading Данил Концевой.

Содержание:

На чем написан wildberries. Смотреть фото На чем написан wildberries. Смотреть картинку На чем написан wildberries. Картинка про На чем написан wildberries. Фото На чем написан wildberries

Что влияет на продажи товара на Wildberries

До этого года успешная стратегия торговли на маркетплейсе заключалась в очень широком предложении. Приходилось, условно говоря, поставить 100 артикулов разных футболок в 10 разных цветах на каждый артикул, чтобы получить хороший оборот. Чем больше у компании имелось так называемых «карточек» (фотографии и описание товаров), тем выше была вероятность того, что ее продукцию выберет потребитель.

Мы тоже, как и все, заходили не «глубоко» (с количеством на артикул-цвет 50-300 штук), и «широко» (большим ассортиментом). Сначала это давало хорошие результаты, но потом наступил переломный момент.

За прошлый год на Wildberries появилось очень много поставщиков, и количество продукции так сильно увеличилось, что выбор стал слишком большим. В итоге твоя белая футболка стала быстро теряться среди тысячи аналогичных предложений.

Выход один — усиливать те позиции, которые лучше продаются, следить, чтобы в первую очередь именно для этих товаров были все цвета и размеры. Понять, на что делать ставку, не сложно: благодаря прозрачности Wildberries, мы видим рейтинг каждой вещи и сколько раз ее купили.

Даже с одной карточки можно продавать на миллионы рублей в месяц, но для этого необходима постоянная подсортировка. Здесь огромное преимущество имеют компании с производственными мощностями, расположенными в России, которые могут быстро выпустить то, что хорошо реализуется. Они делают 100 футболок с разными принтами и, видя результат по каждой позиции, сразу шьют самые продаваемые модели.

На чем написан wildberries. Смотреть фото На чем написан wildberries. Смотреть картинку На чем написан wildberries. Картинка про На чем написан wildberries. Фото На чем написан wildberries

Что влияет на позицию товара в поиске и разделах

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

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

Очень важно, чтобы товар был всегда в наличии. Мы убедились в этом на собственном примере. Однажды в пик весеннего сезона после резкого взлета темпы по продажам кед стали резко снижаться, несмотря на то, что на складе оставалось 25% от загрузки.

Дело в том, что алгоритм Wildberries понимает: с таким высоким темпом продаж товар скоро закончится и понижает такую карточку в выдаче. Особенно это касается позиций с хорошими продажами. В случае, если запасов мало, карточку опустят вниз, чтобы временно притормозить просмотры и заказы, сохранив ее «живой». Таким образом стимулируя поставщика пополнить остатки данного артикула.

Какие есть инструменты для продвижения товаров на Wildberries

Мы пользуемся трафиком, который уже есть на Wildberries, а также направляем на маркетплейс клиентский поток со своего Instagram и сайта. Для того, чтобы на товар обратили внимание, очень важны фотографии. На съемке не стоит экономить, и нужно всегда добиваться того, чтобы товар выглядел идеально, но без сильного приукрашивания реальности.

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

Улучшение CTR главной фотографии карточки товара

На первое фото можно добавить какие-то цепляющие глаз элементы. Например, цветы, если продаете платье, или мяч на изображении спортивной обуви. Также можно написать на снимке: «Хит продаж».

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

Очень хорошо, если на фоне будут не просто серые или белые цвет, а какой-то интересный интерьер. Но, повторю, даже если у вас самые классные фотографии, но отсутствуют какие-то размеры товара, то ничего не сработает.

Поднятие конверсии карточки товара

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

То же касается обуви: добавьте последним фото в карточке товара картинку с силуэтом изделия, длиной стопы/стельки и размером. Тогда ваш потенциальный покупатель сможет все заказать правильно. Это важно, потому что бывают позиции с двойными размерами: европейскими/гонконгскими и российскими. Также некоторые товары маломерят, а другие — большемерят.

На чем написан wildberries. Смотреть фото На чем написан wildberries. Смотреть картинку На чем написан wildberries. Картинка про На чем написан wildberries. Фото На чем написан wildberries

Улучшение выкупа

Самое важное и для компании, и для маркетплейса — не заказы, а выкуп. Мы считаем, что хороший показатель для категории одежда/обувь здесь должен превышать 50%. Если он ниже 30%, есть повод задуматься.

Самый беспроигрышный товар для интернет-торговли — изделия one size. По ним процент выкупа всегда не меньше 70–80%, здесь нет рисков для клиента заказать неподходящий размер. Именно несоответствие размера является одной из главных причин возврата товара. Поэтому очень важно для каждой карточки сделать инфографику с размерами, о чем говорили выше.

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

Следите за оборачиваемостью

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

Продукцию можно полностью отгрузить на склад Wildberries (схема работы FBO) или оставить ее у себя на складе и по мере поступления заказов отправлять на маркетплейс (схема работы FBS). Для нас самым лучшим способом работы стал гибридный, когда товар хранится и на Wildberries, и у нас.

То есть мы привозим, условно, три тыс. пар кед, отгружаем 500 и говорим, что имеется еще 2,5 тыс. Маркетплейс сначала продает то, что есть у него на складе, а когда продукция заканчивается, присылает нам уведомления о том, сколько пар кед заказали. В тот же день мы отправляем машину с партиями, на которые уже есть покупатели, на склад маркетплейса. По этой схеме ниже комиссии.

Хранить все на складе Wildberries невыгодно: если продажи будут невысокими, то из-за больших остатков хранение обойдется дорого. Держать все у себя тоже неправильно, потому что это удлинит время доставки продукции покупателям.

SEO-оптимизация: наименование, характеристики товара и ключевые слова

Недавно на Wildberries появился раздел «Ключевые слова», куда можно вписать до трех определений изделия. Они помогают покупателю, который ищет товар, увидеть вашу продукцию, если она соответствует заданным критериям.

К выбору ключевых слов стоит отнестись внимательно: ведь чем правильнее вы их подберете, тем скорее попадете в нужный поиск. В подборе помогает сервис «Яндекс.Wordstat», где можно найти самые распространенные запросы.

Например, со словом «кеды» часто ищут «высокие» или «кожаные». Соответственно, будет правильно в первую очередь в качестве ключевых слов написать эти характеристики изделия. Или если ваши кеды похожи на слипоны, пропишите в ключевых словах «слипоны», и тогда ваши кеды увидит покупатель, который ищет такую продукцию.

Описание продукта на Wildberries не должно превышать 1000 знаков. Оно никак не работает в поиске товара и не влияет на позицию карточки в выдаче. Например, если вы напишете в описании «кеды на толстой подошве», то, когда покупатели будут искать «кеды на толстой подошве», они не увидят вашу продукцию. Указывать это определение нужно в разделе «ключевые слова».

На чем написан wildberries. Смотреть фото На чем написан wildberries. Смотреть картинку На чем написан wildberries. Картинка про На чем написан wildberries. Фото На чем написан wildberries

Реклама и внешний трафик

Wildberries позволяет запускать четыре вида рекламы:

Мы не размещаем рекламу на Wildberries. Был подобный опыт, но никакого эффекта не увидели. На сайте мы не продаем, но там есть кнопки, позволяющие перейти на маркетплейс и совершить покупку. Сейчас мы даем рекламу только в Instagram и оттуда направляем наш трафик на маркетплейсы для осуществления продажи.

На Wildberries есть бренд-зоны, которые компании оформляют под свой бренд. Это дает возможность покупателям, которые видят товар в поисковике, нажать на логотип бренда и попасть на страницу компании, где представлена и другая ее продукция.

Корпорациям типа Nike, Reebok это нужно (данная опция как раз на них и рассчитана), а нам пока нет. Стоит такая страницы 50 тыс. рублей или 100 тыс. рублей в месяц в зависимости от тарифа. Я не думаю, что она сильно влияет на их продажи, скорее, это имиджевая история.

На чем написан wildberries. Смотреть фото На чем написан wildberries. Смотреть картинку На чем написан wildberries. Картинка про На чем написан wildberries. Фото На чем написан wildberries

Отзывы и оценки

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

Ни в коем случае не надо заниматься самовыкупом. Каждый месяц Wildberries блокирует несколько тысяч комментариев у карточек, где компании сами приобретают свою продукцию и ставят себе высокие оценки.

С отрицательными отзывами тоже нужно работать. Жалоба (негативный отзыв) — очень хороший инструмент, который позволяет оперативно выявить производственные дефекты. Вы моментально получаете обратную связь, снимаете изделие с продажи и можете сразу выставить претензию производителю.

ABC-анализ

ABC-анализ — это способ повысить продажи компании с помощью выделения наиболее перспективных товаров, приносящих максимальную прибыль. Наша компания использует его в своей работе.

У нас есть несколько тысяч артикулов. Мы смотрим продажи за определенный период времени по каждому артикулу и ранжируем товары по этому показателю: вверху оказываются самые продаваемые, а внизу — те, на которые спроса почти нет. Также каждую неделю анализируем скорость реализации: какие артикулы и цвета уходят быстрее всего, а какие — крайне медленно.

Еще мы учитываем показатель ROI (от англ. return on investment), который позволяет видеть возврат вложенных средств на каждый артикул, то есть отследить маржу по каждой карточке.

Мне нравится правило Парето: 20% усилий приносит 80% результата. Оно применимо к торговле на Wildberries. У нас 5–10% ассортимента дает 80–90% выручки. Такие сильные позиции, которые есть у всех, являются главным капиталом компании, и именно в них нужно инвестировать в первую очередь.

Новизна товара

Если вы новый поставщик, то обязательно попадете на Wildberries в категорию «Новинки», находящуюся в первых строчках выдачи. Точно неизвестно, сколько вы там провисите — это может быть неделя, две или даже три, но шанс быть замеченным и выбранным есть у всех.

То же самое касается старых поставщиков: если у них появляется новый артикул или даже просто цвет товара, то он также попадает в новинки.

Поиск правильной категории для товаров

Категории, которые на Wildberries называют «Предметами», не оставляют никакой вариативности для продавца, то есть для каждого изделия есть свой подходящий раздел, в который мы размещаем свои карточки.

Из трех маркетплейсов, на которых представлен наш товар, самый большой объем продаж — 80% — получаем на Wildberries. В целом способ работы через маркетплейсы оказался наиболее выгодным для нас. После того, как продукция появляется на этой виртуальной витрине, она получает просмотры со стороны потенциальных покупателей и шанс обрести свою аудиторию.

Источник

Почему онлайн-продавцы помешались на WildBerries? Мануал для начинающих поставщиков

На чем написан wildberries. Смотреть фото На чем написан wildberries. Смотреть картинку На чем написан wildberries. Картинка про На чем написан wildberries. Фото На чем написан wildberries

Несмотря на периодические скандальные новости и попытки конкурентов перетянуть одеяло на себя, WildBerries остается лидером рынка по интернет-продажам. На этом маркетплейсе посетители проводят больше больше времени и просматривают большее количество страниц. Возможно поэтому площадка так привлекает поставщиков. На самом деле, это не единственная причина. Мы попросили помочь нам разобраться в некоторых вопросах Маргариту ( @margy_tonova ), которая после работы в найме решила открыть свое дело и стала продавать на WildBerries товары своего производства.

По данным cnews за первое полугодие 2021 года WildBerries увеличил оборот на 70% по сравнению с тем же периодом 2020-го. За эти полгода выполнено более чем 300 млн заказов с маркетплейса, для сравнения за весь 2020 год тот же показатель составил почти 324 млн заказов.

ТОП-товаров 2021 года и причины популярности WB на рынке

Что в 2021 году пользовалось особенной популярностью:

Кроме того, у покупателей вырос спрос на крупную бытовую технику (почти в 9 раз по сравнению с первым полугодием 2020 года), товары для взрослых, строительные материалы и садовые инструменты, а также примерно одинаково (в 2,5 раза) вырос интерес к зоотоварам, ювелирной бижутерии и товарам для автомобилей.

Рост и цифры говорят сами за себя — маркетплейс пользуется неизменным спросом покупателей.

А в чем отличие Вайлдберриз от других маркетплейсов для поставщиков?

Отметим, что в 2021 году маркетплейс расширил количество стран для экспорта, теперь в списке: США, Германия, Франция, Италия, Испания, Молдавия. Всего — 14 стран мира.

Как начать работать с маркетплейсом

А начать работу на площадке действительно не так трудно:

Маргарита комментирует, что хотя WB работает со всеми типами поставщиков — ООО, ИП и самозанятыми, но самый выгодный вариант именно ИП. У СМЗ — ограничение по сумме доходов в 2,4 млн рублей в год, к тому же продавать можно только товары собственного производства, нельзя иметь работников (при больших объемах продаж они понадобятся). У ООО очень высокие штрафы, относительно ИП.

Более 80% продавцов на Вайлдберриз — это представители малого и среднего бизнеса.

О штрафах, комиссии и продвижении на WildBerries

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

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

Также нужно внимательно следить за оформлением карточек товаров — изменение состава состава ингредиентов, цвета, размера — повод внести корректировку. Неверная информация в карточке — повод для санкций со стороны WB.

В WildBerries отмечают, что для стимулирования спроса для некоторых категорий товаров сервис значительно снижает комиссии. Например, сейчас до 1% сократили комиссию для отдельных товаров из раздела электроники.

Вообще комиссии на маркетплейсе зависят от:

Перед тем, как выводит свой товар на площадку нужно проанализировать рынок, понять в какой нише есть шанс «выстрелить», разобраться с ценовой политикой и доставкой.

Мы задали Маргарите несколько вопросов на эту тему.

Можно ли продвигаться на маркетплейсе, продавая только какой-то один товар или нужно иметь широкий ассортимент? Что делать, если товар получил плохие отзывы?

Какой процент отзывов на WB — реальные отзывы покупателей, а какой — заказные? Amazon вот ведет борьбу с заказными отзывами у себя на площадке и призывает к тому же соцсети, где размещают фейки.

Маргарита : Сложно сказать, т.к. грамотные поставщики делают отзывы очень аккуратно, их на этом не поймать, но в основном отзывы на WB от самих клиентов. Это тоже одна из причин популярности маркетплейса — наличие большого количества реальных отзывов.

Самые нелестные слухи о WB — наличие штрафов за отказ участия в принудительных акциях. Это действительно так?

Маргарита : Продавец может не участвовать в акции, но тогда WB повысит % комиссии, который возьмет с продаж. А если будете участвовать — понизит. Например, вы стабильно платите 15% с продаж, далее маркетплейс предлагает вам участие в акции на условиях: 1. если будете участвовать, то комиссия составит 5%, но скидку на товар нужно сделать 30%. 2. Если не будете — комиссия будет 25%.

Пример от Чёрной бухгалтерии : продаете свитшот, себестоимостью 500 рублей, по цене — 1000 рублей, платите комиссию 15% — 150 рублей. Участвуете в акции, делаете скидку 30%, для покупателя товар будет стоить — 700 рублей. Комиссия маркетплейса составит — 5%, т.е. 35 рублей. Не участвуете — комиссия 25% 1000 * 25% = 250 рублей.

Давайте соберем все данные в таблицу и посмотрим, что же получится:

Размер комиссии, руб.

Сумма расходов (себестоимость + комиссия)

Прибыль (цена продажи минус расходы)

Что видим — самый выгодные с точки зрения прибыльности продажи по обычной системе. А вот при участии в акции сумма прибыли серьезно снижается (более чем в два раза).

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

Если вы больше внимания хотите уделять продажам, аналитике и работе с покупателями и поставщиками, а не учету — Чёрная бухгалтерия заберет его на себя.

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

Советы от Маргариты :

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

Что продавать на маркетплейсе, чтобы получить хорошие продажи?

Основные категории мы описали в самом начале. Кроме того, учтите, что:

Мы уже рассказывали о другом маркетплейсе — СДЭК.Маркет в этой статье и хотели бы продолжить эту тему. Следите за постами в блоге, подписывайтесь на наши аккаунты в соцсетях, делитесь собственным опытом в комментариях ниже.

Источник

Как создать маркетплейс, который не будет уступать Wildberries

Пока маркетплейсы захватывают мир, а Wildberries отчитывается о росте оборота на 96% в 2020 году — до 437,2 млрд рублей, мы, разработчики, ищем пути как делать так, чтобы эти маркетплейсы отрабатывали запросы за считанные миллисекунды и могли масштабироваться по щелчку пальцев.

В статье расскажу о своем опыте работы с высоконагруженным проектом, с которым Веб Секрет сотрудничает уже почти 2 года. Я решил рассмотреть пока только несколько пунктов, которые считаю реально крутыми.

Одной из задач стояло сделать скорость работы сайта сопоставимой с общепризнанными трендами. Мы изучили опыт Ozon, Wildberries, Lamoda, чтобы подобрать наилучшее архитектурное решение и базы данных, создать универсальные конструкторы, построить общую логику с приложением.

У первых все нереально круто продумано, но скорость отклика не такая быстрая. У Lamoda классный дизайн, но с точки зрения скорости они не идеальны, а Wildberries показывают самые крутые цифры по сравнению с остальными. Поэтому поставили перед собой цель достичь в скорости работы именно их уровня. Жаль, что разработчики Wildberries мало что рассказывают, поэтому, если кто-то из них вдруг прочитает эту статью, поделитесь своим опытом. Думаю, всем будет очень интересно.

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

То, насколько крутым выйдет ваш проект, зависит от многих составляющих. Например, насколько будет продвинутым и дальновидным техлид в команде. Как точно он продумает серверную архитектуру, чтобы она легко масштабировалась с ростом проекта. Какие базы данных подберет, чтобы сайт “летал” и не напрягал пользователей. Чаще всего используют Mysql и Postgresql. Мы работаем с последней уже 2 года. Однако в данном случае ее было недостаточно. Потому что проект подразумевал высокие нагрузки и использование фасетного поиска. Поэтому нам пришлось искать другое решение.

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

Итак, задача номер 1 – возможность удобного использования фасетного поиска. Это такой поиск, где фильтры зависят друг от друга. То есть, если вы выбрали бренд boss, то вам покажут цвета, доступные только для него. Потом выбрали размер L и увидели все вещи данного бренда, данного цвета, данного размера. Так все фильтры зависят от всех.

Одновременно с фасетным поиском заказчик хотел видеть довольно сложные выборки на странице товара. Например, подборка всех товаров такого же цвета. Или подборки товаров со скидкой в том магазине, где ты выбираешь себе аутфит. И это было задачей номер 2, которая подталкивала нас к тому, что нужна еще одна база данных, и одной Postgresql будет не достаточно.

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

В общем мы стали искать БД, которая бы быстро читала данные и делала фасетный поиск удобным. Я не буду перечислять кучу вариантов, которые мы перепробовали. В итоге в финалистах у нас оставалась Mongodb и Elasticsearch.

По сути, между собой это одно и тоже, только Elasticsearch написан на java и писец как жрет ресурсы сервера. Если у вас каталог хотя бы от 100к товаров, то гигов 8 памяти смело придется выделить только на Elasticsearch. Да и в целом мы считаем, что java достаточно тормознутый. Поэтому Mongo стала победителем.

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

Далее мы построили отдельную систему событий, чтобы при изменении статуса наличия или добавлении отзыва обновлялись денормализованные данные товара. Да, есть небольшая задержка в обновлении данных, но мы считаем, что можем этой задержкой пренебречь при выводе каталога. Такая модель называется read write model. В корзине же, например, при оформлении заказа, мы уже не используем денормализованные данные, но там и выборки проще и нагрузки меньше.

Конечно, мы могли бы хранить эти данные и в Postgresql, но это не логично, учитывая, что вся информация для фасетного поиска хранится в Mongo. Т.к. это сначала запрос в одну БД на фильтрацию данных, а потом в другую на их вывод.

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

В результате мы получили очень быстрый рабочий каталог и высокую скорость генерации отдачи данных. Например, выбрать и подготовить страницу товара – порядка 7мс, каталог – около 30-40мс. И возможно это на сервере с 2 процессорами и 4Гб памяти. Так что перспективы для масштабирования и потенциал здесь огромные. Единственное что возможно – это упереться в скорость диска.

Отмечу еще, что вся наша серверная архитектура управляется с помощью Kubernetes. Для бизнеса это полезно по следующим причинам:

Тем не менее, у нас, наконец, получилось частично переиспользовать код и логику между вебом и мобайлом, так как веб у нас на React, а мобайл – на React Native.

Конечно, можно было вспомнить еще про React Native Web, который предназначен для того, чтобы писать одно приложение, работающее одновременно и в браузере с использованием стандартных веб-технологий и на iOS или Android как настоящее нативное мобильное приложение. Год назад мы пытались там покопаться, но был еще совсем сырой. Поэтому мы сделали следующим образом.

Наверняка всех бесит, когда в браузере нажимаешь “назад”, и тебя выбрасывает не на ту строку магазина, где ты был, а в рандомное место страницы, и приходится снова скроллить до товара, на котором ты остановился. Обидно правда. А порой это еще и долго происходит. Поэтому в рамках сессии пользователя мы делаем браузерное кеширование. Как результат, если пользователь нажимает “назад”, мы просто отдаем страницу из браузерного кэша. Это происходит мгновенно, и пользователь возвращается в то место, где он закончил серфинг. Сообщество предлагает множество вариантов с костылями, но, как показала практика, кэширование ajax-запросов — самый действенный и простой способ, который позволит пользователям кайфовать от использования вашего сайта-каталога.

Теперь поговорим о том, как на проекте устроены сессии и мерж данных. Зачем мы разделяем get- и post- запросы и для чего кэшируем их? Откуда появилась идея генерировать токен на фронте? И что нам это дает?

Т.к. предполагается, что проект будет масштабироваться, мы решили учесть допнагрузки заранее и просчитали вариант с кэшированием. Чтобы прибавить скорости сайту, страница товара должна загружаться мгновенно, а профиль пользователя – потом подтягиваться асинхронно. Таким образом всю страницу товара можно класть в кэш, а профиль пользователя загружать отдельно. Быстрее? Очевидно же!

Мы пришли к тому, что нам достаточно получать данные только на клиенте (они не важны для ssr, но у нас есть возможность их кэширования на стороне Nginx). Это позволяет видеть мгновенную отдачу. Т.к. на ssr может кэшироваться страница целиком – все Get-запросы, и в случае высоких нагрузок мы себе оставляем такую опцию, а на стороне клиента будет подтягиваться информация по каждому конкретному пользователю (все его избранное, кол-во вещей в корзине и т.п.) – Post-запросы. Get-запрос кешируется отдельно даже для незарегистрированных посетителей и не ломается при апдейте. Пользовательские данные не должны изменять get-запросы. Таким образом, при необходимости весь сайт можно положить в кэш, не затрагивая сессионные данные (авторизационные).

Проиллюстрирую примером, почему это важно.

Допустим, я авторизовался и зашел на главную страницу, на мне она закешировалась. Если мы не будем разделять запросы, то, когда кто-то другой зайдет на сайт, он увидит главную с моими данными, полученными по post-запросам – с моим избранным, потому что Nginx посчитает кэшированную страницу актуальной и отдаст ее в том виде, в котором она попала туда. При разделении запросов же, получится, что главная достается из кэша, а пользовательские данные подтягиваются для каждого отдельно.

Он нужен, чтобы бэк понимал, кто конкретно к нему обращается и какие данные необходимо отдать. Это уникальный ключ, который раньше генерировался на стороне backend, но мы сделали иначе — на стороне клиента. Что это нам дало? Мы, во-первых, знаем источник, откуда пришел человек (web, ios, android), а во-вторых, теперь на фронте не надо ждать окончания одного запроса, как раньше, чтоб отправить другой (запрос на получение сессии + запрос на обновление истории просмотров). Соответственно мы снова сократили скорость.

Сделали так, чтобы не ждать постоянно бэкенд. А еще, чтобы сразу передавать на бэк информацию о клиенте, например, что он юзает – Android или iOs. Ведь иногда ценообразование в магазине напрямую зависит от устройства.

Отличие сессионного от авторизационного токена заключается в том, что, если бы у нас не было механизма регистрации пользователя, принцип работы сайта оставался бы таким же, как описано выше. Сессионные cookie — это уникальный идентификатор, к которому бэкенд может подвязать любые необходимые данные. Благодаря такому подходу мы начинаем различать такие сущности как user и сессия. В чем крутость?

Илья в своем аккаунте с компьютера положил в корзину 2 товара. Потом с телефона зашел просто на сайт, не логинясь там и стал тоже наполнять корзину. Это пока “сессия 3”, т.к. мы не знаем кто это, и чья корзина. Но стоит Илье залогиниться с телефона в своем аккаунте, как все товары суммируются в личной корзине Ильи.

Как итог мы таким образом соединяем все устройства пользователя в один аккаунт и делаем мерж корзины с помощью сессионных cookie. Ну и мы объяснили почему мы так делаем с точки зрения перфоманса. Тут мелочь на перфомансе, а в итоге получается огонь. Ну и мы всегда знаем с каких устройств сидят наши пользователи. Конкретно в нашем случае это повлияло на ценообразование – пользователи с мобильного приложения получали скидку в 1%.

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

Как этого добиться? Подскажу, грузить одну крутую картинку в большом разрешении, чтобы показать всем хорошее качество, – это лажа. Зачем тратить кучу трафика или сталкиваться с тем, когда грузишь картинку в баннер, на десктопе выходит красиво, а на телефоне голова у человека обрезана.

Поэтому мы грузим картинки через тэг и целым массивом: для телефонов, десктопа, разного разрешения, с разной плотностью точек. Кстати, сейчас хорошим тоном является формат webp (на момент написания текста Safari его не поддерживал, поэтому использовали оба формата), который весит меньше привычного jpg. В итоге каждое устройство получает свое изображение. Естественно, что это занимает очень много места (на 1 товар 14 картинок и это только для одной страницы, а есть же еще корзина, каталог и т.п в итоге под 50 штук набирается, чтобы каждый пользователь получил именно ту картинку, которую нужно), но место — самый дешевый ресурс сейчас. НО цель не экономить средства, а показать товар настолько круто, чтобы он его купил не ходя в магазин.

Все картинки на стороне сервера мы кэшируем, чтобы не генерировать каждый раз массив целиком. Клиент грузит одну, а мы уже нарезаем, сколько нам нужно.

Почему хорошая админка – это крутой инструмент, который требует сложной разработки, времени и денег?

Для нас мифы об админке – это боль. Например, что, если сайт сделан на CMS, админку можно будет редактировать самостоятельно без участия разработчиков. Но конкретно эту историю мы уже разбирали. Поэтому опустим.

Мы всегда все делаем с нуля, соответственно, админку тоже. У нас есть классный пакет, который мы в будущем заопенсорсим. Он позволяет быстро создавать управление простыми сущностями, вроде новостей, категорий имен и т.п. Но до сих пор приходится много внимания уделять сложным сущностям, вроде меню, конструкторов, поведения шахматной сетки в недвижимости или логики интерфейса в логистике, например. Это действительно большой кусок работы, и не стоит ее недооценивать. Потому мы закладываем часы, привлекаем front-end разработчика, придумываем и создаем удобные механизмы управления. Отсюда и возникают соответствующие суммы, но на выходе вы получаете кастомную удобную разработку индивидуально под ваш проект. Ниже 2 охеренных примера.

Его мы “придумали” для того, чтобы клиент как раз-таки мог самостоятельно без разработчиков что-то менять и добавлять. Например, разные новые категории меню (привет статье на vc.ru, где мы рассказываем, что это две разные вещи). Какими они могут быть благодаря текущем конструктору на примере нашего проекта?

Как вы поняли, прописать можно вообще что угодно. Но, если данные динамически выбирать по таким критериям, как я уже говорил, базе данных будет тяжко, и все будет грузиться медленно, поэтому вспоминаем денормализацию данных, которую мы внедрили. Теперь, чтобы в админке собрать новые пункты меню – запускается задача на формирование любого пункта по выбранным параметрам, и он готов, при этом открываться будет очень быстро благодаря пресловутой денормализации.

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

Особенно хочу обратить ваше внимание на blocks. Это супер вещь, которая позволяет в каталоге помимо товаров создавать еще какие-то заранее отрисованные и сверстанные крутые блоки, чтобы, например, перед товарами добавить информацию о бренде или о каком-то промо.

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

Например, к майкам boss хотим рекомендовать джинсы boss. Или к майкам рекомендовать майки такого же цвета. Все бы ничего, но мы то строим универсальную архитектуру. А клиент сегодня продает майки, у которых разный цвет, завтра – ноутбуки с разной памятью и так далее. Поэтому опять сделали конструктор, зацените на видео.

Еще в процессе тестирования мы поняли, что сделали какой-то мощный конструктор, которым можно сформировать правила даже более сложного уровня. Например, к просматриваемому товару рекомендовать другие из этого же магазина, но на скидке. И для этого больше не нужны разработчики, а можно сделать руками маркетолога.

Есть несколько сценариев обмена со сторонними системами:

Описанные выше сценарии обмена данными под номерами 1 и 2 – начального уровня. Да, в некоторых случаях их достаточно, но на больших проектах нужен 3 вариант. Он, хоть и сложный, но зато гораздо более быстрый, гибкий и продвинутый с точки зрения функционала.

Вот по последнему принципу реализован обмен на нашем проекте. Выбор на него пал, потому что требовалось обновлять очень много данных и запрашивать их со стороны. Например, полный обмен товаров – это рядовая операция, поэтому все используют 1 или 2 вариант. А нам нужно было, чтобы, как только товар забрали из магазина в оффлайне, 1С уведомлял сайт, что такого товара больше нет, и мы сразу же убрали бы его со страницы. Или сменился импортер поставщика всех товаров Boss. Не переписывать же нам все товары — ты поменяешь название импортера, а эта информация подтянется во все товарах. Помимо этого есть очень много фоновых процессов, требующих полноценного API, например, обмен информацией о клиенте, push-уведомления и т.п., все это прописано в документации.

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

Это позволяет балансировать нагрузку на своей стороне так, как нам удобно, не загружая весь сервер, если вдруг все поставщики в один миг начнут выполнять затратные операции. И это еще легко масштабируется. Чуть что, добавляется больше серверов, которые начинают параллельно разбирать задачи.

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

На чем написан wildberries. Смотреть фото На чем написан wildberries. Смотреть картинку На чем написан wildberries. Картинка про На чем написан wildberries. Фото На чем написан wildberries

Как создать маркетплейс, который не будет уступать Wildberries

И как? Теперь он не уступает диким ягодам? Вы уже вышли на топ-3 маркетплейсов?

Поздравляю, вы за 2 года сделали версию Битрикса на ларавеле для работы маркетплейса «без участия разработчиков».

Ни о какой конкуренции с озонами и дикими ягодами речи не может идти. Ваша поделка подойдёт для маркетплейса битрикса, чтобы каждый Вася Пупкин решил попробовать себя в роли владельца маркетплейса.

«И как? Теперь он не уступает диким ягодам? Вы уже вышли на топ-3 маркетплейсов?»
— статья как бы находится в разделе разработка, а не маркетинг или сео или торговля и вопрос больше был про создать, а не обогнать.

«Поздравляю, вы за 2 года сделали версию Битрикса на ларавеле для работы маркетплейса «без участия разработчиков».»

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

«Ни о какой конкуренции с озонами и дикими ягодами речи не может идти. Ваша поделка подойдёт для маркетплейса битрикса, чтобы каждый Вася Пупкин решил попробовать себя в роли владельца маркетплейса.»

— и снова здравствуй битрикс=)) Мне иногда кажется, что некоторым нравится читать статьи из серии, а как мы использовали «коробочные решения» и заклепали сайт, или а как допили CMS, или как из «говна и палок» сделать сайт за 100$, нежели, чем когда студии делятся реально чем-то годным и достаточно подробно.

вопрос больше был про создать

Я могу с уверенностью сказать, что до озона или ягоды им очень далеко в технологическом плане. Понимаете, озон или ягода — это не ИМ с админкой. Там сотни сервисов для очень разных вещей, в которые было вложено сотни или даже тысячи часов. Всё это делать с нуля ну очень и очень дорого и долго. А тут за 2 года конкурент? Реклама, не более.

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

Я не топлю за битрикс. Я тут немного поязвил. Битрикс тоже постоянно делает такие презентации, как у них машин лёрнинг теперь, фейсчекинг всякий, биг дейта и т.п. Все такие крутые, а по факту дальше маленького ИМ на нём не уедешь.
То же самое и тут — сделали законченное решение в сфере, где не бывает законченного продукта. В сфере, где надо нанимать штат из 50+ (на самом деле в озоне их намного больше, в вайлдбериз тоже) разработчиков, продактов, дизайнеров, тестировщиков на постоянном окладе, сжирающим по 5-30 миллионов в месяц, и постоянно улучшать продукт.

Где у убийцы маркетплейса хоть чуточку написано про разработку логистики? Или показ товаров на сайте и конструктор в админке по вашему мнению и есть маркетплейс?

По своему опыту скажу, что 90% фишек топовых маркетплейсов скрыто от пользовательских глаз. И это основная статья расходов, а не конструктор и меню.

И расписано типа круто, но где цифры, Билли? Когда эта поделка будет держать более 10к RPS, 25к заказов в день и всё это разруливать и доставлять, тогда и можно поговорить.

В целом суть мысли понял, частично согласен, но есть некоторые моменты:

«разработчиков, продактов, дизайнеров, тестировщиков на постоянном окладе, сжирающим по 5-30 миллионов в месяц»

— в том, то и дело, что у топ-компаний, условно «не ограниченные возможности» в плане финансирования, если сравнивать с небольшими конторками, предпринимателями, разработчиками и т.д.

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

«Где у убийцы маркетплейса хоть чуточку написано про разработку логистики? Или показ товаров на сайте и конструктор в админке по вашему мнению и есть маркетплейс?»

— как мне показалось, основная цель статьи в том том, что делать «высоконагруженные» проекты под большое количество товаров могут делать не только гиганты, если темы «стрельнет», ничто не мешает допиливать, как душе угодно.

«конструктор в админке по вашему мнению и есть маркетплейс?»

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

«По своему опыту скажу, что 90% фишек топовых маркетплейсов скрыто от пользовательских глаз. И это основная статья расходов, а не конструктор и меню.»

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

Вариант, предложенный в статье, как отправная точка, вполне более чем, далее масштабирование и допиливание
Отправная точка — это не конкурент. Это просто потенциальный новый маркетплейс, который возможно когда-нибудь дорастёт до старого озона до ребрендинга.

как мне показалось, основная цель статьи в том том, что делать «высоконагруженные» проекты под большое количество товаров могут делать не только гиганты, если темы «стрельнет», ничто не мешает допиливать, как душе угодно.

Витрина маркетплейса — это не полноценный маркетплейс уровня озона. Я в одиночку (ну дизайн будет кривой правда) смогу сделать витрину на условные 300к-1кк товаров в каталоге без особых проблем. Она реально будет работать и не особо тормозить. Да с этим даже биртикс справляется. В этом нет ничего уникального.
А вот когда попрут реальные продавцы, реальные клиенты, когда пойдёт логистика, саппорт и т.п., вот тогда и можно будет хоть попытаться сравнить с топами сегмента. И чуйка подсказывает, что в текущем виде убийца маркетплейсов не выдержит этого всего. Его ещё годик другой допиливать в бете, а потом оставшуюся жизнь проекта переписывать, т.к. в текущем виде он не справится с нагрузками уровня озона. А если он до них не дорастёт, то опять же, как можно их сравнивать?

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

Да, примерно до 2018 он был обычным книжным магазином (но с огромной посещаемостью, своей логистикой и т.п.). А потом знаете что позволило ему выбиться в топ маркетплейсов? Десятки миллиардов рублей инвестиций и расширение ИТ-штата со 100 до 1000+ человек за лето. Т.е. представляете себе масштаб? Тысяча разработчиков, дизайнеров и т.п. пилили новый озон 2 года до текущего состояния (на самом деле часть озона, т.к. огромная часть так и осталась легаси и живёт как раньше в недрах озона). Они смогли в такие сроки сделать только по одной простой причине — совершенно не жалели денег и пылесосили всех хороших разрабов, до которых могли дотянуться. Их HR’ов даже на некоторых митапах забанили, т.к. они тупо приходили хантить.

Не хвастались бы, всё было бы нормально. А так какой-то пафос идёт от них и послание потенциальным неразбирающимся клиентам — мы делаем сервисы круче топовых ИТ компаний со штатом в 10-100 раз меньше.

В итоге в финалистах у нас оставалась Mongodb и Elasticsearch.
По сути, между собой это одно и тоже.
Дальше можно не читать. ¯\_(ツ)_/¯

Но если очень хочется продолжить, то:
Да и в целом мы считаем, что java достаточно тормознутый.
Задача: Как создать маркетплейс, который не будет уступать Wildberries
Решение: Не использовать продукты, написанные на java, т.к. java «тормознутая».

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *