Modul: Freiaufträge (Release: 2025)

Anmerkung: Dieses Modul wird befindet sich in Entwicklung und wird voraussichtlich 2025 veröffentlicht.


Nur in Verbindung mit dem Modul DRUCKSHOP Order-API Methoden

Mit dem Modul Freiaufträge, hast du die Möglichkeit, automatisiert Auftrage in deinem Shop aus anderen Quellen zu erstellen.

Zusätzlich lassen sich auch personalisierte Produkte übermitteln, wodurch automatisch der Position das personalisierte Druckdokument zur Verfügung gestellt wird. Dafür benötigst du lediglich einen Closedshop / eine PRINT LOUNGE, mit aktivierter API-Schnittstelle, personalisierbare Artikel und einen freigeschalteten Benutzer.

Um die personalisierte Druckdatei korrekt abrufen zu können, musst du das Modul unter Module / Freiaufträge konfigurieren:

Einstellungen.png

Feldbeschreibung der Einstellungen

Bezeichnung

Wert

Bezeichnung

Wert

Printlounge API Domain

Bitte tragen hier deine Shop-Domain des Closedshops / der PRINT LOUNGE ein

Benutzername

Benutzername aus der eingetragenen API-Schnittstelle

Passwort

Passwort aus der eingetragenen API-Schnittstelle

Benutzer-ID

Benutzer-ID des Printlounge Shop, zu finden unter Shops. Dort nun unter “Printlounge API Domain” ausgewählten Shop wählen und über “Aktionen” die Benutzergruppen anklicken. Im nächsten Schritt wählst du die Benutzergruppe, in der Ssch der Benutzer befindet, den du benutzen möchtest. In der nun erscheinenden Liste kannst du für den Benutzer die ID kopieren und eintragen.

 

Uber folgender URL kannst du nun Freiaufträg anlegen:

{{domain}}/api/component/Order

Bitte beachte das korrekte Format, welches Übergeben werden muss.
Für eine bessere Übersicht über Pflichtfelder, Schema und Beispieldaten, nutze bitte die Schnittstellenbeschreibung.

Für die Erstellung der personalisierten Druckdatei, muss die korrekte “persId” übertragen werden.
Bei der “persId” handelt es sich um die Artikel-ID aus deinem Closed Shop / PRINT LOUNGE Shop.
Bei der Verwendung der “persId”, muss “persData” gefüllt sein. Bei “persData” handelt es sich um ein Key / Value-Paar mit den im Artikel konfigurierten Personalisierungsvariablen und baut sich wie folgt auf:

"persData": { "VARIABLENNAME1": "WERT1", "VARIABLENNAME2": "WERT2" }

 

Auftragsdetailansicht

Wir haben die Auftragsdetailansicht erneuert und übersichtlicher gestaltet:

Auftragsübersicht_gesamt.png
Auftragsdetailansicht

Auftragshistorie

 

Statushistorie.png

Historie der jeweiligen Statuswechsel

Barcode

 

Barcode.png
generierter Barcode samt Jobnummer

 

Weitere bestellte Artikel

 

weitereArtikel.png
Verlinkung zu weiteren Bestellpositionen des Auftrages, sofern vorhanden

 

Bestelldetails

Info: Es sind neue Vorlagenvariablen hinzugekommen, die du hier in der Liste findest.

Auftragdetails.png
Screenshot

Bezeichnung

Beschreibung

Shop

Shop in dem die Bestellung eingegangen ist

Bestelldatum

Datum/Uhrzeit der Bestellung

Jobnummer

Eindeutige Jobnummer

Externe Referenz-ID

übermittelte externe Referenznummer

Neue Variable: {externalReferenceId}

Auftragsnummer

generierte Auftragsnummer

Paketnummer

Paketnummer

Rechnungsnummer

generierte Rechnungsnummer

allgemeine Bestelldaten

übermittelte allgemeine Bestelldaten, diese stehen jeder Position des Auftrages zur Verfügung.

Neue Variable: {additionalOrderData}

Artikel / Bezeichnung

übermittelte Artikelbezeichnung

Artikelnummer

übermittelte Artikelnummer

Artikel-Zusatzfelder

Auflistung der Artikelzusatzfelder, sofern vorhanden.

Personalisierungs-ID

Übermittelte Personalisierungs-ID, sofern vorhanden

Neue Variable: {personalisationId}

