diff --git a/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php b/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php index eb4c83db358fa3d3cef2cd3d3a8049981e8210e7..431c1b8afbf93ce7d72efac03ad059f42372366e 100644 --- a/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php +++ b/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php @@ -11,6 +11,7 @@ use Magento\Framework\App\Http\Context as HttpContext; use Magento\Customer\Model\Context as CustomerContext; use Magento\Framework\UrlInterface; use Magento\Framework\Locale\FormatInterface as LocaleFormat; +use Magento\Framework\Data\Form\FormKey; /** * Configuration provider for GiftMessage rendering on "Checkout cart" page. @@ -49,6 +50,11 @@ class GiftMessageConfigProvider implements ConfigProviderInterface */ protected $localeFormat; + /** + * @var FormKey + */ + protected $formKey; + /** * @param \Magento\Framework\App\Helper\Context $context * @param \Magento\GiftMessage\Api\CartRepositoryInterface $cartRepository @@ -65,7 +71,8 @@ class GiftMessageConfigProvider implements ConfigProviderInterface \Magento\Checkout\Model\Session $checkoutSession, HttpContext $httpContext, \Magento\Store\Model\StoreManagerInterface $storeManager, - LocaleFormat $localeFormat + LocaleFormat $localeFormat, + FormKey $formKey ) { $this->scopeConfiguration = $context->getScopeConfig(); $this->cartRepository = $cartRepository; @@ -74,6 +81,7 @@ class GiftMessageConfigProvider implements ConfigProviderInterface $this->httpContext = $httpContext; $this->storeManager = $storeManager; $this->localeFormat = $localeFormat; + $this-> formKey = $formKey; } /** @@ -107,6 +115,7 @@ class GiftMessageConfigProvider implements ConfigProviderInterface ); $configuration['storeCode'] = $this->getStoreCode(); $configuration['isCustomerLoggedIn'] = $this->isCustomerLoggedIn(); + $configuration['formKey'] = $this->formKey->getFormKey(); $store = $this->storeManager->getStore(); $configuration['baseUrl'] = $store->isFrontUrlSecure() ? $store->getBaseUrl(UrlInterface::URL_TYPE_LINK, true) diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js index eec30f4e610cb7e211eae82f5a24fa9839e10de2..ad91613b1364535ec43548e251bb46fefb67ec5f 100644 --- a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js +++ b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js @@ -3,8 +3,8 @@ * See COPYING.txt for license details. */ /*global define*/ -define(['Magento_Ui/js/lib/component/provider', 'underscore'], - function (provider, _) { +define(['Magento_Ui/js/lib/component/provider', 'underscore', 'mage/url'], + function (provider, _, url) { "use strict"; return function (itemId) { var model = { @@ -65,6 +65,7 @@ define(['Magento_Ui/js/lib/component/provider', 'underscore'], }, getAfterSubmitCallbacks: function() { var callbacks = []; + callbacks.push(this.afterSubmit); _.each(this.additionalOptions, function(option) { if (_.isFunction(option.afterSubmit)) { callbacks.push(option.afterSubmit); @@ -72,6 +73,11 @@ define(['Magento_Ui/js/lib/component/provider', 'underscore'], }); return callbacks; }, + afterSubmit: function() { + window.location.href = url.build('checkout/cart/updatePost') + + '?form_key=' + window.giftOptionsConfig.giftMessage.formKey + + '&cart[]'; + }, getSubmitParams: function(remove) { var params = {}, self = this;