Estoy tratando de mover el bloque de Opciones de regalo (formulario de mensaje de regalo) de la página actual del carrito de compras al primer paso de la compra (envío). Necesito colocarlo justo debajo de Métodos de envío. Intenté agregar un módulo GiftMessage a mi tema y dentro de este modifiqué el archivo de diseño checkout_index_index.xml para hacer referencia al bloque raíz de pago para la inserción del mensaje de regalo, pero fue inútil. Cualquier ayuda sería muy apreciada. ¡Gracias!
<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
fuente
fuente
Respuestas:
En primer lugar, debemos entender cómo funciona el mensaje de regalo de Magento en la página del carrito.
Este archivo es nuestra luz. Ahorraremos mucho tiempo si entendemos su lógica.
window.giftOptionsConfig
: esta variable global utilizada para la configuración. Deberíamos recrearlo al finalizar la compra.Comencemos a implementar nuestra lógica personalizada. Cree un nuevo módulo, agregue la siguiente lógica:
app / code / Vendor / CheckoutDemo / view / frontend / layout / checkout_index_index.xml
Hay 3 notas:
-El paso de envío utilizará nuestra plantilla html de envío personalizada. Es más fácil agregar nuestra región personalizada.
-Nuestro área de regalo: Copié el contenido de
vendor/magento/module-gift-message/view/frontend/layout/checkout_cart_index.xml
.-La configuración de regalo
Cree una aplicación / código / Vendor / CheckoutDemo / view / frontend / templates / gift_options.phtml
Usamos la
giftOptionsConfig
variable global porque la lógica js del mensaje de regalo la usará.app / code / Vendor / CheckoutDemo / etc / frontend / di.xml
app / code / Vendor / CheckoutDemo / Model / GiftMessageConfigProvider.php
Cree el html de envío, copie el contenido de
vendor/magento/module-checkout/view/frontend/web/template/shipping.html
nuestra costumbreapp/code/Vendor/CheckoutDemo/view/frontend/web/template/shipping.html
. Y agregue nuestra región de mensaje de regalo personalizado:app / code / Vendor / CheckoutDemo / view / frontend / web / template / shipping.html
Resultado:
fuente
Prueba el siguiente código
Anteriormente, hice una extensión de pasarela de pago en la que presenté mi archivo de plantilla personalizada en la sección de pago. También he agregado ese código aquí, agregue si me falta algo. (Cirkle_Behalf) es el nombre del módulo.
fuente