sand vorbereiteIn der Administration kann unter Verwaltung → Shops → bearbeiten → Vorlagen das Jobticket pro Shop aktiviert werden. Hierfür muss die Vorlage befüllt werden. Das Jobticket wird aktiviert wenn die Vorlage Daten enthält. Dann wird diese jeweils an den eingestellten Stellen angezeigt / ausgegeben.
Umbruch auf eine zweite Seite:
<div style="PAGE-BREAK-AFTER: always">...</div>
Folgende Variablen stehen für das Jobticket zur Verfügung:
Variable | Typ | Beschreibung |
---|
{$order} | object | Bestellung |
{$cart} | array | Warenkorb |
{$orderInfo} | array | Zusätzliche Bestellinformationen |
{$module} | array | Für Abfragen ob jeweiliges Modul aktiv ist |
{$Payment} | array | Zahlungsart (Live) |
{$Firma1} | string | Lieferadresse: Firma |
{$Firma2} | string | Lieferadresse: Firma 2 |
{$Titel} | string | Lieferadresse: Titel |
{$Ansprechpartner} | string | Lieferadresse: Ansprechpartner |
{$Strasse} | string | Lieferadresse: Straße |
{$PLZ} | string | Lieferadresse: PLZ |
{$Ort} | string | Lieferadresse: Ort |
{$Kostenstelle} | string | Kostenstelle |
{$InvoiceCompany} | string | Rechnungsadresse: Firma |
{$InvoiceCompany2} | string | Rechnungsadresse: Firma 2 |
{$InvoiceCompany3} | string | Rechnungsadresse: Firma 3 |
{$InvoiceTitle} | string | Rechnungsadresse: Titel |
{$InvoiceName} | string | Rechnungsadresse: Ansprechpartner |
{$InvoiceStreet} | string | Rechnungsadresse: Straße |
{$InvoiceZIP} | string | Rechnungsadresse: PLZ |
{$InvoiceTown} | string | Rechnungsadresse: Ort |
{$InvoiceCountry} | string | Rechnungsadresse: Land |
{$InvoiceEMail} | string | Rechnungsadresse: E-Mail |
{$Bestelldatum} | string | Bestelldatum |
{$DeliveryDate} | string | Lieferdatum |
{$InvoiceDate} | string | Bestelldatum formatiert (%e.%m.%Y) |
{$Datum} | string | Bestelldatum formatiert (%e.%m.%Y) |
{$Bestellcode} | string | Auftrags-Code (berücksichtigt aus den individuellen Code) |
{$OrderCode} | string | 6-stelliger Auftrags-Code |
{$LieferscheinCode} | string | 6-stelliger Auftrags-Code |
{$Rechungscode} | string | 6-stelliger Auftrags-Code |
{$OrderNr} | string | Bestellnummer |
{$LieferscheinNr} | string | Bestellnummer |
{$InvoiceNr} | string | Bestellnummer |
{$billNumber} | string | Bestellnummer für Dienstleister |
{$Lieferscheindatum} | string | Datum zum Zeitpunkt des Aufrufes |
{$Bemerkung} | string | Bemerkung |
{$CustomerUser} | array | Daten des Benutzers (live) |
{$Kundendaten} | array | Daten des Benutzers (live) |
{$Kunde} | array | Kundennummer des Benutzers (live) |
{$ShopURL} | string | Url des Kunden-Shops |
{$payment} | array | Zahlungsart |
{$delivery} | array | Versandart |
Code-Vorlagen für das Jobticket
# Mit dem folgenden Beispiel kann die verwendete MwSt satz und den dazugehörigen Wert ausgeben.
# Falls der Warenkorb einen der beiden Steuersätze nicht hat, wird diese nicht angezeigt mit "floatval($vatValue) !== 0.0".
{foreach from=$taxSplitted->orderItemTaxSums item=vat key=vatKey}
{if floatval($vat->taxValue) !== 0.0 }
<div>
<span>{$vatKey}% MwSt</span>
<span>{$vat->taxValue/100} EUR</span>
</div>
{/if}
{/foreach}
{assign var="customFields" value=$order->getCustomFields()}
{if $customFields}
{foreach key=name item=value from=$customFields}
{$name}: {$value}<br>
{/foreach}
{/if}
Alte Vorlage:
Innerhalb der folgenden Abfrage werden die Warenkorbpositionen durchlaufen:
{foreach key=key item=item from=$cart}
{/foreach}
Setzen Sie die Abfrage für die Zusatzfelder ein.
{if $item.warenkorb_zusatzfelder_array}
{foreach key=name item=value from=$item.warenkorb_zusatzfelder_array}
{$name}: {$value}<br>
{/foreach}
{/if}
Beispiel:
{foreach key=key item=item from=$cart}
{if $item.warenkorb_zusatzfelder_array}
{foreach key=name item=value from=$item.warenkorb_zusatzfelder_array}
{$name}: {$value}<br>
{/foreach}
{/if}
{/foreach}
Neue Vorlage:
{if $item->get('warenkorb_zusatzfelder_array')}
{foreach from=$item->get('warenkorb_zusatzfelder_array')|unserialize item=zusatzfeld key=name}
{$name}: {$zusatzfeld}
{/foreach}
{/if}
Innerhalb der folgenden Abfrage werden die Warenkorbpositionen durchlaufen:
{foreach key=key item=item from=$cart}
{/foreach}
Setzen Sie die Abfrage für die Artikeloptionen ein.
{if $item.article_options}
{foreach key=name item=value from=$item.article_options}
{$name}: {$value}<br>
{/foreach}
{/if}
Beispiel:
{foreach key=key item=item from=$cart}
{if $item.article_options}
{foreach key=name item=value from=$item.article_options}
{$name}: {$value}<br>
{/foreach}
{/if}
{/foreach}
Â
Â
Innerhalb der folgenden Abfrage werden die Warenkorbpositionen durchlaufen:
{foreach key=key item=item from=$cart}
{/foreach}
Setzen Sie die Abfrage für die Personalisierungsfelder ein.
{if $item.persdata_array}
{foreach key=name item=value from=$item.persdata_array}
{$name}: {$value}<br>
{/foreach}
{/if}
Beispiel:
{foreach key=key item=item from=$cart}
{if $item.persdata_array}
{foreach key=name item=value from=$item.persdata_array}
{$name}: {$value}<br>
{/foreach}
{/if}
{/foreach}
Innerhalb der folgenden Abfrage werden die Warenkorbpositionen durchlaufen:
{foreach key=key item=item from=$cart}
{/foreach}
Setzen Sie die Abfrage für die Artikelbeschreibung ein.
{if $item.article_fulldesc}
{$item.article_fulldesc}
{/if}
Setzen Sie die Abfrage für die interne Artikelbezeichnung ein.
{if $item.article_desc_intern}
{$item.article_desc_intern}
{/if}
Beispiel:
{foreach key=key item=item from=$cart}
{if $item.article_fulldesc}
Artikelbeschreibung: {$item.item.article_fulldesc}
{/if}
{if $item.article_desc_intern}
interne Artikelbezeichnung: {$item.item.article_desc_intern}
{/if}
{/foreach}
Setzen Sie die Abfrage für die Artikelnummer (SAP-Nummer / openTRANS Manufacturer-AID) ein.
{foreach from=$orderObject->getOrderCart() item=item key=cartId name=foo}
Wenn Sie Positionen mit dem Status Storno, Druckfreigabe abgelehnt, Freigabe abgelehnt, Gelöscht ausschließen möchten:
{if in_array($item->get('status'), ['STORNO','DRUCKFREIGABE ABGELEHNT', 'GELÖSCHT', 'FREIGABE ABGELEHNT'])}
{continue}
{/if}
{if $item->getArticle()->get('article_sap_nummer')}{$item->getArticle()->get('article_sap_nummer')}{/if}
{/foreach}
<!-- {bb_vars output='html'}--><head>
<style>
h3 { font-family: Verdana; font-size: large; font-weight: bold; color: #0000FF;}
h1 { font-family: Verdana; font-size: 24px; font-weight: normal }
</style>
</head>
<table width="95%" cellspacing="1" cellpadding="1" border="1" summary="">
<tbody>
<tr>
<td>
<h3>AUFTRAGSTASCHE I-Shop</h3>
</td>
<td width=30% valign="top" align="left">
<h3>Nr.: {$Rechungscode}</h3><br>Termin: schnellst möglich
</td>
</tr>
<tr>
<td> <h1>
<p >{$Firma1}<br />
{$Firma2}<br />
{$Strasse}<br />
{$PLZ} {$Ort}</font></p> </h1>
</td>
<td valign="top" align="left"> <h1>
<p >Bestelldatum:<br />
{$datum}<br />{$OrderDate}<br />Bestellnummer-Nr. {$LieferscheinNr}
- {$LieferscheinCode}</p></h1></td>
</tr>
<tr>
<td>
</td>
<td width="50" align="left">
</td>
</tr>
</tbody>
</table>
<br>
<br>
<table width=95% cellspacing="2" cellpadding="2" bordercolor="#666666" border="0" align="" summary="">
<tbody>
<tr>
<td style="background-color: rgb(204, 204, 204); font-family: Arial;"><font size="2"><span ><strong>Pos.</strong></span></font></td>
<td style="background-color: rgb(204, 204, 204); font-family: Arial;"><font size="2"><span ><strong>Produkt:</strong></span></font></td>
<td style="background-color: rgb(204, 204, 204); font-family: Arial;"><font size="2"><span ><strong>Daten:</strong></span></font></td>
<td style="background-color: rgb(204, 204, 204); font-family: Arial;"><font size="2"><span ><strong>Anzahl</strong></span></font></td>
</tr>
<font size="2"> {counter start=0 print=false assign=pos} {foreach from=$cart item=item} {counter} </font>
<tr valign="top">
<td bgcolor="#ffffcc" bordercolor="#000000"><font size="2"><span >{$pos}<br /></span></font></td>
<td bgcolor="#ffffcc" bordercolor="#000000"><font size="2"><span ><font size="1"><!--Artikelbeschreibung-->{$item.s_desc}{if $item.artikelnummer}<br><!--Artikelnummer-->{$item.artikelnummer}{/if}</font><br />
<br>
<!--Ausgabe von Nichtartikel (Bestelloptionen) -->
{foreach from=$order->getOrderCart() item=cartObject}
{if !$cartObject->getArticle()}<font size="2"><span >
{$cartObject->getCartPosition()}<br>
{$cartObject->get('s_desc')}<br>
Anzahl:{$cartObject->get('s_qty')}<br>
</span></font></br>
{/if}
{/foreach}
<!-- -->
<br /> <!-- Bemerkung -->{if $item.remark} <span style="font-weight: bold;"><font size="1">Bemerkung</font>:</span><br /><font size="1">{$item.remark}</font><br>{/if}
</span></font></td>
<td bgcolor="#ffffcc" bordercolor="#000000"><font size="2"><span >{$item.persdata}</span></font></td>
<td bgcolor="#ffffcc" bordercolor="#000000"><font size="2"><span >{$item.s_qty}</span></font></td>
</tr>
{/foreach}
</tbody>
</table>
<br>
<br>
<table border="1" summary="" width="95%" cellspacing="2" cellpadding="2" align="">
<tbody>
<tr>
<td><span style="font-size: small;"><strong>Endmenge:</strong></span></td>
<td><span style="font-size: small;"><strong>Anz. Kartons:</strong></span></td>
<td><span style="font-size: small;"><strong>zu:</strong></span></td>
<td><span style="font-size: small;"><strong>verpackt von:</strong></span></td>
</tr>
<tr>
<td><span style="font-size: small;"><strong><br><br></strong></span></td>
<td><span style="font-size: small;"><strong>{$artikelnummer}</strong></span></td>
<td><span style="font-size: small;"><strong></strong></span></td>
<td><span style="font-size: small;"><strong></strong></span></td>
</tr>
</tbody>
</table>
Innerhalb der folgenden Abfrage werden bestellbezogene Notizen abgefragt, die nach Bestellung im Backend abgeändert werden können:
VARIABLE
{if $orderObject}{$orderObject->getOrderInfo('notes')}{/if}
{foreach key=key item=additionalField from=$serviceProvider->additionalFields}
{$additionalField->name}: {$additionalField->value}<br>
{/foreach}
{assign var='currency' value=$orderObject->getOrderInfo('currency')}
Symbol: {$currency.symbol}
Name: {$currency.name}
{foreach from=$orderObject->getOrderCart() item=item key=cartId}
{if isset($cart[$item->get('id')]['previewArticleImagePath'])}
<img src="{$cart[$item->get('id')]['previewArticleImagePath']}">
{/if}
{/foreach}
{* nur einträge laden, die den Staus "OK" haben *}
{assign var=orderItems value=$orderObject->getOrderCart(null, true, 'OK')}
{* Anzahl relevante Einträge initilaisieren *}
{assign var=orderItemCount value=0}
{foreach from=$orderItems item=item key=cartId name=foo}
{if $item->get('parent_id') || !$item->get('aid')}{continue}{/if}
{* Anzahl relevante Einträge zählen *}
{$orderItemCount=$orderItemCount+1}
{/foreach}
{counter print=false assign=countPos}
{foreach from=$orderItems item=item key=cartId name=foo}
{if $item->get('parent_id') || !$item->get('aid')}{continue}{/if}
Auftrag {$OrderCode} - Pos {$countPos} von {$orderItemCount}
....
{/foreach}
{foreach from=$item.positionFiles item=itemFile name=foo}
{$itemFile->displayName}
{/foreach}
Jobticket pro Dienstleister
Sollen ausschließlich die Bestellpositionen des jeweiligen Dienstleisters im Jobticket aufgeführt werden, kann dies über die Funktion "Jobticket pro Dienstleister" eingestellt werden. Diese Option befindet sich unter "Verwaltung → Shops → bearbeiten → Vorlagen" (unterhalb des Jobtickets). Ist diese Funktion aktiviert, wird der direkte Download in der Bestellung innerhalb der globalen Administration deaktiviert. Das Jobticket ist dann nur noch im Dienstleisterbackend in den einzelnen Bestellungen downloadbar.