Доступ
Изоляция брендов
На одной платформе живёт несколько независимых магазинов. Ваш ключ работает ровно в одном из них, и это правило применяется к каждому запросу, а не к интерфейсу.
Как платформа понимает, чей это запрос
Бренд берётся из ключа. Ключ выпускается для конкретного бренда, и эта привязка — главный источник истины. Ничего дополнительно передавать не нужно.
Два разных поведения при попытке достать чужое
Платформа ведёт себя по-разному в зависимости от того, как вы запрашиваете данные, и это важно понимать при отладке.
В списках чужие записи просто отсутствуют. Ошибки не будет: вы получите 200 и выборку без них. Именно поэтому пустой список — это нормальный ответ, а не признак поломки.
При обращении по идентификатору платформа отвечает отказом. Причём в одних местах это 403 с прямым указанием, что бренд не тот, а в других — 404 «не найдено». Второе сделано намеренно: так платформа не подтверждает, что запись с таким номером вообще существует.
Почему список пустой
Три причины, в порядке частоты:
- Ключ выпущен для другого бренда. Проверьте у владельца платформы, для какого бренда он выдан.
- Вы передали
X-Site-Sourceс чужим или несуществующим кодом бренда — доступ сузился до пустоты. - Данные действительно отфильтрованы. Самый частый случай — список заказов, который по умолчанию скрывает неоплаченные.
// Возьмите один заказ и посмотрите на код бренда в нём
const [заказ] = await запрос("/orders/admin/all?limit=1&includeUnpaid=1");
console.log(заказ?.siteSource); // должен совпадать с кодом вашего брендаОбщие записи
В платформе есть исторические записи без привязки к бренду — они остались с тех времён, когда магазин был один. Такие записи по умолчанию видны, но если вы передали заголовок бренда, они отфильтровываются: иначе старые заказы одного магазина протекали бы в отчёты другого.