You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

mshop_refill.md 4.5KB

Подтоварка, мини-приложение

Описание

Мобильное web-приложение, для проведения подтоварки в магазине.

Термины

  • Задание на подтоварку (task) - это группа товаров, которые нужно вынести в торговый зал.
  • Товар (item) - одиночный товар в подтоварке. Имеет флаг “done” (выполнено)

Функционал

  1. Форма “задание подтоварки” - товары подтоварки. Содержит:
    • текстовый заголовок
    • список товаров:
      • картинка, артикул, наименование
      • цвет, размер
      • цена_план, цена_текущая, скидка, остаток
      • количество к обработке (нужно подтоварить)
      • переключатель выполнения Действия:
    • печать ценников (выбранный товар)
    • фильтр по товарной группе, текстовый поиск
    • сканирование
    • выполнить выбранные позиции (done = true)

Авторизация

см. описание здесь

реализована на уровне proxypatcher

API

Стандартный ответ API

{
	"result": true,
	"message": "текст ошибки, если есть иначе пусто"
}

1. Первая очередь методов


1.1 Получение задачи


GET /mshop/{dep}/refill/task

query-параметры:

  • task_id: “task_id”

Значения для task_id:

  • daily - за вчера и за сегодня (2 дня)
  • week - за последнюю неделю
  • YYYY-MM-DD/YYYY-MM-DD - за выбранный период
  • filter_mod: “by_sales | by_incoming”

Возможные значения filter_mod=by_sales -> вернуть товары у которых поле дата продажи в отчете подтоварка не пустое filter_mod=by_incoming -> вернуть товары у которых поле дата поступления в отчете подтоварка не пустое filter_mod=* -> любые возможные другие значения не учитывать

ответ (вернуть как JSON):

{
	"result": true,
	"message": "",
	"task": {
		"id": "task_id",
		"title": "Подтоварка м001",
		"dep": "001",
		"comment": "коммент",
		"items": [
			{
				"id": "id позиции",
				"product_id": "код товара для печати ценника",
				"article": "123-091",
				"color": "цвет",
				"size": "размер",
				"sector": "сектор",
				"group": "группа",
				"image": "https://.../112209-0.jpg",
				"title": "ТАПОЧКИ",
				"base_price": 1000,
				"price": 800,
				"disc": "20%",
				"label_color": "Белый | Красный", 
				"rest": 4,
				"qty": 3,
				"done": false,
				"done_updated": "2026-01-01 12:21:11"
			}
		]
	}
}

1.2 Обновление состояния элемента


POST /mshop/{dep}/refill/update_item

query-параметры:

  • task_id: “task_id”
  • item_id: “item_id”

REQUEST BODY

{
	"done": true
}

done: true | false

ответ:

{
	"result": true,
	"message": "",
	"update": {
		"items": [
			{
				"id": "item_id",
				"done": true,
				"done_updated": "2026-01-01 12:12:00"
			}		
		]
	}
}

В ответе есть блок update - фреймворк обновляет данные в списке по указанию бэка. id - ключ, остальные поля - новые значения которые нужно обновить.

1.3 Сканирование товара (поиск по коду, серии, шк)


GET /mshop/{dep}/refill/find_item

query-параметры:

  • task_id: “task_id”
  • code: “код хар-ки | серия | шк | маркировка”

ответ:

{
	"result": true,
	"message": "",
	"item_id": "id"
}
  • result: true | false
  • message: “” | “код не опознан” | “товар не в задании”
  • item_id: id позиции в списке товаров (соответствует task.items.id) если найден