Neu Konfigurator - Einzelpreise anzeigen/verstecken

TechNik

Aktives Mitglied
16. März 2018
11
0
Hallo zusammen,

ich bräuchte mal ein HowTo für die folgende Aufgabenstellung. Ich hoffe ihr könnte mir paar Tipps geben!!! :)

Wir nutzen den Konfigurator bei zwei Arten von Produkten.
  1. Zum konfigurieren - der Kunde kann sich was zusammenstellen.
  2. Als Stückliste. Das heißt, der Artikel ist quasi schon zusammengestellt, sieht aber letztlicher schöner aus als bei der "richtigen" Stückliste. (Ja, wir verwenden absichtlich nicht die richtige Stückliste, weil die Ansicht für uns sehr unglücklich ist.)
Das "Problem" für uns, sind die Einzelpreise. Im 1. Fall (zum konfigurieren), wollen wir alles lassen wie es ist. Beim 2. Fall (als Stückliste) allerdings, wollen wir die Einzelpreise ausblenden.

Wie kann ich es also schaffen, dass man bei der Produktseite für Produkt a, b und c die Einzelpreise anzeigt ... und bei der Produktseite für Produkt x, y und z die Einzelpreise ausblendet.

Geht das im CSS? So a la "Wenn Produkt ID = x ist, blende die Preise aus" ...?

Vielen lieben Dank! :)
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
524
Halle
Hallo,
Geht das im CSS? So a la "Wenn Produkt ID = x ist, blende die Preise aus" ...?
"Im CSS" geht das nur, wenn du im Template dafür spezielle CSS-Klassen vergibst. Dann kannst du anhand dieser Klassen optisch ausblenden. Wenn du jedoch eh Hand ans (Child-) Template anlegst, dann kannst du die Preise auch dort direkt ausblenden. Das Ganze am Besten anhand eines Funktionsattributes (und nicht nach Produkt-ID), dann kannst du die Anzeige über die Wawi für jeden Artikel steuern.
 

TechNik

Aktives Mitglied
16. März 2018
11
0
"Im CSS" geht das nur, wenn du im Template dafür spezielle CSS-Klassen vergibst. Dann kannst du anhand dieser Klassen optisch ausblenden. Wenn du jedoch eh Hand ans (Child-) Template anlegst, dann kannst du die Preise auch dort direkt ausblenden. Das Ganze am Besten anhand eines Funktionsattributes (und nicht nach Produkt-ID), dann kannst du die Anzeige über die Wawi für jeden Artikel steuern.

Wow, perfekt! Vielen Dank für die Hilfe! :)
Dann werde ich ein Funktionsattribut anlegen ... nur eine Frage. Wie frage ich das Attribut im CSS an?
Mein Attribut heißt konf_einzelpreis (und ist ne checkbox). Wenn die aktiviert ist, soll der Preis versteckt werden.

Damit könnte ich dass dann lösen! Danke schonmal!
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
524
Halle
Hallo,
wie schon gesagt, direkt im CSS geht das nicht. Du kannst aber anhand des Attributs die Preise im Template ausblenden. Das Template für den Konfigurator wäre /productdetails/config.tpl.
Beispielhaft:
PHP:
{if !$Artikel->FunktionsAttribute.konf_einzelpreis}{$oItem->getPreisLocalized()}{/if}
 
  • Gefällt mir
Reaktionen: StaniM

StaniM

Mitglied
24. Mai 2018
41
2
Hallo,

wie schon gesagt, direkt im CSS geht das nicht. Du kannst aber anhand des Attributs die Preise im Template ausblenden. Das Template für den Konfigurator wäre /productdetails/config.tpl.
Beispielhaft:
PHP:
{if !$Artikel->FunktionsAttribute.konf_einzelpreis}{$oItem->getPreisLocalized()}{/if}
Guten Tag !
Ich hoffe, ist nicht schlimm, wenn ich dich hier frage?:) Bei mir handelt es sich auch um den config.tpl und es sollte der ganze block unsichtbar sein. Dies habe ich durch
Code:
.col-lg-8 {
    visibility:hidden;
}
in css Datei erfolgreich hinbekommen (falls jemand danach sucht...).
Die Frage ist - wie kann ich den preis von Konfigurator woanders abfragen? Wenn ich <span> {$oItem->getPreisLocalized()} </span> paste, lädt die Seite genau bis diese stelle und hört auf weiter zuladen :(
Danke für die Aufmerksamkeit ! :)
 

Anhänge

  • screen1.jpg
    screen1.jpg
    79,7 KB · Aufrufe: 36

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
524
Halle
Das halte ich für keine gute Idee! Erstens werden hier alle lg-8 Spalten ausgeblendet und Zweitens eben nur für den lg-Viewport! Das gezielte Nicht-Anzeigen sollte besser über Templatetlogik oder eine entsprechende CSS-Klasse geregelt werden.

