Für Shops mit vielen Produkten, die Varianten haben (z.B. Bekleidung), ist das Löschen von Produkten in Virtuemart sehr umständlich und zeitaufwändig.

Zunächst müssen die Varianten gelöscht werden, erst danach kann das Hauptprodukt entfernt werden. Versucht man direkt, das Hauptprodukt zu löschen, erhält man eine Fehlermeldung...

Für einige unserer Kunden haben wir daher den Virtuemart-Quellcode so verändert, dass Produkte direkt samt aller Varianten gelöscht werden, wenn man das Hauptproduktauswählt und auf Löschen klickt.

Hier der Patch:

Öffnen Sie die Datei <root>/administrator/components/com_virtuemart/models/product.php und suchen Sie den folgenden Code:

         $childIds = $this->getProductChildIds ($id);
            if (!empty($childIds)) {
                vmError (vmText::_ ('COM_VIRTUEMART_PRODUCT_CANT_DELETE_CHILD'));
                $ok = FALSE;
                continue;
            }

 und ersetzen Sie die Stelle durch den folgenden Code:

         $childIds = $this->getProductChildIds ($id);
            if (!empty($childIds)) {
                $this->remove ($childIds);          
            }

 

Anstelle der Ausgabe eines Fehlers werden zunächst rekursiv die Varianten des Hauptprodukts gelöscht, danach das Hauptprodukt selber.

 

Hinweis: Es handelt sich hierbei um einen Patch im Virtuemart Core, den Sie auf eigenes Risiko verwenden können. Sollten Sie sich entschließen, diesen Patch einzubauen, müssen Sie dies evtl. bei jedem Update von Virtuemart erneut tun.