{% sw_extends '@Storefront/storefront/component/delivery-information.html.twig' %} {# --- Kontext / Fallbacks ermitteln (Produkt, dl-Extension, Customfields) --- #} {% set p = product is defined ? product : (page is defined and page.product is defined ? page.product : null) %} {% set dl = null %} {% if page is defined and page.extensions is defined and page.extensions.dlDelivery is defined %} {% set dl = page.extensions.dlDelivery %} {% elseif lineItem is defined and lineItem.extensions is defined and lineItem.extensions.dlDelivery is defined %} {% set dl = lineItem.extensions.dlDelivery %} {% elseif p is not null and p.extensions is defined and p.extensions.dlDelivery is defined %} {% set dl = p.extensions.dlDelivery %} {% endif %} {% set fbInfo = p and p.customFields is defined ? (p.customFields.dl_delivery_days ?? null) : null %} {% set fbStock = p and p.stock is defined ? p.stock : 0 %} {% set fbMin = p and p.minPurchase is defined ? p.minPurchase : 1 %} {# --- Macro: rendert unseren Wrapper + initialen Text je State --- #} {% macro render(info, instock, min, state, days) %}

{% if state == 'available' %} {% sw_icon "checkmark" %} {{ "dl.delivery.available"|trans }} {% elseif state == 'partially' %} {% sw_icon "alarm-clock" %} {{ "dl.delivery.partlyAvailable"|trans|replace({"[delivery_days]": days}) }} {% elseif state == 'notDeliverable' %} {% sw_icon "x-circle" %} {{ "dl.delivery.notDeliverable"|trans }} {% else %} {% sw_icon "x-circle" %} {{ "dl.delivery.notAvailable"|trans }} {% endif %}

{% endmacro %} {% import _self as dlm %} {% block component_delivery_information_available %} AVA {% if dl %} {{ dump(dl) }} {{ 'detail.deliveryTimeAvailable'|trans({ '%name%': product.deliveryTime.translation('name') })|sw_sanitize }} {{ dlm.render(dl.info, dl.instock, dl.minPurchase, 'available', 0) }} {% elseif fbInfo is not null %} {{ dlm.render(fbInfo, fbStock, fbMin, 'available', 0) }} {% else %} {{ parent() }} {% endif %} {% endblock %} {% block component_delivery_information_not_available %} NOTAV {% if dl %} {{ dlm.render(dl.info, dl.instock, dl.minPurchase, 'available', 0) }} {% elseif fbInfo is not null %} {{ dlm.render(fbInfo, fbStock, fbMin, 'available', 0) }} {% else %} {{ parent() }} {% endif %} {% endblock %} {% block component_delivery_information_pre_order %} {% endblock %} {% block component_delivery_information_restock %} RESTO {% if dl %} {{ dlm.render(dl.info, dl.instock, dl.minPurchase, 'partially', dl.days) }} {% else %} {{ parent() }} {% endif %} {% endblock %} {% block component_delivery_information_soldout %} OUT {% if dl %} {% set state = dl.state == 'notDeliverable' ? 'notDeliverable' : 'notAvailable' %} {{ dlm.render(dl.info, dl.instock, dl.minPurchase, state, null) }} {% elseif fbInfo is not null %} {{ dlm.render(fbInfo, fbStock, fbMin, 'notAvailable', null) }} {% else %} {{ parent() }} {% endif %} {% endblock %} {% block component_delivery_information_default %} {% if dl %} {{ dump(dl) }} {{ dlm.render(dl.info, dl.instock, dl.minPurchase, 'available', 0) }} {% elseif fbInfo is not null %} {{ dlm.render(fbInfo, fbStock, fbMin, 'available', 0) }} {% else %} {{ parent() }} {% endif %} {% endblock %}