Die Frage ist - wie kann ich den preis von Konfigurator woanders abfragen? Wenn ich <span> {$oItem->getPreisLocalized()} </span> paste, lädt die Seite genau bis diese stelle und hört auf weiter zuladen
Dann hast du das offensichtlich an einer Stelle eingesetzt, an der $oItem keine Konfigitem-Instanz ist.
 
  • Gefällt mir
Reaktionen: StaniM

StaniM

Mitglied
24. Mai 2018
41
2
Das halte ich für keine gute Idee! Erstens werden hier alle lg-8 Spalten ausgeblendet und Zweitens eben nur für den lg-Viewport! Das gezielte Nicht-Anzeigen sollte besser über Templatetlogik oder eine entsprechende CSS-Klasse geregelt werden.


Dann hast du das offensichtlich an einer Stelle eingesetzt, an der $oItem keine Konfigitem-Instanz ist.
Vielen Dank für deine schnelle Antwort! Wegen den ersten Punkt hast du recht, werde ich umbauen, danke !
Wegen zweiten Punkt muss ich nachlesen, wie ich die Instanzen setze, denn ich bin nicht wirklich ein coder. Soll die Instanzierung in .tpl File stattfinden oder bei .php datei?
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
524
Halle
Wenn ich deinen Screenshot richtig interpretiere, dann möchtest du an einer speziellen Stelle den Preis des ersten KonfigItems der ersten KonfigGruppe anzeigen. Darauf könntest du im Template mit
PHP:
{$Artikel->oKonfig_arr[0]->oItem_arr[0]->getPreisLocalized()}
zugreifen.
Aber Achtung! Das ist hardcoded und führt ohne weitere Prüfung (gibt es Konfigurationen?, Ist der erste Eintrag der ersten Konfiggruppe das Gewünschte?) ggfs. zu Fehlern oder falschen Ausgaben!
 
  • Gefällt mir
Reaktionen: StaniM

StaniM

Mitglied
24. Mai 2018
41
2
Wenn ich deinen Screenshot richtig interpretiere, dann möchtest du an einer speziellen Stelle den Preis des ersten KonfigItems der ersten KonfigGruppe anzeigen. Darauf könntest du im Template mit
PHP:
{$Artikel->oKonfig_arr[0]->oItem_arr[0]->getPreisLocalized()}
zugreifen.
Danke, das funktioniert tatsächlich! Ich wollte schon bei Artikel.php
PHP:
include 'class.JTL-Shop.Konfigitem.php';
rein basteln, dachte hat was mit public/private Funktionen zu tun.

Aber Achtung! Das ist hardcoded und führt ohne weitere Prüfung (gibt es Konfigurationen?, Ist der erste Eintrag der ersten Konfiggruppe das Gewünschte?) ggfs. zu Fehlern oder falschen Ausgaben!
Ja dies ist mir klar, an diese Stelle möchte ich alle meine Newbie Codierungen zurücksetzen und weiterhin mit Child-Template arbeiten! Allerdings habe ich den preis so hingekriegt
PHP:
                                           {if isset($Artikel->oKonfig_arr) && $Artikel->oKonfig_arr|@count > 0}
                                               {foreach from=$Artikel->oKonfig_arr item=oGruppe}
                                                   {if $oGruppe->getItemCount() > 0}
                                                       {foreach from=$oGruppe->oItem_arr item=oItem name=konfigitem}
                                                           {if $smarty.session.Kundengruppe->darfPreiseSehen}
                                                               <span>{$oItem->getPreisLocalized()}</span>
                                                           {/if}
                                                       {/foreach}
                                                   {/if}
                                               {/foreach}
                                           {/if}
Ist es so in Ordnung?

P.S.
Aber letztendlich muss ich es so programmieren, das (vermutlich) php nachschaut, ob es um dem Artikel aus der Kategorie A handelt oder Kategorie B handelt und dem entsprechend \productdetails\details_1.tpl oder \productdetails\details_2.tpl lädt... bei dem ersten kann Mann auch hardkoden, der zweite sollte eher Standard Template sein.
Habe meinem Chef gesagt, das ich damals AS3 Programmierung könnte nun denkt er ich sei ein coder :D
Muss dringend html+php lehrnen :confused:

Update
zu P.S. folgendes gefunden (falls jemand sucht)
https://forum.jtl-software.de/threads/unterschiedliche-detail-templates.80419/#post-466501
 
