MoySklad API Jvec

Прокси-сервер для упрощённой работы с API МоегоСклада. Принимает запросы, подставляет авторизацию, обрабатывает пагинацию и повторяет запросы при ошибках.

Вход в панель

Доступ только для авторизованных пользователей. Регистрация не требуется.

Быстрый старт (Python)

Прокси принимает запросы к api.moysklad.ru через единый endpoint. Все методы требуют токен авторизации в заголовке Authorization: Bearer <token>. Полная документация API: dev.moysklad.ru.

GET Список товаров (с пагинацией)

Получение списка всех товаров с автоматической обработкой пагинации. В отличие от прямого 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'])}")

POST Создание заказа покупателя

Создание нового заказа с автоматическим резервированием позиций. Прокси-сервер проверяет доступность остатков перед отправкой.

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())

GET Проверка остатков

Получение остатков по конкретному товару на всех складах. Метод агрегирует данные из нескольких эндпоинтов 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']}")

PUT Обновление цены товара

Массовое обновление цен с защитой от случайной перезаписи. Прокси логирует все изменения и позволяет откатить последнее обновление.

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. Для получения доступа к панели обратитесь к администратору.