Der Bereich Shopware Labs ist die Plattform für alle Entwickler. Hier findet man technische Dokumentationen und zahlreiche Tipps und Tricks rund um das Thema Programmieren. In dieser Rubrik stellen außerdem die Entwickler der shopware AG neue und experimentelle Lösungsansätze vor. Neue Funktionen, die in dieser Rubrik bereitgestellt werden, sind teilweise auch für zukünftige Releases geplant. Die Funktionen können dann ohne Programmierkenntnisse zukünftig direkt im Shopware Backend konfiguriert werden oder werden über Plugins bereitgestellt. Informationen über neue, geplante Funktionen finden Sie in unserer Roadmap.
Bitte beachten Sie, dass die hier bereitgestellten Lösungsansätze nicht offiziell supportet werden und nur eingebaut werden sollten, sofern Sie über das entsprechende, technische Wissen verfügen.
Tutorial: Für bestimmten Kundengruppen den Warenkorb-Button ausblenden
0 KommentareInhaltsverzeichnis
- 1 Vorwort
- 1.1 Die Plugin Konfiguration
- 1.1.1 Kundengruppe einrichten
- 1.1.2 Variablen für Kundengruppe erzeugen
- 1.1.3 Variablen einer Kundengruppe zuweisen
- 1.2 Template Anpassung
- 1.2.1 Updatesicher Erweitern
- 1.2.2 Strukturen erzeugen
- 1.2.2.1 Produkt Detailseite
- 1.2.2.2 Listing / Übersicht
- 1.2.2.3 Merkzettel
- 1.3 Weitere Links
Vorwort
Problemstellung: Neu Registrierte B2B Kunden, die noch nicht Freigegeben wurden, sollen keine Möglichkeit haben einen Einkauf zu tätigen. Der Shop Frontend soll aber vollständig erreichbar sein, damit der Kunde sich bereits umsehen kann. Statt des Warenkorb Buttons soll statt dessen ein Hinweistext eingeblendet werden.
In diesem Tutorial nutzen wir dazu Funktionen des Plugin "Business Essentials", welches ab der Version 3.5.5 zur Verfügung steht. Ausserdem passen wir einige Templates an, die zur Darstellung des Warenkorbbuttons genutzt werden.
Die Plugin Konfiguration
Ab der Version 3.5.5 ist das Plugin bereits installiert und aktiviert. Möchten Sie das Plugin nachinstallieren, können Sie das Plugin Downloaden, Installieren und Aktivieren. Nach eingabe der Lizenz und der Berenigung des Konfigurations Cache ist das Plugin Vollständig verwendbar.
Kundengruppe einrichten
Variablen für Kundengruppe erzeugen
Nachdem Sie die Kundengruppe angelegt haben, können Sie beginnen Template Variablen einzurichten. Bitte beachten Sie, dass die Syntax immer ohne Leerstelle und ohne Umlaute oder Sonderzeichen erfolgen muss. Gültig sind Werte wie "Var", "VarName" oder auch "Var_Name". Zusätzlich sind bekannte No-Go Variablen aus der PHP Welt, wie z.B. Variablennamen, die mit Zahlen beginnen (z.B. "1VarName") oder PHP Systemwerte/Funktionen als Variablennamen ebenfalls nicht erlaubt. In der rechten Tabellenspalte können Sie dann beliebigen ergänzenden Text setzen.
Variablen einer Kundengruppe zuweisen
Bei der Variablenzuweisung finden Sie die soeben erzeugte Variable. Rechts daneben finden Sie zwei oder mehr Checkboxen, die abhängig sind von der Anzahl Ihrer Kundengruppen. Je Spalte finden Sie eine Kundengruppe, je Zeile eine Variable. Durch das aktivieren der Checkbox wird später an das Template der Wert NULL oder 1 übergeben.
Template Anpassung
Wir haben nun eine Smarty Variable erzeugt, die wir ab jetzt duch den Befehl {$Ihr_Variablen_Name} ansprechen können. Hier wird nun auch deutlich, warum bei der Namensvergabe der Variablen besonders sorgsam vorgegangen werden muss. Hat die Varible z.B. eine Leerstelle ("Meine Variable"), wird erst bei der Templateausgabe der Fehler auftauchen:
»...SmartyCompilerException with message Syntax Error in template templates/MeinTemplate/frontend/detail/buy.tpl on line 129... unexpected "Meine " attribute' in ...«
Nun widmen wir uns der Ausgabe für das Frontend.
Updatesicher Erweitern
Bitte beachten Sie bei Ihren Anpassungen immer darauf, dass Sie das Standardtemplate "_default" von Shopware nicht bearbeiten, da Ihre Änderungen beim nächsten Update wieder überschrieben werden.
Doch wie passen Sie jetzt Shopware an Ihre persönlichen Bedürfnisse an? Wir haben einen Weg gefunden, wie Sie stets die neuesten Funktionen von Shopware nutzen können ohne dass Ihre Anpassungen verloren gehen. Die Zauberwörter lauten hier "Vererbungen" und "Template-Blöcke".
Strukturen erzeugen
Bevor wir aber anfangen können müssen wir erst die benötigte Ordnerstruktur erstellen. Die Struktur basiert auf den Bereich, welcher angepasst werden soll (In diesem Fall das Frontend). Der Ordner "frontend" unterteilt sich in Unterordner, die die verschiedenen Shopbereiche repräsentieren. Diese Ordnerstruktur erzeugen und erweitern Sie, wie in den einzelnen Bereichen (Ordner) beschrieben. Dort hinein erzeugen Sie die erforderliche TPL Datei ohne Inhalt.
Produkt Detailseite
Ordner erzeugen: ../templates/MeinTemplate/frontend/detail
Datei erzeugen: buy.tpl
Block: frontend_detail_buy_button
{extends file="../_default/frontend/detail/buy.tpl"} {block name='frontend_detail_buy_button'} {* Nur wenn die Kundengruppe die Variable NoBasket nicht Aktiv hat, Warenkobbutton anzeigen *} {if !$NoBasket} <input type="submit" id="basketButton" class="" title="{$sArticle.articleName} {s name="DetailBuyActionAdd"}{/s}" name="{s name="DetailBuyActionAdd"}{/s}" value="{s name="DetailBuyActionAdd"}{/s}" style="{$buy_box_display}" /> {else} {* Sonst Hinweistext anzeigen *} <div class="error bold center"> Ihr Account wurde noch nicht bestätigt. Sobald Ihr Account bestätigt wurde, finden Sie an dieser Stelle Ihre individuelle Einkaufsmöglichkeit. </div> {/if} {/block}
Hinweis: Die Klassenbezeichner "error bold center" sind im aktuellen Standardtemplate vorhanden und erzeugen eine Meldungsbox, mit rotem Rahmen, rotem Text und leicht rotem Hintergrund. Verwenden Sie ein abweichendes Template funktioniert diese Klasse bei Ihnen möglicherweise nicht. In diesem Fall ist die Bezeichnung individuell an Ihr CSS anzupassen.
Listing / Übersicht
Ordner erzeugen: ../templates/MeinTemplate/frontend/listing
Datei erzeugen: box_article.tpl
Block: frontend_listing_box_article_actions_buy_now
{extends file="../_default/frontend/listing/box_article.tpl"} {block name='frontend_listing_box_article_actions_buy_now'} {* Buy now button *} {if !$sArticle.sConfigurator && !$sArticle.variants && !$sArticle.sVariantArticle && !$sArticle.laststock == 1} {* Den Link "Jetzt bestellen" ausblenden *} {if !$NoBasket} <a href="{url controller='checkout' action='addArticle' sAdd=$sArticle.ordernumber}" title="{s name='ListingBoxLinkBuy'}{/s}" class="buynow">{s name='ListingBoxLinkBuy'}{/s}</a> {/if} {/if} {/block}
Merkzettel
Ordner erzeugen: ../templates/MeinTemplate/frontend/note
Datei erzeugen: item.tpl
Block: frontend_note_item_actions
{extends file="../_default/frontend/note/item.tpl"} {* Additional links *} {block name="frontend_note_item_actions"} <div class="action"> {* Place article in basket *} {if !$sBasketItem.sConfigurator && !$sBasketItem.sVariantArticle} {* Wenn die Kundengruppe die Variable NoBasket nicht Aktiv hat anzeigen *} {if !$NoBasket} <a href="{url controller=checkout action=addArticle sAdd=$sBasketItem.ordernumber}" class="basket" title="{s name='NoteLinkBuy'}{/s}">{s name='NoteLinkBuy'}{/s} </a> {/if} {/if} {* Compare article *} <a href="{url controller='compare' action='add_article' articleID=$sBasketItem.articleID}" class="compare_add_article" title="{s name='NoteLinkCompare'}{/s}" rel="nofollow"> {se name='NoteLinkCompare'}{/se} </a> {* Article Details *} <a href="{$sBasketItem.linkDetails}" class="detail" title="{$sBasketItem.articlename}"> {se name='NoteLinkDetails'}{/se} </a> </div> {/block}
Weitere Links
- Schnelleinstieg Template-Tutorial 3.5.x
- Tutorial: Erweiterte Artikeldetails für B2B Kunden
- Tutorial: Eigenes Shoplogo für B2B Kunden
- Plugin: Business Essentials
- CommunityStore: Business Essentials Kaufen oder Mieten
Artikel-PDF erstellen
Artikel bewerten
Kommentare:
Artikel kommentieren
Weitere interessante Artikel:
Bestell-Nr.: SW1649
Lieferzeit ca. 5 Tage
Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*
Preise inkl. gesetzlicher
MwSt. + Versandkosten*
Kategorien:


