067-stenovaru-leftovers¶
Description
Обновляет остатки по магазинам розничной сети oboi.ru на сайте STENOVA.RU
перейти на страницу проекта в git
Documentation python3.11
docker
kubernetes
- данные из HTTP метода 1С sklad/read/run
- в environment вынесены ключи и фильтры - настраивай в кубике
- DEBUG - выведет построчно [store id, article, count]
- kubernetes > cron
В личном кабинете Стеновы есть тех документация
Про обработку ошибок в API
- Похоже на то, что любая ошибка, включая несопотавление по артикулу приводит к пропуску обработки всей задачи. Т.е. менеджерам придется контролировать корректность номенклатуры в цепочке опт-розница. В почте сообщения об ошибках переадресовываю на менеджеров.
Technical task
Мы пропишем склады в Вашу учетную запись, создадим Токен и отправим Вам. Далее Вам требуется написать веб-сервис, который будет генерировать и отдавать на наш новый сайт файл с остатками (пример файла во вложении, инструкция ниже).
Данные в инструкции (токен и код склада) носят информационный характер, по факту токен и идентификаторы складов будут отличаться и должны быть уникальными. Загрузка остатков по API:
Для реализации механизма загрузки остатков по API необходимо привлечение технического специалиста Магазина.
На стороне Магазина разрабатывается веб-сервис, который с заданной периодичностью передает файл с остатками из учетной системы на сайт Стенова. Шаблон файла доступен в ЛК, в разделе «Загрузка остатков». Файл формируется силами Магазина строго по предоставленному шаблону.
Необходимые параметры:
– Тип запроса: POST – URL-адрес: https://new.stenova.ru/api/upload_balance/ - Внимание URL – тестовый! Потом просто поменяем на боевой! – Параметры:
token – Токен (ЛК – Загрузка остатков – Интеграция по API)
balance – Файл с актуальными остатками
Результат загрузки остатков появится в ЛК, в блоке «История загрузки остатков». А так же в ответе на выполняемый POST запрос.
Interpretation
- напрямую из 1С из за отсутствия ms office, думаю не стоит
- использовать существующий HTTP метод sklad/read/run - данных хватает
- перечень складов и ключей к ним хранить в environment - крутиться будет на кубе, проще добавлять магазины
- перечень производителей хранить в enfironment - та же причина
- предусмотри обработку ошибок доступов в 1С и API
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import xlsxwriter
# Create a workbook and add a worksheet.
workbook = xlsxwriter.Workbook('Example.xlsx')
worksheet = workbook.add_worksheet()
# Some data we want to write to the worksheet.
expenses = (
[ "Код склада", "Артикул", "Количество"],
[ "об-1", "283441", 20],
[ "об-1", "283442", 10],
[ "об-1", "283443", 5],
[ "об-1", "283447", 25],
[ "мксд-1", "283441", 30],
[ "мксд-1", "283442", 30],
[ "мксд-1", "283443", 30],
[ "мксд-1", "283447", 30],
)
# Start from the first cell. Rows and columns are zero indexed.
row = 0
col = 0
# Iterate over the data and write it out row by row.
for warehouse, article, cost in (expenses):
worksheet.write(row, col, warehouse)
worksheet.write(row, col + 1, article)
worksheet.write(row, col + 2, cost)
row += 1
workbook.close()