xt:Commerce - Ungewollte Pfadwechsel bei Produkten in mehreren Unterkategorien

Problem:
Wird das selbe Produkt in mehreren Unterkategorien eines XTC-Shops aufgelistet, so kommt es zu einer fehlerhaften Darstellung des Kategorie-Pfades. Klickt man in der Unterkategorie auf die Produktbeschreibung so wird der Pfadverlauf einer anderen Unterkategorie, in der sich das Produkt auch befindet, angezeigt.

Lösung für xt:Commerce VEYTON (4)
Die Lösung des Problems bei neueren XTC-Versionen behebe ich gerne gegen Bezahlung für Sie. Wie Sie mich erreichen können erfahren Sie unter Kontakt.

Lösung für xt:Commerce 3.x:
Behoben werden kann dieser Fehler durch eine Anpassung der Funktion "buildDataArray()" in der Datei "product.php" im Verzeichnis "includes/classes/".

Die Funktion liefert einen Array zurück, bei dem ein Feld des Arrays verändert werden muss.

Die Originalzeile lautet:

'PRODUCTS_LINK' => xtc_href_link(
  FILENAME_PRODUCT_INFO,
  xtc_product_link(
    $array['products_id'],
    $array['products_name']
  )
), 

Diese muss ersetzt werden durch:

'PRODUCTS_LINK' => str_replace(
  "?", 
  "?cPath=".$_GET["cPath"]."&",
  xtc_href_link(
    FILENAME_PRODUCT_INFO,
    xtc_product_link(
      $array['products_id'],
      $array['products_name']
    )
  )
),				

Durch diese Änderung wird im Produktlink der Parameter "cPath" ergänzt und die bisherigen Produktkategorien als Wert übergeben. Entsprechend ändert sich der Produktlink

von "product_info.php?info=p7_beispiel.html"

zu "product_info.php?cPath=5_7&info=p7_beispiel.html".

Dieser Bugfix löst soweit bekannt jedoch nicht das Problem mit den xtc-internen "Weiter"- und "Zurück"-Buttons.

Fehlerhafte Lösungen:

Die im Internet kursierende Lösung

'PRODUCTS_LINK' => xtc_href_link(
  FILENAME_PRODUCT_INFO, 
  xtc_product_link(
   $array['products_id'].'&cPath='.$_GET['cPath']
  )
),

ist fehlerhaft und zerschießt den Parameter "info". Wenn im Produktnamen Zahlen vorkommen, die einer Kategorie-ID entsprechen, dann werden diese Kategorien fälschlicher Weise ebenfalls im Kategorie-Pfad mit angezeigt.