Я пытаюсь переместить блок «Параметры подарка» (форма сообщения с подарком) со страницы текущей корзины покупок на первый шаг оформления заказа (Доставка). Мне нужно разместить его прямо под Методы доставки. Я попытался добавить модуль GiftMessage к своей теме, и в рамках этого изменил файл макета checkout_index_index.xml, чтобы он ссылался на корневой блок извлечения для вставки Подарочного сообщения, но он был бесполезен. Любая помощь будет принята с благодарностью. Спасибо!
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="checkout" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="checkout.root">
<block class="Magento\GiftMessage\Block\Cart\GiftOptions" name="checkout.cart.order.actions.gift_options" template="cart/gift_options.phtml" cacheable="false">
<arguments>
<argument name="jsLayout" xsi:type="array">
<item name="types" xsi:type="array"/>
<item name="components" xsi:type="array">
<item name="giftOptionsCart" xsi:type="array">
<item name="component" xsi:type="string">Magento_GiftMessage/js/view/gift-message</item>
<item name="config" xsi:type="array">
<item name="template" xsi:type="string">Magento_GiftMessage/gift-message</item>
<item name="formTemplate" xsi:type="string">Magento_GiftMessage/gift-message-form</item>
</item>
</item>
</item>
</argument>
</arguments>
</block>
</referenceBlock>
</body>
magento2
checkout
giftmessage
Maquina
источник
источник
Ответы:
Прежде всего, нам нужно понять, как работает сообщение Magento Gift Message на странице корзины.
Этот файл наш свет. Мы сэкономим много времени, если поймем его логику.
window.giftOptionsConfig
: эта глобальная переменная используется для конфигурации. Мы должны воссоздать его на кассе.Давайте начнем реализовывать нашу собственную логику. Создайте новый модуль, добавьте следующую логику:
Приложение / код / Vendor / CheckoutDemo / вид / интерфейс / расположение / checkout_index_index.xml
Есть 3 примечания:
-Доставка шаг будет использовать наш собственный HTML-шаблон доставки. Проще добавить наш пользовательский регион.
-Наша область подарков: я скопировал содержимое с
vendor/magento/module-gift-message/view/frontend/layout/checkout_cart_index.xml
.-Конфигурация подарка
Создайте приложение / код / Vendor / CheckoutDemo / view / frontend / templates / gift_options.phtml
Мы используем
giftOptionsConfig
глобальную переменную, потому что логика подарочного сообщения будет использовать ее.Приложение / код / Vendor / CheckoutDemo / и т.д. / интерфейс / di.xml
Приложение / код / Vendor / CheckoutDemo / Модель / GiftMessageConfigProvider.php
Создайте HTML-код доставки, скопируйте содержимое
vendor/magento/module-checkout/view/frontend/web/template/shipping.html
в наш пользовательскийapp/code/Vendor/CheckoutDemo/view/frontend/web/template/shipping.html
. И добавьте наш регион для пользовательских подарочных сообщений:Приложение / код / Vendor / CheckoutDemo / вид / интерфейс / веб / шаблон / shipping.html
Результат:
источник
Попробуйте код ниже
Ранее я сделал одно расширение для платежного шлюза, в котором я отображал свой пользовательский файл шаблона в разделе оплаты. Я также добавил этот код здесь, пожалуйста, добавьте, если я что-то пропустил. (Cirkle_Behalf) - это имя модуля.
источник