Neu JTL Shop 5 - Trusted Shops Widget Produktbewertungen anpassen

  • Ersteller des Themas Ersteller des Themas ohki
  • Erstellungsdatum Erstellungsdatum

ohki

Aktives Mitglied
6. November 2012
61
4
Hallo,

ich habe folgendes Problem: Das neue Trusted Shops Plugin bei JTL Shop 5 fragt bei Vater- und Kindartikeln immer nur die spezifische SKU (cArtNr) des Vater- oder Kindartikels ab. D.h. ich habe beim Vaterartikel (ArtNr. 100) z.B. 5 Bewertungen, Kindartikel "rot" (ArtNr. 100-01) hat 3 Bewertungen, Kindartikel "blau" (ArtNr. 100-02) hat 1 Bewertung. Jetzt möchte ich für Vater- und Kinderartikel alle Bewertungen angeben, also brauche ich ein Array aus 100,100-01,100-02 damit ich in Summe 9 Bewertungen Habe (5+3+1 Bewertungen).

Aktuell habe ich die Bewertungssterne des Shops mit Trusted Shops Produktbewertungen ersetzt:
/templates/child_template/productdetails/details.tpl

{block name="productdetails-info-rating-wrapper"}
<li class="rating-wrapper nav-it dpflex-a-center">
<strong class="icon-wt">{lang key="rating" section="global"}:</strong>
<etrusted-widget data-etrusted-widget-id="wdg-123456789" data-sku="{$Artikel->cArtNr}"></etrusted-widget>
</li>
{/block}

Im alten JTL Shop 4 Plugin wurden die Bewertungen von Vater- und Kindartikeln bereits kumuliert:

agws_ts_features_hook_140.php
//Bau des ArtNr-Arrays bei Standard- und Vater-/Kindartikel für Produktbewertung Sterne bzw. Register
if (Shop::getPageType() == PAGE_ARTIKEL && ($queryResult->ts_ProduktBewertungSterneAktiv == 1 || $queryResult->ts_ProduktBewertungRegisterAktiv == 1) ) {
$oArtikel_tmp = $smarty->get_template_vars('Artikel');

//Standardartikel
if ($oArtikel_tmp->nIstVater == 0 && $oArtikel_tmp->kVaterArtikel == 0) {
$oArtikel_tmp->cArtNr_TS = $oArtikel_tmp->cArtNr;
}

//Vater-Artikel
if ($oArtikel_tmp->nIstVater == 1 && $oArtikel_tmp->kVaterArtikel == 0) {
$cArtNrVater = $oArtikel_tmp->cArtNr;
$sql = "SELECT cArtNr FROM `tartikel` WHERE kVaterArtikel = " . (int)$oArtikel_tmp->kArtikel;
$cArtNrKinder = Shop:😀B()->query($sql, 2);
$cArtNrVarKombi = "";
if (count($cArtNrKinder) > 0) {
for($i=0; $i < count($cArtNrKinder); $i++) {
$cArtNrVarKombi .= $cArtNrKinder[$i]->cArtNr . "','";
}
}
$cArtNrVarKombi .= $cArtNrVater;
$oArtikel_tmp->cArtNr_TS = $cArtNrVarKombi;
}

//Kind-Artikel
if ($oArtikel_tmp->nIstVater == 1 && $oArtikel_tmp->kVaterArtikel > 0) {
$sql = "SELECT cArtNr FROM `tartikel` WHERE kArtikel = " . (int)$oArtikel_tmp->kVaterArtikel;
$cArtNrVater = Shop:😀B()->query($sql, 1);
$cArtNrVater = $cArtNrVater->cArtNr;
$sql = "SELECT cArtNr FROM `tartikel` WHERE kVaterArtikel = " . (int)$oArtikel_tmp->kVaterArtikel;
$cArtNrKinder = Shop:😀B()->query($sql, 2);
$cArtNrVarKombi = "";
if (count($cArtNrKinder) > 0) {
for($i=0; $i < count($cArtNrKinder); $i++) {
$cArtNrVarKombi .= $cArtNrKinder[$i]->cArtNr . "','";
}
}
$cArtNrVarKombi .= $cArtNrVater;
$oArtikel_tmp->cArtNr_TS = $cArtNrVarKombi;
}
}

Mein erster Versuch war (klappt aber nicht):

{block name="productdetails-info-rating-wrapper"}
<li class="rating-wrapper nav-it dpflex-a-center">
<strong class="icon-wt">{lang key="rating" section="global"}:</strong>
{if $Artikel->nIstVater == 0 && $Artikel->kVaterArtikel == 0}
<etrusted-widget data-etrusted-widget-id="123456789" data-sku="{$Artikel->cArtNr}"></etrusted-widget>
{elseif $Artikel->nIstVater == 1}
{assign var='vaterArtikel' value=$Artikel|getVaterArtikel}
{if $vaterArtikel}
{assign var='skus' value=[]}
{foreach $vaterArtikel as $child}
{if $child->nIstVater == 0 && $child->kVaterArtikel == $Artikel->kArtikel}
{assign var='skus' value=array_merge($skus, [$child->cArtNr])}
{/if}
{/foreach}
<etrusted-widget data-etrusted-widget-id="123456789" data-sku="{$skus|join(',')}"></etrusted-widget>
{/if}
{/if}
</li>
{/block}

Kriege ich diese Abfrage überhaupt in der details.php definiert? Oder muss ich ein .php File erstellen und die .tpl greift auf das Ergebnis der PHP-Abfrage zurück?

Danke für Eure Hilfe.
 

Nina L.

Community Management
6. Juli 2023
294
250
Hallo @ohki , hast Du für dieses Problem schon eine Lösung gefunden bzw. ggf. ein Ticket erstellt? Unser Support hilft gerne weiter.
 

ohki

Aktives Mitglied
6. November 2012
61
4
Hallo @ohki , hast Du für dieses Problem schon eine Lösung gefunden bzw. ggf. ein Ticket erstellt? Unser Support hilft gerne weiter.
Hallo Nina,

da es sich ja um ein Trusted Shops Plugin handelt, also nicht von JTL, habe ich kein Ticket erstellt.
Mein Ansatz war auch nicht gut, aber mittlerweile konnte ich es mit Hilfe von Herrn Besancon von lilfoot lösen.
 
  • Gefällt mir
Reaktionen: Nina L.

Ähnliche Themen