Jump to content
xt:Commerce Community Forum

Artikelattribute umgehen


EnzephaloN

Recommended Posts

Hallo

Da unsere WaWi (noch) nicht mit Artikelattributen umgehen kann habe ich mir überlegt, daß man da was frickeln könnte.

So habe ich vor jedem Artikel ein weiteres Feld (parallel zu Anzahl) zu geben, wo die Kunden ein Attribut eintragen können. Dieses soll dann beim klicken auf "In den Warenkorb" der Artikelbezeichnung angefügt werden.

Hat jemand ne Ahnung wie ich das bauen kann, bzw hat jemand sowas schonmal gebaut??

Danke

EnzephaloN

Link to comment
Share on other sites

Danke für den Tip, aber es gibt schon Gründe warum wir unser WaWi einsetzen und auch dabei bleiben werden. Hat ja schließlich auch ein wenig gekostet und die Einarbeitungszeit der Mitarbeiter ist auch nicht zu unterschätzen.

So besteht mein Problem und mein Lösungsversuch weiterhin.

EnzephaloN

Link to comment
Share on other sites

Erster Ansatz:


// check if customer is allowed to add to cart
if ($_SESSION['customers_status']['customers_status_show_price'] != '0') {
// fsk18
if ($_SESSION['customers_status']['customers_fsk18'] == '1') {
if ($product->data['products_fsk18'] == '0') {
$info_smarty->assign('ADD_QTY', xtc_draw_input_field('products_qty', '1', 'size="3"').' '.xtc_draw_hidden_field('products_id', $product->data['products_id']));
$info_smarty->assign('ADD_CART_BUTTON', xtc_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART));
//eingefügt Shirtgrößenfeld
//$info_smarty->assign('ADD_ATTRIBUTE',xtc_draw_input_field('products_attr', '1', 'size="3"').' '.xtc_draw_hidden_field('products_id', $product->data['products_id']));
}
} else {
$info_smarty->assign('ADD_QTY', xtc_draw_input_field('products_qty', '1', 'size="3"').' '.xtc_draw_hidden_field('products_id', $product->data['products_id']));
$info_smarty->assign('ADD_CART_BUTTON', xtc_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART));
//eingefügt Shirtgrößenfeld
//$info_smarty->assign('ADD_ATTRIBUTE',xtc_draw_input_field('products_attr', '1', 'size="3"').' '.xtc_draw_hidden_field('products_id', $product->data['products_id']));
}
}
[/php]

allerdings weiß ich nicht so recht, was hier eigentlich zugewiesen wird. Ich will ja nix überschreiben, sondern das Eingetragene nur der Bezeichnung anfügen.

Kann mir da mal jemand die Zeile

[php]
$info_smarty->assign('ADD_ATTRIBUTE',xtc_draw_input_field('products_attr', '1', 'size="3"').' '.xtc_draw_hidden_field('products_id', $product->data['products_id']));

anpassen?

Wie und wo muß ich nun fortfahren?

EnzephaloN

Link to comment
Share on other sites

Anderer Weg über /includes/modules/product_attributes.php:


else{
$row = 0; $col = 0;
$product_dieses= $product->data['products_id'];
$products_in_cat = xtDBquery("select *
from ".TABLE_PRODUCTS_TO_CATEGORIES." p2c
where p2c.products_id = $product_dieses
and p2c.categories_id = '13'");
$pro_in_cat = xtc_db_fetch_array($products_in_cat, true);
if ($pro_in_cat!=''){
$products_options_array = array ();
$products_options_data[$row] = array('NAME' => 'Groesse', 'ID' => '$product_dieses', 'DATA' => '');
for($i=1;$i++;$i==7){
switch($i){
case 1: $text='XS'; break;
case 2: $text='S'; break;
case 3: $text='M'; break;
case 4: $text='L'; break;
case 5: $text='XL'; break;
case 6: $text='XXL'; break;
case 7: $text='Sondergröße'; break;
}
$products_options_data[$row]['DATA'][$col] = array('ID' => $i , 'TEXT' => $text , 'MODEL' => $text);
$col ++;
}
}
}[/php]

Fehlermeldung:

Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 40 bytes) in /mnt/web1/43/81/5700081/htdocs/war-anthem/eshop/includes/modules/product_attributes.php on line 107

Link to comment
Share on other sites

Hallo

Ja, es gibt da eine Schnittstelle zur WaWi. Der Abgleich erfolgt über die Artikelnummer(n). Ob der Name ein anderer ist, ist egal.

Allerdings denke ich, daß durch den Weg über eine veränderte products_attributes.php das Attributs-Anhängsel dann sogar völlig korrekt übermittelt wird.

