Ergebnis 1 bis 28 von 28

Thema: Isotope - Produkte in mehreren Kategorien

  1. #1
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Frage Isotope - Produkte in mehreren Kategorien

    Da manche Produkte im Shop mehr als einer Kategorie zugeordnet sind, aber dieselbe Artikelnummer haben, kann man in der Bestellung anhand der Artikelnummer nicht sehen, aus welcher Kategorie das Produkt denn bestellt wurde.

    Da mir keine andere Lösung einfäll, dachte ich, man kann vielleicht anhand der URL bzw. des Alias der Produktseite einen Wert generieren.
    Also hatte ich mir folgenden Code ausgedacht der abernicht das gewünschte Ergebnis bringt. Genau gesagt es wird gar nicht ausgegeben.

    PHP-Code:
    <?php 
    $pagealias 
    "{{page::alias}}";
    $skuaddon "";
    if (
    str_contains($pagealias'shop/hochdach')) {
        
    $skuaddon "HD";
    }
    if (
    str_contains($pagealias'shop/aufstelldach')) {
        
    $skuaddon "AD bis 2024";
    }
    if (
    str_contains($pagealias'shop/aufstelldach-24')) {
        
    $skuaddon "AD ab 2024";
    }
    echo 
    $skuaddon;
    ?>
    Diese PHP-Datei wird per Insert-Tag in das Template eingebaut, was für die Produktdetailseite verwendet wird und soll den Wert dann dort anzeigen und auch weiter verwendet werden.

    Warum wird auf der Seite dann aber nichts ausgegeben? Was übersehe ich denn da? Ist das komplett falsch gedacht oder programmiert?

    Ich dachte, die Funktion str_contains() prüft, ob der gesuchte String vorhanden ist. Mit testhalber "echo $pagealias" wird mir was ausgegeben. Wenn auch nicht der gesamte Alias der Seite, sondern nur beispielsweise "shop/hochdach". Alles sehr merkwürdig ...

    Oder gibt es da bessere und/oder einfachere Möglichkeiten?

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.054
    Partner-ID
    10107

    Standard

    Dein str_contains funktioniert nicht, weil du die Prüfung ja auf den String "{{page::alias}}" machst.

    Welche Rolle spielt es aber denn, aus welcher Kategorie ein Produkt gekauft wird?
    » sponsor me via GitHub or Revolut

  3. #3
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.667
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das System geht aktuell davon aus, dass ein Produkt immer ein Produkt ist. Es kann in mehreren Kategorien erscheinen (was z.B. auch mehrere Root-Seiten für Sprachen oder Domains sein können), aber es ist immer dasselbe Produkt. Würde mich auch interessieren weshalb die Kategorie eine Rolle spielt?
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  4. #4
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Dein str_contains funktioniert nicht, weil du die Prüfung ja auf den String "{{page::alias}}" machst.

    Welche Rolle spielt es aber denn, aus welcher Kategorie ein Produkt gekauft wird?
    Wie soll ich die Prüfung denn machen?
    Ich dachte dafür ist die Funktion da, um zu prüfen ob der eine String in dem anderen vorhanden ist.

    Das mit den Kategorien hat folgenden Sinn.
    Es gibt Produkte die in mehreren Kategorieseiten angezeigt werden, da diese für verschiedene Fahrzeugmodelle geeignet sind. Wenn nun ein Kunde ein Produkt kauft, dann kann man in der Bestellbestätigung/Rechnung nicht ersehen, für welches Fahrzeugmodell er dieses Produkt kauft. Da nach dem Kauf eine Beratung/Terminabsprache für den Einbau mit dem Kunden gemacht wird, wäre es wichtig zu wissen, um welches Fahrzeugmodell es geht.

    Von daher wollte ich das entsprechende Fragment aus der URL/Alias auslesen und so auf das Fahrzeugmodell schliessen für das der Kunde das Produkt gekauft hat.

    Einzige sonstige Möglichkeit wäre, dass diese generell verwendbaren Produkten mehrfach und mit eigenen Artikelnummern in den Shop eingepflegt werden müssten, was wir vermeiden möchten.

    Wie kann ich also nun diese Prüfung mit PHP machen?

  5. #5
    Alter Contao-Hase
    Registriert seit
    24.02.2021.
    Beiträge
    1.445
    Partner-ID
    11715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von quintacom Beitrag anzeigen
    Wie soll ich die Prüfung denn machen?
    Inserttags werden nicht im PHP-Code aufgelöst.
    Du könntest dir den Alias über das Pagemodel holen.

  6. #6
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Zitat Zitat von zoglo Beitrag anzeigen
    Inserttags werden nicht im PHP-Code aufgelöst.
    Du könntest dir den Alias über das Pagemodel holen.
    Danke für den Hinweis.

    Dann könnte ich den erhaltenen Wert doch wie geplant über die Funktion str_contains() vergleichen, ja?
    Nur wüsste ich jetzt nicht, wie man das aufruft bzw. da dran kommt um das einer Variable zuzuweisen.

  7. #7
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Zitat Zitat von zoglo Beitrag anzeigen
    Inserttags werden nicht im PHP-Code aufgelöst.
    Nochmal zu Deiner Aussage.
    Anscheinend wird der Insert-Tag aber doch aufgelöst, denn wenn ich folgendes mache, wird mir beispielsweise "shop/aufstelldach" per echo ausgegeben. Damit könnte man doch schon was anfangen.

    PHP-Code:
    <?php 
    $pagealias 
    "{{page::alias}}";
    echo 
    $pagealias;
    ?>
    Warum kann man dann aber anschließend den Wert/String aus $pagealias nicht mit str_contains() prüfen? Verstehe ich nicht.

  8. #8
    Contao-Fan Avatar von lbableck
    Registriert seit
    10.06.2021.
    Beiträge
    333
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Der Insert-Tag wird nicht während der Ausführung des PHP-Codes ersetzt, sondern erst bei der Ausgabe.
    In der PHP Variable steht also zu jedem Zeitpunkt immer noch der Insert-Tag, nie das Ergebnis.

  9. #9
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Zitat Zitat von lbableck Beitrag anzeigen
    Der Insert-Tag wird nicht während der Ausführung des PHP-Codes ersetzt, sondern erst bei der Ausgabe.
    In der PHP Variable steht also zu jedem Zeitpunkt immer noch der Insert-Tag, nie das Ergebnis.
    Hmm, man kann diesen Wert also nicht mehr verändern und dann verändert ausgeben?

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.054
    Partner-ID
    10107

    Standard

    Den Insert-Tag brauchst du nicht (und bringt dir wie oben beschrieben nichts). Du kannst dir den Alias der aktuellen Page auch quick & dirty so holen: $GLOBALS['objPage']->alias
    » sponsor me via GitHub or Revolut

  11. #11
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    7.430
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von quintacom Beitrag anzeigen

    Einzige sonstige Möglichkeit wäre, dass diese generell verwendbaren Produkten mehrfach und mit eigenen Artikelnummern in den Shop eingepflegt werden müssten, was wir vermeiden möchten.
    Ich meine mich grob zu erinnern, dass Isotope auch Produktvarianten kennt. Das wäre keine Option für Deinen Anwendungsfall?
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.054
    Partner-ID
    10107

    Standard

    Zitat Zitat von mlweb Beitrag anzeigen
    Ich meine mich grob zu erinnern, dass Isotope auch Produktvarianten kennt. Das wäre keine Option für Deinen Anwendungsfall?
    Du kannst nicht unterschiedliche Produktvarianten unter unterschiedlichen Kategorien anzeigen lassen, I think.
    » sponsor me via GitHub or Revolut

  13. #13
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    7.430
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Mein Gedanke war eher Produktvarianten statt Kategorien
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.054
    Partner-ID
    10107

    Standard

    Aber wie zeigst du diese Produktvarianten dann an?
    » sponsor me via GitHub or Revolut

  15. #15
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    7.430
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Mit der Produktvariantenliste dachte ich https://docs.isotopeecommerce.org/ma...-variant-list/

    Ob das für seine Abforderungen möglich oder sinnvoll wäre war ja meine Frage. Der Kunde würde sich dann statt eines Ersatzteils der entsprechenden Kategorie das Ersatzteil in der "Variante" für seinen AFahrzeugtyp auswählen.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  16. #16
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.667
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von quintacom Beitrag anzeigen
    Es gibt Produkte die in mehreren Kategorieseiten angezeigt werden, da diese für verschiedene Fahrzeugmodelle geeignet sind. Wenn nun ein Kunde ein Produkt kauft, dann kann man in der Bestellbestätigung/Rechnung nicht ersehen, für welches Fahrzeugmodell er dieses Produkt kauft. Da nach dem Kauf eine Beratung/Terminabsprache für den Einbau mit dem Kunden gemacht wird, wäre es wichtig zu wissen, um welches Fahrzeugmodell es geht.

    Von daher wollte ich das entsprechende Fragment aus der URL/Alias auslesen und so auf das Fahrzeugmodell schliessen für das der Kunde das Produkt gekauft hat.
    Das ergibt Sinn. Ich würde das folgendermassen machen:
    - Ein neues Text-Attribut anlegen und "durch den Kunden bearbeitbar" konfigurieren.
    - Dieses Attribut natürlich bei den entsprechenden Produkten aktivieren.
    - Im Produkt(reader)-Template dieses Attribut "manuell" ausgeben (ggf. das Markup kopieren nachdem du dir es einmal anzeigen lassen hast). Bei der manuellen Ausgabe dann aus der aktuellen URL das Feld entsprechend befüllen.
    - Per CSS dieses Feld ausblenden, sodass es Kund:innen nicht sehen.

    PS: die Info wird dann ggf. im Warenkorb sichtbar, was gewollt oder nicht sein kann. Hängt auch davon ab was du befüllst. Ggf. kannst du es im Warenkorb/Collection-Template dann wieder ausblenden/überspringen bei der Ausgabe.

    Zitat Zitat von quintacom Beitrag anzeigen
    Einzige sonstige Möglichkeit wäre, dass diese generell verwendbaren Produkten mehrfach und mit eigenen Artikelnummern in den Shop eingepflegt werden müssten, was wir vermeiden möchten.
    Das würde ich auf jeden Fall vermeiden. Das SKU-Feld darf sogar nur einmal vorkommen, wenn ich mich richtig erinnere.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  17. #17
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Ja, das mit dem Fragment aus dem URL auslesen habe ich mal verworfen, da nicht immer die entsprechenden Schlüsselbegriffe enthalten sind.

    Habe dann in der Tat ein neues Attribut in Form eines Radiobutton-Menüs als Pflichtfeld angelegt und "Durch den Kunden auswählbar" definiert. Dann einen neuen Produkttyp erstellt wo dieses Attribut zum Tragen kommt und den entsprechenden Produkten zugewiesen. Bei generell verwendbaren Produkten braucht es diese Auswahl ja im Prinzip nicht.
    Diese Angabe des Attributs durch den Kunden lasse ich dann auch im Warenkorb bzw. im weiteren Bestellprozess bei den Produkten ausgeben.

    Da es ein Attribut ist, wird es auch wunderbar in dem Dokument der Bestellbestätigung/Rechnung aufgeführt.

    ___

    Jetzt kommt allerdings eine alternative Lösung ins Spiel, dass das nicht bei den entsprechenden Produkten durch den Kunden angegeben werden soll, sondern während des Checkout unterhalb der Eingabe der Rechnungsadresse. Ok, also ein Formular erstellt, das dieses Radiobutton-Menü enthält sowie noch zwei Checkboxen für die Zustimmung zur Verarbeitung der Daten und Kenntnisnahme der AGB und das im Kassenmodul unter "Bestellbedingungsformular" eingefügt. Funktioniert alles soweit.

    In den E-Mails für die Benachrichtigung an den Shopbetreiber und den Kunden kann ich diese Auswahl per Simple-Token wie gewohnt einsetzen.
    Mein Problem ist jetzt aber, wie bekommt man diese Auswahl in das Dokument Bestellbestätigung/Rechnung? Die Simple-Token ##form_xxx## werden dort nicht aufgelöst.

    Was kann man da machen, damit diese Information auch dort aufführt wird?

  18. #18
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.054
    Partner-ID
    10107

    Standard

    In deinem iso_collection_* Template:
    PHP-Code:
    $checkoutInfo StringUtil::deserialize($this->collection->checkout_infotrue); 
    » sponsor me via GitHub or Revolut

  19. #19
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    In deinem iso_collection_* Template:
    PHP-Code:
    $checkoutInfo StringUtil::deserialize($this->collection->checkout_infotrue); 
    Das sieht interessant aus.

    Hmm, hatte das eben einfach als PHP-Code in das Template eingefügt, um zu sehen, was dadurch dann überhaupt ausgegeben wird. Da wird aber nichts ausgegeben.
    Wie kann man denn mit diesem Code auf den Wert aus dem Formularfeld zugreifen und das ausgeben lassen?

    Sorry, habe da leider noch Verständnisschwierigkeiten.

  20. #20
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.054
    Partner-ID
    10107

    Standard

    Zitat Zitat von quintacom Beitrag anzeigen
    Hmm, hatte das eben einfach als PHP-Code in das Template eingefügt, um zu sehen, was dadurch dann überhaupt ausgegeben wird. Da wird aber nichts ausgegeben.
    Dieser Code gibt dir ja auch nichts aus. Der Code holt sich nur die "checkout_info" aus der Collection und gibt sie in die Variable $checkoutInfo. Mit dump($checkoutInfo) kannst du dir ansehen, was da nun drin steht.
    » sponsor me via GitHub or Revolut

  21. #21
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Dieser Code gibt dir ja auch nichts aus. Der Code holt sich nur die "checkout_info" aus der Collection und gibt sie in die Variable $checkoutInfo. Mit dump($checkoutInfo) kannst du dir ansehen, was da nun drin steht.
    Hmm, das ist alles was ausgegeben wird ...

    Untitled.jpg

  22. #22
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Dieser Code gibt dir ja auch nichts aus. Der Code holt sich nur die "checkout_info" aus der Collection und gibt sie in die Variable $checkoutInfo. Mit dump($checkoutInfo) kannst du dir ansehen, was da nun drin steht.
    Kann mir da jemand einen Wink geben, wie ich an die Daten komme?
    Ich hoffe, den entsprechenden Wert dann im PDF ausgeben zu können. Daran hapert es eben leider noch.

  23. #23
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Kann mir denn niemand dazu etwas auf die Sprünge helfen?

  24. #24
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Habe jetzt noch ein anderes Problem.

    Wenn Produkte mehreren Kategorien zugeordnet sind, dann kann dasselbe Produkt über mehrere URLs aufgerufen werden. Das passt natürlich Google nicht. Google hatte dann von sich aus ein Canonical ausgewählt.
    Ich habe es jetzt wenigstens so eingerichtet, dass dann immer derselbe Canonical für dieses Produkt ausgegeben wird. Ein SEO-Berater meinte, dass wäre nur eine Alternativlösung. Besser wäre es, wenn dasselbe Produkt immer nur unter einer URL zu erreichen ist. Wie soll man das aber hinbekommen, wenn sich der URL je nach Kategorieseite anders aufbaut? Müsste man dfür irgendwas über die .htaccess manipulieren oder wie geht man damit um?

  25. #25
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.667
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    es müsste doch bereits ein Canonical auf der Reader-Seite sein? Der Canonical ist immer die erste Seite in deinen Kategorien, welche sich auf der aktuellen Root-Seite befindet. Du kannst die Kategorien innerhalb des Produkts sortieren und damit wählen, welches die "Primäre" ist.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  26. #26
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Zitat Zitat von andreas.schempp Beitrag anzeigen
    es müsste doch bereits ein Canonical auf der Reader-Seite sein? Der Canonical ist immer die erste Seite in deinen Kategorien, welche sich auf der aktuellen Root-Seite befindet. Du kannst die Kategorien innerhalb des Produkts sortieren und damit wählen, welches die "Primäre" ist.
    Hallo Andreas,

    ja, der Produktdetailseite hatte ich den Canonical "shop/{{product::alias}}/" zugewiesen, damit zumindest die betreffenden Produkte alle einen einheitlichen Canonical-Tag haben.

    Ich wüsste allerdings nicht wie man die Kategorien innerhalb eines Produkts sortieren könnte. Ich kann doch oben nur die Kategorien bestimmen, indem ich die entsprechenden Seiten aus dem Seitenbaum wähle. Da sehe ich keine Sortiermöglichkeit.

  27. #27
    Contao-Fan Avatar von lbableck
    Registriert seit
    10.06.2021.
    Beiträge
    333
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Die Kategorien kannst du einfach per Drag-and-Drop sortieren.

  28. #28
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    309

    Standard

    Zitat Zitat von lbableck Beitrag anzeigen
    Die Kategorien kannst du einfach per Drag-and-Drop sortieren.
    Besten Dank.
    Darauf bin ich gar nicht gekommen, denn für Drag&Drop-Geschichten gibt es ja sonst das entsprechende Icon. Da dieses hier nicht vorhanden ist, zieht man diese Möglichkeit erst einmal nicht in Betracht.

    Auf diese Weise kann man dann tatsächlich das Produkt unter der gleichen URL aus verschiedenen Kategorien aufrufen. Fein. Da dürfte dann Google nichts mehr zu meckern haben, oder?
    Dann sollte ich mir die extra angebene indivuduelle URL für den Canonical-Tag im Prinzip sparen.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 11 (Registrierte Benutzer: 0, Gäste: 11)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •