Jump to content
xt:Commerce Community Forum
Sign in to follow this  
uli1964

Attribute sortieren

Recommended Posts

Hallo,

ich habe inzwischen über 200 Attribute angelegt. Wenn ich von einem Artikel die Attribute bearbeiten möchte, ist diese Liste zwar nach product_options gruppiert, aber die Sortierung der product_options_values geht nach deren ID.

Bei über 200 attributen ist das eine mühsame Suche. Besser wäre eine Sortierung nach den Namen (z.B. Farben: blau, braun, gelb, rot, weiß.)

Meine Frage:

Wie kann ich das ändern?

Ich denke, da muss in der product_attributes.php eine Sortierabfrage gestartet werden.

Nur wo genau muss ich was einfügen?

Wäre echt super, wenn da jemand nen Tipp hat.

Share this post


Link to post
Share on other sites

Hallo Uli1964,

da musst Du in der admin/includes/modules/new_attributes_include.php die Abfrage für $query2 anpassen.

Da muss die products_option_value Tabelle eingebunden werden um nach den Namen zu sortieren.

Oder - wenn's wirklich vernünftig sein soll - Du fasst gleich die Abfrage $query2 und $query3 zusammen...

Ben

Share this post


Link to post
Share on other sites

Vielen Dank für den Tipp,

ich habe jetzt mal folgendes eingefügt und geändert:

$query2 = "SELECT * FROM ".TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS." WHERE products_options_id = '" . $current_product_option_id . "' ORDER BY products_options_values_id DESC";

"SELECT * FROM ".TABLE_PRODUCTS_OPTIONS_VALUES." WHERE products_options_values_name = '" . $current_value_name . "' AND language_id = '" . $_SESSION['languages_id'] . "'";

$result2 = xtc_db_query($query2);

$matches2 = xtc_db_num_rows($result2);

