Hallo, Ich möchte zusätzliche Kategorien in unserem Shop einbauen um die Navigation zu Produkten zu vereinfachen. Nach jetzigem Erkenntnisstand müsste ich alle derzeit verfügbaren, passenden Artikel in diese Kategorien verlinken. Nachteile: aufwendige Pflege , Fehleranfälligkeit, unvollständigkeit etc. Schön wäre eine Art "intelligente Kategorie". Dort sollen nur Eigenschaften zugewiesen werden. der Inhalt bzw die Anzahl der Artikel ergibt sich aus den verfügbaren Produkten mit diesen Eigenschaften im Sortiment. Geht das irgendwie?
Beispiel: 1. anlegen einer neuen Kategorie "festkochende Kartoffeln". 2. Zuweisung des filterwertes kartoffeltyp=festlochend Fertig (Eingabe einer kategoriebeschreibung und Zuweisung von weiteren fitersets ist selbstverständlich)
Moin das lässt sich doch einwandfrei über die Filter machen, ähnlich wie bei mir: (Link nur für registrierte Nutzer sichtbar.) Ich habe zwar auch noch die KAT's passend dazu, habe aber alles mit Filtern für den Kunden übersichtlicher gemacht (hoffe ich jedenfalls )
Echt, das geht? Auch wenn die Kategorie an sich keine Produkte enthält? Dein Shop lässt sich übrigens mit meinem iPhone nicht öffnen: leere Seite!
Schon richtig, nur möchte er es mit einem Kategorie-Button haben. Finde es eine gute Idee - wenn auch die vorgeschlagene Kategorie-Bezeichnung mir Sorgen macht!
Hmm, bei mir alles gut, ebenfalls Iphone. Welchen Browser benutzt Du denn? P.S.: Die Filter kannst Du ja aber leider sowieso nur am PC sehen.........
Ah, jetzt geht die Seite plötzlich. Vielleicht ein Funkloch im ICE . Aber zurück zum Thema. Sind einige deiner Kamine über mehrere Kategorien erreichbar? Und: Sind die Artikel dorthin verlinkt worden oder ist das alles mit der Filter-Funktion möglich. Noch was anderes: Die Filterung funktioniert bei dir ohne auf "Go" zu klicken. Ist das eine individuelle Änderung oder Gambio-Standard? (Wir hatten mal eine Lösung von Avenger implementiert, die Funktioniert in 2.2 leider nicht mehr..)
. Ja, ich habe die Kamine in Kategorien (siehst Du unten oder im Megadropdown) und alle Artikel mit Filtern versehen. Wenn ich mir das machmal so bei Piwik anschaue, werden die Filter gut genutzt.
das ist alles nicht mehr Standard; hatte früher aber auch den dynamischen Filter von Avenger eingebaut, habe ja noch 2.0.18..........
Yiiiihha! Machbarkeits-Prototyp abgeschlossen. Einfach und updatesicher - jetzt fehlen noch Tests und Feinschliff. Worum gehts? Neue (leere) Kategorie anlegen, Eigenschaften bzw. Keywords zuweisen. FERTIG! Keine Verlinkung passender Produkte notwendig. Kategorie füllt und leert sich automatisch je nach Verfügbarkeit spezifischer vorhandener Produkte im Shop. Weitere Infos Folgen....
Hallo humpfle, ich wäre wirklich sehr dankbar für ein Update zu diesem Thema. Ich möchte das gerne genauso realisieren wie du beschrieben hast. Viele Grüße!
Das ganze funktioniert wie folgt 1. In Verzeichnis overloads/ProductListingContentControl eine Datei "Intelligent_ProductContentContentControl.inc.php" anlegen: Inhalt: PHP: <?php/* * -------------------------------------------------------------- * This overload is for sub categories with products * @author: FHumpfle * ------------------------------------------------------------------ */class Intelligent_ProductListingContentControl extends Intelligent_ProductListingContentControl_parent { public function extend_proceed($p_action) { parent::extend_proceed ( $p_action ); // categories available if (isset ( $this->categories_id ) && xtc_not_null ( $this->categories_id )) { $START_TAG = "[KEYWORDS]"; $END_TAG = "[/KEYWORDS]"; // select categories description $select_cat_sql = " SELECT categories_description FROM " . TABLE_CATEGORIES_DESCRIPTION . " WHERE categories_id = " . $this->categories_id . " AND language_id = 2"; $t_result = xtc_db_query ( $select_cat_sql ); $category_result = xtc_db_fetch_array ( $t_result ); $categories_description = $category_result ['categories_description']; // check for '[KEYWORDS]' String $pos = strpos ( $categories_description, $START_TAG ); // only if found, handle special if ($pos !== false) { // extract keywords between start and end tag $result_substring = explode($START_TAG, $categories_description); if (isset ( $result_substring[1] )) { $result_substring = explode ($END_TAG, $result_substring[1] ); $article_list_by_keyword = $result_substring[0]; $keywords = split ( ",", $article_list_by_keyword ); for($i = 0; $i < count ( $keywords ); $i ++) { $additional_where .= "AND (pd.products_keywords LIKE '%$keywords[$i]%' OR pd.products_name LIKE '%$keywords[$i]%') "; } if (GROUP_CHECK == 'true') { $group_check = " AND p.group_permission_" . $_SESSION ['customers_status'] ['customers_status_id'] . "=1 "; } if ($_SESSION ['customers_status'] ['customers_fsk18_display'] == '0') { $fsk_lock = ' AND p.products_fsk18!=1'; } $this->sql_query = " SELECT DISTINCT p.products_fsk18, p.products_shippingtime, p.products_model, pd.products_name, p.products_ean, p.products_price, p.products_tax_class_id, p.products_quantity, p.products_image, p.products_weight, pd.products_short_description, pd.gm_alt_text, pd.products_description, pd.products_meta_description, p.products_id, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed FROM ". TABLE_PRODUCTS_DESCRIPTION . " pd, " . $p2c_table . TABLE_PRODUCTS . " p LEFT JOIN " . TABLE_SPECIALS . " s on p.products_id = s.products_id WHERE p.products_status = 1 AND pd.products_id = p.products_id " . $group_check . " " . $fsk_lock . " AND pd.language_id = " . ( int ) $_SESSION ['languages_id'] . " " . $additional_where . " "; if ($limit) { $listing_sql .= " LIMIT " . $limit; } } } } } function get_between($content,$start,$end){ $r = explode($start, $content); if (isset($r[1])){ $r = explode($end, $r[1]); return $r[0]; } return ''; }}?> 2. Caches leeren 3. Eine beliebige Kategorie anlegen. In die Kategoriebeschreibung Keywords festlegen mittels [KEYWORDS]Key1, Key2[/KEYWORDS] Fertig
Filter für diese Kategorien werden aktuell noch nicht unterstützt. Nach den Keywords [KEYWORDS]Key1, Key2[/KEYWORDS] kann natürlich ein gewöhnlicher Kategorietext verfasst werden.
Hallo, gibt es hier vielleicht ein Update? Ist diese Art der "intelligenten" Produktzuweisungen mittlerweile villt. in einem der neusten Gambio Updates mit eingeflossen? Denkbar wäre doch eine einfache "Tag-Funktion" bei der man bestimmten Produkten ein oder mehrere Tags zuweisen kann, die dann in den jeweiligen Kategorien gelistet werden. @humpfle: wo genau finde ich das Verzeichnis: overloads/ProductListingContentControl ... oder muss ich das auch noch anlegen? Bei mir existiert nur \system\overloads\ und user_classes\overloads\ aber kein Ordner ProductListingContentControl. Gambio Version 2.2.0.0. Update ist aber schon geplant
anbei eine neue Version... PHP: <?phpclass Intelligent_ProductListingContentControl extends Intelligent_ProductListingContentControl_parent { public function extend_proceed($p_action) { parent::extend_proceed ( $p_action ); // categories available if (isset ( $this->categories_id ) && xtc_not_null ( $this->categories_id )) { $START_TAG = "[KEYWORDS]"; $START_TAG_OR = "[KEYWORDS_OR]"; $END_TAG = "[/KEYWORDS]"; // select categories description $select_cat_sql = " SELECT categories_description FROM " . TABLE_CATEGORIES_DESCRIPTION . " WHERE categories_id = " . $this->categories_id . " AND language_id = 2"; $t_result = xtc_db_query ( $select_cat_sql ); $category_result = xtc_db_fetch_array ( $t_result ); $categories_description = $category_result ['categories_description']; // only if [KEYWORD] or [KEYWORD_OR] start tag is found, handle special if (strpos ($categories_description, $START_TAG ) !== false) { $additional_where = $this->create_additional_where($categories_description, $START_TAG, $END_TAG, "AND"); } else if (strpos ($categories_description, $START_TAG_OR ) !== false) { $additional_where = $this->create_additional_where($categories_description, $START_TAG, $END_TAG, "OR"); } if (isset($additional_where)){ $stripped_sql = explode ("ptc.categories_id", $this->sql_query); if (isset($stripped_sql[1]) == false){ $stripped_sql = explode ("ci.categories_index", $this->sql_query); } $this->sql_query = $stripped_sql[0] . ' ' . $additional_where; } } } // CONDITION = AND / OR function create_additional_where($categories_description,$START_TAG,$END_TAG,$CONDITION){ $additional_where = ''; // extract keywords between start and end tag $result_substring = explode($START_TAG, $categories_description); if (isset ( $result_substring[1] )) { $result_substring = explode ($END_TAG, $result_substring[1] ); $article_list_by_keyword = $result_substring[0]; $keywords = split ( ",", $article_list_by_keyword ); for($i = 0; $i < count ( $keywords ); $i ++) { // first must be AND, independently of given CONDITION if ($i == 0){ $additional_where .= " ( (pd.products_keywords LIKE '%$keywords[$i]%' OR pd.products_name LIKE '%$keywords[$i]%') "; } else { $additional_where .= $CONDITION . " (pd.products_keywords LIKE '%$keywords[$i]%' OR pd.products_name LIKE '%$keywords[$i]%') "; } // last element if ($i == count($keywords)-1){ $additional_where .= " ) "; } } } return $additional_where; }}?>
Leider ist die Filterfunktion bei uns damit nicht lauffähig. Filteroptionen werden nicht angezeigt... Weiss jemand woran das liegen kann? Gambio?