1b.app
Скопирована ссылка -

Как заполнить опции процесса автоматически?

У меня есть фильтра, которые влияют на цену товара, для каждого товара это может быть разный фильтр.
Заказ прилетает с cs-cart - заполняется доп поле продукта процесса. Я настроил, чтобы выводились все доп поля, которые связаны с фильтром (таких штук 50) + убрал отображение незаполненных.
Для ручного создания - решает поле "Опции процесса" + оно заполняет через разделитель все опции в доп поле процесса.

Теперь у меня задача такая:
Есть документ, в который нужно вывести опции товара. Я могу заполнить их с доп поля, но это только при ручном создании, так как когда заказ прилетает с сайта, то заполнены только доп поля, а опции не заполняются.
Так вот, вопрос в том как заполнить опции, если заказ пришёл с сайта?

Ответы:

В них нужно записать фильтр: значение, по каждому с новой строки вроде?
Можно действие сделать, которое возьмёт список выбранных дополнительных полей и на их основании (по тем где есть значения) - запишет всё в опции.
17.09.2021, 14:40

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия

Тындык Максим Вадимович

OneBox production

Администратор писал/а:
В них нужно записать фильтр: значение, по каждому с новой строки вроде?
Можно действие сделать, которое возьмёт список выбранных дополнительных полей и на их основании (по тем где есть значения) - запишет всё в опции.

вариант подходит, только я не знаю как быть с ценой, то есть, брать с наценки или не менять, так как цена уже записана...Тут нужно подумать над логикой, возможно предусмотреть просто 2 варианта либо брать с наценки, либо не менять то что уже вписано
17.09.2021, 17:45

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия

Суханицкий Андрей

Интегратор

Клиент
Integrator CRM писал/а:

Тындык Максим Вадимович

OneBox production

Администратор писал/а:
В них нужно записать фильтр: значение, по каждому с новой строки вроде?
Можно действие сделать, которое возьмёт список выбранных дополнительных полей и на их основании (по тем где есть значения) - запишет всё в опции.

вариант подходит, только я не знаю как быть с ценой, то есть, брать с наценки или не менять, так как цена уже записана...Тут нужно подумать над логикой, возможно предусмотреть просто 2 варианта либо брать с наценки, либо не менять то что уже вписано


Сегодня обнаружил проблему с опциями:
Они на сайте заполняются на двух языках, соответственно при импорте заказа https://crm.stylesalon.com.ua/admin/customorder/order/32778/edit/ добавляется новое доп поле и фильтр

Вот поле, которое создалось https://crm.stylesalon.com.ua/admin/shop/orderproductfield/132/
А вот поле, которое нужно заполнять https://crm.stylesalon.com.ua/admin/shop/orderproductfield/9/

Также есть 2 фильтра:
https://crm.stylesalon.com.ua/admin/shop/products/filters/889/control/ - Палітра
https://crm.stylesalon.com.ua/admin/shop/products/filters/34/control/ - Палитра красок

Если правильно понял, то названия на укр берёт только с импорта заказов, так как в получении опций товара только рус названия.

Можем ли получать название параметра не с заказа, а по option_id ?
По option_id отдаёт название на рус так как они отдаются при запросе по продуктам, таким образом не будут плодиться дубли на разных языках и действие, которое мы сделаем, будет правильно ставить опцию, ибо в текущем примере оно не сработает.
19.09.2021, 23:15


вариант подходит, только я не знаю как быть с ценой, то есть, брать с наценки или не менять, так как цена уже записана...Тут нужно подумать над логикой, возможно предусмотреть просто 2 варианта либо брать с наценки, либо не менять то что уже вписано

Самостоятельно решите как вам нужно.

Сегодня обнаружил проблему с опциями:
Они на сайте заполняются на двух языках, соответственно при импорте заказа https://crm.stylesalon.com.ua/admin/customorder/order/32778/edit/ добавляется новое доп поле и фильтр

Вот поле, которое создалось https://crm.stylesalon.com.ua/admin/shop/orderproductfield/132/
А вот поле, которое нужно заполнять https://crm.stylesalon.com.ua/admin/shop/orderproductfield/9/

Также есть 2 фильтра:
https://crm.stylesalon.com.ua/admin/shop/products/filters/889/control/ - Палітра
https://crm.stylesalon.com.ua/admin/shop/products/filters/34/control/ - Палитра красок

Если правильно понял, то названия на укр берёт только с импорта заказов, так как в получении опций товара только рус названия.

Можем ли получать название параметра не с заказа, а по option_id ?
По option_id отдаёт название на рус так как они отдаются при запросе по продуктам, таким образом не будут плодиться дубли на разных языках и действие, которое мы сделаем, будет правильно ставить опцию, ибо в текущем примере оно не сработает.

Мы их и так получаем с API опций продукта https://docs.cs-cart.com/latest/developer_guide/api/entities/options.html, после чего заполняем в товаре
Ну а после уже собирается на основании заказа - массив соответствующих дополнительных полей и заполняется в продукте процесса
20.09.2021, 09:18

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия

Тындык Максим Вадимович

OneBox production

Администратор писал/а:
Мы их и так получаем с API опций продукта https://docs.cs-cart.com/latest/developer_guide/api/entities/options.html, после чего заполняем в товаре
Ну а после уже собирается на основании заказа - массив соответствующих дополнительных полей и заполняется в продукте процесса

Тогда откуда берется название на укр? При запросе опций продукта там только рус названия


Тындык Максим Вадимович

OneBox production

Администратор писал/а:
вариант подходит, только я не знаю как быть с ценой, то есть, брать с наценки или не менять, так как цена уже записана...Тут нужно подумать над логикой, возможно предусмотреть просто 2 варианта либо брать с наценки, либо не менять то что уже вписано

Самостоятельно решите как вам нужно.

А какая оценка?
20.09.2021, 10:38


Тогда откуда берется название на укр? При запросе опций продукта там только рус названия

Без понятия, может раньше как-то заимпортировали?

А какая оценка?

Оценка чего? Я не вижу в той твоей фразе какую-то логику - только рассуждения что ты сам не знаешь как тебе и что нужно сделать)
21.09.2021, 16:23

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия

Тындык Максим Вадимович

OneBox production

Администратор писал/а:
Оценка чего? Я не вижу в той твоей фразе какую-то логику - только рассуждения что ты сам не знаешь как тебе и что нужно сделать)


Сделать действие, которое возьмёт список выбранных дополнительных полей и на их основании (по тем где есть значения) - запишет всё в опции.
+ настройка менять цену продажи и входящую цену (без настройки - цену не меняет)
+ Записывать опции в доп поле продукта процесса аналогично настройке в блоке продуктов таблицей


Суханицкий Андрей

Интегратор

Клиент
Integrator CRM писал/а:
Тындык Максим Вадимович

OneBox production

Администратор писал/а:
Мы их и так получаем с API опций продукта https://docs.cs-cart.com/latest/developer_guide/api/entities/options.html, после чего заполняем в товаре
Ну а после уже собирается на основании заказа - массив соответствующих дополнительных полей и заполняется в продукте процесса

Тогда откуда берется название на укр? При запросе опций продукта там только рус названия

Это довольно свежий заказ https://crm.stylesalon.com.ua/admin/customorder/order/32778/edit/ мы же говорил о заполнении доп полей при создании нового заказа, а не импорте продуктов (там с опциями всё ок)
Тут точно берется название доп поля для продукта процесса и создания фильтра под него из заказа - только там указано название на укр. Если бы при создании заказа и добавлении в него товаров система брала название по ID опции, то было бы поле "Палитра красок".

Можешь это проверить?
Если работает так, то нужно переделать, чтобы брало название опции при создании товара из продукта, то есть получаем заказ, в нем товар, у товара указано "option_id": "8617"
Делаем доп запрос в виде https://stylesalon.com.ua/api/2.0/options/8617 , получаем "option_name": "Палитра красок", ищем такое доп поле продукта процесса в боксе, дальше работать должно как сейчас - если есть заполняем значением (добавляем вариант в выпадающий список), если нет - создаём под него поле. По вопросу создания полей и записи значений, не уверен, что работает так как я написал, но сейчас всё правильно, только само поле берет другое.
21.09.2021, 17:05


Сделать действие, которое возьмёт список выбранных дополнительных полей и на их основании (по тем где есть значения) - запишет всё в опции.
+ настройка менять цену продажи и входящую цену (без настройки - цену не меняет)
+ Записывать опции в доп поле продукта процесса аналогично настройке в блоке продуктов таблицей



Это довольно свежий заказ https://crm.stylesalon.com.ua/admin/customorder/order/32778/edit/ мы же говорил о заполнении доп полей при создании нового заказа, а не импорте продуктов (там с опциями всё ок)
Тут точно берется название доп поля для продукта процесса и создания фильтра под него из заказа - только там указано название на укр. Если бы при создании заказа и добавлении в него товаров система брала название по ID опции, то было бы поле "Палитра красок".

