Gelöst Plugin: PaypalPlus Rechnungskauf - Kontodaten ins Wawi übertragen

zzotti

Aktives Mitglied
2. Oktober 2016
7
0
Hallo,

*UPDATE*
Das Plugin funktioniert doch fehlerfrei.
Ich habe es mal für alle hier angehängt.

Was macht es?
Sofern Ihr Paypal Plus in Kombination mit Kauf auf Rechnung (über Paypal) nutzt, dann wird
- die Zahlungsart auf "Paypal Rechnung" geändert - statt Paypal
- Die Paypalkontodaten und Verwendungszweck hinzugefügt. Diese könnten dann im Rechnungstext im Wawi angegeben werden.

Bitte beachten:
Als Kontoinhaber wird aktuell der Verwendungszweck angegeben. (Kontoinhaber ist: Paypal Europe)
Grund: Ich habe keine Ahnung, in welche Variable ich diesen speichern soll, vielleicht hilft da ein Admin.

Wie installiert Ihr es?
Einfach die ZIP Datei in den Plugin Ordner des JTLConnectors entpacken.

Ordnerstruktur:
paypalpluskontodaten
-bootsrap.php
-listenter/OrderListener.php

bootstrap.php

PHP:
<?php

namespace paypalpluskontodaten;

use \jtl\Connector\Plugin\IPlugin;
use \Symfony\Component\EventDispatcher\EventDispatcher;
use \paypalpluskontodaten\listener\OrderListener;
use \jtl\Connector\Event\CustomerOrder\CustomerOrderAfterPullEvent;

class Bootstrap implements IPlugin
{
    public function registerListener(EventDispatcher $dispatcher)
    {
        $dispatcher->addListener(CustomerOrderAfterPullEvent::EVENT_NAME, [
            new OrderListener(),
            'onCustomerOrderAfterPullAction'
        ]);
    }
}

?>

OrderListener.php

PHP:
<?php
namespace paypalpluskontodaten\listener;

use \jtl\Connector\Event\CustomerOrder\CustomerOrderAfterPullEvent;
use \jtl\Connector\Core\Logger\Logger;
use \jtl\Connector\Formatter\ExceptionFormatter;
use \jtl\Connector\Core\Utilities\Language as LanguageUtil;
use \jtl\Connector\Model\CustomerOrderPaymentInfo;

class OrderListener
{
    public function onCustomerOrderAfterPullAction(CustomerOrderAfterPullEvent $event)
    {
        if (strlen($event->getCustomerOrder()->getId()->getEndpoint()) == 0) {
            return;
        }

        try {
            $order = $event->getCustomerOrder();
            $orderId = $order->getId()->getEndpoint();

            //$wc_order = \wc_get_order($order->getId()->getEndpoint());
            //Logger::write(print_r(\get_post_meta($orderId, 'instruction_type', true), true), Logger::WARNING, 'plugin');

            if(\get_post_meta($orderId, 'instruction_type', true) == 'PAY_UPON_INVOICE'){

                $paymentInfo = (new CustomerOrderPaymentInfo())
                ->setBic(\get_post_meta($orderId, 'bank_identifier_code', true))
                ->setIban(\get_post_meta($orderId, 'international_bank_account_number', true))
                ->setAccountHolder(\get_post_meta($orderId, 'reference_number', true))
                ->setBankName(\get_post_meta($orderId, 'bank_name', true));


            $order->setPaymentInfo($paymentInfo);
            $order->setPaymentModuleCode('Paypal Rechnung');

            //Logger::write(print_r($paymentInfo, true), Logger::WARNING, 'plugin');
            }
            else{
                /*
                //Nur zu Testzwecken
                 $paymentInfo = (new CustomerOrderPaymentInfo())
                ->setBic('TestBic')
                ->setIban('TestIban')
                ->setAccountHolder('TestHolder')
                ->setBankName('TestBank');

                $order->setPaymentInfo($paymentInfo);
                $order->setPaymentModuleCode('Paypal Rechnung');
                */
            }

        } catch (\Exception $e) {
            Logger::write(ExceptionFormatter::format($e), Logger::WARNING, 'plugin');
        }
    }
}


?>

?>
 

Anhänge

  • paypalpluskontodaten.zip
    1,5 KB · Aufrufe: 30
Zuletzt bearbeitet:

zzotti

Aktives Mitglied
2. Oktober 2016
7
0
OK, falscher Alarm.

Das Plugin funktioniert und die Daten werden richtig übertragen. Zumindest findet man sie in der Datenbank.
Ich habe einfach an der falschen Stelle im Wawi geschaut :rolleyes:
 

Ähnliche Themen