Benutzer-Werkzeuge

Webseiten-Werkzeuge


xml:items_in_schema

items_in XML-Schema

Schema

Das vollständige Schema finden Sie unter items_in_v1_1.xsd.

Im folgenden gehen wir auf die wichtigsten Elemente des Schemas ein. Beim Lesen hilft es sich die untenstehende Beispieldatei vor Augen zu halten.

ListOfItems

Dieses Element ist das Wurzelement und taucht genau einmal in einem items_in-Job auf. Es enthält wiederum ein oder mehrere Item-Elemente.

Innerhalb einer Artikelliste müssen die Attribute ItemNo und VariantNo eindeutig („unique“) sein. Es darf also kein Artikel doppelt in der Liste vorkommen und auch kein Artikelnummer bei einer Variante erneut auftauchen.

Attribute

Attribut Pflicht? Erklärung
CreationDate ja Zeitpunkt, an dem die Liste auf dem Fremdsystem erstellt wurde (z.B. UNIX-Timestamp)
ListType ja Zentraler Parameter, der steuert, ob es sich um eine komplette Artikelliste oder eine Teilliste handelt. Mögliche Werte: „FullList“ oder „PartialList“. Letzter Wert („PartialList“) sollte im Regelfall übergeben werden. „FullList“ hingegen ist nur für die Datenübernahme oder einen erneuten, kompletten Abgleich (maximal 1x täglich) erforderlich, denn er besagt, daß sämtliche Artikel (über das Attribut „ItemNo“ im „Item“-Element referenziert, s.u.), die nicht unter den jeweils (durch das Attribut „UniqueCategoryName“ im „Item“-Element, s.u.) angegebenen Kategorien im XML vorkommen, deaktiviert werden. Außerdem werden pro Artikel sämtliche evtl. vorhandenen Varianten deaktiviert, die nicht unterhalb des zugehörigen „Item“-Elementes (s.u.) als „Variant“-Elemente (durch das Attribut „VariantNo“ referenziert, s.u.) vorkommen.
ExecutionLevelnein Nur zu Debugging-Zwecken notwendig. Eine Bitmap, mit der festgelegt werden kann, welche Teile ausgeführt bzw. übersprungen werden sollen. Default-Wert: 7, siehe unten

Werte der ExecutionLevel Bitmask

  • 0 : Führen eines detaillierten Debug-Logs. Wird derzeit imm er gemacht und kann nicht abgeschaltet werden.
  • 1 : Daten in die Schnittstellentabellen einfügen
  • 2 : Aufruf der Importprozedur (im_ImportItemData_Ad)
  • 4 : Aufruf einer individuellen Prozedur nach der Importprozedur1)

Item

Dieses Element dient der Übergabe eines Artikels inkl. Eigenschaften sowie eventueller Artikelvarianten samt deren Eigenschaften.

Eine spezielle Eigenschaft (im „Property“-Element, s.u.), die - sofern der Artikel Varianten hat - unbedingt zum Artikel übergeben werden muss, ist die Property „Variantenmerkmale“. Das dStore-Merkmal „VariantenMerkmale“ (ID=17) ist zum Artikel hinterlegt und besagt, durch welches Merkmal sich die Varianten des Artikels unterscheiden. Es handelt sich um eine mit dem Trenner „¶“ getrennte Liste von CharacteristicIDs.

Attribute

