Shopware Knowledgebase

Shopware Labs

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.

Ausgabe bestimmter Artikel auf der Startseite

0 Kommentare
ab Version:3.0.4 bis Version:3.0.5.1
In diesem Tutorial lernen Sie, wie Sie Artikel einer bestimmten Kategorie auf der Startseite Ihres Shops ausgeben lassen können.

Info

Artikel lassen sich natürlich auch über die "Einkaufswelten" direkt auf der Startseite anzeigen.

Vorbereitung

Bringen Sie die ID der Kategorie in Erfahrung, aus der Sie Artikel auf der Startseite ausgeben wollen. Dies können Sie im Backend unter Artikel > Kategorien durchführen, indem Sie die gewünschte Kategorie anklicken und die System-ID die rechts ausgegeben wird notieren.

Anpassung Klasse

Öffnen Sie die Datei engine/core/class/inherit/myCore.php

Fügen Sie vor dem Ende der Datei vor:

 
}
?>
 

folgendes ein:

 
function sStart(){
		$result = parent::sStart();
 
		$temp = $this->sSYSTEM->_GET["sCategory"];
		$this->sSYSTEM->_GET["sCategory"] = 3; // ID der abzufragenden Kategorie hinterlegen
		$result["variables"]["myHomepageArticles"] = $this->sSYSTEM->sMODULES['sArticles']->sGetArticlesByCategory();
 
		$this->sSYSTEM->_GET["sCategory"] = $temp;
		return $result;
	}
 

Ersetzen Sie den Wert "3", durch die von Ihnen notierte Kategorie-ID. Zur Erklärung:

  • parent::sStart(); - Hier wird zunächst die in der Klasse sCore notierte Funktion "sStart" im Original aufgerufen
  • $temp = $this->sSYSTEM->_GET["sCategory"] - Die evtl. bereits gesetzte GET-Variable sCategory wird gesichert
  • $this->sSYSTEM->_GET["sCategory"] = 3; // ID der abzufragenden Kategorie hinterlegen - Die Get-Variable sCategory erhält als Wert, die ID der von Ihnen gewünschten Kategorie
  • $result["variables"]["myHomepageArticles"] = $this->sSYSTEM->sMODULES['sArticles']->sGetArticlesByCategory(); - Es wird die Funktion "sGetArticlesByCategory" aufgerufen, diese Funktion generiert die bekannten Artikellistings. Der Rückgabewert der Funktion wird in die Variable $myHomepageArticles geschrieben und steht im Template unter dieser Bezeichnung zur Verfügung!
  • $this->sSYSTEM->_GET["sCategory"] = $temp; - Die Get-Variable wird wieder auf den vorher hinterlegten Wert gesetzt
  • return $result; - Das Ergebnis wird zurückgegeben.

Öffnen Sie nun die Datei templates/0/de/html/index/index_home.tpl und fügen Sie den Code zur Ausgabe der Artikel hinzu. Dieser kann z.B. wie folgt aussehen:

 
	{foreach from=$myHomepageArticles item=offer key=key  name="counter"}
		 {include file="articles/article_box_1col.tpl" sArticle=$offer}
	{/foreach}
 

Styles und Darstellung müssen natürlich an Ihre Anforderungen angepasst werden.

FAQ

Code für 3.0.5

Ab Shopware 3.0.5 kann die Funktion sGetArticlesByID auch direkt mit Parametern aufgerufen werden. Syntax: sGetArticlesByCategory ($id=0,$blog=false,$limit=0) Beispielaufruf:

 
$result["variables"]["myHomepageArticles"] = $this->sSYSTEM->sMODULES['sArticles']->sGetArticlesByCategory(123,false,12);
// 12 Artikel aus Kategorie 123 auslesen
 

Bestimmung der Sortierung

Setzen Sie vor dem Aufruf der Funktion sGetArticlesByCategory die _POST Variable "sSort" $this->sSYSTEM->_POST['sSort'] = 1; (Werte 1 bis 6)

  • 1 = Sortierung nach Erscheinungsdatum
  • 2 = Sortierung nach Verkäufen
  • 3 = Sortierung nach Preis aufsteigend
  • 4 = Sortierung nach Preis absteigend
  • 5 = Sortierung nach Artikelnamen aufsteigend
  • 6 = Sortierung nach Artikelnamen absteigend

Standardsortierung entspricht dem gleichen Wert wie in den Artikellistings

Nach dem Aufruf sollte via

 
unset($this->sSYSTEM->_SESSION['sSort']);
 

dafür gesorgt werden, dass die ausgewählte Sortierung wieder entfernt wird. Diese würde ansonsten auch standardmäßig für die Listings verwendet werden.

Bestimmung des Limits (3.0.4)

Vor Funktionsaufruf:

 
$this->sSYSTEM->_GET['sPerPage'] = 5; // 5 Artikel auf einmal
 

Nach Funktionsaufruf:

 
unset($this->sSYSTEM->_SESSION['sPerPage']);
 

Artikel-PDF erstellen

Artikel bewerten

Waren diese Informationen hilfreich? Ja Nein


Kommentare:

Artikel kommentieren


Die mit einem * markierten Felder sind Pflichtfelder.

Weitere interessante Artikel:

Bezeichnung:
Rating:
Klicks:
Datum:

Bestell-Nr.: SW1359

Lieferzeit ca. 5 Tage

€ 1,00

Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*

€ 1,00

Preise inkl. gesetzlicher
MwSt. + Versandkosten*

Kategorien: