Всем привет! Меня зовут Паша и возможно вы уже пользуетесь моим расширением Ave blacklist для блокировки продавцов спамеров на авито. Но сегодня не об этом.
Больше года назад Кабинет министров не поддержал законопроект с ценой за килограмм или литр, новость была на Пикабу в том числе
Что ж, Кабинет министров не поддержал, а я поддерживаю двумя руками!
И написал расширение для браузеров для расчета цена за единицу измерения на сайтах доставок еды - заКило (chrome, firefox)
Мог бы научить и в офлайн магазинах цену за единицу измерения считать, но кто бы меня спрашивал :D
Маркетинговые фишки для запутывания потребителей
Для чего нужно смотреть цену именно за единицу измерения? Сейчас я расскажу пару маркетинговых трюков, которые манипулируют человеком, заставляя делать неверные выводы. А я за осознанный и рациональный выбор.
1) Неравные объёмы. Оооо, эта тема сильно развита в молочке. Как думаете, что выгодней купить 800 мл, 930 мл, 1.4 литра и 2 литра молока? Следующие изображения как раз об этом:
Как думаете, какое предложение самое выгодное?
а вот и победитель!
2) Оптовый эффект. Кажется, что большая упаковка должна быть выгодней. Но это не всегда работает. В результате потребитель может купить больше товара по невыгодной цене, получается такой двойной урон по кошельку.
Слобода (на перепелиных яйцах) самое выгодное предложение 400 мл (253 рубля/литр против 300 в фасовке 700 мл), Слобода Оливковый 400 мл (263 рублей/литр против 288 в фасовке 800 мл), у ricco самая выгодная фасовка самая большая 215 рублей/литр
3) Промо-упаковки. «+10 % бесплатно» на пачке чипсов или кофе — итоговая стоимость за грамм остаётся скрытой
То самое чувство, когда кофе с 20% от объема в качестве подарка выходит дороже, чем без подарка ;)
4) Акционные блоки. Товар в «специальной акции» может стоить дороже аналога без акции, если не считать граммы и миллилитры.
Если написано, что цена ниже, значит это наверное правда? Да, ведь? По секрету скажу - даже без скидки Молочный ломтик цена ниже за 1 штуку, чем за упаковку 5 штук (2250 рублей/кг)
Как заКило закрывает пробел
Пока законопроект о единых юнит-прайсах пылится в кабинетах, заКило берёт на себя всю работу по подсчёту цены за килограмм или литр — прямо в вашем браузере. Расширение автоматически считывает вес и объём товара из страницы, делает все вычисления локально и выводит рядом с привычной ценой понятную метку «₽/кг» или «₽/л».
— Никаких ручных калькуляций: вам не нужно помнить формулы и перебирать варианты — всё готово в один клик.
— Единообразный интерфейс: заКило выводит юнит-прайс в одном и том же месте и в одном стиле на всех поддерживаемых сайтах, избавляя от необходимости искать мелкие надписи.
— Реальная экономия: сразу видно, какая фасовка выгоднее, и не придётся переплачивать за «промо-упаковки» или странные объёмы.
— Простая интеграция: расширение уже работает на крупнейших сервисах доставки продуктов (Ашан, Яндекс.Маркет, Перекрёсток, Пятёрочка и др.) — достаточно установить и сравнивать.
ЗаКило закрывает пробел между законодателями и реальными покупателями, переводя борьбу за честную цену на практический уровень
Как можно помочь?
1) Предложить свою идею для доработки расширения - это я всегда строго приветствую
2) Помочь с дизайном - на некоторых сайтах какое то обилие цифр и текста и при добавлении цены за кг смотреть, на мой взгляд, становится сложно. Круто было бы разработать какой-нибудь универсальный макет для отображение цены и цена за единицу, чтобы было проще сравнивать товары, а также проще интегрировать расширение на новые сайты
3) Сейчас расширение показывает цену за ту единицу, которая указана на сайте - если литры, то за 1 литр, если килограммы, то за 1 кг. Но в некоторых категориях (молоко, например) какие-то товары показываются в мл, какие то в граммах. И сравнивать тоже не совсем корректно граммы с мл из-за плотности молока. Тут мне нужна помощь с тем, в каких категориях есть еще такое не соответствие. Про молоко я себе уже внес задачку, но про другие категории могу лишь догадываться
Эта статья написана для начинающих пользователей, которые хотят разобраться в работе сервиса отдачи информации zakupki.gov.ru. Мы шаг за шагом разберем, как получить токен для физического лица, как выглядит XML-документ для запроса и как написать простую программу на Python для взаимодействия с сервисом. Это не руководство от профессионала, а скорее дневник выживания: как не сойти с ума, пока пытаешься подружиться с сервисом zakupki.gov.ru
С 1 января 2025 года доступ к FTP-серверу zakupki.gov.ru будет закрыт, и вся информация станет доступна только через сервисы отдачи данных. До этой даты физические лица могут получать общедоступную информацию через сервис https://int44.zakupki.gov.ru/eis-integration/services/getDocsLE2 без необходимости использовать токены или электронную цифровую подпись (ЭЦП). Однако с нового года работа с сервисом потребует токенов или настройки инфраструктуры для подписания запросов ЭЦП.
Открытые данные закупок — это мощный инструмент для анализа, прозрачности государственного управления и создания полезных сервисов, как коммерческих, так и общественных. Например, на их основе можно анализировать расходы государства, выявлять нарушения или автоматизировать поиск тендеров. Ранее доступ был через FTP-сервер, сейчас данную возможность закрывают, а вместо него предлагается получать данные по протоколу SOAP. У меня нет технического образования и складывается такое ощущение, что государство хочет таким ненавязчивым способом восполнить пробелы в моих знаниях.
SOAP (Simple Object Access Protocol) — это протокол обмена данными, при котором запросы и ответы представляют собой строго структурированные XML-документы. Для многих разработчиков (включая меня) это может быть первое знакомство с этим протоколом. Более того, практическая информация по работе с SOAP и конкретно с сервисом закупок zakupki.gov.ru представлена в сети крайне ограниченно.
Структура статьи:
Получение токена для работы с сервисом
Структура xml-документа
Пример программы на python
Получение токена для работы с сервисом
Получить токен можно следуя инструкции "ИНСТРУКЦИЯ ПО ИСПОЛЬЗОВАНИЮ СЕРВИСОВ ОТДАЧИ ИНФОРМАЦИИ ЕИС ДЛЯ ЮРИДИЧЕСКИХ И ФИЗИЧЕСКИХ ЛИЦ", размещенном на zakupki.gov.ru. Но для того, чтобы не открывать лишних окон, вкратце опишу процесс здесь:
Проходим авторизацию через Госуслуги, выбираем "Регистрация нового потребителя машиночитаемых данных", далее "Физическое лицо, индивидуальный предприниматель", заполняем все сведения, отправляем запрос и происходит перенаправление на новую страницу с токеном.
Готово! Сохраняем токен в надежное место
Пример токена: 5d035886-82af-4f98-8a74-278bf72ff457 (был указан в инструкции, не работающий)
Структура xml-документа
Формирование правильного XML-документа — одна из главных сложностей при работе с сервисом. Любая ошибка, например, нарушение порядка тегов или отсутствие обязательного параметра, может привести к некорректному ответу сервера. Сервер либо возвращает сообщение об ошибке («Ошибка валидации полученного запроса по интеграционной схеме»), либо повторяет отправленный запрос без обработки.
Основные требования к XML-документам
Порядок тегов имеет значение. Это может быть неочевидно для начинающих, но даже малейшее отклонение от порядка, описанного в интеграционной схеме, вызовет ошибку.
Каждый запрос должен содержать токен. Его необходимо указывать в элементе внутри.
Использование метода. Название метода запроса указывается в внутри.
Создание идеального XML — это как готовить торт: ингредиенты строго по списку, порядок добавления важен, а итоговая структура должна быть идеальной
Поддерживаемые методы:
getDocsByReestrNumberRequest – запрос формирования в ХД архивов с документами по реестровому номеру
getDocsByOrgRegionRequest – запрос формирования в ХД архивов с документами по региону заказчика и типу документа;
getDocSignaturesByUrlRequest – запрос формирования в ХД архивов с подписями документов;
getNsiRequest – запрос в хранилище документов (ХД) данных справочника
Далее я приведу пример работающего шаблона xml документа. Все взаимодействие с сервисом происходит через url https://int44.zakupki.gov.ru/eis-integration/services/getDocsIP. Для работы с этим сервисом каждый xml файл в soapenv:Header должен содержать элемент individualPerson_token со значение вашего токена. Пример:
В основной части направляется название метода и структурные элементы, которые ему соответствуют. Для каждого запроса должен быть index, в котором есть id, дата создания и режим работы сервиса (TEST или PROD, но лучше сразу PROD указывать). Пример:
И затем в selectionParams надо указать параметры отбора файлов. Если мы используем getDocsByReestrNumberRequest, то надо указать тип подсистемы и реестровый номер. Пример:
В целом файл для метода getDocsByOrgRegionRequest будет выглядеть следующим образом:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://zakupki.gov.ru/fz44/get-docs-ip/ws"> <soapenv:Header> <individualPerson_token>5d035886-82af-4f98-8a74-278bf72ff457</individualPerson_token> <!-- Здесь должен быть указан ваш токен --> </soapenv:Header> <soapenv:Body> <ws:getDocsByOrgRegionRequest> <!-- Здесь указывается метод --> <index> <!-- index принцип формирования был приведен ранее --> <id>3f227a50-418d-47ea-a3f7-e9a85f3af6e7</id> <createDateTime>2024-12-25T16:34:29</createDateTime> <mode>PROD</mode> </index> <selectionParams> <!-- обратите внимание, для каждого метода будут свои параметры отбора, перечисленные в интеграционной схеме. Сохранение порядка параметров обязательно! --> <subsystemType>PRIZ</subsystemType> <reestrNumber>0888200000224000038</reestrNumber> </selectionParams> </ws:getDocsByOrgRegionRequest> </soapenv:Body> </soapenv:Envelope>
Например, для метода getDocsByOrgRegionRequest я перепутал порядок и сначала у меня стоял subsystemType, а затем orgRegion и сервер выдавал ошибку несоответствия запросу интеграционной схеме. Пример правильного xml файла для этого метода:
Для отправки запроса и получения результата мы будем использовать python. Для начала импортируем библиотеки, которые пригодятся в будущем:
import uuid import datetime import os import requests import xmltodict
Для автоматизированной отправки запросов для метода , сформируем шаблон xml файла, в котором будут автоматически из кода подставляться токен, ID и время запроса и назовем его test.xml:
Далее не совсем очевидный момент, который не отражен в инструкции. Для скачивания архива, нам также потребуется отправлять токен. Я долго не мог понять, почему архив так долго готовится и его нельзя скачать, пока не заметил, что в примере в инструкции в headers отправляется токен:
подчеркивание - это моя работа :)
В самой инструкции об этом не слова и на мой взгляд это большое упущение. На python данный запрос будет выглядеть так:
with open('archive.zip', 'wb') as f: f.write(response_get_archive.content)
Надеюсь данная статья послужит толчком для изучения протокола работы с SOAP и поможет разобраться с сервисом отдачи информации и документов zakupki.gov.ru
Всем привет! Меня зовут Паша и, как вы поняли из названия, я сделал расширение, которое позволяет блокировать спам продавцов на Авито. Немного о жизни разработчика бесплатных расширений писал в прошлой статье. Расширению два месяца назад стукнуло два года и захотелось всем напомнить о нем, параллельно вспомнить самые интересные отзывы и типизировать их. Погнали?
Как известно, “все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему”, поэтому смысла останавливаться на позитивных отзывах нет - они несут в себе радость, оптимизм, отличное настроение и иногда классные словечки, которые приятно слышать про свое детище (”турбопушка”, например)
особенно приятно такое слышать от милого котенка 😀
Моя самая любимая категория негативных отзывов - “продались”. Такие невероятные истории люди придумывают! Я иногда сижу в растерянности и думаю - это реально человек так считает или это просто прикол какой-то?
Вот так я узнал, что живу шантажом 😀 Это вообще на самом деле топ! Я прямо представляю, как сидим с авитовцами в главном офисе и негодуем, что наш коварный план был раскрыт 😀
До сих пор жду свой чек от Авито, видимо на почте какие-то сбои и он до сих пор не пришел 😀
Еще часто в отзывах, как условно положительных, так и отрицательных, проскальзывает тема “вот я бы сделал в тысячу раз лучше и красивее, но не хочу”
newart показал бы как надо с этими авитовцами бороться! Но лень. Еще с таким наездом вопросы задает, как будто я ему денег должен 😀
Eugene, меня тоже эта ситуация достала, вот я сел и написал расширение
Когда начинал разработку, даже не представлял с каким на самом деле потоком негатива можно столкнуться. Кто бы мог подумать, что у пользователей такие высокие требования к бесплатному расширению, которое люди делают в свое свободное время! Люди, будьте добрее! И не ищите подводных камней там, где просто кто-то (я, например) накосячил 🙂
А какие интересные и смешные отзывы вы слышали о себе/своем продукте? Пишите в комментариях :)
Всем здравствуйте! На связи создатель расширения Avito Blacklist Паша Сырников (это я) 👋🏼. Недавно количество пользователей моего расширения перевалило за 300 и было принято решение подвести короткий итог.
За время, которое я посвятил этому проекту, я прокатился на самых настоящих эмоциональных качелях. Начиная с того, что мое расширение попросту оказалось… никому не нужным. По крайней мере так мне казалось в самом начале.
Началось с того, что я прочитал пост на Пикабу про продавцов-спамеров на Авито. Автор жаловался, что они забили всю ленту. Я подумал: вот оно, моя минута славы! Насчет денежных бенефитов у меня не было никаких иллюзий - я сразу понимал, что на бесплатном расширении никак не заработать. Разве что добрые люди переведут по 5-10 рублей, за год может на чашку кофе хватит. Спойлер: я оказался не совсем прав, но об этом попозже. В итоге я быстро сделал расширение по блокировке пользователей-спамеров, выложил его в Google Webstore 22 июня 2022, написал на Пикабу и стал ждать, пока пост не выйдет в лучшее, а у расширения не будет тысяч 10 пользователей.
* это я в ожидании огромного количество пользователей
В итоге в комментах отписались, мол, идея отличная, но наверное вы наши персональные данные продавать будете. Или более адекватная обратная связь: расширение классное, но пользуемся в основном мобильными версиями, так что не наш случай. Оказалось, что у людей не столь остро стоит эта проблема - хватает на то, чтобы немного поворчать, но не достаточно, чтобы принимать какие-либо действия. Если бы я применил на практике знания из книги “Спроси маму” (Роберт Фитцпатрик), то такого разочарования удалось бы избежать. Нужно было всего-то спросить: а как вы пытались решить данную проблему? Ответом было бы честное: никак. По мнению автора, это значит, что это не та проблема, которую следовало бы решать. Но зачем кого то слушать, если можно получить свой неповторимый опыт?
В итоге на совете директоров 3 июля 2022 было принято решение забить на дальнейшую работу над расширением. Показатели на тот момент: 3 пользователя, включая меня на двух браузерах. Это было примерно 22-25 июня 2022 года. До 26 января 2023 года я забыл о расширении. Но тут случилось оно:
* Письмо, которое я даже хотел распечатать и вставить в рамочку - до сих пор тепло от такой обратной связи
Сказать, что я офигел, это не сказать ничего. Им еще кто-то пользуется? Зашел в Delevoper Dashboard и офигел во второй раз: 14 пользователей! При этом я удалил у себя расширение 🤭 Кто все эти люди и как они нашли расширение для меня до сих пор загадка. Авито немного поменял разметку, я её обновил в расширении и с новыми силами взялся за проработку. Добавил пару функций, которые просили пользователи - блокировку отдельных объявлений и возможность импорта/экспорта базы данных.
Очень интересно то, какие разные люди пользуются расширением. Некоторые скидывают вполне приличные суммы: 300-1000 рублей и что важнее, искренне благодарят, пишут хорошие отзывы в вебсторе, по почте, в комментариях к переводам. В итоге удалось заработать на бесплатном расширении 2600 рублей (~13 чашек кофе по 190 рублей), что сильно превзошло мои ожидания. Но есть и обратная сторона, это когда пишут: твое тупое приложение не работает, автор тупой мудак, не может нормально ничего сделать и как влепят 1 звезду. Блин, это бесплатное расширение, кроме хорошего рейтинга и редких переводов у меня больше и нет ничего от него. А тут такая атака на мое настроение. Но как правило, все решается довольно быстро, просто спрашиваешь: а в чем собственно проблема? И проблема сама как-то решается. В основном, пользователь что-то не правильно понял, не внимательно описание прочитал.
Немного графиков:
* Рост пользователей с 22.06.2022 по 14.08.2023 в 326 раз! С 1 до 326 соответственно 😀
Общее количество установок - 651. 1 мая 2023 был какой-то всплеск. Наверное, связан с моей хаотичной маркетинговой деятельностью. Есть аналог моего расширения, который очень долгое время не работал и там начали писать отзывы и запросы в поддержку, что расширение не работает. Я решил, что автор забросил своё расширение и начал спамить в ответах под отзывами своим расширением. В итоге пользователей 10 мне удалось завлечь. В целом маркетинг заключался в том, что иногда в непредсказуемое время я отслеживал посты на Пикабу/vc.ru с обозначенной проблемой в виде продавцом спамеров и предлагал в комментариях свое решение. Также когда выходили посты “Топ 10 расширений для Google Chrome” и подобные, я также рекламировал в комментариях своё расширение. Аналитики никакой не настраивал, так что не могу сказать, что в итоге работает, а что нет.
Всего показов моего расширения было 5,2 тысячи, просмотров 2 тысячи и установок 650 штук. Значит конверсия из показа в просмотр составляет 38,46%, из просмотра в установку 32,5%. Честно говоря, не знаю, хорошо это или плохо. Когда только начинал делать расширение пытался найти какую-то статистику по данному вопросу, но сделать этого мне не удалось. Эта статья частично была призвана закрыть этот пробел.
Выводы и итоги:
Прежде чем решать проблему, нужно выяснить, а точно ли эта проблема существует для конкретных людей, с которыми вы говорите. В моем случае, для моей первоначальной аудитории такой острой проблемы не было, но нашлась другая аудитория, для которой данное расширение оказалось полезным.
В мире полно добрых людей, готовых поддержать ваш проект. Даже если он кажется вам сырым и не доработанным. Не стесняйтесь писать каким образом пользователи могут вас поддержать: это может быть как денежный перевод, просьба пройти опрос, оставить отзыв, поделиться в соц сетях и так далее.
Выложить расширение и ждать, что у него будет миллион установок, не стоит, особенно без соответствующей по размерам и лояльной к вам аудитории и/или крупных рекламных бюджетах.
Разработка расширений для браузеров - тема интересная - ведь можно доработать под себя функционал любого сайта. Однако вместе с тем, это довольно нишевая история и информации на просторах интернета немного. Буду рад если вы поделитесь своими историями, впечатлениями о разработке или использовании расширений для браузера.
Недавно наткнулся на пост: Задумалась, который является повтором поста из твитера:
Мне понравилась идея и я немного поиграл с разметкой сайта ЦБ для корректировки курса в приятную для глаз сторону, вышло так: Ответ на пост «Задумалась»
Именно! Повторение исходного поста, который является копипастой с твитера. Я решил пойти ва-банк и еще несколько раз повторить эту шутку. Как думаете, пройдет? 😈