XML Request

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
joergimann
User
Beiträge: 14
Registriert: Montag 29. September 2014, 20:49

Hallo und erstmal ein frohes neues Jahr.

Ich würde in Python aus einer XML Datei
(sieht so aus und ist als xml Datei lokal gespeichert)

[codebox=xml file=Unbenannt.xml]<?xml version="1.0" encoding="UTF-8"?>
<eF:eFulfilmentXML xmlns:eF="http://rt.efulfilment.de/v1s7">
<Authentication>
<Action>GetArticleMasterDataList</Action>
<exchangePointId>999999</exchangePointId>
<FilterNo>XML_RT</FilterNo>
</Authentication>
<GetArticleMasterDataListRequest>
<ChannelId>AMAZON_SC_DE</ChannelId>
<LangId>DE</LangId>
<ArticleId>REPLICATION+TEST+TEST</ArticleId>
<ExportArtRootId>1</ExportArtRootId>[/code]

eine XML Request absetzten.

Kann mir jemand dabei helfen da ich noch Anfänger bin?
Ich würde mich sehr freuen.

Lieben Gruß
Jörg
Zuletzt geändert von Anonymous am Mittwoch 4. Januar 2017, 09:54, insgesamt 1-mal geändert.
BlackJack

@joergimann: Was ist ein „XML Request“?

Die gezeigte XML-Datei ist unvollständig, also kein gültiges XML — ich vermute Du hast hier nur deren Anfang gezeigt und hast bei Dir lokal eine komplette XML-Datei gespeichert‽
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@joergimann: was heißt, aus einer XML-Datei einen Request absetzen? Du willst wahrscheinliche eine Web-API ansprechen, die über XML-Nachrichten kommuniziert. Dafür gibt es requests für die Kommunikation und ElementTree bzw. lxml zum Erzeugen und Lesen der XML-Nachrichten. Und Du brauchst natürlich eine Dokumentation über die Schnittstelle.
joergimann
User
Beiträge: 14
Registriert: Montag 29. September 2014, 20:49

Das ist die ganze Datei.
Mehr an Doku habe ich leider nicht.

[codebox=xml file=Unbenannt.xml]<?xml version="1.0" encoding="UTF-8"?>
<eF:eFulfilmentXML xmlns:eF="http://rt.efulfilment.de/v1s7">
<Authentication>
<Action>GetArticleMasterDataList</Action>
<exchangePointId>999999</exchangePointId>
<user_id>XXXXXX</user_id>
<accessKey>XXXXXXXi</accessKey>
<FilterNo>XML_RT</FilterNo>
</Authentication>
<GetArticleMasterDataListRequest>
<ChannelId>AMAZON_SC_DE</ChannelId>
<LangId>DE</LangId>
<ArticleId>REPLICATION+TEST+TEST</ArticleId>
<ExportArtRootId>1</ExportArtRootId>
<LastChangeTimestamp>2012-10-31T11:55:41</LastChangeTimestamp>
<ExportDefaultPrice>1</ExportDefaultPrice>
<ExportGeoData>1</ExportGeoData>
<ExportSKUOnly>1</ExportSKUOnly>
<ExportArticleCreated>1</ExportArticleCreated>
<ExportDisplayVariantsOnly>1</ExportDisplayVariantsOnly>
<ExportArticleRootDescription>1</ExportArticleRootDescription>
<ExportArticleRelations>1</ExportArticleRelations>
<ExportBundleContents>1</ExportBundleContents>
<ExportAttributes>
<Attribute>4345</Attribute>
</ExportAttributes>
<ExportAllArticleProperties>1</ExportAllArticleProperties>
<ExportDistTypesForProperties>1</ExportDistTypesForProperties>
<ExportDefaultShippingMediaId>1</ExportDefaultShippingMediaId>
<ExportExternalReferences>
<ReferenceType>EAN</ReferenceType>
</ExportExternalReferences>
<ExportManufacturerData>1</ExportManufacturerData>
<SuppressLongDescription>1</SuppressLongDescription>
<SuppressArticleImages>1</SuppressArticleImages>
<ExportArticleMediaFiles>1</ExportArticleMediaFiles>
<ExportImagesFromArticleRoot>1</ExportImagesFromArticleRoot>
<ExportActiveOnly>1</ExportActiveOnly>
<ExportConsignmentData>1</ExportConsignmentData>
<ExportAdditionalShopInformation>1</ExportAdditionalShopInformation>
<ExportCatalogAssignments>
<CatalogId>TEST-ID</CatalogId>
</ExportCatalogAssignments>
<ExportBasePrices>1</ExportBasePrices>
<FurtherSearchCriteria>
<ArticleId>
<SearchTerm>0</SearchTerm>
<SearchComparison>LI</SearchComparison>
</ArticleId>
<CatalogCategory>
<CatalogId>TEST-ID</CatalogId>
<CategoryId>0</CategoryId>
</CatalogCategory>
<ManufacturerId>101_APPAREL</ManufacturerId>
<ConsignmentId>K4013</ConsignmentId>
<ArticleProperty>
<PropertyId>1</PropertyId>
<PropertyValue>
<SearchTerm>0</SearchTerm>
<SearchComparison>LI</SearchComparison>
</PropertyValue>
</ArticleProperty>
<ArticleAttribute>
<AttributeId>1</AttributeId>
<AttributeValue>
<SearchTerm>0</SearchTerm>
<SearchComparison>LI</SearchComparison>
</AttributeValue>
</ArticleAttribute>
</FurtherSearchCriteria>
</GetArticleMasterDataListRequest>
</eF:eFulfilmentXML>[/code]
Zuletzt geändert von Anonymous am Mittwoch 4. Januar 2017, 16:28, insgesamt 1-mal geändert.
Grund: Quelltext in Codebox-Tags gesetzt.
BlackJack

