Прокси-сервер для упрощённой работы с API МоегоСклада. Принимает запросы, подставляет авторизацию, обрабатывает пагинацию и повторяет запросы при ошибках.
Прокси принимает запросы к api.moysklad.ru через единый endpoint.
Все методы требуют токен авторизации в заголовке Authorization: Bearer <token>.
Полная документация API: dev.moysklad.ru.
Получение списка всех товаров с автоматической обработкой пагинации. В отличие от прямого API, метод сам обходит все страницы и возвращает полный массив.
import requests
response = requests.get(
"https://mysklad-api.com/api/remap/1.2/entity/product",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Accept": "application/json;charset=UTF-8",
"Accept-Encoding": "gzip"
},
params={"limit": 100, "offset": 0}
)
products = response.json()
print(f"Найдено товаров: {len(products['rows'])}")
Создание нового заказа с автоматическим резервированием позиций. Прокси-сервер проверяет доступность остатков перед отправкой.
order_data = {
"name": "Заказ №1245",
"organization": {
"meta": {
"href": "https://mysklad-api.com/api/remap/1.2/entity/organization/ORG_UUID",
"type": "organization",
"mediaType": "application/json"
}
},
"agent": {
"meta": {
"href": "https://mysklad-api.com/api/remap/1.2/entity/counterparty/AGENT_UUID",
"type": "counterparty",
"mediaType": "application/json"
}
},
"positions": [
{
"quantity": 3,
"price": 1500.00,
"assortment": {
"meta": {
"href": "https://mysklad-api.com/api/remap/1.2/entity/product/PRODUCT_UUID",
"type": "product",
"mediaType": "application/json"
}
}
}
]
}
response = requests.post(
"https://mysklad-api.com/api/remap/1.2/entity/customerorder",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json;charset=UTF-8",
"Accept-Encoding": "gzip"
},
json=order_data
)
print(response.json())
Получение остатков по конкретному товару на всех складах. Метод агрегирует данные из нескольких эндпоинтов API, упрощая аналитику.
response = requests.get(
"https://mysklad-api.com/api/remap/1.2/report/stock/all",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Accept": "application/json;charset=UTF-8",
"Accept-Encoding": "gzip"
},
params={
"filter": "assortment=https://mysklad-api.com/api/remap/1.2/entity/product/PRODUCT_UUID"
}
)
stock = response.json()
for row in stock["rows"]:
print(f"Склад: {row['name']}, Доступно: {row['stock']}")
Массовое обновление цен с защитой от случайной перезаписи. Прокси логирует все изменения и позволяет откатить последнее обновление.
update = {
"salePrices": [
{
"value": 1990.00,
"priceType": {
"meta": {
"href": "https://mysklad-api.com/api/remap/1.2/context/companysettings/pricetype/PRICE_UUID",
"type": "pricetype",
"mediaType": "application/json"
}
}
}
]
}
response = requests.put(
"https://mysklad-api.com/api/remap/1.2/entity/product/PRODUCT_UUID",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json;charset=UTF-8",
"Accept-Encoding": "gzip"
},
json=update
)
Прокси-сервер не хранит токены авторизации. Все запросы передаются в оригинальный API. Официальная документация МоегоСклада: dev.moysklad.ru. Для получения доступа к панели обратитесь к администратору.