Jump to content
Jesper

Factuur laten uploaden naar andere FTP server

Recommended Posts

Goedemiddag,

Ik zou graag willen dat mijn facturen automatisch worden geupload nadat de betaling is voltooid naar een andere FTP server. Hoe kan ik dit bereiken?

Ik heb al gekeken bij PaymentModule.php maar als ik probeer met mail(); een test te sturen doet hij niks als ik een bestelling maak en op betaald zet.

Zou iemand me vooruit kunnen helpen?

Share this post


Link to post
Share on other sites

Beste Jesper,

Je zou deze module kunnen gebruiken:
https://addons.prestashop.com/nl/migratie-backup/29183-save-invoices-dropbox-google-drive-and-locally.html

En daarnaast eventueel een lftp verbinding kunnen opzetten om je bestanden met mirror over te zetten middels een cronjob.

Hier wat voorbeelden met lftp:
http://lftp.yar.ru/lftp-man.html
https://www.cyberciti.biz/faq/lftp-mirror-example/
https://gist.github.com/pixeline/0f9f922cffb5a6bba97a

 

  • Like 1

Share this post


Link to post
Share on other sites

Hallo,

Bedankt voor je reactie, echter heb ik zelf ervaring met PHP en dus zou ik het zelf kunnen maken, ik weet alleen niet waar ik het verzenden van de mail kan vinden die de pdf mee stuurt zodra je betaald hebt zodat ik daar de factuur pdf van af kan "jatten" en uploaden naar een FTP.

Share this post


Link to post
Share on other sites

Beste Jesper,

Voor het genereren van de pdf wordt de classe PDF.php gebruikt. Zoek maar eens door je code met new PDF. Met de functie render wordt dan de pdf gegenereerd.

$file_attachement['content'] = $pdf->render(false); (hiermee wordt de pdf aan het mail object gekoppeld.)
Het object Mail wordt in PaymentModule.php gebruik om dan vervolgens mail te versturen. Daarmee zou je het moeten kunnen oplossen.

Succes er mee.

Share this post


Link to post
Share on other sites
// Join PDF invoice
if ((int)Configuration::get('PS_INVOICE') && $order_status->invoice && $order->invoice_number) {
	$order_invoice_list = $order->getInvoicesCollection();
	Hook::exec('actionPDFInvoiceRender', array('order_invoice_list' => $order_invoice_list));
	$pdf = new PDF($order_invoice_list, PDF::TEMPLATE_INVOICE, $this->context->smarty);
	$file_attachement['content'] = $pdf->render(false);
	$file_attachement['name'] = Configuration::get('PS_INVOICE_PREFIX', (int)$order->id_lang, null, $order->id_shop).sprintf('%06d', $order->invoice_number).'.pdf';
	$file_attachement['mime'] = 'application/pdf';
	file_put_contents(_PS_ROOT_DIR_."orders/factuur-{$file_attachement['name']}.pdf", $file_attachement['content']);
} else {
	$file_attachement = null;
}

Enig idee waarom er niks word geüpload? Rechten zijn ingesteld op 777 op de folder "orders"

Share this post


Link to post
Share on other sites

Ik zou zeggen loop je logs na en maak gebruik var_dump() in je aangepaste om te debuggen of je variabelen correct gevuld zijn.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More