{% sw_extends '@Storefront/storefront/layout/header/actions/cart-widget.html.twig' %}
{% block layout_header_actions_cart_widget %}
{{ parent() }}
{% if page.cart %}
{% set totalCount = 0 %}
{% set products = [] %}
{% set discounts = [] %}
{% set totalDiscount = 0 %}
{% for lineItem in page.cart.lineItems.elements %}
{% if lineItem.type == 'promotion' %}
{% set discount = {
code: lineItem.payload.code,
targets: '',
targetType: lineItem.payload.discountScope,
type: '',
value: lineItem.payload.value|floatval,
valueType: lineItem.payload.discountType,
}
%}
{% set discounts = discounts|merge([discount]) %}
{% set totalDiscount = totalDiscount + lineItem.price.totalPrice|abs %}
{% else %}
{% set product = {
'id': lineItem.id,
'nam': lineItem.label,
'prc': '%.2f' | format(lineItem.price.unitPrice),
'qty': lineItem.quantity,
'cur': context.currency.isoCode,
'var': null,
'br': null,
'cat': null,
'ids': {
'pid': lineItem.id,
'pnu': lineItem.payload.productNumber,
},
} %}
{% set products = products|merge([product]) %}
{% set totalCount = totalCount + lineItem.quantity %}
{% endif %}
{% endfor %}
{%
set cartData = {
'quantity': totalCount,
'currency': context.currency.isoCode,
'total': {
'price': page.cart.price.totalPrice,
'tax': page.cart.price.calculatedTaxes.elements[0].tax,
'discount': totalDiscount,
'shipping': null,
},
'products': products,
'discounts': discounts
}
%}
<data id="mable_cart_data" data-cart='{{cartData|json_encode()|raw}}' style="display:none;"></data>
{% endif %}
{% endblock %}