Recommended PrestShop Version

Thanks for choosing Agile.
For customers using our Agile Multiple Seller module and its accessry modules, we highly recommend to use PrestaShop 1.6x or 1.7.5 or lower. PrestaShop has made some changes in versions higher than 1.7.6 that makes it possible or very difficult to implement some of features via hooks, or override, since required hooks or override is not available.

Sept. 05, 2019

Zahlung Modul Integrationsanleitung

Erhebung, Zahlungsmodus und integration

Bevor wir die Zahlung Modulintegration einführen, müssen wir verstehen, was Inkasso-Modus in agilen mehrere Verkäufer Modul. Wenn Sie Agile mehrere Verkäufer und seine Zubehör-Module als Ihre Online-Markt-Lösung verwenden, müssen Sie integrieren/Ihre Zahlungsmodul in agilen Umgebung mit mehreren Verkäufer anpassen. Es hängt von der Sammlung Zahlungsart Ihre Agile mehrere Verkäufer, die Sie verwenden, den Anforderungen des Zahlungsmoduls ist ein bisschen anders.

Store sammelt Zahlung

Sie brauchen nicht zu integrieren oder Ihre Zahlungsmodul anpassen, können Sie 3rd Party-Payment-Module für diesen Inkasso-Modus. Aber das Zahlungsmodul befolgen folgende Schritte zur Zahlungsabwicklung und Aufträge erstellen
= > Zahlung ging zuerst (den gesamten Warenkorb)
= > Erstellen Sie Aufträge vom aufrufenden valiateOrder() PaymentModule Klasse oder ihrer Außerkraftsetzung

Verkäufer sammelt Zahlung
 

Du musst deine Zahlungsmodul integrieren.

Verkäufer und Store sammeln Zahlung 

Sie integrieren müssen / das Zahlungsmodulanpassen .


Bedingungen der 3. Partei Zahlungsmodul, Agile mehrere Verkäufer Modul integrieren zu können.

A. Prozess Zahlung im Shop
Das Zahlungsmodul muss Zahlungsprozess innerhalb der PrestaShop beenden, ohne Umleiten von Benutzern zu Zahlung Gateway-Website, um die Zahlung zu autorisieren. Diese Art von Zahlungsmodul verwenden in der Regel Zahlung Gateway-API oder Web Service Käufer Zahlung senden Info Zahlungs-Gateway und Rückkehr der Zahlung Ergebnis auf Serverseite, Käufer muss nicht unbedingt auf Zahlung Firmenwebsite Zahlung autorisieren umgeleitet werden. Die meisten Kreditkarten-Payment-Module verwenden auf diese Weise.

B. Prozess Zahlungsaufträgen zuerst vor dem Erstellen von
Das Zahlungsmodul Zahlungsabwicklung muss vor dem Erstellen von Aufträgen. Das ist nur bei Zahlung erfolgreich, dann Aufruf verarbeitet PaymentModule -> validateOrder(), Ordnung zu schaffen. Die validateOrder() könnte die Zahlungsmethode Modul überschreiben.

Schritte zur Integration Ihrer 3. Partei-Moduls mit mehreren Verkäufer - Agile mehrere Verkäufer 3.2.0.1 oder höher
Konzentrieren Sie sich bitte die Code-Zeilen in blau - Code für die Integration.

1. definieren Sie Zahlungsart Sammlung zur Unterstützung
Ihre Zahlung Modul-Klasse, welche Zahlungsart Sammlung definieren Sie Modul zu unterstützen, wird im Anschluss an Linie hinzufügen

Klasse AgilePaypalParallel erweitert PaymentModule
{
öffentliche statische $PaymentCollectionMode = Array ()
1 = > wahre ///seller sammelt Zahlung - Käufer Zahlungen werden in der Verkäufer-Konto aufgeteilt
, 2 = > wahre ///both Store und Verkäufer sammeln Zahlung - Käufer Zahlung werden in store(commission) und Verkäufer-Konto aufgeteilt
, 3 = > wahre ///store sammelt Zahlung vom Käufer
   );
   ................
}

2. Zahlung Modul Verfügbarkeitskontrolle.
Fügen Sie folgende Zeilen von Code am Anfang der hookDisplayPayment() Methode zur Kontrolle der Modul-Verfügbarkeiten

Wenn dieses Zahlungsmodul Strom mehrere Verkäufer Zahlungsmodus Sammlung, dann return False - unterstützt werden nicht angezeigt
$paymode = (int)Configuration::get('AGILE_MS_PAYMENT_MODE');
If(Module::isInstalled('agilemultipleseller') & &! selbst:: $PaymentCollectionMode [$paymode]) return false;


