Claudiocool Posted December 18, 2016 Share Posted December 18, 2016 Hallo zusammen, Wir haben -wie sicher viele andere Shopbetreiber auch- ein eigenes System, um Rechnungen zu schreiben, da wir ja nicht ausschließlich online verkaufen. Nun wäre das blöd, den Prestashop die Rechnungen machen zu lassen und dann alles von Hand in der Buchhaltung einzupflegen, dazu dann im WWS die verkauften Artikel zu buchen usw. Nun wäre es super, wenn wir stattdessen bei einer Bestellung dem Kunden unsere eigene PDF-Rechnung zum Download bereitstellen könnten, dann hat er jederzeit die Möglichkeit, diese in seinem Account abzurufen und wir können gleichzeitig weiterhin die Funktionalität unseres WW-Systems nutzen, Rechnungen direkt an den Kunden zu mailen. Sinn der Sache ist es, später dezentral zu liefern, also Waren direkt vom Lieferanten neutral an die Kundenadresse zu bekommen, da wäre diese Funktion exakt das, was wir benötigen. Wie vorgehen? Link to comment Share on other sites More sharing options...
Whiley Posted December 18, 2016 Share Posted December 18, 2016 mein erster Ansatz wäre: 1. du erstellst einen neuen Ordner sagen wir: /invoices 2. In diessen Ordner kopierst du die erstellten Rechnungen als PDF (automatisiert) und gibst denen den Namen der Bestell-ID vom Shop (z,B. 6.pdf) 3 Du manipulierst den Rechnungs-PDF-Knopf in der Bestellübersicht indem du die Datei: /themes/DEIN_TEMPLATE/history.tpl öffnest und den PDF-Aufruf (ca Zeile 81): <a class="link-button" href="{$link->getPageLink('pdf-invoice', true, NULL, "id_order={$order.id_order}")|escape:'html':'UTF-8'}" title="{l s='Invoice'}" target="_blank"> <i class="icon-file-text large"></i>{l s='PDF'} </a> ersetzt durch: <a class="link-button" href="/invoices/{$order.id_order}.pdf" title="{l s='Invoice'}" target="_blank"> <i class="icon-file-text large"></i>{l s='PDF'} </a> Wie gesagt ein erster Ansatz, müßte so funktionieren, ev müßtest du noch Sicherheiten einbauen, daß nicht jeder jede Rechnung aufmachen kann.. Grüsse Whiley 1 Link to comment Share on other sites More sharing options...
Claudiocool Posted December 18, 2016 Author Share Posted December 18, 2016 Das klingt erstmaöl gut, das werde ich die Tage mal testen. Ich gebe Bescheid, wenn es so geht, wäre auf jeden Fall perfekt. Link to comment Share on other sites More sharing options...
Claudiocool Posted October 6, 2018 Author Share Posted October 6, 2018 (edited) Ich hole das jetzt nochmal hoch, weil wir das jetzt endlich implementieren wollen. Whileys Änderung ist drin, jetzt geht es eigentlich nur noch darum, dass der Kunde eine hinterlegte Rechnung abrufen kann. Im Rechnungsfeld steht aber nur ein "-" drin. Wenn ich nun im Admin eine Rechnung erstelle, setzt er die Invoice auf true und die Rechnung ist abrufbar. So weit so gut, das geht schonmal. Schöner wäre, wenn er jetzt anstelle der Prüfung, ob invoice=true einfach im Verzeichnis suchen würde, ob die entsprechende Rechnung als pdf vorhanden ist und dann den Download erlaubt, also praktisch das if (isset($order.invoice) && $order.invoice && isset($order.invoice_number) && $order.invoice_number) && isset($invoiceAllowed) && $invoiceAllowed == true wegfiele und stattdessen dann die Abfrage, ob eine PDF mit dem Namen {$order.id_order}.pdf im Verzeichnis /invoices existiert. Es müßte ja mit "if file_exists" machbar sein, aber wie lautet in dem tpl dann die korrekte syntax? Die Abfrage müßte dann z.b. suchen, ob in /invoices die Datei {$order.reference}{$order.id_customer}.pdf existiert Edited October 6, 2018 by Claudiocool (see edit history) Link to comment Share on other sites More sharing options...
Claudiocool Posted October 13, 2018 Author Share Posted October 13, 2018 Da habe ich jetzt gleich nochmal eine Frage: Wenn die Rechnung jetzt im Verzeichnis liegt und gemäß obiger Nomenklatur benannt ist, wie biege ich den Link in der Bestellübersicht im Adminbereich um? Dort wird jetzt ein Dokumentsymbol angezeigt, dazu wäre es aber jetzt natürlich perfekt, wenn ich da dann auch die PDF aufrufen kann, die der Kunde auch holen kann. Link to comment Share on other sites More sharing options...
rictools Posted October 14, 2018 Share Posted October 14, 2018 Das könnte per .htaccess-Umleitung gehen. Link to comment Share on other sites More sharing options...
Claudiocool Posted October 14, 2018 Author Share Posted October 14, 2018 Hallo Christian, im Frontend habe ich das schon so gesetzt, wie Whiley es weiter oben beschrieben hatte, das funktioniert, man kann die Rechnung dort aufrufen, also die von mir entsprechend benannte PDF wird dem Nutzer angezeigt. Das ist schonmal okay. Jetzt wird der Link quasi erzeugt, wenn der Status auf "versendet" gesetzt ist. Im Frontend geht es (mit der Einschränkung, dass das bei jedem User gesetzt wird, ich also jetzt bei jedem die Rechnung ins Verzeichnis legen muss, weil ich das mit der Bedingung noch nicht hinbekommen habe, also das PDF-Symbol nur kommt, wenn auch tatsächlich die Rechnung drinliegt (mit einem if file_exists). Im Backend zeigt es jetzt so an, wenn die Bestellung auf versendet gesetzt ist: Jetzt suche ich also im Backoffice die Stelle, an der zum PDF verlinkt wird, um dort dieselbe Nomenklatur zu hinterlegen. Dadurch ist man dann in der Lage, im BO schnell nachzusehen, was in der Rechnung steht, so wie es jetzt im FE auch geht. Rechnungen selbst werden bei mir vom Presta nicht erstellt, weil der Shop bei uns nur zu einem Teil die Geschäfte macht, vieles geht lokal und per Telefon/Mail, da würde ich sonst mit den Rechnungsnummern im Archiv Probleme bekommen, wenn die noch nach Jahren zugeordnet werden müssten, weil ein Kunde nach Jahren irgendwelche Fragen zu seinen Sachen hat. Man kann zwar irgendwie forschen, aber das soll nicht vorm Kunden passieren. Link to comment Share on other sites More sharing options...
rictools Posted October 14, 2018 Share Posted October 14, 2018 Nun, du müßtest doch jetzt schauen, wie der Link beim Klick auf das PDF-Symbol lautet und wie er lauten muss, dann sollte es doch möglich sein, eine Umleitungsregel per .htaccess einzurichten. Link to comment Share on other sites More sharing options...
Claudiocool Posted December 8, 2018 Author Share Posted December 8, 2018 Weiss jemand zufällig, wo der Aufruf in der Bestellmaske im Adminbereich erfolgt? Ich würde gerne auch von dort aus die Rechnungen aufrufbar haben, damit man da auch sehen kann, ob das Dokument hinterlegt ist. Also hier: Link to comment Share on other sites More sharing options...
Claudiocool Posted December 12, 2018 Author Share Posted December 12, 2018 (edited) Andere Frage noch dazu: Das obige funktioniert jetzt leider nur bei Bestellungen von angelegten Usern, bei Gastbestellungen zeigt er leider keinen Button für eine Rechnung an. Wo müßte das denn jetzt rein? In der Order-Detail.tpl steht jetzt {if $invoice AND $invoiceAllowed} <p> <i class="icon-file-text"></i> <a target="_blank" href="{$link->getPageLink('pdf-invoice', true)}?id_order={$order->id|intval}{if $is_guest}&secure_key={$order->secure_key|escape:'html':'UTF-8'}{/if}">{l s='Download your invoice as a PDF file.'}</a> </p> {/if} Das ist das original, nur sieht der Kunde da keine PDF-Datei, weil ich die nicht so hinkriege, dass die Kombi aus {$order.reference}{$order.id_customer}.pdf hier funktioniert. Edited December 12, 2018 by Claudiocool (see edit history) Link to comment Share on other sites More sharing options...
Claudiocool Posted November 19, 2019 Author Share Posted November 19, 2019 Ich will das jetzt nochmal hochholen: 2 Dinge fehlen mir jetzt noch: Gastbesteller sollten die Rechnung auch abholen können, bisher geht es nur bei Kunden mit Account Im Backend kriege ich es auch nicht zu sehen, weiß jemand, in welcher Datei man den Link umbiegen müsste? Momentan heißt der Link dazu ...../adminxxxxx/index.php?controller=AdminPdf&token=.......... Link to comment Share on other sites More sharing options...
rictools Posted November 19, 2019 Share Posted November 19, 2019 Der Zugang zu den Bestelldaten für Gastbesteller mit einem geheimen (über unverschlüsselte E-Mail übermittelten) Link dürfte sowieso nicht gerade besonders datenschutzkonform sein, ggf. könntest du die Gastbestellmöglichkeit abschalten. Bei mir sind die Links zur Rechnung bei Gast- und angemeldeten Kunden identisch, nach dem Token kommt noch "&submitAction=generateInvoicePDF&id_order=1234". Übrigens, vermeide aus Sicherheitsgründen deinen Adminordner zu verraten, sichtbar ist er zwar ausgeixt, im Linkziel ist er aber zu sehen. Link to comment Share on other sites More sharing options...
Claudiocool Posted November 19, 2019 Author Share Posted November 19, 2019 (edited) Ich müßte jetzt wissen, wo der Link im BO erzeugt wird, damit ich den auch dahinführen kann, wo die Rechnungen liegen. An dem Linkziel können sich dann die Hacker die Zähne ausbeißen Gastbestelluntgen sind hier ein Muss, es sind ca. 80% Edited November 19, 2019 by Claudiocool (see edit history) Link to comment Share on other sites More sharing options...
Claudiocool Posted November 22, 2019 Author Share Posted November 22, 2019 Wir haben da ein eigenes System, das die Dateinamen der PDF erzeugt und gleich in den Invoice-Ordner legt. Kundenseitig funktioniert es perfekt, nur aus dem BO heraus komme ich da nicht ran, daher suche ich die Stelle im Code, wo die Rechnungen aufgerufen werden, um das dann auch genauso aus dem BO fischen zu können. Link to comment Share on other sites More sharing options...
Claudiocool Posted August 3 Author Share Posted August 3 Nun ist ja schon ein wenig Zeit vergangen und ich mache gerade munseren ersten 8er fertig. Jetzt wäre natürlich auch hier interessant, wo da die Rechnungsnummern generiert werden, um einen ähnlichen Rechnungsspeicher für die Kunden zu generieren. Hat da schonmal wer was damit gemacht? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now