es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Agregando un campo de formulario personalizado en una plantilla JSON de Shopify.

Tengo una tienda Shopify que utiliza la nueva plantilla Dawn, la cual incluye plantillas JSON. Me gustaría agregar un área de texto donde los clientes puedan escribir el texto que les gustaría que se grabara en sus artículos, lo cual parece ser un caso de uso común.

Agregué un elemento “Líquido personalizado” a mi página de producto e inserté un campo de formulario generado por el generador de elementos de UI de Shopify. Sin embargo, noté que este campo no está dentro del elemento <form>, por lo que no se incluyó en el pedido.

Miré el código fuente de la página del producto y noté que el formulario tiene una ID como product-form-template--14290791497780__main. Copié esa ID y la configuré como el atributo de formulario en mi cuadro de texto, y ahora todo funciona, pero se siente frágil.

En las plantillas JSON, ¿qué genera esa ID para el campo de formulario? ¿Hay alguna manera de referirse a ella desde la plantilla líquida sin tener que codificar la ID?

EDITAR: Aquí está mi plantilla product.json. La parte importante es esta sección:

"728d07ea-3e35-4ab1-bed3-ac9d9f35875c": {
"type": "liquid_personalizado",
"settings": {
"liquid_personalizado": "<p class=\"line-item-property__field\">\n <label for=\"engraving\">Grabado<\/label>\n <p>\n<textarea id=\"engraving\" name=\"properties[Grabado]\"\n form=\"product-form-template--14302685823028__main\"><\/textarea>\n<\/p><\/p>"
}
},
"buy_buttons": {
"type": "botones_compra",
"settings": {
"show_dynamic_checkout": true
}
},

Hasta donde yo sé, el bloque “botones_compra” es lo que crea el formulario de envío para el producto. Mi bloque de líquido personalizado incluye form=\"product-form-template--14302685823028__main\", que es la ID del formulario que obtuve al ver el código fuente de la página. Me gustaría reemplazarlo con alguna expresión líquida, como {{ product_form.id }} o algo así, pero no sé cómo referirme a otros bloques en la plantilla JSON desde un bloque de líquido personalizado.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para generar la ID del campo de formulario en la plantilla Dawn de Shopify, el bloque “buy_buttons” en la plantilla JSON del producto crea el formulario de envío. La ID del formulario se puede acceder a través del atributo “form” del bloque “buy_buttons”.

    Para referirse a esta ID desde un bloque líquido personalizado, se puede utilizar la siguiente expresión:

    {{section.settings.buy_buttons.settings.dynamic_checkout_settings.button_id}}
    

    Esta expresión le dará la ID del formulario del producto, que luego puede utilizar en su bloque líquido personalizado como el valor del atributo “form” para su área de texto. De esta manera, no tendrá que codificar la ID directamente, lo que hace que su código sea más fácil de mantener.

Comments are closed.