Недавно начал работать с 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-ку.
Комментарии
В 8ке проще сделать вывод корзины на vue/react и не думать про "синхронность".
Удаляться аяксом тоже должно. Нужно во вьюхе кнопку удаления заменить на аяксовую кнопку.
По поводу двух корзин: там аякс-команда формируется на обновление одной корзины. В модуле есть хук-форм альтер, нужно своим модулем перебить аякс-коллбэк на свой, а уже в этом коллбэке можно вызвать тот dc_ajax_add_cart-овский и прицепить свою команду для второй вьюхи.
В восьмёрке это делается приблизительно так же, только там сервисы и всё такое, но суть та же.
Это проще сделать в 8-ке, чем в 7-ке? Почему?
Аяксовская кнопка, это что? Там есть:
Commerce Line Item: Кнопка "Удалить"
" хук-форм альтер" - чем это лучше чем скриптом в нужное место корзину сформировать?
Аяксовая кнопка - это в восьмёрке. Наверное, я перепутал.
Хук-форм-альтер vs js - это уже дело вкуса. Кодить в любом случае придётся, но в одном случае на js, в другом на php.