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