Neu Workflow WebRequest Post (Json)

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
Hallo zusammen, wir machen einen JTL Request "Post" Method. Aktuell empfangen wir die Daten als "XML" bei dem Post. Ist es auch möglich als json? würde mich freuen wenn jemand eine Info hat
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.972
2.263
Berlin
Firma
css-umsetzung
doch.

direktquery setzt die Angabe einer tabelle voraus daher habe ich die mal einfach angegeben:

Beispiel:
Code:
{% capture sql %}
select top 1 'css-umsetzung' as firma, 'toll' as status from tKunde
FOR JSON AUTO
{% endcapture %}
{{ sql  |DirectQueryScalar  }}
 
  • Gefällt mir
Reaktionen: PUNISHER

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
ok, danke! wie ist es denn generell möglich per Post Request Informationen zu senden. Was muss im Body stehen im Workflow? Hast du ein Beispiel?
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.972
2.263
Berlin
Firma
css-umsetzung
Ja habe ich, ich zeige das anhand meine WF als das Lieferdatum nicht mehr im Shop ankamen weil die wawi da nen BUG hatte und ich die dann nachträglich aus dem Shop holte:

zuerst der Screenshot als Übersicht:

1564051089813.png

nun zu den einzelnen Daten, ich gehe immer auf die io.php wenn es um den Shop geht

url: https://demoshop/io.php
header:
Code:
User-Agent: JTLWAWI
Content-Type: application/x-www-form-urlencoded
Accept: text/text
Accept-Encoding: gzip, deflate

body:
Code:
io=css_dev&action=lieferdatum&cBestellNr={{ Vorgang.Stammdaten.ExterneAuftragsnummer }}

die Daten auswerten um eine Variable zu setzen ist dann spaßig, denn schlechter hätte JTL das aus meiner Sicht nicht machen können:
ich muss also das was ich als return zurückgebe in Tilde Zeichen setzen damit das aus dem ganzen Datenmüll den ich bekomme herausfiltern kann.

Code:
{{ Vorgang.Sonstiges.Statustext | StripNewlines |  Replace: ".+\~(.+)\~":"$1" }}
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
wenn ich die gleichen Infos sende wie bei dir, dann sieht so der Log aus. Also Body wird nicht übertragen
 

Anhänge

  • Bildschirmfoto 2019-07-25 um 22.02.11.png
    Bildschirmfoto 2019-07-25 um 22.02.11.png
    243,2 KB · Aufrufe: 232

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.972
2.263
Berlin
Firma
css-umsetzung
Ich kann mit der Info jetzt nicht wirklich etwas anfangen.
Wo holst du die Ausgabe her und was hast du im body hinterlegt.

Es wäre gut wenn du das so aufschlüsselst wie ich es getan habe mit der Angabe was du dann beim webserver abfragst.
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
das ist die Logdatei vom Server. Aanbei findest du mal die Infos die ich "senden" will per POST.
 

Anhänge

  • addProductWithVariation.zip
    2,4 KB · Aufrufe: 35

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.972
2.263
Berlin
Firma
css-umsetzung
Dann machst du eventuell etwas falsch?