Attribut Pflicht? Erklärung
ItemDescription nein Bezeichnung des Artikels im Artikelbaum (NodeDescription). Die komplette Produktbezeichnung wird als Eigenschaft übergeben. siehe auch Bespieldatei, NodeDescription ist „L/black“, während die Bezeichnung „Example Product ABC L / black“ lautet.
Hinweis : Wenn man die Bezeichnung eines bestehenden Artikels ändern möchte, genügt es nicht, nur in diesem Attribut den neuen Wert anzugeben, man muß auch das „UniqueCategoryName“-Attribut (s.u. in dieser Tabelle) füllen.
ItemNo ja Artikelnummer zur Referenzierung des Artikels im dStore. (Eigenschaft zum Merkmal „Artikelnummer“, ID „6“)
ItemStatus ja Gibt an, warum ein Artikel in der Liste vorhanden ist. Siehe hierzu die Liste der möglichen Werte unter dieser Tabelle
UniqueCategoryName nein Über dieses Attribut erfolgt die Zuordnung des Artikels an eine oder mehrere Stellen im „Artikelbaum“, sprich hierüber werden die Artikel den „Kategorie-Elementen“ zugeordnet. Referenziert werden die Kategorien über eine spezielle Eigenschaft, und zwar zum Merkmal „Eindeutiger Bezeichner“ mit der ID „18“. Der Name des Attributs rührt also daher, daß man hier einen oder mehrere (durch „,“ getrennt) „Eindeutige Bezeichner“ angeben kann, um eine entsprechende Kategorie-Zuordnung zu steuern (s.a. die Erläuterung zu den möglichen „ItemStatus“-Werten in der Tabelle unten)

Hier die möglichen Werte für den „ItemStatus“:

Status Erklärung
Deleted Wenn „UniqueCategoryName“ nicht (bzw. dort ein leerer Wert) angegeben ist, wird der Artikel überall deaktiviert, sonst nur unter den angegebenen Kategorien. In jedem Fall werden evtl. Eigenschaften- sowie Varianten-Elemente (mit ihrerseits evtl. vorhandenen Eigenschaften-Elementen) ignoriert (sinnvollerweise sollte man aber in diesem Fall natürlich erst gar keine weiteren Elemente übergeben). Sonderfall : Wenn der „ListType = FullList“ ist, darf dieser Status nicht angegeben werden (es gibt sonst einen Fehler) !
Modified Wenn „UniqueCategoryName“ nicht (bzw. dort ein leerer Wert) angegeben ist, wird bzgl. der Kategorie-Einordnung nichts gemacht (Eigenschaften und/oder Varianten werden aber wie angegeben übernommen). Ansonsten wird der Artikel (sofern schon vorhanden !) zum einen unter alle angegebenen Kategorien eingefügt, unter denen er noch nicht vorkommt - und zum anderen wird er unter allen Kategorien deaktiviert, die nicht hier angegeben sind. Auf diese Art kann man z.B. einen Artikel „verschieben“ (und muß nichts weiter - also weder Varianten noch Eigenschaften - angeben). Hinsichtlich Eigenschaften und/oder evtl. Varianten (inkl. Eigenschaften) darf alles angegeben werden und wird entsprechend übernommen. Sonderfall : Wenn der „ListType = FullList“ ist, darf dieser Status nicht angegeben werden (es gibt sonst einen Fehler) !
New Wenn „UniqueCategoryName“ nicht (bzw. dort ein leerer Wert) angegeben ist, wird bzgl. der Kategorie-Einordnung nichts gemacht (Eigenschaften und/oder Varianten werden aber wie angegeben übernommen). Ansonsten wird der Artikel (selbst wenn noch nicht vorhanden) unter alle angegebenen Kategorien angelegt. Falls es den Artikel schon unter einer Kategorie gibt (egal, ob diese hier angegeben ist oder nicht), wird er im Fall „ListType = PartialList“ von dort kopiert - sämtliche hier im XML unter diesem Element angegebenen Eigenschaften und/oder Varianten (inkl. evtl. Eigenschaften) werden aber übernommen ! Dieses Vorgehen hat den Vorteil, daß man weder Eigenschaften noch Varianten angeben muß, falls man lediglich den Artikel unter eine weitere Kategorie „kopieren“ möchte (man aber die Kategorien, unter denen der Artikel bereits vorhandenen ist, nicht kennt, so daß sich ein „Modified“-Status verbietet, weil der Artikel ja sonst unter den nicht angegebenen Kategorien entfernt werden würde). Nachteil dabei : Wenn es den Artikel noch nicht gibt und keinerlei Eigenschaften und/oder Varianten im XML angegeben sind, wird eine „leere Hülle“ (nur ein Artikel-Element ohne Eigenschaften und Varianten) angelegt ! Sonderfall : Wenn der „ListType = FullList“ ist, dann wird der Artikel unter allen Kategorien, die hier nicht angegeben sind, deaktiviert !
NewOrModified Dieser Status bietet sich immer dann an, wenn man sämtliche Informationen zum Artikel hat und auch übergibt (also alle Kategorien im „UniqueCategoryName“ sowie alle Eigenschaften des Artikels und auch alle evtl. Varianten inkl. Eigenschaften). Kurz gesagt wird der Status wie der „Modified“-Status behandelt, aber mit dem weiteren Vorteil des „New“-Status, nämlich daß der Artikel auch dann angelegt wird (nur sofern „UniqueCategoryName“ angegeben und nicht leer ist natürlich), wenn er noch gar nicht existiert. Wie schon in den besagten zwei Status wird auch hier bzgl. der Kategorie-Einordnung nichts gemacht, falls der „UniqueCategoryName“ nicht bzw. dort ein leerer Wert angegeben ist. Auch ist der Sonderfall „ListType = FullList“ hier erlaubt - er wird völlig analog zum „New“-Status behandelt.

