Jump to content
xt:Commerce Community Forum

Attribute sortieren


uli1964

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.

Link to comment
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

Link to comment
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?

Link to comment
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

Link to comment
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

Link to comment
Share on other sites

  • 2 weeks later...

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???

Link to comment
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

Link to comment
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

Link to comment
Share on other sites

  • 7 months later...

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??

Link to comment
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

Link to comment
Share on other sites

  • 9 months later...

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

Link to comment
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

Link to comment
Share on other sites

  • 3 months later...
  • 1 year later...

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]

Link to comment
Share on other sites

  • 2 weeks later...

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

Link to comment
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.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...