@joergimann: Nein das reicht nicht. Das sind ja nur die Daten die Übertragen werden müssen. Also wahrscheinlich sind sie das, das können wir ja auch nur raten. Mit welchem Protokoll? Wohin? Muss man sich da vorher irgendwie authentifizieren? Du brauchst eine Beschreibung/Dokumentation der API.
joergimann
User
Beiträge: 14
Registriert: Montag 29. September 2014, 20:49

Das hätte ich noch....

1.1 Allgemeine Informationen
Die eF|CommerceEngine (eF|CE) verfügt über eine Echtzeitschnittstelle, die Partner für den Datenaustausch verwenden können. Generell erfolgt die Kommunikation über einen Post-Request.
Die URL für den Aufruf der Echtzeit-Schnittstelle für das Staging-System lautet:
https://sys.staging.efulfilment.de/rt/
Die URL für die Live-Schnittstelle lautet:
https://rt.efulfilment.de
Die Verbindung erfolgt in beiden Fällen über SSL. 
BlackJack

@joergimann: Wenn man die URL einfach mal so abfragt bekommt eine mehr oder weniger aussagekräftige Antwort, aber letztendlich ist das eine API und Du scheinst Kunde zu sein, also müssten die Dir auch eine API-Dokumentation zur Verfügung stellen, denn sonst kannst Du damit ja nicht wirklich etwas anfangen. insbesondere wenn da in irgendeiner Weise Geld dran hängt, möchte man sich die API und deren korrekte Verwendung sicher nicht zusammenraten.
joergimann
User
Beiträge: 14
Registriert: Montag 29. September 2014, 20:49

Danke für eure Antworten.

Lieben Gruß
Jörg
harryberlin
User
Beiträge: 227
Registriert: Donnerstag 17. Dezember 2015, 12:17

sind das im ersten post gültige userdaten? weil sie im vierten ausgeixt wurden.
empty Sig
joergimann
User
Beiträge: 14
Registriert: Montag 29. September 2014, 20:49

Nee das sind nur Testdaten.
Doch ich bekomme es nicht hin - leider.
Benutzeravatar
pyHoax
User
Beiträge: 84
Registriert: Donnerstag 15. Dezember 2016, 19:17

Schau mal was ich hier gefunden habe eine Dokumentation: http://www.efulfillmentservice.com/wp-c ... API_v2.pdf

DU musst die XML Daten via post request senden ..

Unter python also in etwas so : (ungetestet)

Code: Alles auswählen

# -*- coding: utf-8 -*-
import requests
xml='''
<?xml version="1.0" encoding="UTF-8"?>
<InventoryRequest>
  <MerchantId>
    20
  </MerchantId>
  <MerchantToken>
    9491514ca64a3af2b58b99
  </MerchantToken>
  <Items>
    <Item>
      <Sku>
	Sku1
      </Sku>
    </Item>
  </Items>
</InventoryRequest>
'''
headers = {'Content-Type': 'application/xml'}
requests.post('https://sys.staging.efulfilment.de/xml/inventory/', data=xml, headers=headers).text
ICh bekkome da ein permission denied :( (Ahja der live server)

Mit der folgenden URL ( https://fcp.efulfillmentservice.com/xml/inventor ) aus der Doku bekomme ich wenigstens eine Sinnvolle Antwort:
MerchantID not found
joergimann
User
Beiträge: 14
Registriert: Montag 29. September 2014, 20:49

Ok das probiere ich heute Abend mal aus.
Danke.
Antworten