Neu Shopware - Shopseiten von Subshops Textbausteine Snippets einbinden

n8schicht27

Gut bekanntes Mitglied
6. Oktober 2006
897
9
Bonn
Hallo,

leider hilft mir im Shopware-Forum keiner weiter und ich finde dort keine Informationen wie ich dies lösen kann.
Ich habe insagesamt 3 Subshops.
Bei allen drei Subshops ist das Impressum + AGB + Datenschutz + Widerrufserklärung gleich.
Daher möchte ich jeweils eine Shopseite für:
  • Impressum
  • AGB
  • Datenschutz
  • Widerrufsbelehrung
anlegen - dies aber nicht pro Subshop sondern nur einmalig.
In diesen seiten soll dann der jeweilige Subshopname und ggf. die jeweilige Subshopurl je nach besuchtem Subshop angezeigt werden.

Das ganze muss doch normal ganz einfach lösbar sein? Habe ich ein Brett vor dem Kopf oder wieso bekomme ich es nicht hin ;) ??

Als Beispiel das Impressum:

HTML:
<h1>Impressum von $shop_domain</h1>
<p>
$shop_name<br>
$shop_straße<br>
$shop_plz $shop_stadt <br>
$shop_land<br>
</p>
<p>
Geschäftsführer: <br>
$shop_geschäftsführer<br>
</p>
<p>
Ust-IdNr: $shop_ustid
</p>
<p>
E-Mail: $shop_mailadresse<br>
Tel: $shop_rufnummer<br>
</p>


Hat hier jemand einen Tipp?
 
Zuletzt bearbeitet:

3po

Sehr aktives Mitglied
30. August 2011
2.463
63
Ich denke allein hier darüber nachzudenken und eine Lösung zu suchen dauert länger als für jeden Shop eigene Seiten anzulegen, zumal Du doch nicht bei Änderungen (AGB, Datenschutz, Widerrufsbelehrung) diese nicht händisch selber machen möchtest oder?
 
  • Gefällt mir
Reaktionen: n8schicht27

tiroled

Gut bekanntes Mitglied
27. Dezember 2015
192
16
Das ganze muss doch normal ganz einfach lösbar sein? Habe ich ein Brett vor dem Kopf oder wieso bekomme ich es nicht hin ;) ??
Nein, ganz einfach kann man es mit SW leider nicht lösen :confused:

Ein Workaround wäre, wenn du ein eigenes Plug-in schreibst. Du fragst die Shop-ID mit " Shopware()->Shop()->getId()" ab.

Wenn du kein Programmierer bist, dann kannst du nur {$sShop} und {$sShopURL} direkt ausgeben. Vielleicht kannst mit if-Abfragen (etwas umständlicher) deine Shopseiten bauen.
 
  • Gefällt mir
Reaktionen: n8schicht27

n8schicht27

Gut bekanntes Mitglied
6. Oktober 2006
897
9
Bonn
Ja meine Idee war folgende.
In den Texten für die Variablen Seiten jeweils eine eigene Variable anzugelen.
Diese ggf. %Shopname% zu nennen.

Dann über eine If - Abfrage {$sShop} prüfen in welchem Shop sich der Kunde aufhält.
und dann das jeweilige Ergebnis anzeigen lassen.

ABER - wo zum Teufel finde ich die tpl-Datei die für die Shopseiten zuständig ist.
Ist es die custom.tpl ?
Welche muss dann angepasst werden?
 

tiroled

Gut bekanntes Mitglied
27. Dezember 2015
192
16
Du rufst die z. B. Impressum-Seite auf.
Shoplimitierung: leer lassen, damit die Einstellung für alle Shops gilt
Tpl. Variable 1: sContent
Tpl. Pfad 1: frontend/custom/impressum.tpl

Die if-Abfragen erstellt du in der neuen impressum.tpl-Datei.
 
  • Gefällt mir
Reaktionen: n8schicht27

n8schicht27

Gut bekanntes Mitglied
6. Oktober 2006
897
9
Bonn
@tiroled