аа, ну дак там на основании данных заказа по продукта $itemProduct['extra']['product_options_value'] создаёт/ищет фильтр/доп.поле по названию option_name и значению variant_name
ну на каком языке пришло - на том и искало/создавало
22.09.2021, 15:44

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия

Тындык Максим Вадимович

OneBox production

Администратор писал/а:
аа, ну дак там на основании данных заказа по продукта $itemProduct['extra']['product_options_value'] создаёт/ищет фильтр/доп.поле по названию option_name и значению variant_name
ну на каком языке пришло - на том и искало/создавало

Так вот, вопрос в том, можем ли мы искать не по массиву заказа, а отправлять по каждому продукту заказ доп запрос и доставать оттуда option_name и variant_name? Ибо у нас сейчас х2 фильтров и опций, которые не сходятся с фактическими опциями продукта, что не даст нам возможности закрыть вопрос полностью, ибо при получении заказа на укр языке мы не сможем заполнить опции
22.09.2021, 16:10


Так вот, вопрос в том, можем ли мы искать не по массиву заказа, а отправлять по каждому продукту заказ доп запрос и доставать оттуда option_name и variant_name? Ибо у нас сейчас х2 фильтров и опций, которые не сходятся с фактическими опциями продукта, что не даст нам возможности закрыть вопрос полностью, ибо при получении заказа на укр языке мы не сможем заполнить опции

То есть ты хочешь на основании вот этой выдачи:
[product_options_value] => Array
(
[0] => Array
(
[option_id] => 18294
[product_id] => 119351
[company_id] => 1
[option_type] => S
[inventory] => N
[regexp] =>
[required] => N
[multiupload] => N
[allowed_extensions] =>
[max_file_size] => 0
[missing_variants_handling] => M
[status] => A
[position] => 0
[value] => 52163
[google_export_name_option] => not_option
[yml2_type_options] =>
[yml2_option_param] =>
[option_name] => Тон
[option_text] =>
[description] =>
[inner_hint] =>
[incorrect_message] =>
[internal_option_name] => Тон
[modifier] => 0
[modifier_type] => A
[variant_name] => Honey (Медовый)
[cost_price] => 0.00
)

[1] => Array
(
[option_id] => 18295
[product_id] => 119351
[company_id] => 1
[option_type] => S
[inventory] => N
[regexp] =>
[required] => N
[multiupload] => N
[allowed_extensions] =>
[max_file_size] => 0
[missing_variants_handling] => M
[status] => A
[position] => 0
[value] => 52165
[google_export_name_option] => not_option
[yml2_type_options] =>
[yml2_option_param] =>
[option_name] => Объем
[option_text] =>
[description] =>
[inner_hint] =>
[incorrect_message] =>
[internal_option_name] => Объем
[modifier] => 0
[modifier_type] => A
[variant_name] => 40 мл
[cost_price] => 0.00
)

)
брать не option_name - а делать стук в https://docs.cs-cart.com/latest/developer_guide/api/entities/options.html#get-a-... - а значение уже которое в заказе приходит variant_name?
если да - то можно сделать настройку в импорте заказов, займёт 2ч
22.09.2021, 16:45

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия
Если брать товар с примера, то вот по этому запросу https://stylesalon.com.ua/api/2.0/options/8617

Будет в выдаче
{
"option_id": "8617",
"product_id": "67328",
"company_id": "1",
"option_type": "S",
"inventory": "N",
"regexp": "",
"required": "N",
"multiupload": "N",
"allowed_extensions": "",
"max_file_size": "0",
"missing_variants_handling": "M",
"status": "A",
"position": "0",
"value": "",
"google_export_name_option": "not_option",
"yml2_type_options": "",
"yml2_option_param": "",
"option_name": "Палитра красок",
"internal_option_name": "Палитра красок",
"option_text": "",
"description": "<p></p>\r\n<script>// <!--[CDATA[\r\n// ]]--></script>\r\n<p></p>",
"inner_hint": "",
"incorrect_message": "",
"comment": "",
"variants": {
22.09.2021, 16:52

Ну то есть я тебя понял правильно? Если да - оценка по обеим пунктам дана
22.09.2021, 17:06

Суханіцький Андрій OneBox CORP
OneBox Corp - Інтегратор
Именная лицензия
Окей, спасибо
22.09.2021, 18:40

Пожалуйста, присоединяйтесь к диалогу. Если вам есть что сказать - пожалуйста, напишите комментарий. Для входа потребуется мобильный телефон и смс-код для идентификации. Войти и написать комментарий