Da doch immer mal wieder danach gefragt wird, wie man die Artikelnummer in der Artikelübersicht (Liste und Kachel) anzeigen lassen kann, Hier eine Anleitung: Zunächst muss man die Artikel-Nummer für die Listenansicht zur Verfügung stellen. Dazu muss eine Datei model_product.ink.php im Verzeichnis GXUserComponents/ overloads/ product/ an. (Bei einer Shopversion unter 3.1 muss die Datei in den Ordner user_classes/ overloads/ product/ ) Die Datei model_product.ink.php hat folgenden Inhalt: PHP: <?phpclass model_product extends model_product_parent{ function buildDataArray(&$array, $image = 'thumbnail') { global $xtPrice, $main; $t_data_array=parent::buildDataArray($array, $image); //Additional info in $t_data_array $t_data_array['PRODUCTS_MODEL']=$array['products_model']; //Additional info in $t_data_array return $t_data_array; // EOF GM_MOD }function getAlsoPurchased() { // BOF YOOCHOOSE if(defined('YOOCHOOSE_ACTIVE') && YOOCHOOSE_ACTIVE) { require_once (DIR_WS_INCLUDES . 'yoochoose/recommendations.php'); require_once (DIR_WS_INCLUDES . 'yoochoose/functions.php'); return recommendData(getAlsoPurchasedStrategy(), $this->pID, MAX_DISPLAY_ALSO_PURCHASED); } // EOF YOOCHOOSE global $xtPrice; $module_content = array(); $t_query=parent::getAlsoPurchased(); $fsk_lock = ""; if($_SESSION['customers_status']['customers_fsk18_display'] == '0') { $fsk_lock = ' and p.products_fsk18!=1'; } $group_check = ""; if(GROUP_CHECK == 'true') { $group_check = " and p.group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } // BOF GM_MOD: $t_query = "SELECT p.products_fsk18, p.products_id, p.products_price, p.products_tax_class_id, p.products_image, p.products_model, pd.gm_alt_text, pd.products_name, pd.products_meta_description, p.products_vpe, p.products_vpe_status, p.products_vpe_value, pd.products_short_description FROM " . TABLE_ORDERS_PRODUCTS . " opa, " . TABLE_ORDERS_PRODUCTS . " opb, " . TABLE_ORDERS . " o, " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd WHERE opa.products_id = '" . $this->pID . "' AND opa.orders_id = opb.orders_id AND opb.products_id != '" . $this->pID . "' AND opb.products_id = p.products_id AND opb.orders_id = o.orders_id AND p.products_status = '1' AND pd.language_id = '" . (int)$_SESSION['languages_id'] . "' AND opb.products_id = pd.products_id AND o.date_purchased > DATE_SUB(NOW(),INTERVAL " . MAX_DISPLAY_ALSO_PURCHASED_DAYS . " DAY) " . $group_check . " " . $fsk_lock . " GROUP BY p.products_id ORDER BY o.date_purchased desc LIMIT " . MAX_DISPLAY_ALSO_PURCHASED; $t_query = xtc_db_query($t_query); while($orders = xtc_db_fetch_array($t_query, true)) { $module_content[] = $this->buildDataArray($orders); } return $module_content; } function getCrossSells() { global $xtPrice; $t_query = "SELECT products_xsell_grp_name_id FROM " . TABLE_PRODUCTS_XSELL . " WHERE products_id = '" . $this->pID . "' GROUP BY products_xsell_grp_name_id"; $cs_groups = xtc_db_query($t_query); $cross_sell_data = array(); if(xtc_db_num_rows($cs_groups, true) > 0) { while($cross_sells = xtc_db_fetch_array($cs_groups, true)) { $fsk_lock = ''; if($_SESSION['customers_status']['customers_fsk18_display'] == '0') { $fsk_lock = ' AND p.products_fsk18!=1'; } $group_check = ""; if(GROUP_CHECK == 'true') { $group_check = " AND p.group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } // BOF GM_MOD: $cross_query = " SELECT p.products_fsk18, p.products_tax_class_id, p.products_id, p.products_image, pd.products_name, p.products_model, pd.products_short_description, pd.products_meta_description, p.products_fsk18, p.products_price, pd.gm_alt_text, p.products_vpe, p.products_vpe_status, p.products_vpe_value, xp.sort_order FROM " . TABLE_PRODUCTS_XSELL . " xp, " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd WHERE xp.products_id = '" . $this->pID . "' AND xp.xsell_id = p.products_id " . $fsk_lock . $group_check . " AND p.products_id = pd.products_id AND xp.products_xsell_grp_name_id='" . $cross_sells['products_xsell_grp_name_id'] . "' AND pd.language_id = '" . (int)$_SESSION['languages_id'] . "' AND p.products_status = '1' ORDER BY xp.sort_order ASC"; $cross_query = xtDBquery($cross_query); if(xtc_db_num_rows($cross_query, true) > 0) { $cross_sell_data[$cross_sells['products_xsell_grp_name_id']] = array('GROUP' => xtc_get_cross_sell_name($cross_sells['products_xsell_grp_name_id']), 'PRODUCTS' => array()); } while($xsell = xtc_db_fetch_array($cross_query, true)) { $cross_sell_data[$cross_sells['products_xsell_grp_name_id']]['PRODUCTS'][] = $this->buildDataArray($xsell); } } return $cross_sell_data; } } function getReverseCrossSells() { global $xtPrice; $fsk_lock = ''; if($_SESSION['customers_status']['customers_fsk18_display'] == '0') { $fsk_lock = ' and p.products_fsk18!=1'; } $group_check = ""; if(GROUP_CHECK == 'true') { $group_check = " and p.group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } // BOF GM_MOD: $t_query = "SELECT p.products_fsk18, p.products_tax_class_id, p.products_id, p.products_image, p.products_model, pd.products_name, pd.products_short_description, pd.products_meta_description, p.products_fsk18, p.products_price, pd.gm_alt_text, p.products_vpe, p.products_vpe_status, p.products_vpe_value, xp.sort_order FROM " . TABLE_PRODUCTS_XSELL . " xp, " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd WHERE xp.xsell_id = '" . $this->pID . "' AND xp.products_id = p.products_id " . $fsk_lock . $group_check . " AND p.products_id = pd.products_id AND pd.language_id = '" . (int)$_SESSION['languages_id'] . "' AND p.products_status = '1' ORDER BY xp.sort_order ASC"; $cross_query = xtc_db_query($t_query); while($xsell = xtc_db_fetch_array($cross_query, true)) { $cross_sell_data[] = $this->buildDataArray($xsell); } return $cross_sell_data; } }?> die Datei findet Ihr im Anhang Um die Nummer in der Kategorie anzeigen zu lassen, bitte einmal die Datei templates/ Honeygrid/ snippets/ product_listing/ product.html runterladen. Sucht nach der Zeile HTML: <div class="title-description"> und fügt darunter dies ein: HTML: <!-- Artikelnummer start --> {if $module_data.PRODUCTS_MODEL} <div class="model"> {$module_data.PRODUCTS_MODEL} </div> {/if} <!-- Artikelnummer ende --> die Datei als product-USERMOD.html speichern und neben die Originale hochladen. Damit die Artikelnummer auch auf der Startseite, den Angeboten, Cross-Selling... erscheint, muss das selbe noch einmal mit der Datei templates/ Honeygrid/ snippets/ product_listing/ product_grid_only.html gemacht werden. Wer ein "Artikelnummer: " vor der Artikelnummer haben möchte, nimmt fügt diesen Code in die beiden Template-Dateien einfügen: HTML: <!-- Artikelnummer start --> {if $module_data.PRODUCTS_MODEL} <div class="model"> Artikelnummer: {$module_data.PRODUCTS_MODEL} </div> {/if} <!-- Artikelnummer ende --> Da ich die Änderungen bei mir mit den Extrafeldern zusammengeschrieben habe, hoffe ich mal, dass ich keine Datei vergessen habe. Wie immer keine Garantie. Erst im Testshop ausprobieren. Datensicherung nciht vergessen. Fehler gefunden und behoben, Datei im Anhang ausgetauscht. Hinweis: in der Version 3.x ist der Ordner "user_classes" umgezogen und heißt "GXUserComponents" Die Datei muss dann dahin.
Hallo Barbara, ich wollte noch eine Info zu diesem MOD geben, ich habe es in meinem Shop angefügt und beim Aufruf der Produkte kam ein SQL Fehler: SQL ERROR(1064): "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.products_name, pd.products_short_description, pd.prod' at line 8" in /is/htdocs/wp12161028_ROM2SXPAMZ/www/inc/xtc_db_error.inc.php:23 Ich habe dieses MOD an der Gambio GX3 v3.3.1.2 installiert. Ich weiß nicht ob irgendein Fehler nur bei der von mir verwendete Gambio Version auftritt, dachte aber dass diese Information hilfreich sein könnte! Ich habe jetzt bei mir die originalen Dateien aufgespielt und der Fehler ist weg. Tasso
Danke für den Hinweis. Doch das funktioniert, nur wenn da eine Leerzeile und darüber eine Zeile mit Kauderwelsch steht (wie auch immer die dahin gekommen ist ) dann kann kommt der Shop ins schleudern. Der Fehler ist oben behoben und die Datei ist neu hochgeladen. Bitte einmal testen
Hallo Barbara, ich habe es jetzt eingespielt und es funktioniert. Falls ich irgendwas bemerke schreibe ich hier! Danke dir!!!
Hallo, wir setzen gerade die Version v3.4.2.0 ein und benötigen genau diese Funktion (Art.Nr. auf den Übersichten). Nach der oben genannten Anleitung scheint das Bereitstellen der Artikelnummer nicht zu funktionieren. Der Unterordner "product" (GXUserComponents/overloads/product) existiert in der 4.2.0 nicht mehr und habe ihn deshalb neu angelegt - kann es sein, dass hier die Fehlerquelle liegt? Gibt es jemanden, der diese Funktion in der Version 4.2.0 oder neuer betreibt und einen Tipp für mich hat? Vielen Dank im Voraus.
Ich habe die Version 3.5.3.0 und es funktioniert. Den Ordner muss man anlegen, das ist richtig. Ich vergleiche mal eben die Dateien, ob sich noch einmal etwas geändert hat. Nachtrag: nein, die Datei ist gleich.
Danke für die schnelle Antwort. Ich bin`s nochmal durchgegangen und kann keine Abweichung von der Anleitung entdecken. Muss man ggf. die USERMOD-Datei irgendwo im Shop aktivieren, damit diese greift? Ich bekomme in der letztlich Seitenausgabe immer nur folgenden Code - also irgendwie gibt er wohl die Artikelnummer nicht raus ... HTML: <div class="title-description"> <!-- Artikelnummer start --> <!-- Artikelnummer ende --> <div class="title"> Liegt`s ggf. an Dateiberechtigungen? Diese habe ich allerdings so gesetzt wie die anderen Ordner und Dateien auch.
Ich hatte die Overload - Datei überprüft, aber nicht die USERMODS, sorry Nimm mal bitte den Code in der product_grid_only-USERMOD.html: Code: {if $PRODUCT.PRODUCTS_MODEL} <div class="model"> {$PRODUCT.PRODUCTS_MODEL} </div> {/if} In der product-USERMOD.html steht bei mir aber weiterhin der andere Code.
Vielen Dank. Jetzt funktioniert die Artikelnummer-Anzeige - ich vergaß, den richtigen Cache zu leeren. Noch eine kleine Frage: wie muss ich denn den folgenden Code abändern, damit ich das Wort "Artikelnummer:" direkt aus den Sprachdateien laden kann (benötige hier die Mehrsprachigkeit)? HTML: <!-- Artikelnummer start --> {if $module_data.PRODUCTS_MODEL} <div class="model"> Artikelnummer: {$module_data.PRODUCTS_MODEL} </div> {/if} <!-- Artikelnummer ende -->
Das müsste so gehen: HTML: <!-- Artikelnummer start --> {if $module_data.PRODUCTS_MODEL} <div class="model"> {$txt.text_model} {$module_data.PRODUCTS_MODEL} </div> {/if} <!-- Artikelnummer ende --> Dann sollte der Text erscheinen, der auch im Artikel bei der Artikelnummer steht.
Das Wort wird leider noch nicht angezeigt (alle Caches vorab geleert). Kann es sein, dass man die Textpassage vorladen muss bzw. auch nochmal die Overload-Datei dafür modifiziert werden muss?
Ich habe es gerade getestet. das geht, wenn es in der richtigen Sprachdatei steht. Hast Du eine lang/ sprache/ user_sections/ product/ product_listing.lang.inc.php?
Ich habe es anders gelöst, indem ich in den Dateien "product-USERMOD.html" und "product_grid_only-USERMOD.html" ganz oben jeweils die Zeile HTML: {load_language_text section="product_info"} eingefügt habe. So wird jetzt in jeder Sprache der dafür hinterlegte Begriff geladen.
Die Zeile ({load_language_text section="product_info" name="info"}) gab es bei mir schon, deshalb dacht ich auch, dass es gehen müsste. Wenn es nun läuft, ist alles gut
Der Zusatz name="info" hat die Ladeauswahl wohl so beschränkt, dass die benötigte Zeile nicht zur Verfügung gestellt werden konnte. Alles perfekt - vielen Dank nochmal!
Hallo Barbara, vielleicht können Sie uns bei folgendem Problem auch behilflich sein: https://www.gambio.de/forum/threads/neue-artikel-swiper-auf-artikeldetailseite.32177/ Es scheint hier - ähnlich wie bei den Artikelnummern - um einen Overload o.ä. zu gehen, der die passenden Artikeldaten zur Anzeige bereitstellt. Wir können zwar die Anzeige einstellen, jedoch werden keine Artikel geladen. Sie scheinen sich da in der Struktur besser auszukennen und können uns ggf. auch hier weiterhelfen.
Danke trotzdem - hätte ja sein können, dass Sie uns einen Tipp dazu geben hätten können, der uns auf die richtige Spur führt.
Hallo Barbara, ich würde gerne den EAN in der Listenansicht mit einbinden. Ich habe deine Datei kopiert, diese in "ean_product.inc.php" umbenannt und entsprechen model_product zu ean_product und model_product_parent zu ean_product_parent gemacht. in Zeile 13 habe ich folgendes stehen: $t_data_array['PRODUCTS_EAN']=$array['products_ean']; und in den SQL Abfragen habe ich products_model durch products_ean ersetzt. Die Datei habe ich wie von dir beschrieben in den Ordner: GXUserComponents/overloads/product gelegt Muss ich noch irgendwas beachten? Leider gibt er mir im Template "product-USERMOD.html" nichts aus. Caches habe ich alle geleert. Lg Dominic