
OXID Shop Optimierung mit DOIT Workflow
Die DOIT Workflow Software bietet eine leistungsstarke Lösung zur Optimierung von OXID Shops. Diese Präsentation erklärt die Struktur und Funktionsweise des DOIT Workflow-Systems sowie dessen vielfältige Anwendungsmöglichkeiten für die Shop-Optimierung.
Ein DOIT Workflow besteht aus einer oder mehreren Tasks, die sequentiell abgearbeitet werden. Jede Task wiederum setzt sich aus einem oder mehreren Steps zusammen. Diese hierarchische Struktur ermöglicht eine flexible und effiziente Verarbeitung von Shop und anderen Daten.
Struktur eines DOIT Workflows


Yaml-Konfiguration
Jeder Workflow wir mit exakt 1 Yaml-Datei definiert.
Alle Yaml-Dateien für die Workflows liegen im Ordner:
/modules/webtools/doitconfig
oder
/modules/webtools/doitconfig/doitmodulname
oder
/modules/webtools/doitcustomerconfig
oder
/modules/webtools/doitcustomerconfig/doitmodulname

Basis Einstellungen
Jede YAML Datei, die einem Workflow entspricht, besteht aus 3 Haupt-Bestandteilen

module:
Enthält Basis-Informationen des Workflows:
- Klasse und Namespace der im Workflow aufzurufenden Funktionen
- Workflow aktiv /inaktiv
- Menge der Steps die in einem Task Aufruf ausgeführt werden sollen

Formular
Bei jedem Workflow werden vor dem Starten des Workflows Informationen angezeigt. Diese sind über ein frei definierbares Formular anzeigbar.
Das Formular ist erweiterbar mit Datei-Upload Funktionen


typischer Workflow Aufbau
Jeder Workflow besteht aus:
- module
- form
- und dem eigentlichen Workflow „steps:“

Tasks
Ein Workflow besteht aus beliebig vielen Tasks die nacheinander ausgeführt werden.
Tasks können nach Belieben ein- oder ausgeschaltet werden.

Steps – einfach
Jede Task besteht aus immer gleichen Steps die die eigentlichen Aufgaben durchführen.
Step-Definitionen können sehr einfach sein.

Steps – umfangreich
Bei jedem Step können auch viele weitere Möglichkeiten eingestellt werden.
Zur Verfügung stehen:
- Debugging
- verschiedene Modes
- Input und Output Funktionen
- Log-Funktionen
- und mehr
Meistens sind so umfangreiche Konfigurationen nicht notwendig!
mode: Magic happens!
Jeder Step wird anhand der „mode:“ Einstellungen ausgeführt.
D.h. manchmal besteht eine Task lediglich aus dem 1-maligen Aufruf einer Funktion oder speziellen Funktion.
In anderen Fällen wird ein Step für jede Zeile einer Datenbankabfrage, eines Inputfiles oder einer Variablen durchgeführt.


Datenbank Zugriff
Es kann auf jede Tabelle im Shop sehr einfach zugegriffen werden.
Entweder komplett mit Angabe „dbtable:“ oder mit einem query, Parameter „query:“
Tipp:
Um beim Entwickeln zu debuggen, ist es sehr einfach nur einen bestimmten Datensatz aus einer Tabelle per Query auszuwählen und so mit einzelnen oder wenigen Datensätzen zu entwicklen.
DOITData
Kern der DOIT-Technologie ist DOITData.
Im Prinzip werden mit DOITData beliebige Daten in Datenbanktabellen gespeichert, die dann in beliebigen DOIT-Abläufen weiter verwendet werden können.
Somit können auf einfachste Weise unterschiedlichste Daten aus völlig unterschiedlichen Quellen gesammelt und wenn gewünscht ergänzt werden.
Völlig unabhängig von Datenbankdefinitionen.

DOIT Data Beispiel
In einem Workflow wird der Aufruf einer Funktion die DOITData Objekte erzeugt, definiert.

Beispiel-Daten
Es wird ein beliebiges Objekt erzeugt, das beliebige ergänzende Artikeldaten enthält.
- Google Shopping
- Cross Selling
- SEO Daten

Beispiel Daten Ausgabe
So könnte ein Daten-Object aussehen dass, dass unterschiedliche Daten sammelt, in DOITData speichert und beliebig verwendet werden kann.

DOITData speichern
Mit der DOITData-Klasse können die Daten sehr einfach in beliebigen Tabellen in der Datenbank gespeichert werden.

DOITData laden
Die als Objekte gespeicherten Daten werden in der gleichen Struktur wieder geladen. Die Struktur der Objekte bleibt erhalten.
DOITDataList
Um in einem Schwung viele DOITData Objekte zu erzeugen, kann DOITDataList verwendet werden.
Umgekehrt können so auch viele vorher erzeugten Daten eines Typs auf einmal geladen werden.

DOITDataList -Daten Generierung
Es wird eine Liste von DOITData Objekten erzeugt, die mit einem Save gespeichert werden.

DOITDataList – Daten laden
Einmal in der Datenbank gespeichert, stehen Informationen in jedem Step per load-Funktionen zur Verfügung.
Alle DOITData-Daten die mit dem Namen „ArticleUpdate“ gespeichert wurden, werden aus der Datenbank geladen.

