Moin Moin liebe Community,
ich suche Unterstützung für die Anpassung der Shopware 6 Schnittstelle an das "Produkt Konfigurator 6 Enterprise" Plugin.
Im Wesentlichen geht es bei der Anpassung darum, dass die Konfiguration des jeweils bestellten Produkts beim Import der Aufträge mit importiert wird, sofern es sich um ein Produkt handelt, dass mit dem Konfigurator im Shop konfiguriert werden kann. Wo diese Bestelldaten in der Datenbank liegen, weiß ich: Tabelle "order_line_item", Spalte "payload". JSON rauskopieren und nach dem key="bogxProductConfigurator" suchen. Ab da sind dann die Konfigurationsdaten zu finden.
Vom Hersteller dieses Plugins gibt es eine Anpassung der Shopware 6 Bestellbestätigungs-E-Mail. Da diese ja auf die selben Daten in der Datenbank zugreift, sollte eine Ableitung dieses Codes für die Integration in die Shopware 6 Schnittstelle doch eigentlich kein Hexenwerk sein - zumindest wenn man denn Ahnung vom Programmieren hat....was bei mir leider nicht der Fall ist.
Nachfolgend einmal ein Auszug der Code-Anpassung für die Shopware 6 Bestellbestätigungs-E-Mail:
{# ----------- BLOCK EXTENDED by BOGX ----------- #}
{% block lineItem %}
{# ORIGINAL SHOPWARE #}
{% if nestedItem.payload.bogxProductConfigurator is not defined %}
<tr>
<td>{% if nestedItem.payload.productNumber is defined %}{{ nestedItem.payload.productNumber|u.wordwrap(80) }}{% endif %}</td>
<td>{% if nestedItem.cover is defined and nestedItem.cover is not null %}<img src="{{ nestedItem.cover.url }}" width="75" height="auto" alt="{{ nestedItem.label }}"/>{% endif %}</td>
<td>
{% if nestingLevel > 0 %}
{% for i in 1..nestingLevel %}
<span style="position: relative;">
<span style="display: inline-block;
position: absolute;
width: 6px;
height: 20px;
top: 0;
border-left: 2px solid rgba(0, 0, 0, 0.15);
margin-left: {{ i * 10 }}px;"></span>
</span>
{% endfor %}
{% endif %}
<div{% if nestingLevel > 0 %} style="padding-left: {{ (nestingLevel + 1) * 10 }}px"{% endif %}>
{{ nestedItem.label|u.wordwrap(80) }}
</div>
{% if nestedItem.payload.options is defined and nestedItem.payload.options|length >= 1 %}
<div>
{% for option in nestedItem.payload.options %}
{{ option.group }}: {{ option.option }}
{% if nestedItem.payload.options|last != option %}
{{ " | " }}
{% endif %}
{% endfor %}
</div>
{% endif %}
{% if nestedItem.payload.features is defined and nestedItem.payload.features|length >= 1 %}
{% set referencePriceFeatures = nestedItem.payload.features|filter(feature => feature.type == 'referencePrice') %}
{% if referencePriceFeatures|length >= 1 %}
{% set referencePriceFeature = referencePriceFeatures|first %}
<div>
{{ referencePriceFeature.value.purchaseUnit }} {{ referencePriceFeature.value.unitName }}
({{ referencePriceFeature.value.price|currency(currencyIsoCode) }}* / {{ referencePriceFeature.value.referenceUnit }} {{ referencePriceFeature.value.unitName }})
</div>
{% endif %}
{% endif %}
</td>
<td style="text-align: center">{{ nestedItem.quantity }}</td>
<td>{{ nestedItem.unitPrice|currency(currencyIsoCode) }}</td>
<td>{{ nestedItem.totalPrice|currency(currencyIsoCode) }}</td>
</tr>
{# BOGX KONFIGURATION #}
{% else %}
{% set bogxConfigArray = nestedItem.payload.bogxProductConfigurator %}
{% set bogx_precision = bogxConfigArray.unitySurchargePrecision %}
{% set taxState = order.taxStatus %} {# 'gross'=brutto or 'net'=netto #}
<tr>
{# Produkt-Nr #}
<td style="vertical-align:top;">{% if nestedItem.payload.productNumber is defined %}{{ nestedItem.payload.productNumber|u.wordwrap(80) }}{% endif %}</td>
{# Produktbild #}
{% if bogxConfigArray.productImage is defined and bogxConfigArray.productImage is not null %}
<td style="vertical-align:top;"><img src="{{ bogxConfigArray.productImage }}" width="75" height="auto" alt="{{ bogxConfigArray.productName }}"/></td>
{% else %}
<td style="vertical-align:top;">{% if nestedItem.cover is defined and nestedItem.cover is not null %}<img src="{{ nestedItem.cover.url }}" width="75" height="auto" alt="{{ bogxConfigArray.productName }}"/>{% endif %}</td>
{% endif %}
{# Bezeichnung #}
<td>
<div>{{ bogxConfigArray.productName }}</div>
{% if bogxConfigArray.ordercode is defined and bogxConfigArray.ordercode %}
<div>Order-Code: {{ bogxConfigArray.ordercode }}</div>
{% else %}
<div>Produkt-Nr: {{ bogxConfigArray.articleordernumber }}</div>
{% endif %}
<table style="border-collapse: collapse;border-spacing: 0;border: 0;width: 100%;font-size: 12px;margin: 10px 0 15px 0;">
{% for bogxPosition in bogxConfigArray.optionsGroups %}
{% set dt = bogxPosition.datatype %}
{# MULTISELECT without image #}
{% if dt == 'checkbox_set' or dt == 'checkbox_quantity' %}
{% for valueId in bogxPosition.valueID %}
{% set bogxTitle = bogxPosition.title[valueId] %}
{% set bogxSurcharge = "" %}
{% if bogxPosition.unitySurcharge[valueId] is defined %}
{% if bogxPosition.unitySurcharge[valueId][2] %} {% set bogx_precision = bogxPosition.unitySurcharge[valueId][2] %} {% endif %}
{% if taxState == 'net' %}
{% set unityPrice=bogxPosition.unitySurcharge[valueId][0] | currency(currencyIsoCode, null, bogx_precision) %}
{% else %}
{% set unityPrice=bogxPosition.unitySurcharge[valueId][1] | currency(currencyIsoCode, null, bogx_precision) %}
{% endif %}
{% endif %}
{% if unityPrice is defined and '$price' in title %}
{% set bogxTitle = bogxTitle|replace({'$price': unityPrice}) %}
{% set bogxTitle = bogxTitle|replace({'\n':'<br>\n'}) %}
{% elseif '<b>' in title %}
{% set bogTitle = bogxTitle|split('<b>')[0] %}
{% endif %}
{% if bogxPosition.surcharge[valueId] is defined %}
{% if bogxPosition.surcharge[valueId][2] %} {% set bogx_precision = bogxPosition.surcharge[valueId][2] %} {% endif %}
{% if taxState == 'net' %}
{% set bogxSurcharge=bogxPosition.surcharge[valueId][0] | currency(currencyIsoCode, null, bogx_precision) %}
{% else %}
{% set bogxSurcharge=bogxPosition.surcharge[valueId][1] | currency(currencyIsoCode, null, bogx_precision) %}
{% endif %}
{% endif %}
....usw.
Alles anzeigen
Hätte jemand von Euch Zeit, Lust und Ahnung mir bei der Anpassung der Schnittstelle zu helfen!?
Wenn sich vielleicht sogar Jemand finden sollte, der diese Anpassung komplett für mich übernehmen würde, wäre ich auch gern bereit seinen Aufwand angemessen zu entschädigen