includeHTML (+fetch()) + REST API (PHP) = SPA
И всё, что относится к корзине - передавать/получать через JSON .
Описание includeHTMLincludeHTML - решение всех проблем в плане SPA и предотвращение полной перезагрузки страницы при обновлении одного/нескольких блоков!
Основные преимущества:
0. Всего ОДНА ФУНКЦИЯ!
1. Вставка любой HTML-разметки через HTML-тег или через JS-функцию.
2. Асинхронная и синхронная загрузка (по желанию).
3. Рекурсивная загрузка всех вложенных зависимых блоков.
4. Создание своей функции-обработчика после окончания загрузки нужного блока.
5. Возможность любой компоновки блоков (включая бесконечную вложенность одних в другие!) на одной странице.
6. Возможность многократного повторного использования блока(-ов) на разных страницах.
7. Возможность создания своих представлений интерфейса (layouts) в зависимости от целей конкретного пункта в главном (или второстепенном) меню раздела/категории/страницы.
Итог:
Полученное быстродействие - будет максимальным!