Aufbau des ORDER Dokuments bei einer Bestellung mit Bundles

Last modified: 23. September 2022

Es gilt der gleiche Aufbau wie im Artikel „Aufbau des Order Dokuments einer Standard Bestellung“ beschrieben. Ein valides Beispieldokument finden Sie am Ende dieses Artikels.

Unter einem Bundle verstehen wir die Zusammenführung von mehreren Artikeln (Stückliste) zu einer Position. Entsprechend muss eine Bestellung mit Bundles für jedes Bundle die Schema-Anforderungen einer Position (ORDER_ITEM) erfüllen:

	<xsd:element name="ORDER_ITEM">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="LINE_ITEM_ID"/>
				<xsd:element ref="PRODUCT_ID"/>
				<xsd:element ref="PRODUCT_FEATURES" minOccurs="0"/>
				<xsd:element ref="PRODUCT_COMPONENTS" minOccurs="0"/>
				<xsd:element ref="QUANTITY"/>
				<xsd:element ref="bmecat:ORDER_UNIT"/>
				<xsd:element ref="PRODUCT_PRICE_FIX" minOccurs="0"/>
				<xsd:element ref="PRODUCT_STOCK_FIX" minOccurs="0"/>
				<xsd:element ref="PRICE_LINE_AMOUNT" minOccurs="0"/>
				<xsd:element ref="CONTRACT_INFORMATION" minOccurs="0" maxOccurs="1"/>
				<xsd:choice minOccurs="0">
					<xsd:sequence>
						<xsd:element ref="PARTIAL_SHIPMENT_ALLOWED" minOccurs="0"/>
						<xsd:element ref="DELIVERY_DATE" minOccurs="0"/>
					</xsd:sequence>
					<xsd:element ref="PARTIAL_DELIVERY_LIST" minOccurs="0"/>
				</xsd:choice>
				<xsd:element ref="SOURCING_INFO" minOccurs="0"/>
				<xsd:element ref="CUSTOMER_ORDER_REFERENCE" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="bmecat:ACCOUNTING_INFO" minOccurs="0"/>
				<xsd:element ref="SHIPMENT_PARTIES_REFERENCE" minOccurs="0"/>
				<xsd:element ref="bmecat:TRANSPORT" minOccurs="0"/>
				<xsd:element ref="bmecat:INTERNATIONAL_RESTRICTIONS" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="bmecat:SPECIAL_TREATMENT_CLASS" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="MIME_INFO" minOccurs="0"/>
				<xsd:element ref="REMARKS" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="ITEM_UDX" minOccurs="0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

Um also ein valides XML-Dokument zu bauen. müssen minimal folgende Felder enthalten sein: LINE_ITEM_ID, PRODUCT_ID und QUANTITY. Hierbei ist zu beachten, dass unter dem Tag PRODUCT_ID der Product-Typ (PRODUCT_TYPE) „bundle“ gewählt sein muss (siehe Beispiel am Ende des Dokuments).

Einem Bundle können Artikel/Komponenten mit dem Tag PRODUCT_COMPONENTS hinzugefügt werden. Die Schema-Definition hierfür sieht wie folgt aus:

	<xsd:element name="PRODUCT_COMPONENTS">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="PRODUCT_COMPONENT" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>	
	<xsd:element name="PRODUCT_COMPONENT">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="PRODUCT_ID"/>
				<xsd:element ref="PRODUCT_FEATURES" minOccurs="0"/>
				<xsd:element ref="PRODUCT_COMPONENTS" minOccurs="0"/>
				<xsd:element ref="QUANTITY"/>
				<xsd:element ref="bmecat:ORDER_UNIT"/>
				<xsd:element ref="PRODUCT_PRICE_FIX" minOccurs="0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

Der Tag PRODUCT_COMPONENT beschreibt hierbei eine Komponente bzw. ein Artikel des Bundles. Deshalb muss hier auch mindestens die PRODUCT_ID, die QUANTITY und die ORDER_UNIT mit angegeben werden. In diesem Fall muss unter dem Tag PRODUCT_ID der Product-Typ (PRODUCT_TYPE) „component“ gewählt sein, da wir ein Bundle-in-Bundle nicht unterstützen.

