Публикация

подписчиков: 4 Подписаться
0
Avatar

Идентификация пользователя при отправке заказа

Подскажите пожалуйста!

Вот есть у меня в интернет-магазине новый заказ. Покупателя идентифицирует однозначно имэйл. Для того, чтобы отправить заказ по API в МойСклад, мне надо:

  • получить список всех контрагентов
  • для каждого из них получить список контактных лиц (хоть их и по одному)
  • проверить, нет ли данного email среди этого всего
  • если есть, то понятно, если нет, - завести нового контрагента, потом на него вешать заказ

Все верно? Довольно тяжеловесно получается...

Eri Meilis

Войдите в службу, чтобы оставить комментарий.

Комментариев: 7

0
Avatar

Здравствуйте, информация по фильтрации контрагентов приведена в документации к апи: https://online.moysklad.ru/api/remap/1.1/doc#header-%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D1%8B-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D1%8B%D0%B5-%D0%B4%D0%BB%D1%8F-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8 

Для того, чтобы отправить заказ по API в МойСклад, мне надо:

1. Выполнить фильтрацию контрагента, пользуясь фильтрацией по email

2. Создать контрагента, если контрагент не найден

3. Создать заказ, указав контрагента

 

Максим 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

А можно пример запроса GET с фильтрацией?

Неочевидно из документации... Так?:

https://online.moysklad.ru/api/remap/1.1/entity/counterparty?email=test@test.com
Eri Meilis 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Для фильтрации необходимо использовать параметр filter

 

Например, 

https://online.moysklad.ru/api/remap/1.1/entity/counterparty?filter=email=test@test.com

Но в данном случае, фильтрация будет производиться по email, указанному в карточке контрагента. Отфильтровать по email контактных лиц не получиться.

В МоемСкладе email не является идентификатором контрагента. Если в вашей системе email однозначно идентифицирует контрагента, то его лучше записывать в карточку контрагента, а не в контактное лицо (либо дублировать), тогда будет возможна фильтрация по email. 

Dtrufanov 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Понятно! А filter работает, как "и" или как "или"?

https://online.moysklad.ru/api/remap/1.1/entity/counterparty?filter=name=Иван;phone=89269269222;email=vanyan@mail.krut - вот такой запрос будет искать и имя, и телефон, и email?

Есть возможность искать "или"?

Eri Meilis 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Получается фильтровать, получается создавать.

Но при создании нового пользователя есть проблема.

Ответ сервера:

TTP/1.1 200 OK
  Server: nginx/1.10.3
  Date: Tue, 25 Sep 2018 10:31:53 GMT
  Content-Type: application/json;charset=utf-8
  Content-Length: 2253
  Connection: close
  Vary: Accept-Encoding
  Cache-Control: max-age=0
  X-Lognex-Reset: 0
  X-Lognex-Retry-After: 0
  X-Lognex-Retry-TimeInterval: 5000
  X-RateLimit-Remaining: 99
  X-RateLimit-Limit: 100
   
  {"meta":{"href":"https://online.moysklad.ru/api/remap/1.1/entity/counterparty/38897f5d-c0ae-11e8-9ff4-34e8001b5310","metadataHref":"https://online.moysklad.ru/api/remap/1.1/entity/counterparty/metadata","type":"counterparty","mediaType":"application/json","uuidHref":"https://online.moysklad.ru/app/#company/edit?id=38897f5d-c0ae-11e8-9ff4-34e8001b5310"},"id":"38897f5d-c0ae-11e8-9ff4-34e8001b5310","accountId":"ae73ba78-1b35-11e6-7a69-971100002394","owner":{"meta":{"href":"https://online.moysklad.ru/api/remap/1.1/entity/employee/905a99a3-916a-11e6-7a69-8f55007e012d","metadataHref":"https://online.moysklad.ru/api/remap/1.1/entity/employee/metadata","type":"employee","mediaType":"application/json","uuidHref":"https://online.moysklad.ru/app/#employee/edit?id=905a99a3-916a-11e6-7a69-8f55007e012d"}},"shared":false,"group":{"meta":{"href":"https://online.moysklad.ru/api/remap/1.1/entity/group/64306afa-8173-11e6-7a31-d0fd00098961","metadataHref":"https://online.moysklad.ru/api/remap/1.1/entity/group/metadata","type":"group","mediaType":"application/json"}},"version":0,"updated":"2018-09-25 13:31:53","name":"Eri Meilis","externalCode":"oUfTPOB7iM3J55ko4D1Tp0","archived":false,"created":"2018-09-25 13:31:53","companyType":"legal","email":"mice@admice.com","phone":"+79264000466","accounts":{"meta":{"href":"https://online.moysklad.ru/api/remap/1.1/entity/counterparty/38897f5d-c0ae-11e8-9ff4-34e8001b5310/accounts","type":"account","mediaType":"application/json","size":0,"limit":100,"offset":0}},"tags":[],"contactpersons":{"meta":{"href":"https://online.moysklad.ru/api/remap/1.1/entity/counterparty/38897f5d-c0ae-11e8-9ff4-34e8001b5310/contactpersons","type":"contactperson","mediaType":"application/json","size":0,"limit":100,"offset":0}},"notes":{"meta":{"href":"https://online.moysklad.ru/api/remap/1.1/entity/counterparty/38897f5d-c0ae-11e8-9ff4-34e8001b5310/notes","type":"note","mediaType":"application/json","size":0,"limit":100,"offset":0}},"state":{"meta":{"href":"https://online.moysklad.ru/api/remap/1.1/entity/counterparty/metadata/states/ae98583d-1b35-11e6-7a69-971100160c12","metadataHref":"https://online.moysklad.ru/api/remap/1.1/entity/counterparty/metadata","type":"state","mediaType":"application/json"}},"salesAmount":0.0}

А json_decode ответа дает NULL (

 

И еще вопрос, - можно ли при создании указать, кто "владелец" (owner)?

Eri Meilis 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Добрый день.

Проверьте корректность передачи всех параметров функции json_decode.

По поводу Вашего вопроса. Уточните владельца чего именно вы хотите указать, владельца пользователя ?

Дмитрий Черепанский 0 проголосовали
Действия с комментариями Постоянная ссылка