wpShopGermany – Den Preis bei Varianten richtig anzeigen

Das Modul Varianten von wpShopGermany war immer ziemlich buggy. Mal wurden die Preise nicht korrekt berechnet, mal gab es Probleme mit dem Lagerbestand. Selbst in der aktuellen Version 3.2.2 läuft nicht alles rund. Ist eine Variante nicht mehr auf Lager, wird sie ausgeblendet. Warum wird nicht einfach der Radiobutton deaktiviert?

Manchmal möchte man bei einem Artikel den Grundpreis auf 0 EUR setzen. Das ist sinnvoll, wenn der Preis bei allen Varianten ausgewiesen sein soll. Im Template für die Produkte wird das korrekt angezeigt. Aber mit dem Modul Produktübersichten klappt das leider nicht.

screenshot-variantenpreis

Hier müssen wir uns mit einer Modifikationen behelfen, die ein User im Forum freundlicherweise veröffentlicht hat. Dazu fügen wir in das verwendete Template (grid.phtml oder list.phtml) den folgenden Code ein.

<?php 
function getLowestprice($data) {
$res = unserialize($data);
if(!is_array($res)) {
return false;
}
$out = array();
#print_r($res);
foreach($res[0]['vari'] as $pVariant) {
if(!isset($out['preis']) || $pVariant['preis'] < $out['preis']) {
$out = $pVariant;
}

Dann ersetzen wir noch eine Zeile für die Ausgabe des Preises.

<?php echo wpsg_translate(__('ab #1#', 'wpsg'), wpsg_ff($p['preis'],
$this->get_option('wpsg_currency'))); ?>

Diese Zeile ersetzen wir mit dem folgenden Code.

<?php  echo wpsg_translate(__('ab #1#', 'wpsg'), wpsg_ff(getLowestprice
($p['mod_varianten']), $this->get_option('wpsg_currency'))); ?>

Jetzt wird der Preis korrekt angezeigt. Einen kleinen Haken hat die Sache. Sie funktioniert nur mit einer Variante. Der Parameter [0] bezieht sich auf die ID der Variante. Es wird bei der Ausgabe also immer nur eine Variante berücksichtigt. In der Regel sollte das aber reichen.