Bonus-import-tools - Приложение для импорта бонусных баллов.

После запуска, приложение опрашивает каждую минуту подкаталог CSV на наличие *.scv файлов соответствующих названий.

  • users-*.csv : для импорта покупателей
  • transaction-*.csv : для импорта транзакций бонусных баллов

Правила заполнения входных CSV файлов

  • Кодировка файла : UTF-8
  • Разделитель полей : , [Запятая]
  • Разделитель разрядов: . [Точка]
  • Номер телефона (Только Российские номера) = 12 символов в формате E164: +7XXXXXXXXXX [+76543210987]
  • Формат даты : YYYY-MM-DD [2002-03-11]
  • Формат времени : HH:MM:SS [21:05:36]
  • Гендер: M/F [M]
  • Первая строка - названия полей

Значения не должны содержать специальных символов.

Пример файла пользователей

Название файла должно начинаться с "users-". Расширение файла : .csv Пример: users-example.csv

nickname, full_name, card, phone, email, gender
Ivan 1,Иван Петров ,654897321321,+78906543210, user@examplse.com, M
Ivana,Ивана Иванова,654897321123,+78906233212, user2@examplse.com, F

Обязательные поля:

nickname, card, phone

Пример файла транзакций

Название файла должно начинаться с "transaction-". Расширение файла : .csv Пример: transaction-example.csv

user_id, card, phone, summ_total, summ_discount, sum_with_discount, bonus_amount, transaction_date, transaction_time, doc_id
15689, 654897321321,+78906543210,12345.67,123.56,12222.11,121,2002-03-11,21:05:36,чек-100
6578, 654897321123,+78906233212,345.67,45.00,300.67,12,2002-03-12,01:05:36,

Обязательные поля:

user_id или card или phone, bonus_amount

Перед любым запуском настройте переменные окружения в .env

cp .env.example .env
APP_TOKEN="1234567890"  :Токен приложения - Запросите у технической поддержки
POS_TOKEN="0987654321"  :Токен кассы - Запросите у технической поддержки
PRODUCTION=1            :Если не пусто - работает в PRODUCTION среде, иначе в тестовой 
CURRENCY='RUS'          :Код страны  
COUNTRY='RU'            :Код валюты транзакций 
DRY_RUN=                :Если пусто - все транзакции проводятся, иначе - инсценируются, без проведения [НЕ РЕАЛИЗОВАНО] 

Типы установки

  • через python VENV (для разработки)
  • через docker-compose (на сервере)
  • через Nuitka (TODO)(у стороннего клиента)

Требования для установки через pipenv

  • Ubuntu 22.04
  • Python 3.11

Предустановка

apt update && apt upgrade -y
apt install git wget curl build-essential mc tmux -y
apt install libssl-dev libffi-dev libxml2-dev libxslt1-dev zlib1g-dev python3-pip python3-dev -y
pip3 install setuptools && pip3 install pipenv

Установка в venv

git clone https://git.auk.su/dinect-public/bonus-import-tools
cd bonus-import-tools
pip install -r requirements.txt

Требования для установки через docker-compose

  • Ubuntu 22.04 / alpine 3.14
  • Docker
  • Docker compose 2.24 +

Предустановка

sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common tmux curl mc wget git -y
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
docker --version

sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

Установка в Docker контейнер

git clone https://git.auk.su/dinect-public/bonus-import-tools
cd bonus-import-tools
docker-compose up -d 

Запуск exe (TODO)

  • Nuitka
Description
bonus-import-tools приложение для импорта бонусных баллов
Readme 109 KiB
Languages
Python 97.7%
Dockerfile 2.3%