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:
Feldbeschreibung der Einstellungen
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:
Auftragshistorie
Barcode
Weitere bestellte Artikel
Bestelldetails
Info: Es sind neue Vorlagenvariablen hinzugekommen, die du hier in der Liste findest.
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
Druckdaten
Statuswechsel
Auftragsdokumente
Adressen