3. registrieren Sie einen Haken um mehrere Verkäufer Modul integrieren zu informieren
Innerhalb Ihres Moduls Methode installieren, Hinzufügen einer Zeile zu registrieren Haken ActionAgilePaymentModuleIntegrate, agile informieren mehrere Verkäufer Modul dieses Zahlungsmodul integrieren.


öffentliche Funktion uninstall()
{
If(!Parent::Uninstall()) return False;
Wenn (! Eltern:: install()
ODER! $this -> registerHook('actionAgilePaymentModuleIntegrate')
OR! Configuration::updateValue ('AGILE_PAYPALPL_BUSINESS', '[email protected]')
OR! Configuration::updateValue ('AGILE_PAYPALPL_SANDBOX', 1)
ODER! $this -> registerHook('displayPayment')
ODER! $this -> registerHook('displayPaymentReturn')
) return false;
    .............

}

4. bereiten Sie Haken-Methode, um die erforderliche Integrationsinformationen zurückgeben
Erstellen Sie folgende Methode in Ihrer Zahlung Modul Kern-Klasse, so heißt es durch mehrere Verkäufer Modul Integration abzurufenden Informationen.

öffentliche Funktion hookActionAgilePaymentModuleIntegrate($params)
{
Array () zurück
'Name' = > $this -> Name,
"Desc" = > $this -> "DisplayName",
"Mode" = > self:: $PaymentCollectionMode,
"Elinks" = > array ()
Array)
'Label' = > $this -> l ("autorisieren Streifen Connection")
, 'Url' = > 'https://connect.stripe.com/oauth/authorize'
, "Tooltip" = > $this -> l ("Click here to autorisieren oder erneut autorisieren Kontos Streifen verbinden mit diesem Marketplace-Plattform")
             ),
      ),

"info1" = > Array ('Label' = > $this -> l ("API Anmelde-ID"), 'Is_unique' = > 1, 'Is_readonly' = > 0, "Tooltip" = > $this -> l ("Erklärung der Felder")),
"info2" = > Array ('Label' = > $this -> l ("Umsatzschlüssel'), 'Is_unique' = > 1, 'Is_readonly' = > 1,"Tooltip"= > $this-l ("Erklärung der Felder") >),
"info3" = > Array ('Label' = > ' N/a', 'Is_unique' = > 0,'Is_readonly' = > 0, 'Tooltip' = > ''),

"info4" = > Array ('Label' = > ' N/a', 'Is_unique' = > 0,'Is_readonly' = > 0, 'Tooltip' = > ''),
"info5" = > Array ('Label' = > ' N/a', 'Is_unique' = > 0,'Is_readonly' = > 0, 'Tooltip' = > ''),
"info6" = > Array ('Label' = > ' N/a', 'Is_unique' = > 0,'Is_readonly' = > 0, 'Tooltip' = > ''),
"info7" = > Array ('Label' = > ' N/a', 'Is_unique' = > 0,'Is_readonly' = > 0, 'Tooltip' = > ''),
"info8" = > Array ('Label' = > ' N/a', 'Is_unique' = > 0,'Is_readonly' = > 0, 'Tooltip' = > ''),
    );
}

seller payment setting screen - integrated module

In oben Haken Methode bieten folgende Informationen zu agile mehrere Verkäufer Modul Ihnen.
-Name des Moduls (interner Name)
-Beschreibung des Moduls (Anzeigename des Moduls)
-verfügbare Zahlungsart Sammlung Ihr Modul unterstützt
-Zahlungsinformationen dieser Verkäufer hat bereitstellen, um die Zahlung vom Käufer durch dieses Modul zu sammeln. Dies in der Regel die Konfigurationsfelder Ihrer Module. Es gibt Maximium 8 Felder zur Verfügung. Die Anzahl der benötigten Felder hängen Ihre Zahlungsmodul.

Die meisten Fälle die Informationsfelder vergolten für Hauptgeschäft unterscheidet sich von den Verkäufern, aber irgendwann sie gleich sind. Zum Beispiel haben Agile Authorize.NET Modul 2 Felder nach, wie im obigen Beispielcode definiert.
-API-Protokoll-ID
-Umsatzschlüssel

Du musst die Bezeichnung des Felds zu definieren und auch angeben, ob das Feld Teil der einzigartigen Felder ist überprüft werden, wenn ein Verkäufer hinzufügen neue Zahlungsinformationen. Das Modul wird mithilfe der Felder mit Is_unique Wert 1 um zu prüfen, ob die Zahlungsinformationen das gleiche mit anderen Anbietern ist um Doppelarbeit zu vermeiden.