StepTraits – Step Variablen
In jeder Funktion, die durch einen Step aufgerufen wird, stehen Step-Variablen zur Verfügung, wenn
- die Variablen mit $this→getStepvariables() geladen wurden
- die Klasse StepTraits benutzt wird

Step Variablen
Die Variablen enthalten:
- während der Steps 1-n eines Tasks akkumulierte Daten
- einzelne Werte

einzelne Daten
- Step (gesammelte Daten des Steps)
- SessionVar (Wert der in Yaml definierten Sessionvar)
- Cnt (aktueller Zähler)
- Max (maximale Anzahl der Steps der Task)
- StepNr (die Nummer der Task)
- Globals (globale Variablen des Workflows)

Output-Felder
Diese können im Step beliebig gefüllt werden und die Ergebnisse werden während des Aufrufs oder am Ende einer Task verarbeitet.
RunOutput / ResultOutput werden während des Laufes der Task im Frontend angezeigt.

TaskData – Beispiel
Eine gängie Vorgehensweise ist es in einer Task Daten zu sammeln und diese am Ende der Task zu speichern.

TaskData – Funktion
Im Beispiel füllt die Funktion TaskDataExample die Variable TaskData, so das am Ende der Task eine Liste (Array) mit allen gesammelten Daten vorliegt.
Am Ende der Task setzt DOIT Workflow den Wert in die Variable „TaskDataVariable“ und speichert den Wert zusätzlich noch in der Datei „myTaskData.txt“ als PHP Object.
Im Prinzip funktioniert es ähnlch mit den Variablen LogOutput, ResultOutput, DebugOutput, ResultErrorOutput.
Conditions
Bedingungen sind ein sehr interessanter Teil der DOIT Funktionalität.
Mit Conditions (Bedingungen) prüft DOIT ob eine Bedingung in einem Step zutrifft.
DOIT lädt im Hintergrund immer abhängig von den Daten-Typen für die die Bedingungen geprüft werden sollen, die entsprechenden Daten und werte sie aus.
DOIT-Conditions sind vielfältigste Prüfungen möglich.
Die Anwendungsmöglichkeiten sind fast unbegrenzt.
Ob B2C oder B2B, ob Artikel Felder oder Bestellungen abgefragt werden sollen oder Kunden und ihre Bestellungen, egal.
Hier nur ein paar Ideen.

1 Bedingung
Finde alle Artikel deren Namen „T-Shirt“ enthält

2 Bedingungen
Finde T-Shirts mit Preis > 50.

2 Bedingungen Range
Finde Artikel mit Preis zwischen 30 – 60

Bedingungen mit unterschiedlichen Objekten
Finde Artikel wenn er in bestimmter Kategorie ist und Preis 100 hat.

Bestellungen filtern
Finde Bestellungen für Artikel mit Artikelnummer 1 oder 2

User nach Benutzergruppe filtern
Finde User die in Benutzergruppe 1 oder 2 sind
Die Anwendugnsmöglichkeiten der DOIT Workflow Technologie sind fast unbegrenzt!
Wir lassen dich nicht alleine
Kundenworkflow für DOIT Software
Wir wollen Sie mit Daten überzeugen. Wir kreieren ein Audit gemäß Ihres Status Quo und Zielen. Wir analysieren Ihren Webshop Ist-Zustand und zeigen mit dem Audit Quick Wins und Langfristpotenziale mit DOIT. Bereits im Zweitgespräch werden wir Ihnen ein Angebot auf Basis unserer Ergebnisse machen.

Kostenloses Erstgespräch
Vorstellung von webtools.de und DOIT
Fragenkatalog zur Bedarfsermittlung
Grobe Einordnung, ob DOIT zum Shop grundsätzlich passt
Ergebnis: Klare Zieldefinition + Wunschfokus für das folgende Audit

Website Audit
Analyse der Ist-Situation
Je nach Kundenwunsch: SEO, SEA, SHOP Analyse
Tools: GSC, Shopdaten, Screaming Frog etc.
Ergebnis: Kompakter Audit-Bericht mit Pain Points, Quick Wins & Langfristpotenzial

Zweitgespräch inkl. Angebot / Case
Präsentation des Audits + DOIT-Paket
Demonstration von DOIT-Modulen
Vorstellung eines konkreten Anwendungscases
Ergebnis: Aufzeigen Return-on-Investment und Angebotsunterbreitung
Maximale Shop-Optimierung. Minimaler Aufwand.
Kunden lieben uns
Deswegen lieben unsere Kunden uns. Denn wir machen E-Commerce-Optimierung zum digitalen Standardprozess – für mehr Sichtbarkeit, Performance und Wachstum. In den letzten 20 Jahren haben wir vielen OXID Shop, Shopify, Magento, als auch Shopware Kunden geholfen, ihre Performance und Gewinn zu steigern, u.a. Street One, Cecil, Kaufbei, Vogue, Zeppelin, Wall Art, August Richter, Hyundai, DruckerPatronenHandel.de, Pro-Plast.








