Um die Rechnungs-Nr. für Mails verfügbar zu machen, bedarf es einer Erweiterung der Funktion addwithemail in der /classes/order/OrderHistory.php:
$result = Db::getInstance()->getRow('
SELECT osl.`template`, c.`id_gender`, c.`lastname`, c.`firstname`, osl.`name` AS osname, c.`email`, os.`module_name`, os.`id_order_state`, o.`order_note`, o.`invoice_number`
FROM `'._DB_PREFIX_.'order_history` oh
LEFT JOIN `'._DB_PREFIX_.'orders` o ON oh.`id_order` = o.`id_order`
LEFT JOIN `'._DB_PREFIX_.'customer` c ON o.`id_customer` = c.`id_customer`
LEFT JOIN `'._DB_PREFIX_.'order_state` os ON oh.`id_order_state` = os.`id_order_state`
LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = o.`id_lang`)
WHERE oh.`id_order_history` = '.(int)$this->id.' AND os.`send_email` = 1');
if (isset($result['template']) && Validate::isEmail($result['email']))
{
ShopUrl::cacheMainDomainForShop($order->id_shop);
$topic = $result['osname'];
$data = array(
'{lastname}' => $result['lastname'],
'{firstname}' => $result['firstname'],
'{order_note}' => $result['order_note'],
'{id_order}' => (int)$this->id_order,
'{order_name}' => $order->getUniqReference(),
'{invoice_number}' => 'RE' . date("y") . '-' . $result['invoice_number']
);
Die Variable steht nun für jede Mail zur Verfügung. Man kann sie einsetzen mit dem Namen {invoice_number}.
Das Ergebnis ist eine automatisch auf das Jahresdatum aktualisierte Rechnungs-Nr. in der Form RE[zweistellige Jahreszahl]-[Rechnungsnummer], also z.B. RE19-78666
Die Jahreszahl wird durch die PHP-Funktion date("y") erzeugt, wobei ein großes Y für die Langform 2019 stehen würde. Verknüpft werden die einzelnen Bestandteile jeweils mit einem Punkt.