Drupal 7 Commerce. 2 кастомных коризины с ajax на одной странице. [Пока вопрос].

Главные вкладки

Аватар пользователя VasyOK VasyOK 12 мая 2019 в 16:33

Недавно начал работать с commerce. Из того что понравилось - многое сделано вьюхами. Даже корзина.
У меня задача сделать 2 корзины. Одна в сайдбаре, одна в шапке. У корзины переделенные поля.

Мое решение (этапы):

1) вывести нужные поля вьюхе корзины встроенной в Commerce. Hаботает, но без AJAX.
2) Эту вьюху даем модулю dc_ajax_add_cart. Пруф https://www.drupal.org/project/https://www.drupal.org/project/dc_ajax_ad.... В коризину товары AJAX-ом ложит, но не удаляет, о чем автор модуля написал.
3) http://xandeadx.ru/blog/drupal/825 чтобы товары удалялись из корзины, можно задействовать модуль от Невмирущого. Либо выдрать функцию из этого модуля.
4) Добиться синхронного обновления 2-х корзин мне так и не удалось. Пусть будет одна. А из нее во 2-ю корзину JS-скриптом нужное сформировать.

Вопросы.

1. Насколько это решение оправдано. Может можно как-то легче?
2. В drupal 8 comerce это достигается без подобных танцев с бубном? Автор dc_ajax_add_cart, сказал что бросил все силы на 8-ку.

Комментарии

Аватар пользователя gun_dose gun_dose 12 мая 2019 в 17:30

Удаляться аяксом тоже должно. Нужно во вьюхе кнопку удаления заменить на аяксовую кнопку.

По поводу двух корзин: там аякс-команда формируется на обновление одной корзины. В модуле есть хук-форм альтер, нужно своим модулем перебить аякс-коллбэк на свой, а уже в этом коллбэке можно вызвать тот dc_ajax_add_cart-овский и прицепить свою команду для второй вьюхи.

В восьмёрке это делается приблизительно так же, только там сервисы и всё такое, но суть та же.

Аватар пользователя VasyOK VasyOK 12 мая 2019 в 18:10

adubovskoy wrote:
В 8ке проще сделать вывод корзины на vue/react

Это проще сделать в 8-ке, чем в 7-ке? Почему?

gun_dose wrote:
кнопку удаления заменить на аяксовую кнопку

Аяксовская кнопка, это что? Там есть:
Commerce Line Item: Кнопка "Удалить"

" хук-форм альтер" - чем это лучше чем скриптом в нужное место корзину сформировать?

Аватар пользователя gun_dose gun_dose 12 мая 2019 в 18:44

Аяксовая кнопка - это в восьмёрке. Наверное, я перепутал.

Хук-форм-альтер vs js - это уже дело вкуса. Кодить в любом случае придётся, но в одном случае на js, в другом на php.