Zurück   xt:Commerce Webshop Shop Support > xt:Commerce Shopsoftware Community Area > Admininterface

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 25.04.2007, 08:12
Benutzerbild von pikee
xt:Commerce Support Kunde
 
Registriert seit: 17.09.2004
Beiträge: 151
Standard Vorstellung einer offen dokumentierten XML Importschnittstelle für xt:c 3.x

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:

Code:
<?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 ***

Geändert von mzanier (25.04.2007 um 08:22 Uhr)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #2 (permalink)  
Alt 25.04.2007, 08:22
Benutzerbild von mzanier
xt:Commerce GmbH, Geschäftsführung
 
Registriert seit: 18.04.2003
Beiträge: 27.414
Standard

Zitat:
wozu ich selbst keine Dokumentation gesehen habe wie das csv aussehen soll.
http://www.xt-commerce.com/forum/showthread.php?t=35245

Zitat:
<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.
__________________
xt:Commerce Helpdesk
xt:Commerce Blog

xt:Commerce Warenwirtschaft

###

Offene Stellen bei xt:Commerce!
xt:Commerce stellt ein
###
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #3 (permalink)  
Alt 25.04.2007, 14:23
Benutzerbild von pikee
xt:Commerce Support Kunde
 
Registriert seit: 17.09.2004
Beiträge: 151
Standard

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.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #4 (permalink)  
Alt 26.11.2007, 13:52
Neuer Benutzer
 
Registriert seit: 15.11.2007
Beiträge: 8
Standard BMECat XML-Import direkt, oder Umweg per CSV

Zitat:
Zitat von mzanier Beitrag anzeigen
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???
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #5 (permalink)  
Alt 04.12.2007, 16:23
Neuer Benutzer
 
Registriert seit: 15.11.2007
Beiträge: 8
Frage BMECat XML-Schnittstelle - Neue Artikel

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.


Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #6 (permalink)  
Alt 05.12.2007, 07:17
Benutzerbild von pikee
xt:Commerce Support Kunde
 
Registriert seit: 17.09.2004
Beiträge: 151
Standard

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.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #7 (permalink)  
Alt 05.12.2007, 14:48
Neuer Benutzer
 
Registriert seit: 15.11.2007
Beiträge: 8
Ausrufezeichen Shop wieder schnell - Fehler - Bug - Debug

!!!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?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #8 (permalink)  
Alt 05.12.2007, 15:05
Benutzerbild von pikee
xt:Commerce Support Kunde
 
Registriert seit: 17.09.2004
Beiträge: 151
Standard

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.

Geändert von pikee (06.12.2007 um 07:30 Uhr) Grund: Ergänzung
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #9 (permalink)  
Alt 06.12.2007, 13:55
Neuer Benutzer
 
Registriert seit: 15.11.2007
Beiträge: 8
Cool Problem war Konstante SHOW_COUNTS

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.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #10 (permalink)  
Alt 20.03.2009, 08:47
Neuer Benutzer
 
Registriert seit: 20.03.2009
Beiträge: 1
Standard XTC XML-Format

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
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
dokumentierten, importschnittstelle, offen, vorstellung, xml, xtc

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:18 Uhr.

Copyright © 2011 xt:Commerce GmbH / xt:Commerce International Ltd. - All Rights Reserved

xt:Commerce is a SafeCharge brand