Я создал крошечную программу, которая помогает определять заказы в Demandware с неправильным статусом, например: (статус: новый, открытый, завершенный и статус доставки: не отправлен, отправлен).

Я просто использую order_search из OCAPI и сравниваю результаты с нашей ERP.

Однако теперь я хочу автоматизировать некоторую фиксацию статуса, для чего мне потребовалось бы использовать вызовы / orders / {order_no} GET и PATCH, однако когда я это сделаю, я получаю следующее сообщение:

{ type: 'AccessWithoutUserForbiddenException',
 message: 'An authenticated user is required in order to access resource.' }

Согласно документации, OAUTH для order_search использует: «Аутентификацию через токен OAuth.», Однако в orders / {order_no} используется: «Аутентификация через токен OAuth. Требуется действующий пользователь».

Итак, какова была бы правильная стратегия, чтобы стать действующим пользователем?

6
Niels Robin Aagaard 26 Ноя 2016 в 08:20

2 ответа

Лучший ответ

Допустимый пользователь для получения токенов oAuth является пользователем Business Manager. Поэтому, пожалуйста, войдите в Business Manager, создайте нового пользователя для своих вариантов использования и предоставьте необходимые разрешения.

После этого вы можете запускать определенные ресурсы.

Кристиан

4
Christian Meyer 28 Ноя 2016 в 09:16

Если вы используете account.demandware.com в качестве хоста, он выдаст ошибку ниже

{error: 'unauthorized_client', error_description: 'Client id \' xxxxxxxxxxxxxxxxxxx \ 'имеет недопустимые учетные данные для использования типа предоставления \' urn: requireware: params: oauth: grant-type: client-id: dwsid: dwsecuretoken \ '.' }

Вместо этого вы можете изменить хост на свой хост песочницы. И попробуйте еще раз. Он должен работать. Я тоже столкнулся с той же проблемой.

const key = new Buffer('business_manager_email_id' + ":" + 'business_manager_pwd' + ":" + 'client_pwd').toString("base64");
const options = {
    url: 'https://<sandbox_host>/dw/oauth2/access_token?client_id=your_client_id',
    method: "POST",
    headers: {
      'Authorization': "Basic " + key,
      "Content-Type": "application/x-www-form-urlencoded",
    },
    body: "grant_type=urn:demandware:params:oauth:grant-type:client-id:dwsid:dwsecuretoken"
  };
0
Sebashish 14 Янв 2020 в 14:21