Данные Учет3Д на своём сайте и в Excel

Ваш сайт или Excel могут получать данные мастерской через API, интерфейс для программ. Вы выбираете, какие разделы доступны ключу: витрина, заказы, отзывы, заявки с витрины или остатки склада.

Учет3Д разрешает владельцу мастерской автоматически получать свои данные из выбранных разделов через этот штатный API, в пределах ограничений на этой странице. Ключ работает только для чтения и не открывает данные других мастерских.

Ключ храните на своём сервере, не вставляйте в код страницы

Запросы к заказам, данным покупателей, отзывам, заявкам и складу выполняйте на своём сервере или из закрытой книги Excel. Из браузера эти разделы недоступны.

Браузер может получить только открытый каталог витрины: создайте для этого отдельный ключ с единственным разделом «Витрина», без личных данных. Ключ с любыми другими разделами из браузера не работает даже при запросе каталога. Для сайта рекомендуем хранить и такой ключ на сервере.

Ключ работает, пока у мастерской есть действующий доступ к Учет3Д, например пробный период или оплата. После окончания доступа запрос получит понятный отказ. Отозвать ключ можно и после окончания доступа.

Как получить ключ

Откройте «Свой сайт и Excel» в настройках или пройдите по шагам:

  1. Войдите как владелец мастерской. Сотрудникам создание и отзыв ключей пока недоступны.
  2. Откройте «Профиль и настройки» → «Подключения» → «Свой сайт и Excel».
  3. Нажмите «Создать ключ» и укажите название, например «Сайт мастерской» или «Excel: заказы».
  4. Выберите разделы, которые нужны программе. Ключ без раздела «Заказы» не сможет получить заказы.
  5. При необходимости отметьте «Включить личные данные покупателей». Без этой галочки имена, контакты и тексты покупателей не передаются.
  6. Отметьте поручение «Поручаю Учет3Д передавать моей программе данные из выбранных разделов» и нажмите «Создать ключ».
  7. Скопируйте ключ и сохраните его. Он показан один раз: после закрытия окна получить тот же ключ снова нельзя.

Для сайта храните ключ на сервере и добавляйте его к запросам там. Не вставляйте ключ в код открытой страницы, адрес ссылки или общедоступную таблицу. Книга Excel хранит ключ в запросе: не публикуйте и не передавайте такую книгу другим людям.

Контакты покупателей доступны только Вашей программе. Храните ключ на сервере и не размещайте контакты в открытом доступе. Галочка личных данных не разрешает публиковать покупателей на сайте. Почта из карточки клиента не передаётся; в контакте заявки с витрины может быть почта, указанная самим покупателем при отправке заявки.

Запрос из командной строки

Адрес сайта: учет3д.рф, тот же адрес латиницей: xn--3-htbb6cdy.xn--p1ai.

Пример для программы curl. Замените ВАШ_КЛЮЧ сохранённым значением. Ключ передаётся в заголовке Authorization, не в адресе запроса.


curl --fail-with-body \
  'https://xn--3-htbb6cdy.xn--p1ai/api/public/v1/products?page=1&pageSize=50' \
  -H 'Authorization: Bearer ВАШ_КЛЮЧ' \
  -H 'Accept: application/json'

Чтобы прочитать заказы, замените products на orders. У ключа должен быть выбран соответствующий раздел.

Все ответы содержат массив записей data и сведения о странице pagination:


{
  "data": [],
  "pagination": { "page": 1, "pageSize": 50, "hasMore": false }
}

Здесь показан пример пустого ответа. hasMore: true означает, что нужно запросить следующую страницу. Увеличивайте page на 1, сохраняя тот же pageSize, пока hasMore не станет false.

Заказы в Excel через Power Query

Power Query, встроенное средство Excel для получения данных, может читать заказы и обновлять таблицу по команде «Обновить».

  1. Создайте ключ с разделом «Заказы».
  2. В Excel откройте «Данные» → «Получить данные» → «Из других источников» → «Пустой запрос». Названия пунктов могут отличаться в Вашей версии Excel.
  3. Откройте «Расширенный редактор» и вставьте код ниже. Замените ВАШ_КЛЮЧ сохранённым ключом.
  4. Если Excel спросит способ подключения к этому сайту, выберите «Анонимный»: ключ уже передаётся в заголовке запроса.
  5. Нажмите «Готово», затем «Закрыть и загрузить».

let
    ApiKey = "ВАШ_КЛЮЧ",
    BaseUrl = "https://xn--3-htbb6cdy.xn--p1ai/",
    GetPage = (PageNumber as number) as record =>
        Json.Document(Web.Contents(BaseUrl, [
            RelativePath = "api/public/v1/orders",
            Query = [page = Text.From(PageNumber), pageSize = "100"],
            Headers = [Authorization = "Bearer " & ApiKey, Accept = "application/json"]
        ])),
    Pages = List.Generate(
        () => [Number = 1, Response = GetPage(1)],
        each [Response] <> null,
        each if [Response][pagination][hasMore]
            then [Number = [Number] + 1, Response = GetPage([Number] + 1)]
            else [Number = [Number] + 1, Response = null],
        each [Response][data]
    ),
    Orders = Table.FromRecords(List.Combine(Pages))
in
    Orders

Запрос собирает все страницы заказов. Вложенный список items содержит позиции заказа: раскройте его в редакторе, если нужна отдельная строка для каждой позиции. Для витрины замените orders на products и выберите раздел «Витрина» у ключа.

Описание используемых команд у Microsoft: Web.Contents, запрос к сайту и List.Generate, последовательное получение страниц.

Разделы и поля ответа

Все адреса начинаются с /api/public/v1/. Даты и время передаются строками ISO 8601, например 2026-10-08T09:30:00Z, где Z означает время по Гринвичу. Отсутствующее значение может быть null.

Раздел ключа Адрес Поля каждой записи без личных данных
Витрина products id, name, price, priceMode, priceMax, currency, photoUrl, galleryUrls, inStock, available, createdAt
Заказы orders id, orderNumber, status, paymentStatus, orderDate, dueDate, totalAmount, paidAmount, createdAt, updatedAt, items
Отзывы reviews id, orderId, productId, rating, moderationStatus, createdAt
Заявки с витрины requests id, kind, status, orderId, totalPrice, totalPriceMax, createdAt, handledAt, items
Остатки склада stock id, kind, name, unit, quantity, reserved, available

При включённых личных данных добавляются следующие поля:

Раздел Дополнительные поля
Заказы client: объект с name, phone, shippingAddress
Отзывы text: текст отзыва
Заявки clientName, contact, comment, custom

В заявке contact - строка с контактом, который оставил покупатель. Объект custom для индивидуального расчёта содержит fileName, sizeMm с размерами x, y, z в миллиметрах, volumeCm3 и quantity. Сами модели, файлы, ссылки для доступа и примечания к заказам не передаются.

Ограничения и причины отказа

Как остановить доступ

В карточке «Свой сайт и Excel» найдите ключ по названию и нажмите «Отозвать ключ». Появится отметка «Ключ отозван», а следующие запросы с ним получат отказ. Если отзыв не удался, сообщение останется рядом с ключом и действие можно повторить.

В списке видно последнее использование ключа. Чтобы заменить ключ или изменить набор разделов, создайте новый, обновите его в своей программе и отзовите прежний.