if ($matches2) {

$i = '0';

while ($line = xtc_db_fetch_array($result2)) {

$i++;

$rowClass = rowClass($i);

$current_value_id = $line['products_options_values_id'];

$isSelected = checkAttribute($current_value_name, $_POST['current_product_name'], $current_product_option_id);

if ($isSelected) {

$CHECKED = ' CHECKED';

} else {

$CHECKED = '';

}

Leider hat sich da nicht viel getan. In PHP bin ich leider nicht so fit.

Ist der Ansatz falsch?

Share this post


Link to post
Share on other sites

ich habe in der new_attribute_include.php

folgende Befehlszeile

$query2 = "SELECT * FROM ".TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS." WHERE products_options_id = '" . $current_product_option_id . "' ORDER BY products_options_values_id DESC";

mit

$query2 = "SELECT o.products_options_values_to_products_options_id, o.products_options_id as products_options_id, o.products_options_values_id as products_options_values_id, p.products_options_values_name as products_options_values_name FROM products_options_values_to_products_options o LEFT JOIN products_options_values p ON o.products_options_values_id = p.products_options_values_id WHERE o.products_options_id = '" . $current_product_option_id . "' ORDER BY p.products_options_values_name";

ersetzt.

Jetzt werden die Attribute nach dem Alphabet sortiert. Allerdings wird die Sprache nicht gefiltert; es erscheinen alle attribute doppelt.

das Einfügen von

language_id = '" . $_SESSION['languages_id'] . "'"

führt zur Fehlermeldung

Share this post


Link to post
Share on other sites

Mensch Uli1964,

Du bist ja gut :-)

Jetzt noch den WHERE Teil richtig ergänzen:

$query2 = "SELECT o.products_options_values_to_products_options_id, o.products_options_id as products_options_id, o.products_options_values_id as products_options_values_id, p.products_options_values_name as products_options_values_name FROM products_options_values_to_products_options o LEFT JOIN products_options_values p ON o.products_options_values_id = p.products_options_values_id WHERE o.products_options_id = '" . $current_product_option_id . "' [COLOR=blue]and p.language_id = '". $_SESSION['languages_id'].[/COLOR] "' ORDER BY p.products_options_values_name";

Dann sollte es gehen...

Ben

Share this post


Link to post
Share on other sites

Hi Ben,

ich benötige es für die Optionen da ich eigentlich nur ein Attribut habe mit bis zu 10 versch. optionen.

Die sine z.B.

275/35R20

235/30R20

255/45R20

und das sollte nummerisch sortiert werden.

Mir würde schon reichen wenn ich nach der Artikelnummer sortieren könnte?

Im Momtent werden die optionen wie sortiert???

Share this post


Link to post
Share on other sites

Hi mbdesign,

damit wir über das selbe sprechen:

1. Im Adminbereich unter Artikelmerkmale legst Du zuerst eine (oder mehrere) Optionen an.

2. Dann kannst Du (auch unter dem Menupunkt Artikelmerkmale) Optionswerte anlegen.

3. Jetzt kannst Du unter dem Menupunkt Attribut Verwaltung deinem Artikel die Optionswerte als Attribute zuordnen.

Und die Attribute kannst Du auch sortieren... (Eintrag im Feld Reihenfolge)

Ben

Share this post


Link to post
Share on other sites

ich denke schon das wir über das gleiche sprechen, nur lege ich die nicht per Hand an. Wird alles aus der WAWI BPN+ importiert per Schnittstelle SHOPSYNC. Die Reihenfolge ist also wie Sie importiert wurde.

Habe es aber gefunden nachdem ich in der DB sortorder entdeckt habe SORRY!!!

in der includes/modules/produtc_attributes.php

in Zeile 53

order by pa.attributes_model"); statt attributes_sortorder

Share this post


Link to post
Share on other sites

hallo,

ich hoffe ich bin hier richtig. nirgends habe ich eine lösung hierzu gefunden.

Ich möchte die Anzeigenreihenfolge der Attribute im Frontend ändern.

Aktuell werden sie alphabetisch dargestellt:

z.B.

- Datencheck (Dropdown Ja/Nein)

- Farbe (Dropdown rot/blau/gold)

- Größe (Dropdown 44/45)

Datencheck soll nun z.B. ganz unten oder zwischen Farbe und Größe

positioniert werden. Weiss jemand wie ich das hinbekomme??

Share this post


Link to post
Share on other sites

uhu,

bin ich mit meinem Ansatz unter http://www.xt-commerce.com/forum/showthread.php?t=54481

ganz falsch ???

Ich möchte dass in der Attribut Verwaltung die zig Farben die ich unter Artikelmerkmale eingegeben habe alphabetisch angezeigt werden. Wenn ich neue Artikel eingebe, ist es momentan sehr mühsam, bzw. zeitraubend die passende Farben einzugeben (blau unten, schwarz ganz oben, ......)

Vielleicht weiß einer von euch ja Rat ???:D

Gruß

Jeannie

Share this post


Link to post
Share on other sites

Jetzt noch den WHERE Teil richtig ergänzen:

$query2 = "SELECT o.products_options_values_to_products_options_id, o.products_options_id as products_options_id, o.products_options_values_id as products_options_values_id, p.products_options_values_name as products_options_values_name FROM products_options_values_to_products_options o LEFT JOIN products_options_values p ON o.products_options_values_id = p.products_options_values_id WHERE o.products_options_id = '" . $current_product_option_id . "' [COLOR=blue]and p.language_id = '". $_SESSION['languages_id'].[/COLOR] "' ORDER BY p.products_options_values_name";

Ben

Das funktioniert erst mal, aber hat jemand eine Idee, wie man hier nicht nach Alphabet sortiert, sondern nach Wert?

Wenn ich Attribute habe wie 1, 2, 3, 10, 100, dann sollte das auch so sortiert sein.

Bei Zahlen wird aber so sortiert: 1, 10, 100, 2, 3.....

mfg 0etzi

Share this post


Link to post
Share on other sites

Hi Oetzi,

versuch's mal hiermit:

$query2 = "SELECT o.products_options_values_to_products_options_id, o.products_options_id as products_options_id, o.products_options_values_id as products_options_values_id, p.products_options_values_name as products_options_values_name FROM products_options_values_to_products_options o LEFT JOIN products_options_values p ON o.products_options_values_id = p.products_options_values_id WHERE o.products_options_id = '" . $current_product_option_id . "'[COLOR=black] and p.language_id = '". $_SESSION['languages_id']. "' ORDER BY[/COLOR] [COLOR=blue]CAST (p.products_options_values_name AS UNSIGNED)[/COLOR]";

Ben

Share this post


Link to post
Share on other sites

Hallo hoodboyz,

das mit dem cast erzeugt einen sql fehler.

wird vemutlich an Deiner SQL Version liegen...

Was da gemacht wird? Eine Typenumwandlung nach "UNSIGNED", um die Sortierung der Werte auf numerischer Basis zu bekommen, und nicht auf alphanumerischer Basis.

Jetzt klarer?

Ben

Share this post


Link to post
Share on other sites

ich hatte leider auch nur 'ne Fehlermeldung bekommen... aber mir dann auch eine Lösung finden lassen -an dieser Stelle noch einmal herzlichen dank ;-)

und Er hat mir das Problem wie folgt erklärt: "CAST (p.products_options_values_name AS UNSIGNED)" würde heissen, dass der Wert in eine ohne Vorzeichen behaftete Integerzahl konvertiert wird, was in einer Fehlermeldung endet, wenn darin Buchstaben enthalten sind

Was auch das Problem mit dem Sortieren erklärt, weil nur schrittweise sortiert wird, also 1, 10, 11, 12 etc. - weil der erste "Buchstabe" 1 ist, und dann wird sortiert nach dem was folgt...

Und mir dann die folgende Lösung gegeben, die bei mir wunderbar funktioniert:

$query2 = "SELECT o.products_options_values_to_products_options_id, o.products_options_id as products_options_id, o.products_options_values_id as products_options_values_id, p.products_options_values_name as products_options_values_name FROM products_options_values_to_products_options o LEFT JOIN products_options_values p ON o.products_options_values_id = p.products_options_values_id WHERE o.products_options_id = '" . $current_product_option_id . "' and p.language_id = '". $_SESSION['languages_id']. "' ORDER BY products_options_values_name+0,REPLACE (products_options_values_name,products_options_values_name+0,'')";[/CODE]

Share this post


Link to post
Share on other sites

Hallo

habe mal was rein gestellt , dies ist ein kleines Problem.Mit den Produkt atributten bekomme ich es nicht so hin

Größe\Farbe A-Cup B-Cup Preise

34 € 15.00

36 € 15.00

38 €15.00

40 € 15.00

42 € 15.00

44 € 15.00

46 € 15.00

wie stelle ich es an das die kunden es so sehen? das die gr 38 nur in Cup B zu kaufen ist , bitte um Hilfe

Gruss Jürgen

Share this post


Link to post
Share on other sites

Also ich würde entweder in den Attributen die Werte 34 Cup A; 34 Cup B, 36 Cup A usw. anlegen und dann die bestimmten Werte auswählen.

Andere Möglichkeit: 1 Artikel mit Cup A, 1 Artikel Cup B

Anders wird es wohl nicht gehen, es sei denn, man programmiert eine Beziehung in den Attributen (Wenn "34" dann Cup A).

Stelle ich mir aber sehr aufwendig vor.

Share this post


Link to post
Share on other sites

Hallo,

meine Artikel werden automatisch nach dem Alphabet sortiert, das will ich aber nicht, ich möchte sie selber sortieren.

Kann man das irgendwo abstellen?

Danke für eure Hilfe

Edited by Rowe
Problem gelöst

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...