Есть ли в Magento 2 какие-либо системы или абстракции для управления состоянием между внутренним сервером и локальным хранилищем на внешнем интерфейсе?
Я работаю над портированием функции восстановления заброшенной корзины пользователя через URL перенаправления. В упрощенном виде, URL-адрес, как
http://magento.example.com/restore/the/cart?identifier=sdkfjh48v237g5
загрузит цитату в корзину текущего пользователя на основе закодированного quote_id в идентификаторе.
В Magento 1 это было относительно просто - вам просто нужно было обновить информацию о сеансе Checkout пользователя, указав правильный идентификатор котировки. Тем не менее, Magento 2 добавляет в складку локального хранилища .
Javascript-приложение Magento 2, кажется, кэширует информацию в локальных базах данных браузера. Это включает в себя информацию для создания мини-тележки. Это означает, что даже если конечному пользователю-программисту (мне) удастся изменить идентификатор сеанса сеанса в бэкэнде, мини-корзина все равно будет отображать старые данные корзины.
Это только один пример проблемы, которая связана с незнанием (или наличием?) Единого API для управления состоянием приложения через бэкэнд и внешний интерфейс. Для моей конкретной проблемы у меня была конечная точка, отображающая HTML-страницу, которая включает в себя некоторый JavaScript, который вручную очищает локальное хранилище, а затем перенаправляет пользователя на другую страницу - но это похоже на грубый хак.
Есть ли в Magento 2 API для управления данными между внешним и внутренним интерфейсом?
Существует ли стандартный способ оповещения всей системы о том, что во время серверной обработки вы сделали что-то, что делает необходимым аннулировать кэш локального хранилища внешнего интерфейса?
Есть ли метод для внедрения нового модуля RequireJS на страницу, которая запускается автоматически и может манипулировать локальным хранилищем до того, как остальные приложения javascript получат к нему доступ?