pikee Posted April 25, 2007 Report Share Posted April 25, 2007 Hallo, sicherlich kennt Ihr das Problem, wenn Ihr Daten aus Fremdsystem in den xt:c Shop importieren wollt. xt:c bietet selbst nur das csv Format an, wozu ich selbst keine Dokumentation gesehen habe wie das csv aussehen soll. Aber csv ist heutzutage für Datenabgleiche unzureichend. Daher habe ich eine Importschnittstelle auf XML entwickelt, die jederzeit problemlos erweitert werden kann. Hier der Grundaufbau: <?xml version="1.0" encoding="iso-8859-15"?> <xtc> <product model="" ean="" quantity="" shippingtime="" price="" weight="" status="" tax_class_id="" product_template="" options_template="" manufacturers_id="" fsk18="" vpe="" vpe_status="" vpe_value=""> <attribute model="" stock=">" options_id=">" values_id=">" price_prefix="" price="" weight_prefix="" weight="" /> <description language_id=""> <name></name> <short_description></short_description> <description></description> <keywords></keywords> <meta_title></meta_title> <meta_description></meta_description> <meta_keywords></meta_keywords> <url></url> </description> <categories></categories> <image index="" thumb="" info="" popup=""></image> <image index="" thumb="" info="" popup=""></image> </product> </xtc> Die Markups attribute und image sind optional. image dient hierbei zum gleichzeitgen Einlesen und Verarbeiten von Produktbildern. Das Attribut index dient für die Reihenfolge der Bilder. Index 0 bezeichnet das Produktbild, während Index > 0 die zusätzlichen Produktbilder darstellt. thumb, info und popup sind optional. Werden diese Attribute benutzt, sind die Werte in breitexhöhe anzugeben (bsp: thumb="120x90"). Werden thumb, info, popup nicht angegeben, werden die Werte aus der Shopeinstellung bezogen. categories ist auch optional und dient zum zuordnen der Produkte in die Kategorien. Ein Weglassen des Markup bewirkt, dass das Produkt in Kategorie 0 (root) abgelegt werden. Soll das Produkt in meheren Kategorien erscheinen, sind die IDs der Kategorien durch Komma getrennt anzugeben. (Bsp: <categories>1,5,9</categories>) Ich erweitere heute noch das Markup categories um das Attribut type. Die type Angabe soll dazu dienen wie das Produkt in weiteren Kategorien angelegt werden soll. Hierzu gibt es die Möglichkeit: create - hierbei wird das Produkt in allen angegeben Kategorien jeweils als eigenständiges Produkt angelegt link - das Produkt wird in der ersten Kategorie angelegt und in die darauffolgenden Kategorien nur verlinkt. *** Verstoß gegen Forenregeln *** Link to comment Share on other sites More sharing options...
mzanier Posted April 25, 2007 Report Share Posted April 25, 2007 wozu ich selbst keine Dokumentation gesehen habe wie das csv aussehen soll. http://www.xt-commerce.com/forum/showthread.php?t=35245 <product model="" ean="" quantity="" shippingtime="" price="" weight="" status="" tax_class_id="" product_template="" options_template="" manufacturers_id="" fsk18="" vpe="" vpe_status="" vpe_value=""> diese art der kapselung ist für eine weite akzeptanz ungeeignet. <product> <products_model>...</products_model> ... ... .. <attribute> <attributes_model>...</attributes_model> ..... </attribute> <attribute> <attributes_model>...</attributes_model> ..... </attribute> ist da wesentlich vernünftiger. ps: in kürze gibt es eine XML importschnittstelle von uns, die auch BMEcat Format akzeptiert. Link to comment Share on other sites More sharing options...
pikee Posted April 25, 2007 Author Report Share Posted April 25, 2007 Gut. Das mit der Beschreibung der CSV im Doc Bereich hab nicht nicht dran gedacht Zusammen mit einem Bekannten habe ich die XML Struktur angepaßt. Die erste Final wirds Anfang nächste Woche geben. Link to comment Share on other sites More sharing options...
rhermann69 Posted November 26, 2007 Report Share Posted November 26, 2007 ps: in kürze gibt es eine XML importschnittstelle von uns, die auch BMEcat Format akzeptiert. Wann kommt denn nun eine Importschnittstelle für BMEcat. Habe hier z.B. eine 120MB große XML Datei von BME 1.2. Wie soll ich da jetzt vorgehen. Muss ich das in CSV bringen und die Importschnittelle nehmen. Oder aber eigene SQL Anweisungen stricken. -> Parsen, die Datentypen der DTD berücksichtigen für MySQL, dann per XSLT das ganze in SQL basteln? Gibt es da nicht schon einen Weg oder ein Modul??? Link to comment Share on other sites More sharing options...
rhermann69 Posted December 4, 2007 Report Share Posted December 4, 2007 Jetzt habe ich also wirklich die XML-Datei einzeln geparst um sie in die products Tabellen von xtcommerce zu bekommen. Nun tut sich das nächste Problem auf. Die 38.000 Artikel werden jetzt bei "Neuer Artikel"-Liste mit aufgelistet. Wie kann ich das abschalten. Die Konfiguration von xtcommerce gibt zwar dort eine Zahl vor, die ist aber bei weitem geringer. Es ist so dass der Server 99% der cpu-time für mysql benötigt, die Seite lädt mind. 1-2 Minuten ehe etwas kommt. Da ist wohl eine Routine drin, die alle Artikel durchsucht, dass sollte mal optimiert oder entfernt werden. Aber ich denke, das ich auch hier selbst Hand anlegen werden bzw. muss. Link to comment Share on other sites More sharing options...
pikee Posted December 5, 2007 Author Report Share Posted December 5, 2007 Ich beschäftige mich ja nun seit 2 Jahren mit xt:commerce. @rhermann69: Das ist nur ein der vielen Fehler die der Shop macht. Bei denen vielen Artikeln ist es nur natürlich das Du ganz stark die Auswirkungen spürst. Schau Dir am besten mal /includes/classes/split_page_results.php an. Zudem solltest Du, sofern noch nicht gemacht, an wichtigen Schlüsselfeldern nen INDEX setzen. Das spart auch nochmal ne ganze Menge Zeit. Der Shop hat einfach zu viele Fehler, als das wir ihn in Zukunft weiter anpassen an unsere Bedürfnisse und auch betreiben werden. Zudem ist er auch viel zu langsam im Ablauf. Link to comment Share on other sites More sharing options...
rhermann69 Posted December 5, 2007 Report Share Posted December 5, 2007 !!!Bitte lest diese Fehlermeldung!!! Das Problem hatte sich richtig zugespitzt da zu den 38.000 Artikeln ja auch 7.000 Kategrorien existieren. Bin dahinter gekommen das in der application_top.php die Funktion xtDBQuery liegt, wo ich mir mal eine komplette Ausgabe habe generieren lassen. Was dabei rauskam war erschreckend. Es wurden, klar, alle Produkte nach jeweiliger Kategorie gezähtl. Ungefähr so: ca. 37.000 querys (als Block wie er hier steht, ansonsten sind es ja über 74.000) ::select categories_id from categories where parent_id = '37537' ::select count(*) as total from products p, products_to_categories p2c where p.products_id = p2c.products_id and p.products_status = '1' and p2c.categories_id = '37538' Irgendwie auch komisch, da es ja "nur" 7.000 Kategorien gibt, verwechselt man es mit der product.id. Klar so könnte man schon mal 30.000 querys einsparen. Das gibts doch wohl nicht. Was aber noch interessant ist, ist die Tatsache, das an der Startseite wo sich mein Shop befindet, diese Art der Funktion "zähle die Produkte je Kategorie" überhaupt auch keinen Sinn macht. Wäre es nur an einer bestimmten Stelle, wäre dies evtl. verschmerzbar. So, war nun ganz "brutal" und habe die Funktion xtc_count_products_in_category in der gleichnamigen Datei unter /inc/xtc_count_products_in_category.inc.php unschädlich gemacht, mit einem vorgezogenen return;. Natürlich ist die Funktion ja für irgendwas nütze, für was genau, habe ich aber noch nicht herausbekommen. Erklärungsbedarf ist da angesagt. Ich hätte nun gerne gewusst, da dies ein Open-Source-Projekt ist, ob dieser "Fehler" schon so aufgetreten ist, bzw. schon behoben ist. Und an welcher Stelle diese Funktion eigentlich aufgerufen wird, . @pikee: danke für deine Einschätzung und Erfahrungsbericht über xtcommerce. Interessant finde ich die Abkehr von diesem, bei mir ist es leider zu spät um nochmal umzusatteln. Bin mir aber sicher das xtcommerce nicht hier aufhören wird sich weiter zu entwicklen. PS: Welchen Shop nimmst Du jetzt für schnelle Reaktionen? Link to comment Share on other sites More sharing options...
pikee Posted December 5, 2007 Author Report Share Posted December 5, 2007 Der Shop wird eine Eigenentwicklung. Ausgerichtet auf OOP, PHP5 only, starke MySQL Optimierung und direkte Schnittstelle zu unserer WaWi. Werden zwar paar Monate dazu in´s Land gehen, aber dann haben wir nen Shop der 1:1 mit unserer WaWi arbeiten kann. Und die komplette Adminverwaltung lege ich auf einen Intranetserver. Wird leider nichts für die Allgemeinheit werden, da das Shopsystem auf unseren Firmenbedarf zugeschnitten sein wird. Größten Probleme am xt:c (für uns) sind: - Gutscheinsystem, was, seit wir xt:c einsetzen (Jan 2006), nicht korrekt funktioniert - Attributsystem ist für uns so nicht wirklich verwendbar. Eine Artikelgruppierung wäre hier besser gewesen Das sind so die Hauptknackpunkte. Link to comment Share on other sites More sharing options...
rhermann69 Posted December 6, 2007 Report Share Posted December 6, 2007 Das Problem mit der rekursiven Funktion bestand ja nun nicht mehr. Jetzt habe ich erfahren dass es eine Einstellmöglichkeit gibt, unter Konfiguration-> Artikelanzahl hinter Kategorienamen? false / true diese war ob true oder false immer aktiv. D.h. die Funktion konnte garnicht abgeschaltet werden. Das lag an dem Ausdruck if(SHOW_COUNTS == true) in der templates\ebez_tpl_rn\source\inc\xtc_show_category.inc.php, der Funktion xtc_build_category_lists_using_ul. Das Problem ist hier dass man Äpfel mit Birnen, in dem Fall, eine Konstante (einen String) mit Boolean vergleicht. Wobei die Bedingung immer erfüllt wurde. Die Lösung für diese "Problem" (bei PHP 4) ist folgendes if(SHOW_COUNTS == "true") oder aber man übersetzt den String auch in einen Boolean. Dann reagiert auch wieder die Konfiguration von xtCommerce einwandfrei. Trotzdem, die rekursive Funktion ist für 7.000 Kategorien und 38.000 Artikel einfach zu viel für einen durchschnittlichen Server. @pikee: Schade das eure Lösung nur "betriebsintern" ist. Link to comment Share on other sites More sharing options...
benudie Posted March 20, 2009 Report Share Posted March 20, 2009 Hallo, es gibt eine Dokumentation zu XTC für unterschieldiche XML-Formate. Unter anderem auch für Kundenexporte, wobei die Struktur in der Dokumentation abgebildet ist. Meine Frage nun: Ist diese Struktur standardisiert, oder ist das XTC-Eigen? Darf dieses Format "kopiert", bzw. weiter benutzt werden - bspw. für einen eigenen Kundenwebservice? Grüße Link to comment Share on other sites More sharing options...
mzanier Posted March 20, 2009 Report Share Posted March 20, 2009 Für Version 4 haben wir eine dokumentierte standard SOAP Webservice Schnittstelle. Für Version 3 gibt es keine Standardschnittstelle (bis auf den CSV Import von Artikeln). Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.