Variant

Dieses Element dient der Übergabe von Artikelvarianten eines Artikels, sowie deren Eigenschaften.

Properties müssen nicht übergeben werden. Dies ist z.B. sinnvoll, wenn eine Variante entfernt werden soll.

Attribute

Attribut Pflicht? Erklärung
VariantDescription nein Bezeichnung des Artikels im Artikelbaum („NodeDescription“). Wird meistens nur intern verwendet, in der Anzeige im Onlineshop oder in automatischen eMails wird oft eine Property verwendet. Wie bereits angesprochen ist eine Benennung „schwarz/L“ sinnvoll.
VariantNo ja Variantennummer (Artikelnummer der Variante) zur Referenzierung der Variante im dStore. (Eigenschaft zum Merkmal „Artikelnummer“, ID „6“)
VariantStatus ja Gibt an, warum eine Variante in der Liste vorhanden ist. Siehe hierzu die Liste der möglichen Werte unter dieser Tabelle

Hier die möglichen Werte für den „VariantStatus“:

Status Erklärung
Deleted Die durch „VariantNo“ eindeutig referenzierte Variante wird unterhalb des zugehörigen Artikels (durch „ItemNo“ des Vorgänger-Elementes „Item“ referenziert) deaktiviert. Sonderfall : Wenn der „ListType = FullList“ ist, darf dieser Status nicht angegeben werden (es gibt sonst einen Fehler) !
Modified Es werden nur evtl. angegebene Eigenschaften („Property“-Elemente, s.u.) übernommen. Sonderfall : Wenn der „ListType = FullList“ ist, darf dieser Status nicht angegeben werden (es gibt sonst einen Fehler) !
New Falls die Variante noch nicht im dStore unter dem zugehörigen Artikel (durch „ItemNo“ des Vorgänger-Elementes „Item“ eindeutig referenziert) vorhanden ist, wird sie angelegt. In jedem Fall werden evtl. angegebene Eigenschaften („Property“-Elemente, s.u.) übernommen.
NewOrModified Identisch zum New-Status - steht nur der „Einheitlichkeit“ wegen zur Verfügung (weil es ihn als „ItemStatus“ beim „Item“-Element gibt, s.o.)

Property

Dieses Element dient dem Import von Eigenschaften zu Artikeln und Artikelvarianten.

Damit die Property importiert werden kann, muss über ein Mapping eine Zuordung zu einem dStore-Merkmal konfiguriert sein. Die Einrichtung des Mappings geschieht über ApplicationSettings und ist in items_in_configuration beschrieben.

Merkmale zu denen kein Mapping existiert werden ignoriert ohne das es zu einem Fehler kommt.

Das Merkmal „Produktbezeichnung (DE)“ (ID=7) sollte für den Artikel und die Variante mit einer für den Endkunden lesbaren Artikel(kurz)bezeichnung gefüllt sein (z.B. „T-Shirt Fancy“). Für die Variante sollte dort an den für den Artikel übergebenen Wert die Größe bzw. Länge angehängt sein (z.B.„ T-Shirt Fancy schwarz / XL“). Diese Beschreibung wird dann z.B. im Warenkorb oder in Status-Mails verwendet.

