Как реализовать универсальную дисконтную карту в 1С:Рознице и какие подходы использовать?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

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

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

Идея 1: Использование существующих государственных идентификаторов (СНИЛС, личный номер)

Рассмотрим одну из идей, которая может показаться привлекательной на первый взгляд: использовать в качестве дисконтной карты уже существующий государственный идентификатор клиента, такой как номер страховой карты (например, личный номер в Беларуси) или СНИЛС в России. Мы можем рассуждать так: этот номер является уникальным по всей стране, выдается человеку фактически навсегда и не требует изготовления дополнительного пластика. Для удобного считывания можно было бы генерировать QR-код на основе этого номера, который клиент мог бы распечатать или хранить в виде скриншота на телефоне.

Преимущества, которые мы могли бы выделить в этом подходе:

  1. Уникальный идентификатор: Каждый клиент обладал бы уникальным номером, исключающим дублирование.
  2. Экономия на производстве пластика: Нет необходимости изготавливать новые карты, так как идентификатор уже существует.
  3. Потенциальная универсальность: При подключении этой идеи к различным магазинам и фирмам, мы могли бы видеть проявление её универсальности.

Однако, с чем мы можем столкнуться на практике, и почему эта идея часто отклоняется:

  1. Проблемы с запоминанием: Не все клиенты помнят свой личный номер или СНИЛС наизусть, что делает процесс регистрации или идентификации неудобным без документов.
  2. Необходимость носить документы: Требование предъявлять паспорт или страховую карту на этапе регистрации в магазине может быть отталкивающим для многих покупателей.
  3. Конфиденциальность данных: Использование столь чувствительных персональных данных, как СНИЛС или личный номер, для целей дисконтной карты считается избыточным и несет значительные риски. Клиенты могут не захотеть "светить" такой номер продавцу или в системе лояльности. Это может вызвать серьезные вопросы по соблюдению законодательства о персональных данных.
  4. Ограниченность и нецелевое использование: Государственные идентификаторы, такие как СНИЛС, не рассчитаны на выдачу гражданам других государств, детям и т.п., что снижает их универсальность. К тому же, мы не должны придавать сущности значение, на которую данная сущность не рассчитана изначально.
  5. Юридические аспекты и "головняк": Хранение и обработка таких чувствительных данных налагает серьезные обязательства по их защите, требуя разработки строгих политик конфиденциальности, получения явного согласия клиентов, применения шифрования и регулярных аудитов безопасности. Это добавляет значительный "головняк" на хранение чувствительных персональных данных.

Если бы мы все же решились на такой подход в 1С:Розница:

Нам пришлось бы доработать конфигурацию. В частности, изменить "Тип" в реквизитах карты, чтобы можно было вписывать коды, которые могут содержать не только цифры, но и буквы (как это часто бывает в СНИЛС или личных номерах). Также потребовалось бы прописать диапазон карт, если это применимо.

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

Идея 2: Использование номера телефона в качестве идентификатора

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

Преимущества использования номера телефона:

  1. Высокая запоминаемость: Большинство людей помнят свой номер телефона и всегда имеют его при себе.
  2. Удобство идентификации: Клиенту достаточно назвать номер телефона на кассе.
  3. Возможность верификации: Номер легко верифицировать по SMS, что повышает безопасность программы лояльности и подтверждает, что номер принадлежит реальному пользователю.

