Preguntas frecuentes
Copiar enlace al artículo
Copiado

1. Cómo visualizar el valor de un campo personalizado de pedido en la plantilla

Para visualizar datos de un campo personalizado, utilice el método getCustomField. Por ejemplo,

{{ order.getCustomField('some_code') }}

En el ejemplo, some_code es el código simbólico de un campo personalizado.

2. Error al intentar visualizar un campo de la ficha de pedido que contiene fecha

Se trata del siguiente aviso del error:

Object of class DateTime could not be converted to string

El caso es que para visualizar en una plantilla-twig los campos de pedido (o de cliente) que contienen fecha, se requiere aplicar el filtro date para especificar el formato de la fecha.

Ejemplo:

{{ order.createdAt|date("d.m.Y") }}

3. Error al intentar visualizar un campo que contiene un intervalo de fechas

Se trata del siguiente aviso del error:

Calling "m" property on a "DateInterval" object is not allowed

El caso es que para visualizar en una plantilla-twig los campos que contienen un intervalo de fechas, se requiere aplicar el filtro date para especificar el formato. Ejemplo:

{{ period|date("%m") }}

La descripción detallada de los formatos de visualizar DateInterval se encuentra por el siguiente enlace: http://php.net/manual/ru/dateinterval.format.php

4. Cómo visualizar la fecha actual

Para visualizar la fecha actual se usa el filtro date de la siguiente manera:

{{ "now"|date("d.m.Y") }}

5. Cómo visualizar el contenido del pedido en una plantilla

Para visualizar el contenido del pedido, se requiere usar el bucle for aplicado a la matriz order.availableOrderProducts

<table border="0" cellspacing="0" cellpadding="2" width="100%">
        <tr bgcolor="#E2E2E2">
                <td align="center" style="border: 1pt solid #000000; border-right:none;">№</td>
                <td align="center" style="border: 1pt solid #000000; border-right:none;">Nombre del producto</td>
                <td nowrap="" align="center" style="border: 1pt solid #000000; border-right:none;">Cantidad</td>
                <td nowrap="" align="center" style="border: 1pt solid #000000; border-right:none;">Precio, usd</td>
                <td nowrap="" align="center" style="border: 1pt solid #000000;">Total, usd</td>
        </tr>
        {% for op in order.availableOrderProducts %}
        <tr valign="top">
                <td bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
                        {{ loop.index }}
                </td>
                <td bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
                        {{ op }}
                </td>
                <td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
                        {{ op.quantity }}
                </td>
                <td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-right:none; border-top:none;">
                        {{ op.price|ru_currency('number', false) }}
                </td>
                <td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-top:none;">
                        {{ op.summ|ru_currency('number', false) }}
                </td>
        </tr>
        {% endfor %}
        <tr>
                <td align="right" bgcolor="#ffffff" colspan="4" style="border: 1pt solid #000000; border-right:none; border-top:none;">
                        Total:
                </td>
                <td align="right" bgcolor="#ffffff" style="border: 1pt solid #000000; border-top:none;">
                        {{ order.totalSumm|ru_currency('number', false) }}
                </td>
        </tr>
</table>

6. Cómo visualizar la imágen del producto en la plantilla

Para visualizar la imagen de un producto se requiere dentro del bucle for, el que recorre la matriz con el contenido de pedido, hacer la petición a la función preview_image_tag, transfiriendo el url de la imágen como el primer parámetro y el tamaño de la imágen en píxeles como el segundo parámetro.

{{ preview_image_tag(op.offer.imageUrl, '100x100') }}

7. Cómo modificar la fuente en una plantilla de email/impresión

Para modificar la fuente se requiere crear un class de estilo correspondiente con la carga de la misma fuente desde su servidor. La lista de las fuentes puede incluir uno o varios nombres separados con una coma. Un ejemplo de cómo se debe ver al final:

@font-face {
    font-family: "Bitstream Vera Serif Bold";
    src: url("https://example.com/files/VeraSeBd.ttf")
}
body {
    font-family: "Bitstream Vera Serif Bold", Times, serif;
}

8. Cómo visualizar todos los productos del pedido

Se puede visualizar todos los productos del pedido al llamar el método {{ order.orderProducts|join(', ') }}

9. Cómo separar una suma en dólares y céntimos

Para separar el importe en dólares y céntimos:

{% set totalSumm = order.totalSumm|ru_currency('parted') %}
{{ totalSumm['integer'] }} - dólares
{{ totalSumm['fractional'] }} -céntimos

10. Visualización de las propiedades del producto dentro de una matriz

Un ejemplo de visualizar las propiedades del producto dentro de la matriz:

{% set props = op.offer|offer_properties %}{{ props.name_ro.value }}

En el ejemplo, name_ro es el código simbólico de la propiedad.

11. Cómo visualizar las propiedades de un producto

Un ejemplo de visualizar las propiedades del producto:

{% for mas in op.offer|offer_properties %}
{% if mas.name == "talla" %}
    {{ mas.name }} - {{ mas.value }}<br>
{% endif %}
{% endfor %}

12. Cómo visualizar las propiedades personalizadas de un producto

Una visualización de todas las propiedades personalizadas de los productos:

{% for op in order.availableOrderProducts %}{% for prop in op.properties %}
   {% for key, value in prop %}{{ key }} - {{value}} {% endfor %}<br>
{% endfor %}{% endfor %}

13. Cómo visualizar el valor de la propiedad personalizada del producto según su código simbólico

Una visualización de una propiedad personalizada del producto según su código simbólico:

{% for op in order.availableOrderProducts %}
    {% for od in op.properties %}
        {% for key, val in od %}
            {% if key == 'value' %}
                {% set propvalue = val %}
            {% endif %}
            {% if key == 'code' and val == 'code_from_site' %}
                Código del producto: {{ propvalue }}
            {% endif %}
        {% endfor %}
    {% endfor %}
{% endfor %}

14. Cómo visualizar propiedades del catálogo si se sabe el código de la propiedad

La primera opción para visualizar las propiedades del catálogo si se sabe el código de la propiedades a través de {% set props = op.offer|offer_properties %}.

Luego se requiere visualizarlas por separado:

<td> {{ props.color.name }} - {{ props.color.value }} <td>
<td> {{ props.size.name }} - {{ props.size.value }} <td>

Las claves de la matriz props son códigos de propiedades.

Otra variante de visualizar las propiedades:

{% for key, prop in op.offer.properties %}
{{ prop }}
{% endfor %} 
Gracias por tus comentarios.
¿Te resultó útil este artículo
No
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Si
Artículo anterior
Trabajo con precios y monedas en Twig
Puede surgir la necesidad de prevenir que se genere una plantilla. El artículo explica cómo se hace.