Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Vorschlag Problemlösung für product_path

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.745
    • Geschlecht:
    Vorschlag Problemlösung für product_path
    am: 28. September 2012, 19:31:29
    Hallo liebe Community.

    Folgendes Problemchen gibt es ja schon länger im Shop:
    Da kein "Double Content" gewünscht wird, wird der Produkt-Link (product_path) ja aus dem Namen einer eindeutigen Kategorie und dem Produktnamen und dessen ID gebildet (wir sprechen von Shopstat-URLs).
    Ich sage "einer" Kategorie, da, wenn ein Produkt in verschiedene Kategorien verlinkt ist, der Produkt_Link mit nur einer Kategorie gebildet wird;
    und das ist die mit der kleinsten ID (augenommen '0') in der Datenbank in der Tabelle products_to_categories.
    Dies hat bekanntermaßen den "Drawback", daß, wenn sich ein Kunde in einer Kategorie befindet und eine Produkt-Einzelansicht (Details) anklickt, danach das Produkt evtl. mit einer anderen Kategorie im Pfad in der URL und der Breadcrumb angegeben ist, als die Kategorie aus der er eigentlich kommt.

    Das hat mehrere Nachteile:
    • kann man die Breadcrumb so schlecht für "zurück" -Button nutzen,
      was auch Folgen für beispielsweise den "weiter einkaufen" -Button hat
      und
    • ist die Produkt-Navigation verwirrend, da sie nun durch die neuerdings angegebene Kategorie blättert und nicht durch die in der sich der Kunde befunden hat als er auf "Details" klickte
      und
    • ist der Kunde evtl. verwirrt wenn er einen Blick auf die URL oder die Breadcrumb wirft (wenn er's nicht schon vorher war ;-) )
    • der Kunde ist verwirrt, wenn man "active"-Links im Kategoriemenu per CSS hervorgehoben hat,
      da ja nun eine andere Kategorie als erwartet hervorgehoben ist

    Ich schlage vor das Problem folgendermassen zu lösen:
    Ich mache diesen Vorschlag damit Entwickler die sich besser im System auskennen mir evtl. sagen können was ich übersehen oder nicht bedacht habe.

    • Wir bauen eine neue Spalte in die products_to_categories -Tabelle, die wir "flag" nennen.
      Das Feld kann nur "1" oder "0" beinhalten oder "true" und "false", also ist ein boolean.
    • In der Artikelbearbeitung (new_product.php) bauen wir eine checkbox ein deren POST_Wert an die DB-Tabelle products_to_categories ins neue Feld "flag" übergeben wird.
      Diese checkbox heißt z.B. "Kategorie-Hauptverlinkung".
      Ist die checkbox angeklickt, also Haken gesetzt, wird die Kategorie mit der man den Artikel zur Bearbeitung aufgerufen hat als Hauptkategorie ausgewählt.
      (Es muß dann natürlich der Artikel aus der Kategorie aufgerufen werden, die man zur Hauptkategorie machen möchte. Die ID der Kategorie können wir mit $_GET aus dem Pfad der URL auslesen.)
    • In /inc/xtc_get_product_path.inc.php, wo wir die Funktion zur Bildung des Kategoriepfades finden,
      erweitern wir die DB-Abfrage mit AND p2c.flag ="1", wobei LIMIT 1 dann wegfallen könnte
      und schwupps wird nur noch die Kategorie mit dem flag ="1" für die Bildung des Produkt-Links verwendet.

    Legt man einen neuen Artikel an, kann man ja gleich die richtige Kategorie wählen, wenn sich später etwas ändert, kann man den Artikel in einer anderen Kategorie zur Bearbeitung aufrufen und kann so alles steuern.
    Natürlich müssen wir noch verhindern, daß mehrere Kategorien den flag = "1" bekommen können.
    Also z.B. Warnmeldung ausgeben, wenn dies der Fall sein sollte.

    Alternativ könnte man auch ein neues Template im Aminbereich schaffen wo die Tabelle products_to_categories ausgegeben wird, einschließlich der Namen der Kategorien aus der Tabelle categories_decsription, zur besseren Übersicht,
    und stellt dort die genannte checkbox dar.
    So könnte man zentral steuern wleche Kategorie im Produkt_Link auftauchen soll.

    Das ganze hat alle Vorteile die man sich wünschen kann.
    • Weiterhin kein "Double Content"
    • Keine Verwirrung des Kunden durch Breadcrumb oder URL
    • Breadcrumb kann besser für "zurück" -Button genutzt werden
      (raus mit dem "javascript:history.back()" ;-) )
    • Der "weiter einkaufen" -Button kann sinnvoller und nach Wunsch gestaltet werden
      (z.B. in die Kategorie redirecten (ich liebe denglish :-D) aus der der zuletzt dem Warenkorb hinzugefügte Artikel stammt, also da wo der Kunde war bevor er die Artikel-Details aufgerufen hat,
      oder auf eine Hauptkategorie, wenn der Kunde sich in einer Unterkategorie befunden hat, usw.)
    • Mit CSS gestylte "active"-Links im Kategoriemenu verwirren den Kunden nicht mehr

    Im übrigen würden auch alle Suchmaschinen-Links weiterhin gültig sein, da für die Produkt-Links lediglich die Produkt-ID entscheidend ist.

    Was haltet Ihr davon ?

    Würde mich freuen viele Feedbacks zu bekommen, auch und insbesondere von Entwicklern.
    Würde das dann bauen, eine Anleitung schreiben und diese posten.

    Gruß,
    noRiddle

    Linkback: https://www.modified-shop.org/forum/index.php?topic=22542.0
    Werbung / Banner buchen

    h-h-h

    • modified Team
    • Beiträge: 4.563
    Re: Vorschlag Problemlösung für product_path
    Antwort #1 am: 28. September 2012, 19:41:35
    Hallo noRiddle,
    schau dir mal das canonical Modul von shopmodules aka alkim:media aus dem Modulbereich an.

    Mit besten Grüßen

    h-h-h

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.745
    • Geschlecht:
    Re: Vorschlag Problemlösung für product_path
    Antwort #2 am: 28. September 2012, 20:02:22
    Wo iss'n datt ? ;-)
    Nicht gefunden.

    Ist gegen meinen Lösungsvorschlag etwas einzuwenden ?

    Gruß,
    noRiddle

    h-h-h

    • modified Team
    • Beiträge: 4.563
    Re: Vorschlag Problemlösung für product_path
    Antwort #3 am: 28. September 2012, 20:14:59
    ERWEITERUNG: canonical Tags (DC/SEO) für modified eCommerce Shopsoftware

    Nichts einzuwenden, da ich es mir nicht genau durchgelesen habe. :oops:

    Mit besten Grüßen

    h-h-h

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.745
    • Geschlecht:
    Re: Vorschlag Problemlösung für product_path
    Antwort #4 am: 28. September 2012, 20:37:29
    Mmhh, nicht so übverzeugt von den canonical URLs...
    Mal sehen...

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.084
    • Geschlecht:
    Re: Vorschlag Problemlösung für product_path
    Antwort #5 am: 28. September 2012, 21:14:41
    Hallo noRiddle,

    ich habe das bei mir verbaut. Insbesondere war wichtig, dass Artikel, die in mehreren Kategorien verlinkt waren, nach dem Aufruf auch wieder in die korrekte Kategorie zurückverlinken. Also derart, wie du es beschrieben hattest: richtige breadcrumb, die korrekte Kategorie, in der sich der Kunde befunden hatte, etc.

    Viele Beispiele im Shop (Häuschen). Z.B. http://www.zwillingslook.de/Zwillingsjungs/Babys:::1_6/3-teilige-Anzuege-Festive-Boys-blau-und-rot::208.html und http://www.zwillingslook.de/Zwillingsjungs/Frueh-und-Neugeborene:::1_5/3-teilige-Anzuege-Festive-Boys-blau-und-rot::208.html

    Das mit dem javascript zurück- Problem habe ich damit weitestgehend lösen können:
    http://www.modified-shop.org/forum/index.php?topic=4887.msg196633#msg196633

    Beste Grüße,
    Wayne

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.745
    • Geschlecht:
    Re: Vorschlag Problemlösung für product_path
    Antwort #6 am: 28. September 2012, 21:24:16
    Klar, wenn man nicht mehr das URL / Braedcrumb -Problem hat, benötigt man diesen "javascript:history.back()" -Müll nicht mehr.
    Das fehlt übrigens in dem von dir verlinkten Thread.
    Die Lösung dort ist ja ohne meine Lösung oder ohne die cannonical-URLs nicht akzeptabel.

    Du findest also das ALKIM-Teil gut ?
    Mich stören etwas die neuen category_ids in der URL...
    Naja, schau' es mir mal an.
    Meine Lösung ist ja auch nur halb-gewalkt, da wenn man ein Produkt aus einer anderen als der von mir sogenannten Hauptkategorie aufruft, das Problechen ja umgekehrt genauso besteht.

    Gruß,
    noRiddle

    web28

    • modified Team
    • Beiträge: 9.404
    Re: Vorschlag Problemlösung für product_path
    Antwort #7 am: 29. September 2012, 16:55:09
    Zitat
    Mich stören etwas die neuen category_ids in der URL...

    Mich auch, das ist eher Suchmaschinenfeindlich, die Links werden mit den IDs erheblich länger. Bei Ebene 3 ist das bereits grenzwertig.

    Zum Problem mit den verlinkten Produkten. Hier muss man zweierlei unterscheiden:
    1. Eindeutige Links für Google
    2. Ungewollte Kategoriesprünge beim Artikelaufruf

    zu 1)
    Das ist mit der aktuellen Metatags bereits gelöst, alle Produktlinks bekommen eindeutige Cannonical Tags.
    Was fehlt, das man bei Artikeln eine Standardkategorie definieren kann, die im Cannonical Tag dann immer benutzt wird. Dafür ist Dein Ansatz ganz interessant, ich würde allerdings mit den Kategorie-Ids arbeiten. Ideenansatz: bei jeden Artikel ein Dropdown mit den Kategorien zur Auswahl. Bei der Kategorie eine Schaltfläche zum Zuweisen aller Artikel in dieser Kategorie
    Ich glaube das bei Zencart irgend etwas in der Art auch angedacht war, keine Ahnung ob das in der aktuellen Version schon umgesetzt wurde.

    zu 2)
    Das ist mit dem Alkim Modul oder einem kommerziellen Modul von mir bereits gelöst. Bei meinem Modul arbeite ich aber mit der Session, dadurch vermeide ich die Kategorie-Ids in den URLs. (die Urls sind Shop Standard)
    Wie gesagt, das vermeiden von Kategoriesprüngen ist nur für den Kunden, nicht zur Seo-Optimierung

    Gruss Web28

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Vorschlag Problemlösung für product_path
    Antwort #8 am: 30. September 2012, 14:51:29
    Frage an euch.

    Im Prinzip heißt das ganze ja nichts anderes als...

    Dass, Verlinke Artikel Linktechnisch genauso aussehen sollen wie Duplizierte (Kopierte) Artikel, nur dass eben der canonical auf den Ursprungs Artikel hinweist.

    Habe ich das so richtig verstanden?

    Denn dann ... Moment ... muss meine Überlegung noch etwas durch meine Gehirnwindungen, bzw. Shop jagen. :-?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.745
    • Geschlecht:
    Re: Vorschlag Problemlösung für product_path
    Antwort #9 am: 30. September 2012, 15:25:42
    Hi web0null.
    Was meinst du mit "genauso ... wie Duplizierte (Kopierte) Artikel" ?

    Nehmen wir an du hast einen Artikel "Schraube 2 x 10mm"
    Dieser Artikel ist in folgender Kategorie angelegt:
    - Schrauben und Muttern (ID 12)
    Er ist verlinkt (nicht dubliziert) in folgende Kategorien:
    - Kleinteile (ID 6)
    - Zubehör (ID 4)
    - TOP (ID 0)

    Da in der Shop nicht unterscheidet zwischen einer "Haupt"-Kategorie (z.b. die in der der Artikel ursprünglich angelegt wurde und "Neben"-Kategorien (die in die er verlinkt wurde), sucht er sich bei Aufruf des Artikels
    - egal aus welcher Kategorie -
    aus der Tabelle product_to_categories mit der Funktion get_product_path() eine Kategorie "beliebig" aus. (Nach meinen Recherchen (zumindest in meiner mySQL-Version) die mit der niedrigsten ID, außer "0" für "TOP" (siehe die genannte Funktion).)
    Das bedeutet, daß er, in unserem Beispiel, den Produkt-Pfad mit der Kategorie "Zubehör" bilden würde, da diese die niedrigste ID hat.
    Das ist natürlich nicht gut.
    Kunde war in Kategorie "Schrauben und Muttern" und ruft die Details des Artikels auf und sieht plötzlich
    • in der URL eine andere Kategorie (nämlich "Zubehör")
    • in der Breadcrumb eine andere Kategorie (nämlich "Zubehör")
    • eine evtl. mit CSS als "active" gestylte Kategorie im Kategoriemenu (nämlich Zubehör ;-) ), die nicht die ist in der er vorher war

    Es gibt mit dieser Methode keinen Double Content, da der Produkt-Pfad immer eindeutig ist.

    Die Lösung soll nun ein meta-tag mit einer Canonical URL sein die immer gleich ist,
    am Besten die, in der man den Artikel hauptsächlich sehen will, auch unter SEO-Gesichtspunkten,
    es soll aber gleichzeitig im Frontend die angezeigte URL in der Browser-Adressleiste, die Breadcrumb und die markierte "active"-Kategorie die sein, von der er wirklich kam.

    Es verhält sich also nichts wie "duplizierte Artikel" sondern der Besucher sieht lediglich den wirklichen Pfad auf dem er zur Detail-Ansicht des Artikels gekommen ist.
    Die Suchmaschienen haben jedoch durch die Canonical-URL immer nur einen Pfad.

    Das ganze hat nur Vorteile:
    • Logik für den Besucher
    • besser konfigurierbare "zurück"- und "weiter einkaufen"-Buttons
    • korrekter Kategorie-Pfad als "active" markiert

    Ich habe mit web28 schon darüber gesprochen.
    Wir müssen eine Lösung finden die all das genannte erfüllt, ohne zu viel umstricken zu müssen.
    Wir stimmten darin überein, daß es sicherlich sinnvoll ist, wenn der Admin bestimmen kann welche "Haupt"-Kategorie er für einen Artikel wünscht, womit dann die Canonical-URL gebildet wird.
    Der Pfad in Breadcrumb usw. soll aber der wirklich gegangene sein.

    Mein Lösung ist da nicht tauglich, hat lediglich einen richtigen Ansatz.
    Wenn du Ideen hast, bist du willkommen, wie immer ;-) .

    Wenn du dir die get_product_path() -Funktion anschaust (im /inc-Verzeichnis), siehst du dort ein "LIMIT 1" welches obsolet wird, wenn wir denn ein boolean-flag setzen für die Kategorie die wir für den Canonical benötigen.
    Die Frage die sich uns stellte, war, wo setzen wir die Spalte für das flag.
    In der Tabelle products, die ohnehin ausgelesen wird oder in der product_to categories.
    Am wenigsten Änderungen hätte man, wenn man es schaffen würde die Funktion get_product_path() so umzubauen, daß sie sowohl die nun bestimmbare "Haupt"-Kategorie ausliest (für canonical) als auch den "real"-path, den der Kunde gegangen ist.
    Zu beachten sind auf jeden Fall die Sitemap-Bildung wie auch die Suchfunktion.
    Bei beiden sollte am besten der Artikel gefunden / indiziert werden, der in der "Haupt"-Kategorie liegt (hier gibt es ja keinen Pfad den man gekommen ist).
    Gleichzeitig soll der Canonical genau diesen Pfad angeben.

    Es wäre schön, wenn sich da noch mehr Leute Gedanken drüber machen könnten, da die genannten Features sehr wichtig für die Logik im Frontend sind und gleichzeitig SEO-friendly sind und Double Content vermeiden durch den Cannonical.

    Gruß,
    noRiddle

    ***NACHTRAG***
    Habe nochmal über deine Aussage mit dem Verhalten wie "duplizierte Artikel" nachgedacht.
    Klar, kann man so sehen, du hast's ja verstanden.
    Meine obigen Ausführungen machen das Problem vielleicht (hoffentlich) nochmal ganz klar für Andere ;-) .

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Vorschlag Problemlösung für product_path
    Antwort #10 am: 30. September 2012, 16:12:04
    Danke für deine ausführliche Erklärung, (muss ich zwar noch etwas studieren :-D)

    Zitat
    Klar, kann man so sehen, du hast's ja verstanden.
    Das war mir mal wichtig, dass ich da keinen Denkfehler habe, bzw. ich denke, vielleicht manchmal zu pragmatisch.

    Meine Überlegung ist ja im Prinzip "ganz einfach".
    Ich (wir) müssen es schaffen dass

     1. der Link genauso wie bei einem "duplizierten Artikel" ist, und
     2. die Canonical URL muss so sein wie bei einem "verlinkten Artikel", und
     3. der Artikel muss trotzdem wie ein "verlinkter Artikel" behandelt werden, wegen den mengen usw.

    Soweit mal zu "ganz einfach" :-?

    Werde das, und die anderen Dinge die noch zu beachten sind mal durch den Shop jagen, ob ich mir dass "ganz einfach" nicht zu einfach vorstelle.  :-P

    Gruß web0null

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.745
    • Geschlecht:
    Re: Vorschlag Problemlösung für product_path
    Antwort #11 am: 30. September 2012, 18:54:26
    Deinen Punkt 3. verstehe ich nicht.
    Man muß da gar nichts beachten bzgl. "Mengen".
    Und wieso "wie ein verlinkter Artikel behandelt werden" ?
    Das wird er doch sowieso, deshalb ist es ja auch ein verlinkter Artikel und nicht ein duplizierter.

    Deinen Punkt 1. versteh ich auch nicht.
    Ähh..., und eigentlich verstehe ich gar keinen Punkt.
    Was hast du immer mit "verlinkt" und "dupliziert" ?

    Gruß,
    noRiddle

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Vorschlag Problemlösung für product_path
    Antwort #12 am: 30. September 2012, 19:22:21
    Ja dachte ich mir schon, ist mir selber auch fast zu hoch, bzw. habe es etwas besch.... erklärt.:-D
    Zitat
    Was hast du immer mit "verlinkt" und "dupliziert" ?
    Ich meine... siehe Bild.

    Wenn man "verlinkt" ist es ja nur eine interne Sache, und wenn man "dupliziert" ist es ein eigenständiges Produkt (es diente nur zum Vergleich der Linkbildung) .

    Bei "verlinkten" Produkten müssen wir den Link genauso generieren wie bei jedem anderen Produkt
    (das können wir ja in der xtc_get_product_path.inc.php machen).

    Die Canonical URL müssen wir umschreiben.
    Deswegen denke ich jetzt, wir sollten eine eigene Funktion, für die bildung des Canonical erstellen.
    Die eben für die "verlinkten" Produkte die Canonical URL umschreibt, und alle anderen genauso ausgibt wie jetzt.

    Zitat
    Deinen Punkt 3. verstehe ich nicht.
    Man muß da gar nichts beachten bzgl. "Mengen".

    ... das habe ich gerade bemerkt beim probieren, dass da nichts zu beachten ist.

    Ich hoffe datt is jetzt besser erklärt  :hust:

    Ps. Ich schaffe zwar komplizierte Denkvorgänge, aber beim niederschreiben hapert es bei mir.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.745
    • Geschlecht:
    Re: Vorschlag Problemlösung für product_path
    Antwort #13 am: 30. September 2012, 19:44:22
    Okay, mir war schon klar was "verlinkt" und "dupliziert" ist.
    Verstehe jetzt, daß du die Begriffe nur als Erklärungsbeispiel benutzt hast.
    Ist aber "gefährlich", weil jemand es mißverstehen könnte.

    Nochmals kurz zusammengefasst:
    Wir benötigen ein flag (wie in meinem ersten Post) mit welchem man bestimmen kann welche Kategorie für den Produkt-Pfad genommen werden soll für
    • die canonical URL
    • die Sitemap
    • Suchergebnisse

    Wir benötigen die "echten" Produkt-Pfade für
    • die URL
    • die Breadcrumb
    • hervorgehobene "active"-Links im Kat-Menu
    • bessere "zurück"-Button ohne javascript
    • den "weiter einkaufen"-Button

    Habe mom. wenig Zeit, schaue mir das aber auch noch genau an.
    Vielleicht hast du 'ne Idee.

    Wichtig:
    • Shopstat beachten (benutzt mom. die get_product_path() -Funktion)
    • Sitemap-Bildung beachten (/google_sitemap.php)
    • Suchfunktionen beachten (/advanced_search.php und /advanced_search_result.php)

    Gruß,
    noRiddle

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Vorschlag Problemlösung für product_path
    Antwort #14 am: 30. September 2012, 20:04:34
    Also mein erster Ansatz sieht so aus,
    Code: PHP  [Auswählen]
    function xtc_get_product_path($products_id) {
        $cPath = '';
        $_GET['cPath'] ? $_SESSION['cPath'] = $_GET['cPath'] : '';

        $category_query = "select p2c.categories_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_id = '" . (int)$products_id . "' and p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id = '".$_SESSION['cPath']."'";
        $category_query  = xtDBquery($category_query);
        if (xtc_db_num_rows($category_query,true)) {
          $category = xtc_db_fetch_array($category_query);

          $categories = array();
          xtc_get_parent_categories($categories, $category['categories_id']);

          $categories = array_reverse($categories);

          $cPath = implode('_', $categories);

          if (xtc_not_null($cPath)) $cPath .= '_';
          $cPath .= $category['categories_id'];
      }
    //BOF - Dokuman - 2009-10-02 - removed feature, due to wrong links in category on "last viewed"
    /*
      if($_SESSION['lastpath']!=''){
        $cPath = $_SESSION['lastpath'];
      }
    */

    //EOF - Dokuman - 2009-10-02 - removed feature, due to wrong links in category on "last viewed"
      return $cPath;
    }
     

    Somit wird mal der richtige Link ausgegeben.
    Ist nur mal schnell zusammen gestrickt, um zu sehen ob die Links auch gehen.

    Jetzt muss man nur die canonical URL bei Verlinkten Artikel auf den Haupt-Pfad ändern, (den man im Admin noch zur Auswahl zu Verfügung stellen muss).

    Oder stelle ich mir das zu einfach mit dem xtc_get_product_path vor ?

    Soweit ich das weiß ist es ja im Prinzip egal wie der Link aussieht, für Google muss nur die canonical URL passen, damit kein kein "Double Content" entsteht, oder liege ich da falsch?
    0 Antworten
    1682 Aufrufe
    16. Februar 2013, 18:48:42 von cooler
    2 Antworten
    2919 Aufrufe
    08. April 2011, 08:49:05 von Tomcraft
    4 Antworten
    2596 Aufrufe
    27. April 2021, 13:09:29 von pdfil12
    6 Antworten
    3953 Aufrufe
    09. Januar 2015, 09:54:58 von Bonsai