2020-05-04 16:32:09 +03:00
2020-05-04 16:32:09 +03:00
2020-02-13 22:34:17 +03:00
2020-05-04 16:32:09 +03:00
2020-05-04 16:32:09 +03:00
2020-01-28 19:58:29 +03:00
2020-05-04 16:32:09 +03:00
2020-05-04 16:32:09 +03:00
2020-05-04 16:32:09 +03:00
2019-11-11 17:44:17 +03:00
2020-05-04 16:32:09 +03:00
2020-05-04 16:32:09 +03:00
2020-02-13 22:34:17 +03:00
2020-05-04 16:32:09 +03:00

Digital Store

Digital Store - это настраиваемый интернет-магазин на платформе NodeJS для продажи ваших цифровых товаров.
Демонстрация функционирования интернет-магазина.

GitHub package.json version (branch) GitHub release (latest by date) GitHub All Releases GitHub top language GitHub repo size
dependencies Status badge devDependency Status badge GitHub

🐬 Установка через Docker:

Настройка платежной системы:

В скрипте на данный момент доступна система оплаты через сервис QIWI, чтобы настроить оплату в вашем магазине следуйте следующим шагам:

  • Перейдите на сайт QIWI API и создайте пару ключей авторизации. Сохраните секретный ключ.
  • Если вы хотите настроить оформление формы приемов перевода, то перейдите сюда и скопируйте значение переменной themeCode и вставьте это значение по адресу config/routes/payments/qiwi.payment.js.
  • Секретный ключ нужно указать в поле переменной среды QIWI_SECRET_KEY.
  • Редирект после оплаты товара через QIWI на локальный адрес localhost:3000 работать не будет, необходим домен.

Настройка почтового сервиса:

Для отдачи данных товара на почту покупателя после покупки товара, нужно настроить nodemailer:

  • Настройте почтовый сервис по адресу config/nodemailer.config.js:
host: "smtp.mail.ru",
port: 465,
secure: true, // true для 465, false для остальных.
  • Затем укажите переменные среды EMAIL_LOGIN и EMAIL_PASSWORD.

Настройка системы комментариев:

В интернет магазине используется система комментариев Disqus:

  • Добавьте свой домен на их сайт и замените embed код по адресу dist/public/js/disqus.js.

Переменные среды:

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

Описание переменных:

Переменная Описание
DATABASE_URI Подключение к БД MongoDB
DATABASE_NAME Имя БД
EMAIL_LOGIN Логин от почты для отправки данных покупателю
EMAIL_PASSWORD Пароль от почты
QIWI_SECRET_KEY Секретный ключ QIWI для работоспособности системы оплаты

.env файл:

DATABASE_URI=
DATABASE_NAME=
QIWI_SECRET_KEY=
EMAIL_LOGIN=
EMAIL_PASSWORD=

API:

API представляет из себя различные URL, которые отвечают данными только в формате JSON. Здесь описаны основные GET запросы на сервер для получения данных:

Для просмотра всех товаров которые существуют в магазине отправляется запрос:

https://store-name.com/api/items

Ответ:

;[
  {
    _id: '5e15dbc415303a1980cd77a0',
    title: 'Тестовый товар №1',
    count: 0,
    price: 1,
    category: 'steam',
    description: '-',
    date: '2020-01-08T13:40:20.353Z',
  },
  {
    _id: '5e15dcb4138c3339bcbc3719',
    title: 'Тестовый товар №2',
    count: 0,
    price: 1,
    category: 'uplay',
    description: '-',
    date: '2020-01-08T13:44:20.940Z',
  },
]

Для просмотра товаров в интересующей категории отправляется запрос:

https://store-name.com/api/items/{category}

Ответ:

;[
  {
    _id: '5e15dbc415303a1980cd77a0',
    title: 'Тестовый товар №1',
    count: 0,
    price: 1,
    category: 'steam',
    description: '-',
    date: '2020-01-08T13:40:20.353Z',
  },
  {
    _id: '5e1ccf30d5b894228c86385a',
    title: 'Тестовый товар №2',
    count: 10,
    price: 1,
    category: 'steam',
    description: '-',
    date: '2020-01-13T20:12:32.814Z',
  },
]

Для просмотра информации о всех категориях отправляется запрос:

https://store-name.com/api/categories

Ответ:

;[
  {
    _id: '5df64563309e691f2c33d400',
    title: 'uplay',
    img: 'img-1576349954743.svg',
    type: 'type',
    format: 'format',
  },
  {
    _id: '5e04ea023625771abc75fd14',
    title: 'fortnite',
    img: 'img-1576349989720.svg',
    type: 'type',
    format: 'format',
  },
]

Для просмотра информации о интересующей категории отправляется запрос:

https://store-name.com/api/category/{category}

Ответ:

;[
  {
    _id: '5df64563309e691f2c33d400',
    title: 'uplay',
    img: 'img-1576349954743.svg',
    type: 'type',
    format: 'format',
  },
]

Для просмотра данных всех товаров отправляется запрос: Нужна авторизация для администратора.

https://store-name.com/api/items/data

Ответ:

;[
  {
    _id: '5e15dbc415303a1980cd77a0',
    title: 'Тестовый товар №1',
    data: ['login:pass', 'login:pass', 'login:pass'],
  },
  {
    _id: '5e175c63b479600ac493ce88',
    title: 'Тестовый товар №2',
    data: ['login:pass', 'login:pass', 'login:pass'],
  },
]

Для просмотра покупателей отправляется запрос: Нужна авторизация для администратора.

https://store-name.com/api/buyers

Ответ:

;[
  {
    _id: '5e1c97701b619a31f010062c',
    bill_id: '9244e5ae-560a-432a-9882-bc1b941c8cca',
    email: 'test-email@mail.com',
    method: 'qiwi',
    date: '2020-01-13T18:13:38.623+03:00',
    amount: 2,
    data: ['login:pass', 'login:pass'],
  },
]

Для просмотра списка иконок отправляется запрос: Нужна авторизация для администратора.

https://store-name.com/api/icons

Ответ:

;[
  'img-1576349954743.svg',
  'img-1576349989720.svg',
  'img-1576420937629.svg',
  'img-1576421960189.svg',
]

Требования:

  • Node.js v7.6.0 или выше

Лицензия:

MIT

Description
Ваш интернет магазин цифровых товаров с панелью управления.
Readme MIT 1.4 MiB
Languages
JavaScript 99.7%
HTML 0.3%