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 %}