Hallo zusammen,
ich möchte die Zubehörartikel in deutsch darstellen. Es muss doch möglich sein dieses Accessory Items zentral irgendwo zu ÄNDERN!
Unter Textbausteinen ist Accessory Items nicht zu finden.
Das man das einzeln in den Produkten ändern kann, ist mir schon klar.
Aber bei über 1000 Produkten dies einzeln zu ändern, dauert ja Stunden.
Warum ist das überhaupt auf englisch?
In der Shopware 5 Version war das CrossSelling ja fester Bestandteil. Warum ist das bei der 6er Version nicht der Fall. So muss man sich jetzt mit einem externen Plugin weiterhelfen!
Vielleicht gibt es jemanden, die hierfür eine Lösung hat.
falls jemand dasselbe Problem hat und es nicht über die DB ändern möchte:
In der views\storefront\element\cms-element-cross-selling.html.twig im Block cms_element_cross_selling_tabs_navigation_container den Namen des Produkt CrossSellings {{ crossSelling.translated.name }} austauschen gegen einen eigenen Textbaustein.
Hallo,
wie habt ihr das Problem gelöst, wenn es in SW5 für einen Artikel unter Cross-Selling „Ähnliche Artikel“ und „Zubehör-Artikel“ gibt?
In SW6 werden bei der Migration beide Einträge als „Accessory Items“ im Namen übernommen. Ergebnis sind 2 gleiche „Gruppennamen“ in SW6-Frontend beim Artikel.
In der Tabelle product_cross-selling_translation sind dann unter „name“ ausschließlich „Accessory Items“ enthalten.
Gibt es da einen Weg, das evtl. im Migrations-Plugin zu lösen?
Da ist ja wahrscheinlich schon die Abfrage zu den Cross-Sellings falsch, wenn immer der gleiche Name vergeben wird, richtig wäre ja, wenn nach „Ähnliche Artikel“ und „Zubehörartikel“ unterschieden würde…
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‚Items‘, ‚Ähnliche Artikel‘)‘ at line 2
final public const CROSS_SELLING_ACCESSORY = 'cross_selling_accessory_item';
final public const CROSS_SELLING_SIMILAR = 'cross_selling_similar_item';
ersetzen durch
final public const CROSS_SELLING_ACCESSORY = 'product_cross_selling_accessory';
final public const CROSS_SELLING_SIMILAR = 'product_cross_selling_similar';
Dann die Artikel neu migrieren und danach erst die Namen in der Datenbank ersetzen mit :
UPDATE `product_cross_selling_translation` SET `name` = 'Zubehör' WHERE `name` LIKE 'Accessory Items';
UPDATE `product_cross_selling_translation` SET `name` = 'Ähnliche Artikel' WHERE `name` LIKE 'Similar Items';
Ich habe das so gemacht:
Im Backend ein neues Textbaustein erstellt:
Name: customCrossSelling
Textbaustein-Set: BASE de-DE : Ähnliche Artikel
Textbaustein-Set: BASE en-GB : Similar Items
…
Dann in meinem ChildTheme die Datei erstellt:
/page/product-detail/cross-selling/tabs.html.twig
und da habe ich den Block aus der Datei der MutterTheme reinkopiert und wie folgt geändert:
{% sw_extends '@Storefront/storefront/page/product-detail/cross-selling/tabs.html.twig' %}
{% block page_product_detail_cross_selling_tabs_navigation_container %}
<ul class="nav nav-tabs product-detail-tab-navigation-list"
id="product-detail-cross-selling-tabs"
role="tablist">
{% for item in crossSellings|filter(item => item.total > 0 and item.crossSelling.active == true) %}
{% set id = item.crossSelling.id %}
<li class="nav-item">
<a class="nav-link product-detail-tab-navigation-link{% if loop.first %} active{% endif %}"
id="cs-{{ id }}-tab"
data-bs-toggle="tab"
href="#cs-{{ id }}-tab-pane"
role="tab"
title="{{ item.crossSelling.name }}"
aria-controls="cs-{{ id }}-tab-pane"
aria-selected="true">
{{ "customCrossSelling"|trans|sw_sanitize }}
<span class="product-detail-tab-navigation-icon">
{% sw_icon 'arrow-medium-right' style {'pack':'solid'} %}
</span>
</a>
</li>
{% endfor %}
</ul>
{% endblock %}
Dann noch:
php bin/console theme:compile
und
php bin/console cache:clear
Abgesehen ist es völlig unklar, warum der Name hier in der Tabelle „product_cross_selling_translation“ fest drin steht. Warum wurde an dieser Stelle kein Textbaustein eingebaut, so wie im Rest von SW6?
Das hängt ganz von deiner individuellen Situation ab. Die Cross-Selling-Titel werden bei jedem Artikel angezeigt und können bei Bedarf (in verschiedenen Sprachen) angepasst werden.