Потенциальные проблемы и их эффективные решения:

  1. Смена номера телефона: Одна из основных проблем – клиент может сменить номер. Тогда возникает риск потери накопленных бонусов и истории покупок, что может привести к недовольству клиента и "головняку" для бизнеса по "перевыпуску" карты.
    • Решение в 1С: В 1С:Розница и многих других конфигурациях уже существуют встроенные обработки замены карты. Мы можем использовать или адаптировать их. Эти обработки позволяют легко переносить все накопленные бонусы, историю покупок и другие данные клиента с одного идентификатора (старого номера телефона или старой карты) на новый. Таким образом, история карты не пропадает, что крайне важно для маркетингового анализа и персонализированной коммуникации с клиентами.

      Например, в 1С:Рознице мы можем создать или настроить обработку, которая при изменении номера телефона клиента в его учетной записи будет привязывать существующие бонусы и историю к новому номеру. Это может быть реализовано путем изменения соответствующего реквизита в регистре накопления бонусов и в регистре сведений об истории покупок.

      
      // Примерный псевдокод для обработки замены карты в 1С
      Функция ПеренестиБонусыИИсторию(СтарыйИдентификатор, НовыйИдентификатор)
          // Находим все бонусы по старому идентификатору
          Запрос = Новый Запрос;
          Запрос.Текст = "ВЫБРАТЬ
                       |    Бонусы.Контрагент,
                       |    Бонусы.Количество
                       |ИЗ
                       |    РегистрНакопления.Бонусы КАК Бонусы
                       |ГДЕ
                       |    Бонусы.ИдентификаторКарты = &СтарыйИдентификатор";
          Запрос.УстановитьПараметр("СтарыйИдентификатор", СтарыйИдентификатор);
          РезультатЗапроса = Запрос.Выполнить().Выгрузить();
      
          НаборЗаписейБонусов = РегистрыНакопления.Бонусы.СоздатьНаборЗаписей();
          НаборЗаписейБонусов.Отбор.ИдентификаторКарты.Установить(СтарыйИдентификатор);
          НаборЗаписейБонусов.Прочитать();
      
          // Модифицируем записи, меняя идентификатор
          Для Каждого ЗаписьБонуса Из НаборЗаписейБонусов Цикл
              ЗаписьБонуса.ИдентификаторКарты = НовыйИдентификатор;
          КонецЦикла;
          НаборЗаписейБонусов.Записать();
      
          // Аналогично для истории покупок
          // ...
          Возврат Истина;
      КонецФункции
      
  2. Мошенничество и фейковые регистрации: При использовании номера телефона всегда есть риск мошенничества.
    • Решение: Для предотвращения этого мы активно используем различные методы верификации. Наиболее распространенный и эффективный – это подтверждение через SMS-код. При регистрации новой карты или, например, при списании накопленных бонусов, клиенту отправляется SMS с кодом, который он должен ввести. Это гарантирует, что номер принадлежит реальному пользователю. Также можно использовать звонок, предлагая клиенту ввести последние цифры входящего номера.

Идея 3: Виртуальные карты и QR-коды в смартфоне

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

Преимущества виртуальных карт в смартфоне:

  1. Полное отсутствие пластика: Клиенту не нужно носить с собой пачку физических карт.
  2. Удобство для пользователя: Все карты всегда под рукой в одном месте — в мобильном телефоне.
  3. Расширенная функциональность: Специальные мобильные приложения-агрегаторы, такие как "Кошелёк", Stocard, Apple Wallet или Google Pay, не просто хранят карты. Они могут предоставлять дополнительную информацию: о текущем балансе баллов, персональных акциях, истории покупок и даже напоминать о специальных предложениях.
  4. Экономия для бизнеса: Сокращение расходов на производство, печать и дистрибуцию пластиковых карт. Высвобожденные средства мы можем направить на углубленную аналитику и более персонализированную коммуникацию с клиентами.

Методы идентификации клиента в таких системах:

  1. QR-коды и штрих-коды: Это основной и наиболее универсальный способ считывания виртуальных карт. Мы можем быстро генерировать и отображать QR-код или штрих-код на экране смартфона клиента. На кассе достаточно считать его обычным сканером. QR-коды также очень эффективны для быстрой регистрации в программе лояльности: мы можем размещать их на чеках или рекламных материалах, и клиент, отсканировав код, сразу переходит к форме регистрации.
  2. Технология NFC (Near Field Communication): Позволяет идентифицировать клиента простым прикладыванием смартфона к специальному считывателю на кассе. Для этого потребуется, чтобы телефон клиента поддерживал NFC, а на кассе было установлено соответствующее оборудование. Этот метод максимально быстрый и удобный, аналогично бесконтактной оплате.
  3. Bluetooth Low Energy (BLE): В некоторых передовых системах идентификация может происходить автоматически при включенном Bluetooth на смартфоне клиента и наличии специального устройства (маячка) на кассе. Однако этот метод обычно требует дополнительных инвестиций в кассовое оборудование и может быть более сложным в настройке.