Hinweis
Bitte halten Sie den Code so wie es ist, nur ändern Sie den Wert, so dass die Bezeichnung in der Lage werden, mehrere Sprachen zu unterstützen und Sie in der Lage werden, den Namen des Feldes in verschiedenen Sprachen im Back-Office - Lokalisierungen - Registerkarte Transaktionen zu übersetzen

5. bereiten Sie Zahlung Info Feld Validator (Optional)
Jeder Verkäufer müssen Zahlungsinformationen für den Empfang von Zahlungen von Käufern (oder Store) eingeben. Sie können jedes Feld bestätigen müssen, dass Verkäufer tritt gültigen Daten. Wenn sie ein Paypal-Modul ist, Sie werden z. B. das erste Feld "info1" überprüfen, dass Verkäufer eingetragen ist eine gültige e-Mail-Adresse.

Hier ist ein Beispiel der Validator in Ihrem Zahlungsmodul

öffentliche Funktion validatePaymentInfoFields($paymentinfo)
{
$errors = array();
   
If(Empty($paymentinfo)) $errors [] = $this -> l ("ungültige Zahlungsinformationen");

$info1 = (is_array($paymentinfo)? $paymentinfo ["info1']: $paymentinfo -> info1);
If (!) Validate::isEmail($Info1)) $errors [] = $this -> Name. ":" . $this -> l ("Paypl e-Mail-Adresse"). $this -> l ('ist ungültig.");

Rückkehr $errors;
}


6. bearbeiten Zahlungs- und validateOrder() - Ordnung schaffen
Um Ihre Zahlungsmodul zu integrieren, muss Ihre Zahlungsmodul von PrestaShop Checkout und Auftragsabwicklung Verfahren im Zusammenhang mit der Zahlung der standard Schritte. Hier ist der Prozess, der die Bezahlung meiner Bestellung zugeordnet ist.

== > A. abrufen Zahlungsinfo == > B. führen Sie Zahlung == > C. ValidateOrder(Create Order data)

Abrufen von Zahlungsdaten

Du musst nach der Methode des Agiile Mulltiple Verkäufer-Moduls zu erhalten rufen Sie die Zahlungsdaten.

$payments = AgileMultipleSeller::get_payment_info_from_cart();

Das Modul wird ein Array mit Daten Zahlungsinformationen basierend auf den Inkasso-Modus zurück. Jedes Element des Arrays enthält folgende Informationen.

-$id_seller als Schlüssel des Arrays
-"e-Mail": Empfänger (Verkäufer) e-Mail-Adresse (Verkäufer oder Shop), z. B. [email protected]
-"Betrag": die Menge des Empfängers erhalten sollte, z. B. $230,00
-"Kommission": die Kommission des Verkäufers zu zahlen oder den Laden zu erhalten

Hinweis
: die Menge in den Warenkorb Warenkorb Währung ist, müssen Sie zum Konvertieren Ihrer Zahlung Modul zur Währung vor dem senden zu Zahlung SpaB.

Unten ist der Beispielcode die Zahlungsdaten für Ihre Zahlungsmodul zeigen.

$payments = AgileMultipleSeller::get_payment_info_from_cart();
Foreach ($payments $id_seller = > $payment)
{
... zum Payment processing Code
}

$this -> validateOrder(...)
 

Der Code für die Verarbeitung Zahlung wird für verschiedene Payment-Module unterscheiden. Wir lassen für Sie zu bestimmen, wie die Zahlung zu implementieren. Wir lassen auch die Zahlung Fehlerbehandlung für Sie zu handhaben. Zum Beispiel in einen Warenkorb gibt es mehrere Verkäufer, müssen Sie umgehen, wenn einige Verkäufer Zahlung ist fehlgeschlagen. Einige Kredit Warenkorb Zahlung unterstützt 2 Schritte - autorisieren Sie die Zahlung erst dann erfassen Sie den Betrag, um eine Zahlung zu beenden, wir empfehlen Sie autorisieren alle Verkäufer Zahlung zuerst, dann validateOrder() und rufen Sie dann "erfassen" um die Zahlung abzuschließen.

Hinweis:

Je nach Zahlungs-Gateway müssen des Verkäufers Zahlung Informationen wie API Anmeldeinformationen anstelle des Shops Sie wenn der Zahlungsempfänger Verkäufer ist. Sie können folgenden Code verwenden, um Verkäufer Zahlung erhalten Informationen (z. B. API Anmeldeinformationen) für Ihre Zahlungsmodul.

Include_once (_PS_ROOT_DIR_. "/ modules/agilemultipleseller/AgileSellerPaymentInfo.php");
$paymentinfo = AgileSellerPaymentInfo::getForSellerByModuleName ($dies -> Name, $id_seller);




Viel Spaß mit der Integration.