Ich trage diese Daten so ein:
Code:
io=css_dev&action=test&json={
    "data": [
        {
            "product_sku": "BCTU0042",
            "product_type": "T-SHIRT",
            "brand": "American Apparel",
            "departement": "Men",
            "product_name": "2007 Unisex Fine Jersey Long Sleeve T-Shirt",
..............

dann starte ich den Workflow und mein Plugin nimmt diese Daten entgegen (um zu sehen was für Daten ankommen gebe ich diese zurück und befülle das Hinweis Feld damit:

Gesendete Daten die am Server ankommen:
Code:
X-Powered-By=PHP/7.1.30
Vary=Accept-Encoding
Content-Encoding=
X-UA-Compatible=IE=edge
Content-Length=3571
Keep-Alive=timeout=5, max=100
Connection=Keep-Alive
Content-Type=text/html; charset=iso-8859-1

POST Daten:
Array
(
    [io] => css_dev
    [action] => test
    [json] => {
    "data": [
        {
            "product_sku": "BCTU0042",
            "product_type": "T-SHIRT",
            "brand": "American Apparel",
            "departement": "Men",
            "product_name": "2007 Unisex Fine Jersey Long Sleeve T-Shirt",
            "image": "https://d1y.cloudfront.net/products/10/product_1551968618.jpg",
            "variant_count": 19,
            "currency": "EUR",
            "files": [
                {
                    "ID": "front",
                    "type": "front",
                    "title": "Front print",
                    "additional_price": "5.95",
                    "printfile": {
                        "format_width": 2000,
                        "format_height": 4000
                    }
                },
                { ...................

Nun verwende ich json_decode für den Datensatz und erhalte:
Code:
stdClass Object
(
    [data] => Array
        (
            [0] => stdClass Object
                (
                    [product_sku] => BCTU0042
                    [product_type] => T-SHIRT
                    [brand] => American Apparel
                    [departement] => Men
                    [product_name] => 2007 Unisex Fine Jersey Long Sleeve T-Shirt
                    [image] => https://d1yg2mbqm.cloudfront.net/products/10/product_1551968618.jpg
                    [variant_count] => 19
                    [currency] => EUR
                    [files] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [ID] => front
                                    [type] => front
                                    [title] => Front print
                                    [additional_price] => 5.95
                                    [printfile] => stdClass Object
                                        (
                                            [format_width] => 2000
                                            [format_height] => 4000
                                        )

                                )

                            [1] => stdClass Object
                                (
                                    [ID] => back
     .............
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
diesen Befehl empfängt unser System { "key" : "value" } ist aber ja jetzt vom Aufbau "anders" als bei dir oben
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.972
2.263
Berlin
Firma
css-umsetzung
Wie ich schon schrieb, ich müsste sehen was du da genau machst auf der Empfangsseite, ich zeige mal kurz was ich da mache um das auszuwerten.
Ich gehe ja über diesen Hook
<Hook id="213">hooks.php</Hook> <!--HOOK_IO_HANDLE_REQUEST -->

und habe dann bei mir diesen Code der das jetzt provisorisch verarbeitet und als Antwort zurück an die wawi sendet

Code:
switch($oPlugin->nCalledHook) {

    case HOOK_IO_HANDLE_REQUEST:
            if(empty($_REQUEST['io']) || $_REQUEST['io']!=$oPlugin->cPluginID) return;
            if(!empty($_REQUEST['action']) || $_REQUEST['action']=='test') {
                    echo "~css~"."POST Daten:\n".print_r($_POST,true)."---------------------------------------------------\nJSON DECODED:\n".print_r(\json_decode($_POST['json']),true)."~css~";
                    exit;
            }
        break;

Ich schrieb ja per PN bereits, einfach durchrufen und dann könnte ich per Teamview mal schauen was du da machst und dir eventuell besser helfen.
 

ninoboender

Gut bekanntes Mitglied
3. August 2014
174
1
für die es interessiert und vielleicht hilft es. Ich hatte anscheinend einen Fehler in dem JSON Befehl, mit dieser Struktur hat es geklappt im Body


{
"slideshow": {
"author": "Yours Truly",
"date": "date of publication",
"slides": [
{
"title": "Wake up to WonderWidgets!",
"type": "all"
},
{
"items": [
"Why <em>WonderWidgets</em> are great",
"Who <em>buys</em> WonderWidgets"
],
"title": "Overview",
"type": "all"
}
],
"title": "Sample Slide Show"
}
}

Dann einmal durch den JSON Validator https://jsonlint.com/?code= und dann feuer :)
 
  • Gefällt mir
Reaktionen: Rico Giesler
Ähnliche Themen
Titel Forum Antworten Datum
Neu Kartonagen nicht mehr über Workflow auswählbar nach Update auf 1.11.3 JTL-Workflows - Ideen, Lob und Kritik 0
Neu Workflow für voraussichtlichen Liefertag erstellen JTL-Workflows - Ideen, Lob und Kritik 5
Neu Workflow für voraussichtlichen Liefertag erstellen User helfen Usern - Fragen zu JTL-Wawi 0
Lieferantenbestellung per Workflow bestätigen JTL-Wawi 1.11 0
Neu Workflow: Straße enthält Postfiliale oder Paketshop JTL-Workflows - Fehler und Bugs 3
Neu Workflow 4 Wochen vor vorraus. Lieferdatum Arbeitsabläufe in JTL-Wawi 1
Überverkäufe über Workflow setzen JTL-Wawi 1.10 2
In Diskussion Workflow alle X Tage ausführen JTL-Workflows - Ideen, Lob und Kritik 5
Ausliefern Workflow über API JTL-Wawi 1.9 6
Neu Kann man das Shop-Guthaben von Kunden per Workflow beeinflussen? User helfen Usern - Fragen zu JTL-Wawi 0
JTL-Workflow | Automatisches Speichern von Rechnungen möglich? JTL-Wawi 1.9 2
In Diskussion Workflow Angebote OHNE Auftrag JTL-Workflows - Ideen, Lob und Kritik 8
Gelöst Workflow-Trigger für Selbstabholung / FFN-Versand JTL-Workflows - Fehler und Bugs 2
In Diskussion Workflow für bezahlte Aufträge eines bestimmten Lagers → Pickliste zu bestimmter Uhrzeit JTL-Workflows - Ideen, Lob und Kritik 2
In Diskussion Workflow verändert Wert JTL-Workflows - Ideen, Lob und Kritik 1
Workflow Standardlieferant JTL-Wawi 1.10 2
XML Auftragsimport per Workflow bediinen JTL-Wawi 1.8 1
Issue angelegt [WAWI-44314] Workflow automatisch 2 Pakete erstellen bei bestimmen Produkten? JTL-Workflows - Ideen, Lob und Kritik 2
Gelöst CustomWorkflow erscheint nicht in den Workflow-Aktionen JTL-Workflows - Fehler und Bugs 7
Neu Workflow um einen Artikel bei einem bestimmten Verkaufskanal zu aktivieren oder deaktivieren User helfen Usern - Fragen zu JTL-Wawi 4
Neu Mit Workflow verfügbaren Bestand aller Artikel in Datei schreiben User helfen Usern - Fragen zu JTL-Wawi 8
In Diskussion Workflow ausführen bei Lagerbestand 0 eines Lagers JTL-Workflows - Fehler und Bugs 3
Neu Workflow: WMS Lager nutzen um Versandart zu bestimmen User helfen Usern - Fragen zu JTL-Wawi 1
In Diskussion Workflow für das Austauschen von bestelltem Artikel in einem Auftrag gegen einen alternativen Artikel JTL-Workflows - Ideen, Lob und Kritik 3
Workflow soll wenn Artikel 0 Bestand für 35 Tage hat diesen auf inaktiv setzen JTL-Wawi 1.10 4
Automatischer Workflow für Versand von Gutscheinen versendet den Gutschein nicht JTL-Wawi 1.10 2
Workflow für Benachrichtigung bei Stammkunden JTL-Wawi 1.10 9
Workflow: Neue Kunden direkt einer Kundengruppe zuordnen JTL-Wawi 1.10 6
Neu Workflow: Musterbestellungen (0 € Gesamtbruttowert) automatisch ausliefern lassen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow Versandart prüfen und im Auftrag setzen - speziell für Stücklistenartikel User helfen Usern - Fragen zu JTL-Wawi 0
Neu Ausliefern Workflow mit variablen Ausführungszeiten je nach vorauss. Lieferdatum User helfen Usern - Fragen zu JTL-Wawi 3
In Diskussion Workflow Error While Automating Game Update Notifications JTL-Workflows - Fehler und Bugs 2
Neu Auslesen Bestand per Lager für Workflow zur Anzeige im Onlineshop User helfen Usern - Fragen zu JTL-Wawi 4
Neu Workflow automatisch alle 2 Stunden ausführen – Prüfung auf voraussichtliches Lieferdatum User helfen Usern - Fragen zu JTL-Wawi 11
In Diskussion Workflow zur Zählen von Retouren und Bestellungen von einem Kunden JTL-Workflows - Ideen, Lob und Kritik 1
Neu Utopische Lieferzeiten mit der Post User helfen Usern - Fragen zu JTL-Wawi 1
Deutsche Post Brief Sendungsnummer wird nicht an eBay übertragen JTL-Wawi 1.9 0
Neu Image POST for Article JTL FFN API Technische Fragen zu den JTL-Connectoren 0

Ähnliche Themen