Механизмы восстановления и управления виртуальными картами:

Механизм восстановления карты по e-mail или номеру телефона сделать не проблема. Если клиент не хочет предоставлять свой e-mail или номер телефона, мы можем предусмотреть, что опция восстановления карты будет ему недоступна, что является допустимым компромиссом. Для усиления безопасности, особенно при "выдаче" или списании бонусов, мы можем жестко привязать карту к человеку, используя, например, подтверждение по SMS-коду. Это уже вопрос к создателям подобных приложений и интеграторам, но технически это не сложно реализовать.

Вопросы конфиденциальности и хранения персональных данных

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

Избыточность и риски чувствительных идентификаторов:

Мы уже говорили, что использование таких чувствительных идентификаторов, как СНИЛС или другие национальные номера, для дисконтных карт является избыточным и несет значительные риски. Эти данные не предназначены для массового использования в торговле и их утечка может привести к серьезным последствиям для клиентов и репутационным потерям для компании. Компаниям, работающим с программами лояльности, критически важно соблюдать законодательство о персональных данных.

Необходимый минимум данных:

В большинстве случаев для дисконтной карты достаточно хранить:

  1. Номер карты (если он внутренний, генерируется системой).
  2. Номер телефона.
  3. E-mail.
  4. Возможно, имя и дату рождения для персонализации предложений.

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

Риски сопоставления данных:

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

Обязанности по защите персональных данных:

Компании обязаны:

  1. Разрабатывать и публиковать политики конфиденциальности: Четко объясняющие, какие данные собираются, как они используются и защищаются.
  2. Получать явное согласие клиентов: На обработку их персональных данных.
  3. Предоставлять возможность отзыва согласия: Клиент должен иметь право в любой момент отозвать свое согласие на обработку данных.
  4. Применять шифрование: Для защиты хранимых данных от несанкционированного доступа.
  5. Проводить регулярные аудиты безопасности: Для выявления и устранения потенциальных уязвимостей.

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

Реализация в 1С:Розница

Для внедрения любой из вышеописанных концепций виртуальных дисконтных карт нам потребуется внести изменения в конфигурацию 1С:Розница. Рассмотрим ключевые аспекты:

1. Изменение реквизитов карты:

Если мы планируем использовать QR-коды, которые могут содержать буквенно-цифровые последовательности, или специфические внутренние идентификаторы, нам необходимо будет изменить "Тип" в реквизитах карты в 1С:Розница. Это позволит системе корректно обрабатывать и хранить коды, которые могут включать не только цифры, но и буквы, а также специальные символы. Например, мы можем расширить длину поля и изменить его тип на строковый с поддержкой всех необходимых символов.

2. Настройка диапазонов карт:

Если мы используем внутреннюю нумерацию карт (независимо от того, привязана она к телефону или нет), нам необходимо будет прописать диапазоны карт. Это позволит системе автоматически генерировать новые номера и контролировать их уникальность. Для этого мы можем использовать стандартные механизмы нумерации объектов в 1С или разработать собственный алгоритм генерации уникальных идентификаторов.

3. Интеграция с SMS-сервисами:

При выборе номера телефона в качестве идентификатора или для подтверждения операций (например, списания бонусов), потребуется интеграция с внешними SMS-шлюзами. Это позволит отправлять SMS-коды для верификации. Мы можем использовать готовые модули интеграции, если они есть для нашей версии 1С:Розница, или разрабатывать собственный механизм взаимодействия с API SMS-провайдера.


