Публикация

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

Получение всех customentity одним запросом.

В заказах есть дополнительные поля. Я их получаю одним запросом с помощью /entity/customerorder/metadata/

Поле может быть типа customentity. И таких полей может быть много. В моём случае 3.

Я должен предоставить пользователям нашей телефонии выбор в каких полях какие данные вставлять. Например "Источник"="Сайт". 

Что бы получить список возможных customEntities, которые можно указать в каждом поле - приходится делать отдельный запрос. в итоге получается N+1 запрос.

Если в проекте будет 10 таких полей - я сделаю 11 запросов и нас заблокируют?

Как можно получить список всех customentity в проекте, что бы обойтись всего двумя запросами?

admin

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

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

0
Avatar

Это получение всех названий полей. А как получить их возможные значения? 

То что вы прислали выдаёт (в моём случае) список:

Источник запроса, 

Способ Доставки, 

Способ Оплаты

 

А мне нужно получить:

Курьером по Киеву;Новая Почта;Самовывоз

OLX;Hotline;Онлайн заказ на сайте;Обратный звонок;Форма Trade-in;Сайт;

Наличными;Наложенный платеж;Оплата на карту;Оплата через терминал

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

Ок, может я что-то не понял. Вот что я получаю, отправив запрос туда, куда Вы говорите: /entity/companysettings/metadata

https://pastebin.com/9hdtjGL8

Тут мы видим, что у заказа есть 4 поля: "Время доставки", "Источник запроса", "Способ Доставки", "Способ Оплаты"

И так: мне нужно, что бы пользователь заполнил форму и указал, например, какие данные он хочет вставлять в поле "Источник запроса". Это поле не текстовое - это "customentity". Мне нужно понять какие значения этого поля могут быть.

Сейчас я вижу что у "Источник запроса" есть entityMeta (/entity/customentity/01e3be4f-914a-11e7-7a31-d0fd0021ff04). и делаю отдельный запрос что бы получить вот это: https://pastebin.com/353nLD8z

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

Входящий;OLX;Hotline;Онлайн заказ на сайте и так далее...
Но это только одно поле, а у этого клиента их 3. В итоге я делаю 4 запроса.

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

1) Запрос /entity/companysettings/metadata возвращает пользовательские справочники, а не доп.поля.

2) Далее необходимо получить возможные значения пользовательских справочников по каждому из справочников

По-другому сделать не получится.

 

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

Спасибо. Жаль. Хотел экономить запросы. Хотя это меню будет открываться у нас довольно редко.

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

вы можете сделать нормально (прокешировать эти данные у себя и обновлять через crontab раз в час, скажем), и не пихать запросы.

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