Fragen & Antworten
Plugin: Wunsch-Lieferdatum
Dies ist im Standard nicht möglich, wir haben allerdings hier ein kurzes Tutorial für Shopware 5 erstellt, wie diese Modifikation selbst vorgenommen werden kann.
[Shopware 5]
Mit unserem SW5 Plugin sehen Sie die Daten in der Bestellübersicht & in der Detail-Ansicht der Bestellung unten im Reiter „Übersicht“:
[Shopware 6]
Für Shopware 6 gibt es aktuell noch keine Ansicht in der Bestellübersicht – lediglich in der Detailansicht der Bestellung, unten unter den Belegen:
[Dieser Hinweis ist nur gültig bis Plugin-Version 6.0.7 – ab Version 6.0.8 sollte dieses Problem nicht mehr auftreten – der Fix wird nicht mehr benötigt.]
Unser Plugin ermittelt aus den Einstellungen Ihres Shops die Shop-URL, um im Anschluss per AJAX Call das Wunsch-Lieferdatum nach der Auswahl durch Ihre Kund*innen in der Session zu verspeichern. Sollte es in Ihrem Shop dazu kommen, dass diese Anfrage fehlschlägt, sehen sie die Ladeanimation dauerhaft (graues Overlay und drei schwarze Punkte) – der Shop „hängt sich auf“.
In den meisten Fällen, liegt dies darin begründet, dass die primäre Domain in Ihrem Saleschannel nicht mit der Domain übereinstimmt, unter der Ihr Shop aufgerufen wird. Stellen Sie sicher, dass die erste Domain unter Verkaufskanäle -> Ihr Verkaufskanal -> Domains auch die Domain ist, die genutzt werden soll – vor allem, was HTTP und HTTPS betrifft. In den meisten Fällen wird Ihr Shop mit HTTPS aufgerufen werden und mögliche Aufrufe per HTTP werden per Redirect auf HTTPS weitergeleitet. In diesem Fall sollte auch die erste URL in den Einstellungen die HTTPS Domain sein:
Version 3 unseres Plugins bringt eine zusätzliche Spalte „Wunsch-Uhrzeit“ in die Bestellübersicht. Um diese auszublenden, erstellen Sie bitte die folgende Datei auf Ihrem Server: themes/Backend/ExtJs/backend/order/view/deliverydate/list/list.js
Befüllen Sie diese anschließend mit dem unten stehenden Code, leeren Sie den Cache und laden das Backend anschließend neu.
Hinweis: wenn diese Datei auf dem Server liegt, werden zukünftige Änderungen der Original-Datei im Plugin überschrieben. Prüfen Sie bei Updates unseres Plugins daher regelmäßig, ob sich die Originaldatei verändert hat.
//{block name="backend/order/view/list/list" append} //{namespace name="backend/dtgsdeliverydate/main"} Ext.define('Shopware.apps.Order.view.deliverydate.list.List', { /** * Defines an override applied to a class. * @string */ override: 'Shopware.apps.Order.view.list.List', /** * Overrides the getColumns function of the overridden ExtJs object * and inserts two new columns * @return */ getColumns: function() { var me = this; var columns = me.callOverridden(arguments); var columnDate = { header: '{s name=order/list/name_column}Delivery date{/s}', dataIndex:'deliverydate_date', flex: 2, sortable: false, renderer: me.addDtgsDeliveryDateColumn }; return Ext.Array.insert(columns, 1, [columnDate]); }, addDtgsDeliveryDateColumn: function (value, metaData, record) { //console.log(value); if(value === '' ) { return 'n/a'; } return value; } }); //{/block}
Beim Update von einer Version 1.x auf Version 2.x kann es zu einer Fehlermeldung dieser Art kommen „An exception occurred while executing ‚INSERT INTO s_core_config_elements (name, value, description, label, type, required, position, scope, options, form_id) VALUES…“ Diese Fehlermeldung wird durch den Wechsel auf das neue Plugin-System verursacht und kann ignoriert werden. Sie beeinträchtigt die Funktionalität des Plugins in keiner Weise.
Wenn Sie das Plugin in einer Version < 2.0.0 sowie eine Shopware-Version ab 5.2.x verwenden, gibt es keine Spalte in der Bestellübersicht mehr. Bitte verwenden Sie das Backend-Widget, welches Ihnen die nächsten Wunschlieferdaten chronologisch korrekt sortiert anzeigt. Die Bestellstatus, die zur Anzeige im Widget führen, lassen sich über die Plugin-Optionen festlegen. Ab Plugin Version 2.0.0 ist die Spalte wieder in der Bestellübersicht verfügbar!
Ja, auch in den PDF-Dokumenten (für Lieferschein, Gutschrift, Rechnung, etc.) ist das Datum verfügbar!
Für Shopware-Versionen < 5.2.x:
Bitte verwenden Sie die Template-Variable {$Order._order.attributes.deliverydate_Date}!
Für Shopware-Versionen >= 5.2.x:
Bitte verwenden Sie die Template-Variable {$Order._order.attributes.deliverydate_date}!
[Für Shopware 5]
Verwenden Sie dazu bitte die Variablen
//für die Ausgabe des Datums {$additional.customDeliveryDate} //für die Ausgabe der Uhrzeit {$additional.customDeliveryTime}
in Ihrer E-Mail Vorlage. Wichtig: zum Editieren Ihrer E-Mail Vorlagen sind meist HTML Kenntnisse nötig. Bitte ändern Sie hier nur etwas, wenn Sie über entsprechende Kenntnisse oder Hilfestellung verfügen. Die Änderungen geschehen auf eigene Gefahr! Weitere Informationen zu den E-Mail Vorlagen in Shopware finden Sie unter diesem Link.
[Für Shopware 6 – ab Plugin Version 6.0.4]
In der Bestellbestätigung verwenden Sie bitte den Template-Baustein
{{ order.customFields.deliveryDate }}
In allen anderen Templates verwenden Sie bitte:
{{ order.customFields.dtgs_delivery_date|date('d.m.Y H:i',false) }}
[Ab Shopware Version 6.5.x]
Verwenden Sie bitte:
{{ order.customFields.dtgs_delivery_date|date('d.m.Y H:i',false) }}
Dabei können Sie das Datum nach eigenem Wunsch formatieren, ändern Sie den String „d.m.Y H:i“ einfach wie gewünscht ab. Eine Bedeutung der Buchstaben finden Sie hier.
Das von Shopware verwendete JavaScript Framework bietet an dieser Stelle nicht die Möglichkeit, nach dem Datum zu sortieren. Um eine stets aktuelle, chronologische Übersicht über die kommenden Wunsch-Liefertermin zu bekommen, aktivieren Sie das im Plugin enthaltene Backend-Widget. Über die Plugin-Konfiguration können Sie steuern, welche Bestellstatus im Widget inkludiert werden sollen. So können Sie z.B. steuern, dass Bestellungen, welche bereits bearbeitet wurden, nicht mehr im Widget erscheinen.
Plugin: Google Tag Manager Integration + Remarketing
Für Shopware 5:
Stellen Sie sicher, dass unser Plugin in Ihrem Theme den Smarty-Block „frontend_detail_buy_configurator_inputs“ erweitern kann. Die Datei „custom/plugins/DtgsGoogleTagManager/Resources/views/frontend/detail/buy.tpl“ erweitert diesen Block um hidden fields, in denen die entsprechenden Values für das Produkt gespeichert werden.
Die hidden fields aus der Datei „custom/plugins/DtgsGoogleTagManager/Resources/views/frontend/plugins/TagManager/buy.tpl“ müssten dann im Quellcode zu finden sein.
Für Shopware 6:
Damit das Event gefeuert werden kann, darf die Standard-Klasse für den Button „Aus dem Warenkorb löschen“ nicht verändert werden. Diese Klasse trägt den Namen „cart-item-remove-button“
Außerdem erweitern wird den Block „page_checkout_item_remove_submit“ (in custom/plugins/DtgsGoogleTagManagerSw6/src/Resources/views/storefront/page/checkout/checkout-item.html.twig) und fügen über ein Hidden Input Field mit dem Namen „dtgs-gtm-product-sku“ die Produkt-ID ein, damit das Event dieses auch an den Tag Manager übergeben kann. Fehlt die ID, wird das Event nicht gefeuert.
Für Shopware 5:
Stellen Sie sicher, dass unser Plugin in Ihrem Theme den Smarty-Block „frontend_checkout_cart_item_delete_article“ erweitern kann.
Diese ID wird für das Google Ads Conversion Tracking benötigt, siehe auch:
https://www.datafeedwatch.com/blog/google-ads-conversion-data-cart
Sie wird auch „Google Merchant Center ID“ genannt. Der Key/ Parameter heißt „aw_merchant_id“.
Hinweis: dies ist aktuell nur im SW5 Plugin verfügbar, ab Version 2.8.7!
Die Custom Metrics und Custom Dimensions können beim Addtocart und Removefromcart Event genutzt werden, Enhanced Ecommerce muss im Plugin aktiviert sein.
Um Custom Metrics und Custom Dimensions für Addtocart zu übergeben, erstellen Sie folgende Datei in Ihrem Theme:
themes/Frontend/MeinTheme/frontend/plugins/TagManager/buy.tpl
und befüllen Sie diese folgendermaßen:
{extends file="parent:frontend/plugins/TagManager/buy.tpl"} {block name="frontend_detail_buy_configurator_gtm_inputs"} {$smarty.block.parent} {/block}
Es können Dimensions und/oder Metrics von 1-99 angegeben werden.
Um Custom Metrics und Custom Dimensions für Removefromcart zu übergeben, erstellen Sie folgende Datei in Ihrem Theme:
themes/Frontend/MeinTheme/frontend/plugins/TagManager/checkout_product.tpl
{extends file="parent:frontend/plugins/TagManager/checkout_product.tpl"} {block name="frontend_checkout_product_gtm_inputs"} {$smarty.block.parent} {/block}
Leeren Sie anschließend Ihren Cache. Wichtig: nach dem Update auf Version 2.8.7 muss das Theme einmalig neu kompiliert werden.
Damit die Cookies vom Shopware Consent Manager korrekt gelöscht werden, muss die Cookie-Domain stimmen. Wenn die Cookies in einer Wildcard-Domain (.domain.com) erstellt werden, hat der Consent Manager üblicherweise keinen Zugriff darauf.
Um hier Abhilfe zu schaffen, stellen Sie bitte im Analytics Tag die Cookie Domain „none“ ein. Am einfachsten geht dies, wenn Sie in GTM eine „Google Analytics Einstellungen“ Variable erstellen, dort die Cookie Domain setzen und in Ihrem Analytics dann auf diese Variable verweisen.
Siehe auch:
Unser Plugin liefert nur den grundsätzlichen Code aus – Sie konfigurieren in GTM selbst, wann und welche Tags ausgeliefert werden. Dementsprechend gilt: Sie müssen die Verknüpfung zwischen Ihrer Cookie Notice und den ausgelieferten Tags im GTM festlegen – dies kann das Plugin nicht bei der Installation für Sie erledigen.
Diese Tutorials können Ihnen dabei behilflich sein:
case 'register': $controller_tags = array(); $controller_tags['checkout'] = array(); $controller_tags['checkout']['actionField'] = array( 'step' => 2, ); $events = array('event' => 'checkout'); $controller_tags['checkout']['products'] = $this->getBasketItems(Shopware()->Modules()->Basket()->sGetBasket()['content']); break;
Unser Plugin löst die Events ab Version 2.2.0 für Sie aus.
Bitte richten Sie entsprechende Listener für Events mit dem Namen „gtmAddToCart“ und „gtmRemoveFromCart“ ein und aktivieren Sie die Option „Enhanced Ecommerce“ in der Plugin Konfiguration.
[SW5-spezifisch] Wichtig: wenn Sie ein Custom Theme benutzen, stellen Sie bitte sicher, dass unser Plugin dem body-Tag die Klasse „gtm-enhanced-ecommerce-active“ hinzufügen kann. Dies geschieht über den Template Block „frontend_index_body_classes“ – sollte Ihr Theme diesen leeren oder überschreiben, können die Events nicht ausgelöst werden. Fügen Sie die Klasse ggf. manuell hinzu.
Ursache: Sie verwenden das Conexco Responsive Template und ein Off Canvas Menü. Leider geht das Conexco Responsive Template so vor, dass bei der Einstellung „Mobiles Menü: Off Canvas“ der komplette Inhalt des body-Tags in ein div gewrapped wird. Dies passiert per JS direkt im Conexco Template – wir haben daher in unserem Plugin keine Möglichkeit, dieses Verhalten zu ändern.
Dieses Problem hätten Sie mit allen anderen Tag Manager Plugins ebenfalls.
Lösung: kein Offcanvas Menü Mobil verwenden, sondern ein herkömmliches Dropdown Menü (lässt sich im Conexco Template einstellen).
Das Enhanced Ecommerce Tracking ist erst seit Version 2.0.0 Teil des Plugins. Diese Version steht allen Käufern zur Verfügung, die mind. Shopware in Version 5.2.11 einsetzen.
Aktualisieren Sie bitte auf Version 2.0.0, stellen Sie sicher dass die entsprechende Plugin Option ausgewählt ist und leeren Sie alle Caches.
Stellen Sie sicher, dass Sie Ihre Tag Manager ID in der Plugin Konfiguration hinterlegt haben. Weiterhin benötigt das Plugin in jedem Fall den Template Block „frontend_index_no_script_message“ (SW4) bzw. „frontend_index_after_body“ + „frontend_index_header_javascript_tracking“ (SW5). Ohne diesen Template Block kann der Code nicht an der von Google vorgegebenen Stelle im Quellcode ausgegeben werden. Sofern Sie kein Shopware Standard Template (Shopware 4: Emotion Template; Shopware 5: Bare bzw. Responsive Template) verwenden, prüfen Sie dies bitte nach oder sprechen Sie mit dem Template-Entwickler.
Plugin: HTML Status Mails
Unser Plugin verwendet den systemeigenen WYSIWYG Editor TinyMCE. Dieser bringt neben der Vorschau-Funktion auch diverse Verifikationsfunktionen mit. Oftmals ist dies der Grund, dass es zu Abweichungen kommt. Folgende Schritte können Sie unternehmen, um das Problem zu beheben:
Bitte stellen Sie zunächst sicher, dass Sie in Ihrem Template valides HTML einsetzen. Dies können Sie z.B. mit dem W3C Validator (Link: validator.w3.org) überprüfen. Ist dies nicht der Fall, passen Sie bitte Ihr E-Mail-Template entsprechend an!
Sollten Ihre E-Mails trotz validem HTML nicht korrekt dargestellt werden, stellen Sie bitte die Optionen in der Plugin-Konfiguration wie folgt ein:
„HTML 5 Schema verwenden“: „Nein“
„HTML Verifikation verhindern“: „Ja“
Die Option „Konfiguration extended_valid_elements“ stellt die Funktionalität bereit, HTML-Tags, die üblicherweise nicht in E-Mails verwendet werden, explizit zu erlauben. Wenn Sie diese Option verwenden möchten, achten Sie darauf, dass weiterhin die Option „Konfiguration extended_valid_elements verwenden“ auf „Ja“ gestellt wurde.
Verwenden Sie z.B. ein style oder ein center Tag in Ihrem Template, muss dieses manuell zur Konfiguration hinzugefügt werden. Fügen Sie diese einfach mit einem einfachen Zeilenumbruch sowie einem Komma zur Liste hinzu:
„font[size],
iframe[frameborder|src|width|height|name|align|allowfullscreen|id|class|style],
script[src|type],
[…WEITERE TAGS, NUR ZUR VERANSCHAULICHUNG…]
style,
center“
WICHTIG: Nach dem Speichern der Plugin-Konfiguration empfehlen wir Ihnen, den Backend Cache zu löschen und sich aus dem Backend aus- und wieder einzuloggen, damit sichergestellt ist, dass die Optionen in jedem Fall neu geladen wurden.
Sollten die oberen Aktionen keinen Effekt auf Ihre Mails haben, deaktivieren Sie das Plugin bitte vorerst und kontaktieren unseren Support. Wir benötigen Ihr verwendetes E-Mail-Template, um den Fall bei uns nachzustellen und zu prüfen.
Plugin: Infobar Advanced
In der mobilen Version wird die Infobar nicht korrekt angezeigt? Die Navigation wird in diesem Theme standardmäßig „sticky“ am oberen Seitenrand gesetzt. Wenn Sie die Infobar Advanced in Kombination mit dem Theme einsetzen wollen, muss das Plugin zum einen unbedingt ebenfalls „sticky“ gesetzt werden (siehe Plugin-Einstellungen).
Zum anderen müssen Sie je nach Inhalt der Infobar der Navigation eine neue Position zuweisen. Nutzen Sie hierfür die Möglichkeit, ein Child-Theme zu erstellen, um bestimmte Änderungen am Hauptheme updatefähig zu überschreiben (sie auch: https://help.tc-innovations.de/de/support/solutions/articles/29000016968-themeware-ableitung-erstellen).
In der all.less Datei Ihres Child-Themes sollte es dann reichen, wenn Sie dort folgenden Code hinterlegen:
// Wenn Sie die Postion der Navigation ändern wollen:
@media screen and(max-width: @phoneLandscapeViewportWidth) {
.shop--navigation {
top: 45px; // Diese Höhe müssen Sie individuell ermitteln.
}
}
// Wenn Sie die Postion der Infobar ändern wollen:
@media screen and(max-width: @phoneLandscapeViewportWidth) {
#dreitags-topbar {
top: 45px; // Diese Höhe müssen Sie individuell ermitteln.
}
}
Plugin: Topseller on Demand
Wichtig ist, dass der Smarty-Block „frontend_listing_index_topseller“ vorhanden ist. Evtl. muss auch in der Theme.php des Custom Themes folgendes aufgeführt sein:
protected $injectBeforePlugins = true;
Siehe dazu auch folgenden Hinweis aus der SW Doku: „You can decide if your theme should be processed before or after the plugin templates by setting the $injectBeforePlugins variable in your Theme.php file. If you want to create a normal theme, which can be purchased in the shopware community store, the value should be set to true, so your theme is processed before the plugins. This ensures that all plugins can be used with your theme.“
https://developers.shopware.com/designers-guide/smarty/#inheritance-and-plugin-templates
Übrigens: unser Plugin benötigen Sie nur, wenn Sie die Topseller auf bestimmten Seiten weiter nutzen wollen. Wenn Sie Topseller komplett global deaktivieren wollen, können Sie dies auch ohne Plugin über Einstellungen -> Caches/Performance -> Reiter „Einstellungen“ -> Marketing -> Topseller tun.
Plugin: Gutscheine auf Kategorien anwenden
Unser Plugin verwendet das Shopware Standard-Feld, um einen Gutschein für eine bestimmte Menge von Artikeln gültig zu machen. Wenn Sie eine sehr große Kategorie angeben, kann dies zu Performance-Problemen führen. Stellen Sie daher sicher, dass die von Ihnen angegebene Kategorie nicht mehr als 300-500 Artikel (inkl. Varianten) beinhaltet.
Plugin: Prämien-Artikel automatisch dem Warenkorb hinzufügen
Zum Zeitpunkt der Installation des Plugins müssen die Prämien-Artikel bereits im Shopware Backend hinterlegt sein. Um dies zu tun, rufen Sie bitte im Backend den Punkt „Marketing“ → „Prämienartikel“ auf und richten Sie dort entsprechend Ihre Wunsch-Artikel ein. Installieren Sie im Anschluss das Plugin erneut. Nun können Sie den Prämien-Artikel wählen, der bei erreichen des benötigten Warenkorb-Wertes automatisch hinzugefügt werden soll.