Eine valide Bundle-Position, kann entsprechend wie folgt aussehen:

      <ORDER_ITEM>
         <LINE_ITEM_ID>00001</LINE_ITEM_ID>
         <PRODUCT_ID>
            <ns2:SUPPLIER_PID type="supplier_specific">SAMPLE_SUPPLIER_ID</ns2:SUPPLIER_PID>
            <ns2:SUPPLIER_IDREF type="buyer_specific">12345678</ns2:SUPPLIER_IDREF>
            <ns2:INTERNATIONAL_PID type="itscope">1000001209000</ns2:INTERNATIONAL_PID>
            <ns2:DESCRIPTION_SHORT>KN - Apple iPhone SE 2022 128GB rot - Bundle</ns2:DESCRIPTION_SHORT>
            <ns2:PRODUCT_TYPE>bundle</ns2:PRODUCT_TYPE>
         </PRODUCT_ID>
         <PRODUCT_COMPONENTS>
            <PRODUCT_COMPONENT>
               <PRODUCT_ID>
                  <ns2:SUPPLIER_PID type="supplier_specific">13113721000</ns2:SUPPLIER_PID>
                  <ns2:INTERNATIONAL_PID type="ean">0194253014645</ns2:INTERNATIONAL_PID>
                  <ns2:INTERNATIONAL_PID type="itscope">13113721000</ns2:INTERNATIONAL_PID>
                  <ns2:DESCRIPTION_LONG>Apple iPhone SE - (PRODUCT) RED - 5G Smartphone, iPhone SE - Smartphone - 128 GB - Rot</ns2:DESCRIPTION_LONG>
                  <MANUFACTURER_INFO>
                     <ns2:MANUFACTURER_IDREF type="party_specific">88</ns2:MANUFACTURER_IDREF>
                     <ns2:MANUFACTURER_PID>MMXL3ZD/A</ns2:MANUFACTURER_PID>
                  </MANUFACTURER_INFO>
                  <ns2:PRODUCT_TYPE>component</ns2:PRODUCT_TYPE>
               </PRODUCT_ID>
               <QUANTITY>1</QUANTITY>
               <ns2:ORDER_UNIT>C62</ns2:ORDER_UNIT>
            </PRODUCT_COMPONENT>
            <PRODUCT_COMPONENT>
               <PRODUCT_ID>
                  <ns2:SUPPLIER_PID type="supplier_specific">1000001211000</ns2:SUPPLIER_PID>
                  <ns2:INTERNATIONAL_PID type="itscope">1000001211000</ns2:INTERNATIONAL_PID>
                  <ns2:DESCRIPTION_LONG>Brotect AirGlass Panzerglasfolie für Apple iPhone SE 2022</ns2:DESCRIPTION_LONG>
                  <ns2:PRODUCT_TYPE>component</ns2:PRODUCT_TYPE>
               </PRODUCT_ID>
               <QUANTITY>1</QUANTITY>
               <ns2:ORDER_UNIT>C62</ns2:ORDER_UNIT>
            </PRODUCT_COMPONENT>
            <PRODUCT_COMPONENT>
               <PRODUCT_ID>
                  <ns2:SUPPLIER_PID type="supplier_specific">1000001210000</ns2:SUPPLIER_PID>
                  <ns2:INTERNATIONAL_PID type="itscope">1000001210000</ns2:INTERNATIONAL_PID>
                  <ns2:DESCRIPTION_LONG>Octo IT Silikon Hülle für iPhone SE 2022/2020 (3./2. Generation) - schwarz</ns2:DESCRIPTION_LONG>
                  <ns2:PRODUCT_TYPE>component</ns2:PRODUCT_TYPE>
               </PRODUCT_ID>
               <QUANTITY>1</QUANTITY>
               <ns2:ORDER_UNIT>C62</ns2:ORDER_UNIT>
            </PRODUCT_COMPONENT>
         </PRODUCT_COMPONENTS>
         <QUANTITY>1</QUANTITY>
         <ns2:ORDER_UNIT>C62</ns2:ORDER_UNIT>
         <PRODUCT_PRICE_FIX>
            <ns2:PRICE_AMOUNT>510.00</ns2:PRICE_AMOUNT>
            <TAX_DETAILS_FIX>
               <ns2:TAX_CATEGORY>standard_rate</ns2:TAX_CATEGORY>
               <ns2:TAX_TYPE>VAT</ns2:TAX_TYPE>
               <ns2:TAX>0.19</ns2:TAX>
               <TAX_AMOUNT>96.90</TAX_AMOUNT>
            </TAX_DETAILS_FIX>
         </PRODUCT_PRICE_FIX>
         <PRODUCT_STOCK_FIX>
            <STOCK_AMOUNT>13</STOCK_AMOUNT>
            <STOCK_STATUS>OnStock</STOCK_STATUS>
            <STOCK_STATUS_CODE>1</STOCK_STATUS_CODE>
            <STOCK_INFO_SOURCE>DEFAULT_PRICELIST</STOCK_INFO_SOURCE>
            <STOCK_INFO_SOURCE_CODE>4</STOCK_INFO_SOURCE_CODE>
            <STOCK_INFO_LASTUPDATE>2022-09-19T13:19:09</STOCK_INFO_LASTUPDATE>
         </PRODUCT_STOCK_FIX>
         <PRICE_LINE_AMOUNT>510.00</PRICE_LINE_AMOUNT>
         <ITEM_UDX>
            <UDX.BUNDLEPARTSLISTVISIBLE>true</UDX.BUNDLEPARTSLISTVISIBLE>
         </ITEM_UDX>
      </ORDER_ITEM>

Mit dem Tag UDX.BUNDLEPARTSLISTVISIBLE können Sie steuern, ob die Stückliste ihres Bundles an der Oberfläche angezeigt werden soll oder nicht. Das Beispiel würde in unserer Oberfläche folglich so dargestellt werden:

Was this article helpful?
Dislike 0
Views: 179