seneca Posted March 17, 2006 Report Share Posted March 17, 2006 Hallo! Ich m?chte Artikel mit einer CSV Datei importieren. Das klappt auch soweit. Nur wie kann ich einzelne Produkte in der CSV Datei als Sonderangebot kennzeichnen? Mir fehlt der passende Feldname daf?r. Kann mir da jemand weiterhelfen? 1000 Dank! Link to comment Share on other sites More sharing options...
matzert Posted November 3, 2007 Report Share Posted November 3, 2007 das würde mich auch interessieren, ob und wie das mit den Sonderangeboten funktioniert. Link to comment Share on other sites More sharing options...
flo82 Posted August 20, 2008 Report Share Posted August 20, 2008 Gibt es da möglicherweise schon eine Lösung? Link to comment Share on other sites More sharing options...
nerphunk Posted October 14, 2008 Report Share Posted October 14, 2008 ich habe das ganze folgendermaßen integriert: da ich das Feld 'p_disc' nicht nutze habe ich darin den Prozentwert eingetragen um wieviel der Produktpreis verringert werden soll. Man kann natürlich auch die CSV-Datei um ein eigenes Feld erweitern. Dazu muss man allerdings in der Funktion generate_map() das Array $file_layout um dieses Feld erweitern und in den nachfolgenden PHP-Codes 'p_disc' mit dem neuen Feldnamen ersetzen. einfach in die admin/includes/classes/import.php folgende Funktionen integrieren: function checkSpecial($prod_id) { $extra_query = xtc_db_query("SELECT specials_id FROM ".TABLE_SPECIALS." WHERE products_id='".$prod_id."'"); if (!xtc_db_num_rows($extra_query)) return false; return true; } function insertSpecial(& $dataArray, $products_id, $mode = 'insert') { $special_array = array ('products_id' => $products_id, 'specials_last_modified' => date("Y-m-d H:i:s")); if ($this->FileSheme['p_disc'] == 'Y' && $this->FileSheme['p_priceNoTax'] == 'Y') { $new_price = ((100 - $dataArray['p_disc']) / 100) * $dataArray['p_priceNoTax']; $special_array = array_merge($special_array, array ('specials_new_products_price' => $new_price)); } if ($mode == 'insert') { xtc_db_perform(TABLE_SPECIALS, $special_array); } else { xtc_db_perform(TABLE_SPECIALS, $special_array, 'update', 'products_id = \''.$products_id.'\''); } }[/php]und innerhalb der Funktion insertProduct() nach der Zeile: [php]if ($touchCat) $this->insertCategory($dataArray, $mode, $products_id);folgende Zeilen einfügen: if ($this->FileSheme['p_disc'] == 'Y' && $dataArray['p_disc'] > 0) { if ($this->checkSpecial($products_id)) $this->insertSpecial($dataArray, $products_id, 'update'); else $this->insertSpecial($dataArray, $products_id); } [/php]sollte funktionieren in der Version: [font=Verdana, Arial, Helvetica, sans-serif][size=2][color=#d68000][b]v3.0.4 SP2[/b][/color][/size][/font] Link to comment Share on other sites More sharing options...
Rotkaeqpchen Posted October 29, 2008 Report Share Posted October 29, 2008 Hi! DANKE für den Workaround, ... klappt SUPER, EINS noch: Wie kann ich dur CSV Import das Sonderangebot wieder RAUS NEHMEN? Link to comment Share on other sites More sharing options...
nerphunk Posted November 1, 2008 Report Share Posted November 1, 2008 Da müssten Sie dann eine Delete-Funktion einbauen und die folgende Anweisung innerhalb der insertProduct() modifizieren: if ($this->FileSheme['p_disc'] == 'Y' && $dataArray['p_disc'] > 0) { if ($this->checkSpecial($products_id)) $this->insertSpecial($dataArray, $products_id, 'update'); else $this->insertSpecial($dataArray, $products_id); } elseif ($this->FileSheme['p_disc'] == 'Y' && $dataArray['p_disc'] == 0 && $this->checkSpecial($products_id)) $this->deleteSpecial($products_id); [/php] Im vorliegenden Fall wird, wenn der Wert von p_disc = 0 ist und es zu dem Produkt einen Sonderpreis-Eintrag gibt, dieser Eintrag gelöscht. Diese Funktion zum Löschen des Datensatzes müssten Sie ebenso noch integrieren: [php]function deleteSpecial($prod_id) { $extra_query = xtc_db_query("DELETE FROM ".TABLE_SPECIALS." WHERE products_id='".$prod_id."'"); if (!xtc_db_num_rows($extra_query)) return false; return true; }Ich hab allerdings diese Version nicht getestet. Sollte aber funktionieren, solang sich keine Syntaxfehler eingeschlichen haben. Link to comment Share on other sites More sharing options...
Rotkaeqpchen Posted November 1, 2008 Report Share Posted November 1, 2008 Das ist ja wirklich supernett von Ihnen! Dankeschön, ich werde die Funktion bald einbauen und testen und hier Bescheid geben. DANKESCHÖN für die Mühe! Link to comment Share on other sites More sharing options...
nerphunk Posted November 3, 2008 Report Share Posted November 3, 2008 kein Problem, solange es funktioniert ;-) Hatte das Problem zeitgleich und grad die Lösung parat. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.