// Примерный псевдокод для отправки SMS в 1С
Функция ОтправитьSMS(НомерТелефона, ТекстСообщения)
    // Предполагается, что есть внешний компонент или веб-сервис для отправки SMS
    // Могут использоваться HTTP-запросы к API SMS-провайдера
    Попытка
        HTTPЗапрос = Новый HTTPЗапрос("/send_sms");
        HTTPЗапрос.УстановитьТелоИзСтроки("phone=" + НомерТелефона + "&text=" + ТекстСообщения);
        HTTPСоединение = Новый HTTPСоединение("api.smsprovider.com",,,,,, 60);
        HTTPОтвет = HTTPСоединение.Отправить(HTTPЗапрос);

        Если HTTPОтвет.КодСостояния = 200 Тогда
            Возврат Истина;
        Иначе
            ЗаписьЖурналаРегистрации("Ошибка отправки SMS: " + HTTPОтвет.КодСостояния, УровеньЖурналаРегистрации.Ошибка);
            Возврат Ложь;
        КонецЕсли;
    Исключение
        ЗаписьЖурналаРегистрации("Исключение при отправке SMS: " + ОписаниеОшибки(), УровеньЖурналаРегистрации.Ошибка);
        Возврат Ложь;
    КонецПопытки;
КонецФункции

4. Обработки для замены карты и переноса данных:

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

5. Доработка кассового модуля:

Для считывания QR-кодов или работы с NFC/BLE потребуется адаптация кассового программного обеспечения. Это может включать обновление драйверов для сканеров QR-кодов, интеграцию с новыми типами считывателей (например, NFC-модулями) и соответствующую доработку интерфейса кассира в 1С:Розница, чтобы он мог выбрать нужный способ идентификации клиента.

Мы видим, что реализация универсальной дисконтной карты в 1С:Розница – это комплексная задача, требующая как бизнес-анализа, так и технической доработки. Однако, при правильном подходе, мы можем создать мощный и удобный инструмент лояльности.

В дополнение к обсуждению на форуме 1С о создании универсальной дисконтной карты, можно отметить несколько современных тенденций и решений, которые развиваются в сфере программ лояльности. В настоящее время наблюдается повсеместный переход от физических пластиковых дисконтных карт к их виртуальным аналогам. Многие пользователи предпочитают хранить все свои скидочные и бонусные карты в специальных мобильных приложениях-агрегаторах, таких как "Кошелёк", Stocard, Apple Wallet или Google Pay, что позволяет освободить бумажник от лишнего пластика. Эти приложения не только хранят карты, но и могут предоставлять дополнительную информацию, например, о балансе баллов или текущих акциях.

Для идентификации клиента в таких системах, помимо предложенных в теме номера страховой карты или телефона, широко используются QR-коды и штрих-коды: Они являются основным способом считывания виртуальных карт и могут быть быстро сгенерированы и отображены на экране смартфона. QR-коды также используются для быстрой регистрации в программе лояльности, размещая их на чеках или рекламных материалах в магазинах. Технология NFC (Near Field Communication): Позволяет идентифицировать клиента простым прикладыванием смартфона к считывателю на кассе, при условии наличия NFC в телефоне и соответствующего платежного приложения. Bluetooth Low Energy (BLE): В некоторых системах идентификация происходит автоматически при включенном Bluetooth на смартфоне клиента и наличии специального устройства на кассе. Этот метод может потребовать дополнительных инвестиций в кассовое оборудование.

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

Вопрос конфиденциальности персональных данных остается ключевым. Использование таких чувствительных идентификаторов, как СНИЛС или другие национальные номера, для дисконтных карт считается избыточным и несет значительные риски. Компании, работающие с программами лояльности, обязаны соблюдать законодательство о персональных данных, разрабатывать и публиковать политики конфиденциальности, получать явное согласие клиентов на обработку их данных и предоставлять возможность отзыва этого согласия. Для защиты данных используются шифрование и регулярные аудиты безопасности. Совокупность данных, даже если по отдельности они не являются секретными (ФИО, телефон, дата рождения, история покупок), позволяет идентифицировать человека и требует особого обращения.

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

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

← На главную