Personalisierungsdaten

Daten der Personalisierung. Nur vorhanden, wenn auch eine Personalisierungs-ID vorhanden ist

Neue Variable: {personalisationData}

Liefertermin

übermittelter Liefertermin

Preis

übermittelter Preis

Beispielaufruf der Variablen anhand der Rechnungsvorlage :

minimalistische Vorlage:

{literal} <style> #rgBlock p, .nopadmarg{padding: 0;margin: 0;} .headline {font-size:24px; font-weight:bold; color:#000000; display: block; padding: 5mm 0 10mm 0; } .billingInformation{padding:0px!important;width: 100%;} .orderHeader td{background-color:#d9d9d9;} .tablePadding > td{padding:0 5px;} .leftSpace{padding-left: 10px;} </style> {/literal} <div style="width:170mm; margin-top:30mm; margin-left:18.5mm"> <div id="rgBlock"> {if $r.firma}<p>{$r.firma}</p>{/if} <p> {if $bestellung.0.rg_geschlecht == "m"} Herr {elseif $bestellung.0.rg_geschlecht == "w"} Frau {/if} {if $r.vorname or $r.nachname} {$r.vorname} {$r.nachname} {/if} </p> {if $r.strasse}<p>{$r.strasse}</p>{/if} {if $r.plz or $r.ort} <p>{$r.plz} {$r.ort}</p> {if $r.land}<p>{$r.land}</p>{/if}<br><br> {/if} {if $r.ustid}<p>USt- ID .: {$r.ustid}</p>{/if} </div> <div class="headline"><p>Rechnung</p></div> <table class="billingInformation" cellspacing="0" cellpadding="0" border="0"> <tr> <td style="width: 25%;"> <!--Auftragsnummer--> {if $bestellung.0.auftragsnummer} <span>Auftrags-Nr.:<br>{$bestellung.0.auftragsnummer}</span> {/if} </td> <td style="width: 25%;"> <!--Rechnungsnummer--> {if $bestellung.0.rechnungsnummer} <span>Rechnungs-Nr.:<br>{$bestellung.0.rechnungsnummer}</span> {/if} </td> <td style="width: 25%;"> <!-- Lieferscheinnummer--> {if $bestellung.0.lieferscheinnummer} <span>Lieferschein-Nr.:<br />{$bestellung.0.lieferscheinnummer}</span> {/if} </td> <td style="width: 25%; text-align: right;"> <!--Datum--> {if $bestellung.0.lieferscheinnummer_datum} <span>Datum:<br>{$bestellung.0.lieferscheinnummer_datum}</span> {/if} </td> </tr> </table> <br> <div class="orderData"> <p><b>externe Referenz-Id</b>: {$bestellung.0.externalReferenceId}</p> <p style="padding: 0;margin: 0"><b>allgemeine Bestelldaten</b>:</p> {foreach from=$bestellung.0.additionalOrderData item=item key=key} <p style="padding: 0;margin: 0">{$key}:{$item}</p> {/foreach} <br/> </div> {foreach from=$bestellung item=item_best key=key_best} <table class="tablePadding" style="border-spacing: 2px; width: 100%;"> <tr class="orderHeader"> <td style="width: 75%;" nowrap align="left"><strong>{$item_best.bezeichnung}</strong></td> <td style="width: 10%;" nowrap align="center">USt.</td> <td style="width: 15%;" nowrap align="right">Preis</td> </tr> <tr><td colspan="3"></td></tr> <tr> <td nowrap> <strong>Auftrags-Nr.: </strong>{$item_best.jobnummer}<br> </td> <td align="center"></td> <td align="right"></td> </tr> </table> <table class="tablePadding" style="border-spacing: 2px; width: 100%;"> <tr><td colspan="3"></td></tr> <tr> <td style="width: 75%;" nowrap align="left"> Material + Verarbeitung ({$item_best.preis.orig_druckpreis} {$item_best.waehrung})<br> {assign var="rep" value="0"} {assign var="rep_ges" value="0"} {foreach from=$item_best.zusatz item=item_zusatz key=key_zusatz} {assign var="rep" value=$item_zusatz.aufschlag|replace:",":"."} {assign var="rep_ges" value="`$rep_ges|replace:",":"."+$rep`"} {$item_zusatz.wert} ({$item_zusatz.aufschlag} {$item_best.waehrung}) <br /> {/foreach}</td> <td style="width: 10%;" nowrap align="center">{$item_best.mwst}%</td> <td style="width: 15%;" nowrap align="right"> {assign var="preis_ges" value="0"} {assign var="rep2" value="0"} {assign var="rep2" value=$item_best.preis.orig_druckpreis|replace:",":"."} {assign var="preis_ges" value="`$preis_ges+$rep_ges+$rep2`"} {$preis_ges|number_format:2:",":"."} {$item_best.waehrung}</td> </tr> {if $item_best.option || $item_best.option_dyn || $item_best.zusatzfelder} <tr><td colspan="3"></td></tr> <tr> <td style="width: 75%;" nowrap align="left"> {if $item_best.zusatzfelder}<br /> {foreach from=$item_best.zusatzfelder item=item_zusatzfelder key=key_zusatzfelder} <strong>{$item_zusatzfelder.bezeichnung}: </strong>{$item_zusatzfelder.value}<br /> {/foreach} {/if} {if $item_best.personalisationId} <br><b>Personalisierungs-ID</b>: {$item_best.personalisationId}<br /><b>Personalisierungsdaten:</b> {foreach from=$item_best.personalisationData item=item_personalisationData key=key_personalisationData}<br /> <b>{$item_personalisationData.bezeichnung}: </b>{$item_personalisationData.value} {/foreach} {/if}</td> <td style="width: 10%;" nowrap align="center"></td> <td style="width: 15%;" nowrap align="right"></td> </tr> {/if} </table> <br> {/foreach} <table class="tablePadding" style="border-spacing: 2px; width: 100%;"> <tr> <td style="width: 25%;"></td> <td style="width: 25%;"> vorgesehenes Lieferdatum:<br><br> {$bestellung.0.liefertermin} </td> <td style="width: 50%; padding:0px;"> <table style="border-spacing: 2px; width: 100%;"> <tr> <td style="width: 50%;"><strong>Summe Waren</strong></td> <td style="width: 50%;" align="right"> <strong> {$bestellung.0.preisWarenkorb.gesamtdruckpreis} {$bestellung.0.waehrung} </strong> </td> </tr> <tr> <td>Versand (19% USt.)</td> <td align="right">{$bestellung.0.preisWarenkorb.versand} {$bestellung.0.waehrung}</td> </tr> {if $bestellung.0.preisWarenkorb.gesamtpreis_netto} {if $bestellung.0.bruttpreise_jn != "1"} <tr> <td nowrap ><strong>Nettobetrag</strong></td> <td align="right" ><strong>{$bestellung.0.preisWarenkorb.gesamtpreis_netto} {$bestellung.0.waehrung}</strong></td> </tr> {/if} {/if} {if !$bestellung.0.ARR_MwstAbweichend} <tr> <td nowrap>Ust. {$bestellung.0.mwst} %</td> <td align="right"> {$bestellung.0.preisWarenkorb.gesamtpreis_enth_mwst} {$bestellung.0.waehrung}</td> </tr> {/if} <tr> <td nowrap><strong>Rechnungsbetrag</strong></td> <td align="right"><strong>{$bestellung.0.preisWarenkorb.gesamtpreis_brutto} {$bestellung.0.waehrung}</strong></td> </tr> </table> </td> </tr> </table> </div>

Ausgabe

 

rechnung_warenkorb.jpg

 

Druckdaten

 

Druckdaten.png

erfolgreich abgerufene Druckdaten

 

Druckdaten_Fehler.png

Fehler beim Abruf der Druckdaten. Hier hast du die Möglichkeit, die Druckdaten erneut abzurufen, sofern die Fehler behoben sind.

Statuswechsel

 

Statusaenderung.png

Hier hast du die Möglichkeit, den Status des Auftrages zu ändern und dadurch weitere Routinen des Auftrages anzustoßen.

Auftragsdokumente

 

Dokumentenabruf.png
Hier lassen sich zum Auftrag die einzelnen Dokumente Aufrufen bzw. erstellen. Achte Bitte auf eine Fehlerfreie Vorlage.

Adressen

 

Adressdaten.png
Die zum Auftrag gehörende Rechnungsadresse und wenn angegeben auch die abweichende Liefer- bzw. Absenderadresse. Der Übersichtshalber, sind diese Bereiche immer eingeklappt.

 

Related content