verstehe ich richtig, dass ich mit:
Tpl. Variable 1: sContent
eine Smarty-Zuweisung für sContent erstelle?

Tpl. Pfad 1: frontend/custom/impressum.tpl
Und hiermit eine entsprechend eigene tpl erstellen kann?
Die in diesem Fall nun Impressum heißt... ?

wenn das so geht, dann wäre dies genial und ich hätte damit auch endlich korrekt verstanden wofür Tpl. Variable 1 und Tpl. Pfad 1 definiert werden!
 

tiroled

Gut bekanntes Mitglied
27. Dezember 2015
192
16
Mit sContent sagst du SW, dass der Inhalt in deiner eigenen TPL-Datei ist. Nur dieser Inhalt wird angezeigt. Der Text oben unter Inhalt wird somit dann ignoriert.
Du kannst den Namen und Speicherort deiner neuen TPL-Datei selbst festlegen. Du könntest die neue Datei als "wie-auch-immer.tpl" benennen und unter "/frontend/meine-projekte/" speichern. Wichtig ist nur, dass der Template Pfad korrekt angegeben wird. Der Besucher deiner Seite sieht die internen Templatenamen nicht. Der Seitenname (Titel) bleibt unverändert.

In der Template-Datei kannst du sofort (mit HTML) starten. Brauchst nichts ableiten.

Hier ist noch die passende Seite aus dem Handbuch: https://docs.shopware.com/de/shopware-5-de/inhalte-und-medien/shopseiten

Nicht vergessen. Immer brav Cache löschen ;)
 
  • Gefällt mir
Reaktionen: n8schicht27

n8schicht27

Gut bekanntes Mitglied
6. Oktober 2006
897
9
Bonn
@tiroled
Jetzt habe auch ich es verstanden.... die Seite im Handbuch kannte ich schon - nur war mir das bisher nicht so klar - wie Du es mir jetzt gemacht hast!
DANKE!
 

tiroled

Gut bekanntes Mitglied
27. Dezember 2015
192
16
Man könnte theoretisch noch 2 Variablen durch eigene Templates ersetzen. Da der Inhalt ja schon vollständig mit sContent ersetzt werden kann, hat für uns die Variablen 2 & 3 keinen Nutzen.
 
  • Gefällt mir
Reaktionen: n8schicht27

n8schicht27

Gut bekanntes Mitglied
6. Oktober 2006
897
9
Bonn
Hallo @tiroled
Wie kann ich denn dann innerhalb von diesen .tpl - Files auf die smarty-Varianten zugreifen?
Also z.B. aktueller Shopname?

Ich habe jetzt:
Tpl. Variable 1: sContent
Tpl. Pfad 1: frontend/custom/impressum.tpl

das impressum.tpl angelegt.
Und in dieser wollte ich jetzt mit
PHP:
{if $sShop = "shop1"} 

Shop1

{elseif $sShop ="shop2"}

Shop2

{/if}
Den Shopnamen abfragen.
Aber auf die Variable {$sShop} kann ich nun gar nicht zugreifen.

in meiner impressum.tpl steht sonst nichts.
Muss ich hier noch etwas eintragen?
 

tiroled

Gut bekanntes Mitglied
27. Dezember 2015
192
16
So geht's:
Abfrage mit der ShopID
Code:
{if $Shop->getId()===1}
    
{else if $Shop->getId()===2}
    
{/if}
oder mit den Shopnamen
Code:
{if $smarty.server.HTTP_HOST==="www.tiroled.de"}

{else if $smarty.server.HTTP_HOST==="www.tiroled.at"}

{/if}

Noch ein Hinweis:
= ist ein Zuweisungsoperator
== ist ein Vergleichsoperator mit Typumwandlung
=== ist ein Vergleichsoperator ohne Typumwandlung
 

tiroled

Gut bekanntes Mitglied
27. Dezember 2015
192
16
Hi @n8schicht27 !

Mit $smarty.server.HTTPS fragst du ab, ob die Seite verschlüsselt übertragen wird.

Normalerweise stellt du die dauerhafte SSL-Verbindung direkt im Shopware Backend (Grundeinstellungen) ein.