templates/default/components/organisms/buy-box/buy-box.html.twig line 1

Open in your IDE?
  1. {% set variantNotAvailable = variant.salesStatus is defined and
  2. variant.salesStatus == constant('App\\Constant\\SalesStatus::SALE_STATUS_TEMPORARY_NOT_AVAILABLE') %}
  3. <div class="buy-box {{ class|default }}">
  4. {% if (variant.salesStatus is defined and variant.salesStatus == constant('App\\Constant\\SalesStatus::SALE_STATUS_PRICE_ON_REQUEST')) == false
  5. and variant.attributes.price is defined %}
  6. {% block buyBoxPrices %}
  7. <div class="buy-box__price">
  8. {% if variant.attributes.remainingDays is defined and variant.attributes.remainingDays < 30 %}
  9. <span class="buy-box__remaining-days">{{ 'remaining_days'|trans({'%remainingDays%': variant.attributes.remainingDays}) }}</span>
  10. {% endif %}
  11. {% include 'components/atoms/price/price.html.twig' with {
  12. 'class': 'price--detail',
  13. 'oldPrice': variant.attributes.oldPrice,
  14. 'fromPrice': variant.attributes.fromPrice,
  15. 'price': variant.attributes.price,
  16. 'exclude_vat': variant.attributes.exclude_vat,
  17. 'price_gross': variant.attributes.centAmountGross|default('')
  18. } %}
  19. </div>
  20. {% endblock %}
  21. {% block buyBoxAvailability %}
  22. <div class="buy-box__availability buy-box__availability--{% if variantNotAvailable %}not-available{% else %}available{% endif %}">
  23. <span class="">{% if variantNotAvailable %}{{ 'buy_box_variant_not_available'|trans }}{% else %}{{ 'buy_box_variant_available'|trans }}{% endif %}</span>
  24. </div>
  25. {% endblock %}
  26. {% block buyBoxShipping %}
  27. <div class="buy-box__shipping">
  28. {% include 'components/atoms/pdp-shipping-info/pdp-shipping-info.html.twig' with {
  29. 'shippingTime': variant.shippingTime|default(product.master.shippingTime),
  30. 'variantNotAvailable': variantNotAvailable
  31. } %}
  32. </div>
  33. {% endblock %}
  34. {% block buyBoxScalePrice %}
  35. {% if variant.attributes.tiers|length > 0 %}
  36. <div class="buy-box__scale">
  37. <p class="buy-box__scale-info-text">{{ 'scale_price_info'|trans }}</p>
  38. {% for tierQuantity, tierPrice in variant.attributes.tiers %}
  39. <div class="buy-box__scale-price">
  40. {{ 'product_buy_box_scale_price'|trans({'%scaleItems%': tierQuantity, '%scalePrice%': tierPrice|price}) }}
  41. </div>
  42. {% endfor %}
  43. </div>
  44. {% endif %}
  45. {% endblock %}
  46. {% endif %}
  47. {% block variantLink %}
  48. {% if product.variants | length > 1 or variant.variantSelections|default([])|length > 1 %}
  49. {% include 'components/atoms/text-link/text-link.html.twig'
  50. with {
  51. 'class': 'text-link buy-box__variant-link',
  52. 'href': '#buy-box__variant-selection',
  53. 'text': 'to_variant_selection'|trans
  54. } %}
  55. {% endif %}
  56. {% endblock %}
  57. {% block buyBoxButtons %}
  58. {% if variant.salesStatus is defined
  59. and variant.salesStatus == constant('App\\Constant\\SalesStatus::SALE_STATUS_SALEABLE')
  60. and variant.attributes.price is defined and variant.attributes.price > 0
  61. %}
  62. <form action="{{ path('checkout_cart_add_line_item') }}" method="post" class="buy-box__form js-add-to-cart" aria-label="{{ 'add_to_basket'|trans}}">
  63. {% block buyBoxQuantity %}
  64. {% include 'components/molecules/quantity-input/quantity-input.html.twig' with {
  65. 'name': 'quantity',
  66. 'max': 100
  67. } %}
  68. {% endblock %}
  69. {% block buyBoxPackagingUnit %}
  70. {% if variant.packagingUnit|default %}
  71. <p class="buy-box__packaging-unit {{ variantNotAvailable ? 'buy-box__packaging-unit--no-float buy-box__packaging-unit--text-right':''}}">
  72. {{ 'packaging_unit'|trans }} = {{ variant.packagingUnit }}
  73. </p>
  74. {% endif %}
  75. {% endblock %}
  76. <input type="hidden" name="objectId" value="{{ product.id ~ '.' ~ variant.id }}">
  77. <input type="hidden" name="sku" value="{{ variant.sku }}">
  78. <input type="hidden" name="displaySku" value="{{ variant.displaySku }}">
  79. <input type="hidden" name="name" value="{{ variant.name }}">
  80. <input type="hidden" name="category" value="{{ variant.categoryName|default('') }}">
  81. <input type="hidden" name="price"
  82. value="{{ variant.attributes.centAmountGross|default(variant.currentPrices.listPrice.centAmountGross) }}">
  83. {{ checkout_csrf_token('checkout_cart_add_line_item') }}
  84. {% include 'components/atoms/button/button.html.twig' with {
  85. 'class': 'buy-box__button button--primary button--checkout button--cart',
  86. 'content': 'add_to_basket'|trans
  87. } %}
  88. </form>
  89. {% elseif not variantNotAvailable %}
  90. {% set freeProductSkuList = ['182394','132399','259811','259809'] %}
  91. {% if cms_globals.slot_inquiry is defined %}
  92. {% include 'components/atoms/button/button.html.twig'
  93. with {
  94. 'class': 'buy-box__button button--secondary button--checkout js-modal buy-box__request-for-price',
  95. 'type': 'button',
  96. 'content': transForInCondition('request_for_price', 'request_for_free', variant.sku|default, freeProductSkuList),
  97. 'attributes': {
  98. 'data-modal-id': 'inquiry'
  99. }
  100. } %}
  101. {% endif %}
  102. {% endif %}
  103. {% endblock %}
  104. </div>