Estou tentando mover o bloco Opções de presente (formulário de mensagem de presente) da página atual do carrinho de compras para a primeira etapa do Checkout (Remessa). Preciso colocá-lo diretamente em Métodos de envio. Tentei adicionar um módulo GiftMessage ao meu tema e, dentro disso, modifiquei o arquivo de layout checkout_index_index.xml para referenciar o bloco raiz do checkout para inserção de mensagem de presente, mas não adiantou. Qualquer ajuda seria muito apreciada. Obrigado!
<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
fonte
fonte
Respostas:
Antes de tudo, precisamos entender como a mensagem de presente do Magento funciona na página do carrinho.
Este arquivo é a nossa luz. Economizaremos muito tempo se entendermos sua lógica.
window.giftOptionsConfig
: essa variável global usada para config. Devemos recriá-lo no checkout.Vamos começar a implementar nossa lógica personalizada. Crie um novo módulo, adicione a seguinte lógica:
app / code / Vendor / CheckoutDemo / view / frontend / layout / checkout_index_index.xml
Existem 3 notas:
A etapa de envio usará nosso modelo html de envio personalizado. É mais fácil adicionar nossa região personalizada.
-Nossa área de presentes: copiei o conteúdo de
vendor/magento/module-gift-message/view/frontend/layout/checkout_cart_index.xml
.-A configuração do presente
Crie app / code / Vendor / CheckoutDemo / view / frontend / templates / gift_options.phtml
Usamos a
giftOptionsConfig
variável global porque a lógica da mensagem de presente js a utilizará.app / code / Vendor / CheckoutDemo / etc / frontend / di.xml
app / code / Vendor / CheckoutDemo / Model / GiftMessageConfigProvider.php
Crie o html de remessa, copie o conteúdo
vendor/magento/module-checkout/view/frontend/web/template/shipping.html
para nosso costumeapp/code/Vendor/CheckoutDemo/view/frontend/web/template/shipping.html
. E adicione nossa região de mensagem de presente personalizada:app / code / Vendor / CheckoutDemo / view / frontend / web / template / shipping.html
Resultado:
fonte
Experimente o código abaixo
Anteriormente, fiz uma extensão de gateway de pagamento na qual renderizei meu arquivo de modelo personalizado na seção de pagamento. Também adicionei esse código aqui, por favor, adicione Se eu perder alguma coisa. (Cirkle_Behalf) é o nome do módulo.
fonte