Das Problem besteht kurz gesagt darin, daß wir einen riesigen Warenbestand haben, die WaWi keine Attribute anlegen, aber auslesen kann und das Anlegen von Attributen zu Artikeln im xtC überaus zeitaufwendig und unpraktikabel ist. Solange die Entwickler der WaWi nun noch brauchen um ihrem Programm Attribute beizubringen, möchte ich unseren Kunden trotzdem diesen Service bieten.

Kann nun jemand etwas zu meinem Scriptcode sagen, bitte?

EnzephaloN

Link to comment
Share on other sites

Ok, die /includes/modules/products_attributes.php durch folgendes ersetzt:


else{
$col = 0;
$row = 0;
$product_dieses = $product->data['products_id'];
$products_in_cat = xtDBquery("select categories_id
from ".TABLE_PRODUCTS_TO_CATEGORIES."
where products_id = $product_dieses");
if(($products_in_cat['categories_id']==13)||($products_in_cat['categories_id']==0)){
$products_options_data = array ();
$products_options_data[$row] = array('NAME' => 'Größe', 'ID' => '1', 'DATA' => '');
$products_options_data[$row]['DATA'][$col] = array('ID' => '9' , 'TEXT' => 'XS', 'MODEL' => 'XS');$col++;
$products_options_data[$row]['DATA'][$col] = array('ID' => '7' , 'TEXT' => 'S' , 'MODEL' => 'S');$col++;
$products_options_data[$row]['DATA'][$col] = array('ID' => '1' , 'TEXT' => 'M' , 'MODEL' => 'M');$col++;
$products_options_data[$row]['DATA'][$col] = array('ID' => '2' , 'TEXT' => 'L' , 'MODEL' => 'L');$col++;
$products_options_data[$row]['DATA'][$col] = array('ID' => '3' , 'TEXT' => 'XL' , 'MODEL' => 'XL');$col++;
$products_options_data[$row]['DATA'][$col] = array('ID' => '8' , 'TEXT' => 'XXL' , 'MODEL' => 'XXL');$col++;
$products_options_data[$row]['DATA'][$col] = array('ID' => '10' , 'TEXT' => 'Sondergroesse', 'MODEL' => 'Sondergroesse');
}
}
[/php]

Was zur Folge hat, daß ALLE Artikel plötzlich das Feld mit Attributen angezeigt bekommen. Obwohl eigentlich nur Artikel der Kategorien 0 und 13 dies besitzen sollten.

Weiterhin wird aber leider im Warenkorb, in der Bestellung und in der Email die ausgewählte Option nicht angezeigt. Übergeben wird zwar etwas, aber kein Wert...

Vielleicht jemand der mitspielen will?

EnzephaloN

Link to comment
Share on other sites

Ich habe mir vor kurzem eine Lagerbestands- / Lieferzeitautomatik programmiert.

Soweit ich mich erinnere, habe ich mindestens vier Dateien angreifen müssen, damit mir das System aus den Lagerbeständen der Attribute und des Hauptartikels (Es handelt sich um Kombinationsartikel) eine Lieferzeit errechnet und das dann in den Warenkorb und letztendlich auch in die Bestellungen übernimmt. Da sind diverse Tabellen, Sessions und wasweißichsonstnoch beteiligt.

Ich denke, daß XTC hier vielleicht das falsche System für Dich ist.

Du wirst kaum Helfer finden wenn es darum geht, einen alten Käfer-Motor in einen neuen Porsche zu verpflanzen. Etwas ähnliches tust Du.

Soweit ich mich erinnere gibt es einen Shop für ein Portal, das einmal wie ein kubanischer Tanz hieß, der Attribute über Eltern-/Kind- Artikel löst. Vllt. wäre das was.

Alternativ würde ich die Attribute eben manuell erfassen. Die geben auch ne Artikelnummer her. Du mußt der Schnittstelle zur Wawi nur beibringen, bei Bestellungen die Artikelnummer des Attributes zu übernehmen. Das dürfte letztlich wesentlich einfacher sein, als den kompletten Shop umzuprogrammieren.

Link to comment
Share on other sites

Ich habe so langsam auch die Nase voll.

Zwar habe ich geschafft, daß bei meinen gewünschten Artikeln die Attribute angezeigt werden und sogar im Warenkorb das Ganze angezeigt wird. Aber im weiteren Bestellungsprozess gehen die Daten wieder verloren, da natürlich dann andere Tabellen abgefragt werden, die irgendwo befüllt werden.

Das andere Shopsystem könnt ich mir mal ansehen.

Die WaWi kann in Bestellungen die Attribute übernehmen.

Jetzt jedem Artikel manuell Attribute zuzuweisen ist bei dem Artikelbestand, dem ständigen Wechseln von Artikeln und dem absolut unpraktischen System des XTC nicht machbar...

EnzephaloN

Link to comment
Share on other sites

Archived

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

×
  • Create New...