Seite 1 von 1

XML Request

Verfasst: Mittwoch 4. Januar 2017, 09:40
von joergimann
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

Re: XML Request

Verfasst: Mittwoch 4. Januar 2017, 10:00
von 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‽

Re: XML Request

Verfasst: Mittwoch 4. Januar 2017, 10:09
von Sirius3
@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.

Re: XML Request

Verfasst: Mittwoch 4. Januar 2017, 16:27
von joergimann
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]

Re: XML Request

Verfasst: Mittwoch 4. Januar 2017, 16:31
von 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.

Re: XML Request

Verfasst: Mittwoch 4. Januar 2017, 17:27
von joergimann
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. 

Re: XML Request

Verfasst: Mittwoch 4. Januar 2017, 17:32
von 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.

Re: XML Request

Verfasst: Donnerstag 5. Januar 2017, 13:45
von joergimann
Danke für eure Antworten.

Lieben Gruß
Jörg

Re: XML Request

Verfasst: Dienstag 10. Januar 2017, 00:03
von harryberlin
sind das im ersten post gültige userdaten? weil sie im vierten ausgeixt wurden.

Re: XML Request

Verfasst: Montag 16. Januar 2017, 12:07
von joergimann
Nee das sind nur Testdaten.
Doch ich bekomme es nicht hin - leider.

Re: XML Request

Verfasst: Montag 16. Januar 2017, 12:42
von pyHoax
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

Re: XML Request

Verfasst: Montag 16. Januar 2017, 13:11
von joergimann
Ok das probiere ich heute Abend mal aus.
Danke.