Zuletzt bearbeitet:

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
524
Halle
Aber letztendlich muss ich es so programmieren, das (vermutlich) php nachschaut, ob es um dem Artikel aus der Kategorie A handelt oder Kategorie B handelt und dem entsprechend \productdetails\details_1.tpl oder \productdetails\details_2.tpl lädt... bei dem ersten kann Mann auch hardkoden, der zweite sollte eher Standard Template sein.
Ich würde hier eher empfehlen mit einem Funktionsattribut zu arbeiten.
PHP:
{if isset($Artikel->FunktionsAttribute['special_config_price']) && $Artikel->FunktionsAttribute['special_config_price'] == 1}
    {$Artikel->oKonfig_arr[0]->oItem_arr[0]->getPreisLocalized()}
{/if}
In der Wawi legst du dann das Funktionsattribut special_config_price an, und weist es den Artikeln zu, die deine geforderten Bedingungen erfüllen, sprich im ersten KonfigItem der ersten Konfiggruppe den gewünschten Preis haben. Damit wird das hardcoded etwas smarter und du bist im Template unabhängig von irgendwelchen Kategorie- oder ID-Abfragen.

P.S.: Nicht vergessen das Funktionsattribut auch für den Shop freizuschalten.
 
  • Gefällt mir
Reaktionen: StaniM

StaniM

Mitglied
24. Mai 2018
41
2
Ich würde hier eher empfehlen mit einem Funktionsattribut zu arbeiten.
PHP:
{if isset($Artikel->FunktionsAttribute['special_config_price']) && $Artikel->FunktionsAttribute['special_config_price'] == 1}
    {$Artikel->oKonfig_arr[0]->oItem_arr[0]->getPreisLocalized()}
{/if}
In der Wawi legst du dann das Funktionsattribut special_config_price an, und weist es den Artikeln zu, die deine geforderten Bedingungen erfüllen, sprich im ersten KonfigItem der ersten Konfiggruppe den gewünschten Preis haben. Damit wird das hardcoded etwas smarter und du bist im Template unabhängig von irgendwelchen Kategorie- oder ID-Abfragen.

P.S.: Nicht vergessen das Funktionsattribut auch für den Shop freizuschalten.
Danke für deine hilfe!
Also besser ist es einfach per if/else zu steuern ? z.B.
PHP:
{if $Artikel->Kategoriepfad == 'Blumen'}
    info1
{elseif $Artikel->Kategoriepfad == 'Gartengeräte'}
    info2
{elseif $Artikel->Kategoriepfad == 'Autos'}
    info3
{/if}
 

StaniM

Mitglied
24. Mai 2018
41
2
Okay, nun verstehe ich warum das Funktionsattribut ist besser als Kategorie- oder ID-Abfragen. Tausend mal Danke nochmals ! :)
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Konfigurator Einzelteile in Google und im Shop sichtbar Plugins für JTL-Shop 6
Neu Versandklasse in Detailansicht neben "zzgl. Versand" anzeigen Allgemeine Fragen zu JTL-Shop 2
Neu Einzelne Artikel einer bestimmten Kundengruppe anzeigen lassen Allgemeine Fragen zu JTL-Shop 5
Neu "Variationsvorschau anzeigen" in der Galerie funktioniert nicht JTL-Shop - Fehler und Bugs 2
Neu JTL Artikel auf Shopify als Varianten anzeigen Shopify-Connector 2
Neu Kundensonderpreis Prozentual anzeigen User helfen Usern - Fragen zu JTL-Wawi 5
Grundpreis / Mengen Anzeigen lassen im Shopify Shop JTL-Wawi 1.9 2
Laufende eBay Angebote in Artikelübersicht anzeigen lassen JTL-Wawi 1.9 2
Neu Produktbewertungen bei Google Shopping mit anzeigen Technische Fragen zu Plugins und Templates 2
Neu Sendungsnummer oder Tracking-Link auf Export-Vorlage anzeigen Gelöste Themen in diesem Bereich 6
Neu Kundengruppe in Mein Konto anzeigen Allgemeine Fragen zu JTL-Shop 6
Lagerbestand zu bestimmten Datum anzeigen lassen JTL-Wawi 1.9 4
Neu Eigene Übersichten - Beschaffung - Bestellvorschläge - nur Standardlieferant anzeigen Eigene Übersichten in der JTL-Wawi 4
Neues Fenster immer im Vordergrund anzeigen? JTL-Wawi 1.9 3
Neu Eigenes Feld aus Kategorie im Shop anzeigen User helfen Usern - Fragen zu JTL-Wawi 1
Neu Hinweis auf JTL-POS Customer Display 'Meldung nicht erneut anzeigen' funktioniert nicht JTL-POS - Fehler und Bugs 0

Ähnliche Themen