Добрый день, подскажите добрым словом пожалуйста, имеет сайт интернет магазин, постороенный на Drupal Commerce
в которой нужно достигнуть небольшой фичи в функционале.
Сначала первая фича, которую я достиг, у типа продукта есть поля ЗАКАЗАНО, в котором целое число, суть его в том,
что каждый раз при заказе того или иного товара, это поле увеличивается на 1, при завершении заказа (т.е. выдаче покупателю) и смене статуса заказ на выполнено, соответственно -1
Всё это делается методом RULES и COMPONENTS, а именно т.к. изначально на действие Completing the checkout process
нельзя сделать действие мол, Entity has field - ЗАКАЗАНО, и Calculate value ЗАКАЗАНО +1, а апосля
Set data value. В связи с тем, что сущность товар, как таковая уходит на второй план, а появляется другая - Line Item
То приходится мудрить с компонентами, состоявляя следующую цепочку.
1) Сначала создаётся действие на оформление заказа
EVENT: Completing the checkout process
CONDITION: -
ACTION: Вызов первого созданного компонента (с Loop по всем товарам в заказе, т.е. по всем line-items 0,1,2,3...), КОТОРЫЙ!
2) Первый компонент который начинает углубляться в внутренности Line Items (в поисках нужно мне поля)
у этого компонента будут два параметра (которые нам даст действие выше)
это Order (получается у какого заказа мы будем искать чего хочется мне) и Line Items (у каких товаров в заказе, т.е. у всех)
в CONDITION у меня условие Data comparison: У Line-item тип сущности Product?
мол если да, то мы на верном пути, и мы проникли и раскрыли себе новую сущность в виде Product, ИДЁМ ДАЛЬШЕ!
вызываем следующий компонент
3) У него соответственно параметры уже другие, это Order и только что открытый Product, в котором мы сейчас докапаемся до нужной
нам фичи.
Т.к. на сайте может быть несколько типов товаром у сущности Product,то нас нужно остановится на моей - одной, условием
Data comparsion сущность Product типа - Мои товары?
Если да, то пожалуйста следующее действие! Calculate value ЗАКАЗАНО +1
Таким образом я добрался до нужного мне поля, и прибавил к нему единицу, хотя правильней не единицу а QUANTITY из заказа, т.к. товары могу не единственном кол-ве заказывать. После завершения последнего компонента, наше действие повториться циклом по все имеющимся Line Item в заказе. И на этом всё что требуется - закончится...
А ТЕПЕРЬ!!! ВЕЩЬ КОТОРУЮ Я НЕ МОГУ ДОПЕТРИТЬ!!! :'(((
У меня на сайте есть словарии таксономии, в котором полно терминов, и каждый товар имеет свой термин, связан с ним.
Дак вот в этом термине есть поле НАБРАННАЯ СУММА, суть которой - при оформлении заказа, нужно к этому полю добавить сумму заказа
но вот как к нему то придти,
т.е. получается я узнал, что Line Item имеет отношение к сущности Product, а сущность Product в моём случае хранит в себе именно типа Мои товары, таким образом получается попав в Мои товары
я дальше должен узнать имеет ли она в себе такое поле как Термин таксономии, в котором хранится термин из словаря, и в котором есть такое поле как НАБРАННАЯ СУММА, к которому нужно добавить значение поля PRICE из ORDER
Но как туда проникнуть, допетрить не могу, это получается каким то отношениям я должен уйти от сущность PRODUCT к сущности TERM
Может кто то поймёт мою писанину, и разберётся что я хочу, а ещё здорово если поможет и посоветует
Спасибо вам большое!
Комментарии
Ну вот... как всегда получилось, пока описывал проблему словами на форуме, сам понял решение.
Решение аналогично всё также копать дальше третьим компонентом
Пускай тогда этот топик будет решением, может кому то пригодится