initial commit

This commit is contained in:
Martin Filipovic Hinrichs 2026-06-03 12:00:51 +02:00
commit c1a7aec8ed
144 changed files with 10269 additions and 0 deletions

View file

@ -0,0 +1,46 @@
{% sw_extends '@Storefront/storefront/page/checkout/cart/index.html.twig' %}
{% block page_checkout_container %}
{{ parent() }}
{#<div class="row align-items-stretch">
<div class="col-sm-12 col-md-6">
<div class="card bg-light p-3 h-100">
<div class="card-body">
<h5 class="card-title">Versand &amp; Kosten</h5>
<div class="card-text">
<p>
Profitieren Sie von unserer <strong>kostenlosen Lieferung ab 12 Flaschen</strong>
innerhalb von Deutschland.
</p>
<p>
<strong>Bis 42 Flaschen</strong> erfolgt die Lieferung in 1er, 2er, 3er, 6er oder 12er Versandkartons.<br>
<strong>Ab 42 Flaschen</strong> liefern wir in 6er Einweg-Kartons per Spedition.
</p>
</div>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div class="card bg-light p-3 h-100">
<div class="card-body">
<h5 class="card-title">Bonusprogramm für Privatkunden</h5>
<div class="card-text">
<p>
Kennen Sie schon unser <strong>Bonusprogramm für Privatkunden</strong>? Oder sind Sie bereits
Bestandskunde und noch nicht in unserem Onlineshop registriert?<br>
Wir übernehmen gerne die Erstregistrierung für Sie.
</p>
<p>
Kontaktieren Sie uns unter: <a href="mailto:vinothek@bweg.de">vinothek@bweg.de</a>
</p>
<p>
Download: Formular Kundenantrag Allgemein
</p>
</div>
</div>
</div>
</div>
</div>#}
{% endblock %}

View file

@ -0,0 +1,70 @@
{% sw_extends '@Storefront/storefront/page/checkout/confirm/index.html.twig' %}
{% block page_checkout_confirm_revocation_notice %}
{% endblock %}
{% block page_checkout_confirm_tos_control_label %}
<label for="tos"
class="checkout-confirm-tos-label custom-control-label">
{{ "checkout.confirmTerms"|trans({
'%url%': path('frontend.cms.page',{ id: config('core.basicInformation.tosPage'), }),
'%revUrl%': path('frontend.cms.page',{ id: config('core.basicInformation.revocationPage') })
})|raw }}
</label>
{% endblock %}
{% block page_checkout_confirm_tos %}
{#<div class="card bg-light p-3 mb-5 small">
<div class="card-body">
<h5 class="card-title">Versand &amp; Kosten</h5>
<div class="card-text">
<p>
Profitieren Sie von unserer <strong>kostenlosen Lieferung ab 12 Flaschen</strong>
innerhalb von Deutschland.
</p>
<p>
<strong>Bis 42 Flaschen</strong> erfolgt die Lieferung in 1er, 2er, 3er, 6er oder 12er Versandkartons.<br>
<strong>Ab 42 Flaschen</strong> liefern wir in 6er Einweg-Kartons per Spedition.
</p>
</div>
</div>
</div>#}
{{ parent() }}
<div class="confirm-youthprotection">
<div class="card checkout-card">
<div class="card-body">
<div class="card-title">
Jugendschutzgesetz
</div>
<p>Gemäß dem Jugendschutzgesetz geben wir keinen Wein an Jugendliche unter 16 Jahren ab. Brandweine werden nicht an Jugendliche unter 18 Jahren abgegeben. <strong>Der Käufer bestätigt mit Abgabe der Bestellung, dass er das erforderliche Lebensalter nach dem Jugendschutzgesetz aufweist.</strong></p>
</div>
</div>
</div>
{#<div class="confirm-notice">
<div class="card checkout-card">
<div class="card-body">
<div class="card-title">
Sie haben uns noch etwas zu Ihrer Bestellung mitzuteilen?
</div>
<p>Schreiben Sie uns einfach an <a href="mailto:verkauf@bweg.de">verkauf@bweg.de</a> unter Angabe Ihrer Bestellnummer.</p>
</div>
</div>
</div>#}
{% endblock %}
{% block page_checkout_confirm_form_submit %}
{#<div class="card bg-light p-3 my-2 small">
<div class="card-body">
<strong>Hinweis:</strong> Warenwertgutscheine können aktuell nicht eingelöst werden. Die Funktion steht in den kommenden Tagen wieder zur Verfügung.
</div>
</div>#}
{{ parent() }}
{% endblock %}

View file

@ -0,0 +1,24 @@
{% sw_extends '@Storefront/storefront/page/content/index.html.twig' %}
{% block base_main_inner %}
<div class="container-main">
{% block page_content %}
{% block cms_breadcrumb %}
{#<div class="breadcrumb cms-breadcrumb container">
{% sw_include '@Storefront/storefront/layout/breadcrumb.html.twig' with {
context: context,
category: page.header.navigation.active
} only %}
</div>#}
{% endblock %}
{% block cms_content %}
<div class="cms-page">
{% block page_content_blocks %}
{% sw_include "@Storefront/storefront/page/content/detail.html.twig" with {'cmsPage': page.cmsPage} %}
{% endblock %}
</div>
{% endblock %}
{% endblock %}
</div>
{% endblock %}

View file

@ -0,0 +1,40 @@
{% sw_extends '@Storefront/storefront/page/product-detail/buy-widget-price.html.twig' %}
{% block page_product_detail_price_unit %}
<div class="product-detail-price-unit">
{% block page_product_detail_price_unit_label %}
{{ parent() }}
{% endblock %}
{% block page_product_detail_price_unit_content %}
{{ parent() }}
{% endblock %}
{% if price.referencePrice is not null %}
{% block page_product_detail_price_unit_reference_content %}
{{ parent() }}
{% endblock %}
{% endif %}
<div class="product-detail-tax-container">
{% if context.taxState == "gross" %}
{% set taxText = "general.grossTaxInformation"|trans|sw_sanitize %}
{% else %}
{% set taxText = "general.netTaxInformation"|trans|sw_sanitize %}
{% endif %}
<p class="product-detail-tax">
{% block page_product_detail_tax_link %}
<a class="product-detail-tax-link"
href="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}"
title="{{ taxText }}"
data-toggle="modal"
data-url="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}">
{{ taxText }}
</a>
{% endblock %}
</p>
</div>
</div>
{% endblock %}

View file

@ -0,0 +1,8 @@
{% sw_extends '@Storefront/storefront/page/product-detail/buy-widget.html.twig' %}
{% block page_product_detail_tax %}{% endblock %}
{% block page_product_detail_ordernumber_container %}{% endblock %}

View file

@ -0,0 +1,126 @@
{% block page_product_detail_properties_inner %}
<div class="product-detail-properties">
{% block page_product_detail_properties_container %}
<tr class="row product-detail-customfields-container">
{% block page_product_detail_properties_table %}
<table class="table table-striped product-detail-properties-table">
<tbody>
{# @var product \Shopware\Core\Content\Product\SalesChannel\SalesChannelProductEntity #}
{# {% for customFieldKey, customFieldValue in page.product.translated.customFields %}#}
{% block page_product_detail_customfields_table_row %}
{% if page.product.extensions.bwegProperties.get('840da18f18184040ac2c34e9a13abd83') is not empty %}
<tr class="properties-row">
<th class="properties-label">Produktlinie:</th>
<td class="properties-value">{{ page.product.extensions.bwegProperties.get('840da18f18184040ac2c34e9a13abd83') }}</td>
</tr>
{% endif %}
{% if page.product.translated.customFields.custom_wein_jahrgang|trans is not empty %}
<tr class="properties-row">
<th class="properties-label">{{ "customFields.custom_wein_jahrgang"|trans|sw_sanitize }}:</th>
<td class="properties-value">{{ page.product.translated.customFields.custom_wein_jahrgang|trans }}</td>
</tr>
{% endif %}
{% if page.product.translated.customFields.custom_wein_alkohol|trans is not empty %}
<tr class="properties-row">
<th class="properties-label">{{ "customFields.custom_wein_alkohol"|trans|sw_sanitize }}:</th>
<td class="properties-value">{{ page.product.translated.customFields.custom_wein_alkohol|trans }} %</td>
</tr>
{% endif %}
{% if page.product.translated.customFields.custom_wein_saeure|trans is not empty %}
<tr class="properties-row">
<th class="properties-label">{{ "customFields.custom_wein_saeure"|trans|sw_sanitize }}:</th>
<td class="properties-value">{{ page.product.translated.customFields.custom_wein_saeure|trans }} g/l</td>
</tr>
{% endif %}
{% if page.product.translated.customFields.custom_wein_restzucker|trans is not empty %}
<tr class="properties-row">
<th class="properties-label">{{ "customFields.custom_wein_restzucker"|trans|sw_sanitize }}:</th>
<td class="properties-value">{{ page.product.translated.customFields.custom_wein_restzucker|trans }} g/l</td>
</tr>
{% endif %}
{% if page.product.translated.customFields.custom_wein_allergene|trans is not empty %}
<tr class="properties-row">
<th class="properties-label">{{ "customFields.custom_wein_allergene"|trans|sw_sanitize }}:</th>
<td class="properties-value">{{ page.product.translated.customFields.custom_wein_allergene|trans }}</td>
</tr>
{% endif %}
{% if page.product.extensions.bwegProperties.get('137f0e25929347c2bf26fc50196a3699') is not empty %}
<tr class="properties-row">
<th class="properties-label">Rebsorte:</th>
<td class="properties-value">{{ page.product.extensions.bwegProperties.get('137f0e25929347c2bf26fc50196a3699') }}</td>
</tr>
{% endif %}
{% if page.product.extensions.bwegProperties.get('c19533e52b634c7693e9b27c3c1ab6ab') is not empty %}
<tr class="properties-row">
<th class="properties-label">Auszeichnungen:</th>
<td class="properties-value">
{{ page.product.extensions.bwegProperties.get('c19533e52b634c7693e9b27c3c1ab6ab') }}
</td>
</tr>
{% endif %}
{% if page.product.translated.customFields.custom_wein_anbauregion|trans is not empty %}
<tr class="properties-row">
<th class="properties-label">{{ "customFields.custom_wein_anbauregion"|trans|sw_sanitize }}:</th>
<td class="properties-value">{{ page.product.translated.customFields.custom_wein_anbauregion|trans }}</td>
</tr>
{% endif %}
{% if page.product.translated.customFields.custom_wein_erzeuger|trans is not empty %}
<tr class="properties-row">
<th class="properties-label">{{ "customFields.custom_wein_erzeuger"|trans|sw_sanitize }}:</th>
<td class="properties-value">{{ page.product.translated.customFields.custom_wein_erzeuger|trans }}</td>
</tr>
{% endif %}
{% if page.product.translated.customFields.custom_wein_ursprungsland|trans is not empty %}
<tr class="properties-row">
<th class="properties-label">{{ "customFields.custom_wein_ursprungsland"|trans|sw_sanitize }}:</th>
<td class="properties-value">{{ page.product.translated.customFields.custom_wein_ursprungsland|trans }}</td>
</tr>
{% endif %}
{% if page.product.translated.customFields.custom_wein_losnummer|trans is not empty %}
<tr class="properties-row">
<th class="properties-label">{{ "customFields.custom_wein_losnummer"|trans|sw_sanitize }}:</th>
<td class="properties-value">{{ page.product.translated.customFields.custom_wein_losnummer|trans }}</td>
</tr>
{% endif %}
{% if page.product.translated.customFields.custom_wein_apno|trans is not empty %}
<tr class="properties-row">
<th class="properties-label">{{ "customFields.custom_wein_apno"|trans|sw_sanitize }}:</th>
<td class="properties-value">{{ page.product.translated.customFields.custom_wein_apno|trans }}</td>
</tr>
{% endif %}
{#{% if customFieldKey != 'custom_wein_misc' %}
<tr class="properties-row">
{% block page_product_detail_customfields_item_label %}
<th class="properties-label">{{ "customFields.#{customFieldKey}"|trans|sw_sanitize }}:</th>
{% endblock %}
{% block page_product_detail_customfields_item_value %}
<td class="properties-value">{{ "#{customFieldValue}"|trans }}</td>
{% endblock %}
</tr>
{% endif %}#}
{% endblock %}
{# {% endfor %}#}
{% if page.product.productNumber %}
<tr class="properties-row">
{% block page_product_detail_ordernumber_label %}
<th class="properties-label">{{ "detail.productNumberLabel"|trans|sw_sanitize }}</th>
{% endblock %}
{% block page_product_detail_ordernumber %}
<td class="properties-value"><meta itemprop="productID" content="{{ page.product.id }}"/> <span itemprop="sku">{{ page.product.productNumber }}</span></td>
{% endblock %}
</tr>
{% endif %}
{% if page.product.translated.customFields.custom_expertise_pdf is not empty %}
<tr class="properties-row">
<th class="properties-label">{{ "detail.expertiseLabel"|trans|sw_sanitize }}</th>
<td class="properties-value"><a href="https://dev.bergstraesserwinzer.de/files/bweg_2021/Downloads/Expertisen{% if page.product.translated.customFields.custom_expertise_pdf starts with '/' %}{{ page.product.translated.customFields.custom_expertise_pdf }}{% else %}/{{ page.product.translated.customFields.custom_expertise_pdf }}{% endif %}">&raquo; Downloaden</a></td>
</tr>
{% endif %}
</tbody>
</table>
{% endblock %}
</div>
{% endblock %}
</div>
{% endblock %}

View file

@ -0,0 +1,27 @@
{% sw_extends '@Storefront/storefront/page/product-detail/description.html.twig' %}
{% block utilities_offcanvas_content %}
{% block page_product_detail_description_container %}
<div class="product-detail-description tab-pane-container">
{% block page_product_detail_description_title %}
{#<div class="h3 product-detail-description-title">
{{ "detail.miscTitle"|trans|sw_sanitize }}
</div>#}
{% endblock %}
{% block page_product_detail_description_content %}
{% block page_product_detail_description_content_text %}
<div class="product-detail-description-text">
{{ page.product.translated.customFields.custom_wein_misc|raw }}
</div>
{% endblock %}
{% block page_product_detail_description_content_properties %}
{#{% if page.product.sortedProperties|length > 0 %}
{% sw_include '@Storefront/storefront/page/product-detail/properties.html.twig' %}
{% endif %}#}
{% endblock %}
{% endblock %}
</div>
{% endblock %}
{% endblock %}

View file

@ -0,0 +1,78 @@
{% sw_extends '@Storefront/storefront/page/product-detail/index.html.twig' %}
{% block base_breadcrumb %}{% endblock %}
{% block page_product_detail_headline %}{% endblock %}
{% block page_product_detail_media %}
<div class="col-lg-7 product-detail-media">
{% if page.product.media %}
{% sw_include '@Storefront/storefront/element/cms-element-image-gallery.html.twig' with {
'mediaItems': mediaItems,
'zoom': false,
'zoomModal': true,
'displayMode': 'contain',
'gutter': 5,
'minHeight': '430px',
'navigationArrows': 'inside',
'navigationDots': 'inside',
'galleryPosition': 'left',
'isProduct': true,
'fallbackImageTitle': page.product.translated.name,
'startIndexThumbnails': page.product.cover.position + 1,
'startIndexSlider': page.product.cover.position + 1
} %}
{% endif %}
{% if page.product.extensions.awardMedia|length %}
<div class="awards">
{% for awardMedia in page.product.extensions.awardMedia.all() %}
<a href="https://www.wg-schriesheim.de/auszeichnungen"
title="{{ name }}" target="_blank">
{% sw_thumbnails 'awardMedia' with {
media: awardMedia|first,
sizes: {
'xs': '501px',
'sm': '315px',
'md': '427px',
'lg': '333px',
'xl': '284px',
'default': '100px'
},
attributes: {
'title': awardMedia|first.title
}
} %}
</a>
{% endfor %}
</div>
{% endif %}
</div>
{% endblock %}
{% block page_product_detail_buy %}
<div class="col-lg-5 product-detail-buy">
{% block page_product_detail_name %}
<h1 class="product-detail-name"
itemprop="name">
{% if page.product.customFields.custom_wein_jahrgang %}<span class="year">{{ page.product.customFields.custom_wein_jahrgang }}er</span>{% endif %}
<span class="site">{{ page.product.extensions.bwegProperties.get('4d005d04a2924cc4b59612875aee757c') }}</span>
{{ page.product.translated.name }}
<span class="qty_taste">{#{{ page.product.extensions.bwegProperties.get('3897a8e7eb47405f941525a2c21395c8') }}#}{{ page.product.extensions.bwegProperties.get('840da18f18184040ac2c34e9a13abd83') }} {{ page.product.extensions.bwegProperties.get('087598bcbf044684b57fa108f0385128') }}</span>
{% if page.product.customFields.custom_wein_addendum %}
<span class="addendum">{{ page.product.customFields.custom_wein_addendum }}</span>
{% endif %}
</h1>
{% endblock %}
{% sw_include '@Storefront/storefront/page/product-detail/buy-widget.html.twig' %}
{% block page_product_detail_buy_description %}
<div class="h3 product-detail-description-title">
{# {{ "detail.characterTitle"|trans|sw_sanitize }} #}
{{ "detail.miscTitle"|trans|sw_sanitize }}
</div>
<div class="product-detail-description-text"
itemprop="description">
{{ page.product.translated.description|raw }}
</div>
{% endblock %}
{% sw_include '@Bweg/storefront/page/product-detail/customfields.html.twig' %}
</div>
{% endblock %}

View file

@ -0,0 +1,50 @@
{% sw_extends '@Storefront/storefront/page/product-detail/properties.html.twig' %}
{% block page_product_detail_properties_inner %}
<div class="product-detail-properties">
{% block page_product_detail_properties_container %}
<div class="row product-detail-properties-container">
<div class="col-md-10 col-lg-6">
{% block page_product_detail_properties_table %}
<table class="table table-striped product-detail-properties-table">
<tbody>
{# @var product \Shopware\Core\Content\Product\SalesChannel\SalesChannelProductEntity #}
{% for group in page.product.sortedProperties %}
{% block page_product_detail_properties_table_row %}
<tr class="properties-row">
{% block page_product_detail_properties_item_label %}
<th class="properties-label">{{ group.translated.name|e }}:</th>
{% endblock %}
{% block page_product_detail_properties_item_value %}
<td class="properties-value">
{% apply spaceless %}
{% for option in group.options %}
{% set i = ( i | default(0) ) + 1 %}
<span>{% if i > 1 %}, {% endif %}{{ option.translated.name|e }}</span>
{% endfor %}
{% endapply %}
</td>
{% endblock %}
</tr>
{% endblock %}
{% endfor %}
{% for customFieldKey, customFieldValue in page.product.translated.customFields %}
{% block page_product_detail_customfields_table_row %}
<tr class="properties-row">
{% block page_product_detail_customfields_item_label %}
<th class="properties-label">{{ "customFields.#{customFieldKey}"|trans|sw_sanitize }}:</th>
{% endblock %}
{% block page_product_detail_customfields_item_value %}
<td class="properties-value">{{ "#{customFieldValue}"|trans }}</td>
{% endblock %}
</tr>
{% endblock %}
{% endfor %}
</tbody>
</table>
{% endblock %}
</div>
</div>
{% endblock %}
</div>
{% endblock %}

View file

@ -0,0 +1,31 @@
{% sw_extends '@Storefront/storefront/page/product-detail/tabs.html.twig' %}
{% block page_product_detail_tabs_navigation_description %}
<li class="nav-item">
<a class="nav-link {% if (ratingSuccess != 1) and (ratingSuccess != -1) %}active{% endif %} product-detail-tab-navigation-link"
id="description-tab"
data-toggle="tab"
data-offcanvas-tabs="true"
href="#description-tab-pane"
role="tab"
aria-controls="description-tab-pane"
aria-selected="true">
<span class="product-detail-tab-navigation-icon">
{% sw_icon 'arrow-medium-right' style {'pack':'solid'} %}
</span>
{% if page.product.translated.description|length > 0 %}
<span class="product-detail-tab-preview">
{{ page.product.translated.description|raw|striptags|sw_sanitize|u.truncate(125, '…') }}
{# truncate always cuts down the length to 125 characters.
So it will only shorten the string if it exceeds 125 chars.
Therefor, only show the button when the length of the text is
greater or equal then 126 characters. #}
{% if page.product.translated.description|length >= 126 %}
<span class="product-detail-tab-preview-more">{{ "detail.tabsPreviewMore"|trans|sw_sanitize }}</span>
{% endif %}
</span>
{% endif %}
</a>
</li>
{% endblock %}