Attribute

Attribut Pflicht? Erklärung
Characteristic ja Zu welchem Merkmal gehört die Eigenschaft?
LongText nein Properties zu Artikel können maximal 100 Zeichen lang sein. Sollen Texte beliebiger Länge importiert werden, muss LongText auf „Yes“ gesetzt werden. Die Property wird dann als sogenannter ValueDetail importiert und als Property ein automatischer Wert der Form „<Characteristic> <ItemNo>“ gesetzt. Tipp: Für die Übergabe ist die Verwendung von CDATA sehr zu empfehlen.

Beispieldatei

items_in_sample_FullList.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!--Revision: $Revision: 8971 $ - xml_SmartGate-->
<!-- Dies ist eine vollständige Artikelliste (FullList). Das bedeutet, alles was nicht
    in dieser Liste ist wird im Artikelstamm deaktiviert. -->
<ListOfItems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://resources.dstore.de/xsd/xml_SmartGate/items_in_v1_1.xsd"
    ListType="FullList"
    CreationDate="1183721060">
    <Item ItemNo="123456" UniqueCategoryName="m1200" ItemDescription="Example Product ABC" ItemStatus="New">  
        <!-- Zuerst die Eigenschaften des Artikels -->
        <Property Characteristic="Bezeichnung">Example Product ABC</Property>
        <Property Characteristic="Artikelbeschreibung" LongText="yes"><![CDATA[Dies ist
ein <B>längerer</B> Text
über mehrere
Zeilen.]]></Property>
        <!-- Hier werden die CharacteristicIDs des dStore angegeben, aus denen die Varianten
            dieses Artikels bestehen (¶-Trenner separierte Liste) -->
        <Property Characteristic="Variantenmerkmale">16¶18</Property>
        <!-- Jetzt kommen die Varianten des Artikels -->
        <Variant VariantNo="12345-612" VariantDescription="S / black" VariantStatus="New">
            <!-- Jetzt die Eigenschaften der ersten Variante -->
            <Property Characteristic="Bezeichnung">Example Product ABC S / black</Property>
            <Property Characteristic="Groesse">S</Property>
            <Property Characteristic="Farbe">black</Property>
            <Property Characteristic="Verfuegbarkeit">Lieferbar</Property>
            <Property Characteristic="Gesamtbestand">19</Property>
            <Property Characteristic="VK_Preis">12.00</Property>
        </Variant>      
        <Variant VariantNo="12345-613" VariantDescription="L / black" VariantStatus="New">
            <!-- Jetzt die Eigenschaften der zweiten Variante -->
            <Property Characteristic="Bezeichnung">Example Product ABC L / black</Property>
            <Property Characteristic="Groesse">L</Property>
            <Property Characteristic="Farbe">black</Property>
            <Property Characteristic="Verfuegbarkeit">Nicht lieferbar</Property>
            <Property Characteristic="Gesamtbestand">0</Property>
            <Property Characteristic="VK_Preis">12.30</Property>
        </Variant>
    </Item>
    <!-- Dieser Artikel hat keine Varianten -->
    <Item ItemNo="123123" UniqueCategoryName="m1202" ItemDescription="Example Product Blubb" ItemStatus="New">  
        <Property Characteristic="Bezeichnung">Example Product Blubb</Property>
        <Property Characteristic="Artikelbeschreibung" LongText="yes"><![CDATA[Dies ist
ein <B>längerer</B> Text
über mehrere
Zeilen.]]></Property>
        <Property Characteristic="Verfuegbarkeit">Lieferbar</Property>
        <Property Characteristic="Gesamtbestand">12</Property>
        <Property Characteristic="VK_Preis">14.30</Property>
     </Item>
</ListOfItems>
1)
wird in absehbarer Zukunft nicht mehr unterstützt
xml/items_in_schema.txt · Zuletzt geändert: 13.11.2014 (Externe Bearbeitung)