Integration Guide Shopware 5

Introduction

Our Shopware 5 plugin comes with regular updates and full integration support, offering a versatile out-of-the-box solution to accept online payments easily:

Currently supported payment methods:

  • Credit Cards (Visa, Mastercard, American Express, JCB, Diners Club, Carde Bleue)
  • Amazon Pay (V1)
  • Alipay
  • Apple Pay
  • Bancontact
  • Barzahlen
  • EPS
  • Google Pay
  • iDEAL
  • Klarna Payments
  • PAYONE secure Invoice 
  • PAYONE Secured Invoice, Secured Direct Debit and Secured Installment
  • PAYONE Direct Debit
  • PAYONE Open Invoice
  • PAYONE Prepayment
  • PayPal and PayPal Express (V1)
  • PayPal and PayPal Express (V2)
  • PostFinance Card and E-Finance
  • Przelewy24
  • Ratepay Invoice, Direct Debit and Installment
  • Sofort
  • Unzer Invoice, Direct Debit and Installment
  • WeChat Pay

Keep an eye on our Release Notes to stay informed about updates and new features (i.e. payment methods, features, integration modes) we have added to this plugin!

Check out our documentation to learn how to link your store with our platform to profit from all these features!

Current Release: v4.16.0

Requirements

An active PAYONE - Account is required. If you do not have one yet, please contact us.

Plugin Installation

You have 2 ways to install our plugin:

Installation directly in Shopware5 - Admin

    • Download our latest plugin from Github
    • You can upload the plugin under Ice Settings -> Plugin Manager -> Installed -> Upload Plugin
    • Install and activate the plugin.

Installation via Github

PAYONE - Portal configuration

To send the transaction status to the correct address, the log in to the PAYONE Merchant Interface (PMI).

Under Configuration → Payment Portals → YOUR_PORTAL → Advanced → TransactionStatus URL

<SHOPURL>/MoptShopNotification

Please leave the hash check set to "md5 oder sha2-384 (during migration)" to ensure correct communication between PAYONE and the store.
Additional Response-data

Under General, set the Additional Response data for both Live and Test modes to "on".

Shopware 5 - Admin configuration

Click on Customers → Payments → PAYONE  Kontrollzentrum → Grundeinstellungen → general

You can create a separate configuration for each payment type. The default setting - Alle (global) applies to all payment types.

Please enter your access data here:


Once you have created a separate configuration for a payment type, the default setting - Alle (global) no longer applies to the payment type.



Detailed description of each field

Field Description
merchant ID You will find your PAYONE Merchant ID at the top right of the PAYONE Merchant Interface (PMI) and on all PAYONE invoices.
portal ID You can find the portal ID in the PAYONE Merchant Interface (PMI) under the menu item Configuration → Payment Portals

subaccount-ID

You can find the ID in the PAYONE Merchant Interface (PMI) under the menu item Configuration → Accounts

key

Please enter the key here to protect the data communication against manipulation. This must be identical to the key stored in the corresponding PAYONE payment portal.

operating mode

Here you can specify for the respective payment type whether the payments are to be processed in test mode or whether they are to be executed "live". You can also configure the test mode for individual payment types.

authorization

  • preauthorisation - The amount to be paid is reserved in the course of the order. In this case, the debit must be initiated in a second step when the goods are delivered (Capture). The receivable is only posted after the capture has been carried out.
  • authorisation - The amount tobe paid is collected immediately when the order is placed. The receivable is immediately booked on the PAYONE platform.

basket handover

Here you can configure whether the shopping cart information should be transferred to the PAYONE platform for each request.

In most cases it's safe to leave this setting on. However, some usecases may cause issues with this setting enabled:
- PayPal with cart items that are free - PayPal expects every cart item to have a price, so if you ship bonus items it's better to leave this off.

- Plugins which alter the calculation of prices - some plugins alter price calculation, which can lead to rounding differences. If you frequently see error 1610 (Article list faulty or incomplete) and are confident about the actual amount of the order, try disabling this setting.

save acceptance of the general business terms

  • off: Completely disables the storage of the Terms and Conditions (AGB) confirmation.
  • on the Confirm page: The storage of the Terms and Conditions is only activated on the confirmation page.
  • global: Activates the global storage setting.

use shopware ordernumber

This setting causes an order number generated by the plugin to be reported as a reference to PAYONE. However, the order number generated by Shopware is not. 

Note: This order number must always be unique and cannot be reused. Make sure that the correct and not already used order number range is active.

update order timestamp on notify 

Updates the order change timestamp on the order when a new transaction status notification is received and processed.

Note: This only works in Shopware 5.5 and higher.

allow different shipping addresses

For the secure payment methods offered by PAYONE (e.g., invoice, direct debit, installment purchase), the ability to send to alternative delivery addresses must be contractually agreed upon. Only then can this option be utilized.

Special Adjustments

Some payment types require special adjustments. The next points are only interesting for you if you use the respective payment method:

 Lastschrift

Click under Customers → Payments → PAYONE Kontrollzentrum → Zahlungsarten → Lastschrift

Field Description

check bank details

Enables a verification of the bank account using the "bankaccountcheck" request.

This setting is part of our optional Risk Management module.

Additionally Show account number / bank code

Outdated query. Today it is only of limited use.

in addition to IBAN query also BIC?

Determines whether the BIC is requested during checkout. Use this configuration for better compatibility with bank accounts outside the DACH region.

activate direct debit mandates?

Should the SEPA mandate manager be used? Verification of the bank account is mandatory. A check against the POS blocklist is not possible.

Download mandate as PDF?

When selecting "Yes," a link will be provided after the order, allowing the end customer to download the SEPA mandate as a PDF file.

Amazon Pay

Click under Customers → Payments → PAYONE  Kontrollzentrum → Zahlarten → Amazon Pay

With Amazon Pay, you need to enter some additional data to ensure that the payment method functions smoothly.

Integration Setting in Seller Central
Please enter the following URL in the "Integrator URL" field under Integration Settings in Seller Central: https://gpc-sys.pay1.de/gpc/amazon/1.0/notify – the "Seller URL" can be left blank. This URL ensures that the shop receives all notifications from Amazon.

Please also ensure that you save all your shop's URLs as allowed JavaScript origins in Seller Central.
  1. Select "Integration - Integration Central" in the navigation bar at the top left of the Seller Central homepage.
  2. Scroll down on the "Integration Central" page to the section "Manage Customer ID/Shop ID(s)" and click on "Show Customer ID/Shop ID(s)".
  3. If you have an existing customer or shop ID registered, review the configuration of the selected shop. You can click on the "Edit" link on the right side to modify the information.
  4. When you click the "Edit" button, you can modify all details of the customer configuration.
  5. If you click on the "Create New Configuration" link at the top starting from step 3, you can create a new customer configuration and provide all relevant information.

Additionally, the Allowed Return URL must be set to <shoproot>/moptPaymentAmazon.

Activate the payment method

Add a new Amazon Pay configuration by clicking on "Add item".

 

Field Description

Client Id

The Client ID from your Amazon Seller Central profile will be automatically filled in here after saving.

Seller Id

After saving, the Seller ID from your Amazon Seller Central profile will be automatically filled in here.

Button Type

Determines which button should be displayed in the shopping cart and the sidebar.

Button Color

Determines which color the button in the shopping cart and the sidebar should be displayed in.

Amazon Mode

Determines the mode in which Amazon Pay transactions will be carried out:

  • Asynchronous On Failure (default) - The transaction is initially attempted in synchronous mode. This means an immediate confirmation from Amazon Pay for the transaction is sought. If this is not possible, the asynchronous mode is tried. Amazon Pay will confirm the transaction later when sufficient data is available. It is also possible to decline the transaction at a later time. This will be reflected in the payment status.
  • Always synchronous - The transaction is attempted only in synchronous mode. If Amazon Pay declines the transaction, the buyer will receive immediate feedback and can choose a different payment method.

Packstation

Here you can specify whether "DHL Packstation" addresses are permitted when using Amazon Pay.

Shop

Here you can specify for which shop Amazon Pay should be configured.

save

Click "Save" after you have set your parameters.

Amazon Pay Konfiguration abrufen

Download the current Client and Seller IDs from the PAYONE platform by selecting the entry and clicking on "Configuration Download."

Apple Pay

Click under Customers → Payments → PAYONE Kontrollzentrum → Zahlungsarten → Apple Pay


Field Description

Apple Pay MerchantId

You can retrieve this value from the Apple Developer Portal as the "Identifier" of your Merchant ID.

allow Apple Pay Visa

Please specify whether Visa cards are included for Apple Pay transactions in your PAYONE agreement.

allow Apple Pay Mastercard

Please specify whether Mastercard cards are included for Apple Pay transactions in your PAYONE agreement.

allow Apple Pay Girocard

Please specify whether Girocard (debit card) are included for Apple Pay transactions in your PAYONE contract.

Apple Pay certificate

Please upload your Apple Pay certificate here (in .pem format).

Ensure that the certificate is not publicly accessible and is only readable by Shopware. Your hosting provider or server administrator can assist with this.

Apple Pay private key

Please upload your Apple Pay private key here (in .key format).

Apple Pay private key passwort

Here you can set the password for using the private key.

Apple Pay Debug

If this field is enabled, debug information about the Apple Pay session will be displayed during checkout, which can help during setup. In live operation, this option should be disabled.

In addition to the configuration in Shopware 5, it is necessary to set up the corresponding certificates for using Apple Pay as a payment method.

You can find instructions and information about this here: Payment method - Apple Pay

Additionally, Apple requires validation of the shop domain for Apple Pay. Please follow the instructions in the Apple Developer Portal:

Kreditkarte

Click under Customers → Payments → PAYONE Kontrollzentrum → Zahlungsarten → Kreditkarte



Field Description

Default

Default values are used for all existing fields.

Kreditkarte Zusätzliche Beschreibung

Additional description of the payment method when grouped.

query Credit Card Verification
(setting is global)

Should the card verification number (CVC) be requested?

credit card validity

Minimum validity period in days remaining for a card to be able to place an order.

For retailers, this value can be set slightly above the blocking period, so that balance checks still work even if the card has expired in the meantime.

Modus

  • hosted-iFrame (Highly recommended!)
  • AJAX
Make sure to always use "hosted iFrame." Only merchants with a PCI DSS certification level of SAQ A-EP or higher are permitted to use AJAX.

merchant-ID

your Merchant ID

portal ID

The portal ID used for transmitting credit card data.

subaccount-id

The subaccount ID used for transmitting credit card data.

key

Key of the payment portal to be used.

operating mode

This defines how the payment method is used.

Live = Payments are processed on the PAYONE platform.

Test = Payments are simulated only in the PAYONE test environment.

If the checkbox is checked, you are in live mode.

Costum Display for the hosted iframes

Our plugin offers you compliance with the "lowest" PCI DSS compliance level (SAQ A). Since, at this compliance level, all credit card data can only be entered into fields hosted by a PCI DSS certified service provider, our plugin uses embedded iFrames integrated into the checkout. However, these do not inherit the CSS of your shop template but have their own styles. You can use the following settings to customize these fields.


Field Description

Typ

  • Numerisch - Only numbers are allowed, and a numeric keypad will be used on mobile devices. → input type="tel"
  • Passwort - input type="password"
  • Text - input type="text"
  • Auswahl 

Anzahl Zeichen

Number of characters in the width of the input field

Zeichen Max

Maximum allowed number of characters (HTML attribute maxlength)

IFrame

  • Standard - Uses width and height from the standard style.
  • Benutzerdefiniert - Uses width and height from the following fields.

Breite

Set the width in CSS.

Höhe

Specify the height in CSS.

Stil

  • Standard - Uses CSS specifications from the "Standard Style".
  • Benutzerdefiniert - Uses CSS specifications from the following fields.

CSS

Specify the CSS to style the respective field.

If you use the CSS attribute "Url," the respective field will not be displayed.
Standard Stil

Field Description

Felder: Eingabe

CSS specification for the standard formatting of all input fields.

The following CSS can be used in the default template of Shopware:

Beispiel
box-shadow:inset 0 1px 1px 1px #dadae5;background:#f8f8fa;border:1px solid #dadae5;border-top-color:#cbcbdb;line-height:19px;font-size:.875rem;width:85%;padding:.625rem .625rem .625rem .5625rem .625rem;color:#8798a9;

Felder: Auswahl

CSS specification for styling all selection fields.

The following CSS can be used in the Shopware standard template:

Beispiel
box-shadow:inset 0 1px 1px 1px #dadae5;background:#f8f8fa;border:1px solid #dadae5;border-top-color:#cbcbdb;line-height:19px;font-size:.875rem;width:85%;padding:.625rem .625rem .625rem .5625rem .625rem;color:#8798a9;

iFrame Höhe

Specification of the standard height in CSS for all fields.

iFrame Breite

CSS specification for the default height of all fields.

Fehlerausgabe und eigene Fehlermeldungen

Field Description

Aktiv

Enables error output.

custom error messages

Here you can enter your own custom error messages.

PayPal Express

Click under Customers → Payments → PAYONE  Kontrollzentrum → Zahlungsarten → PayPal Express



Field Description

submit pre-calculated Paypal Express shipping costs

no - If the shipping costs are not yet known in the shopping cart.

yes - If the shipping costs are flat-rate and can therefore be passed on.

show paypal ecs button on basket page?

yes - Button is displayed on the shopping cart page.

no - Button will be hidden on the shopping cart page.

Konfiguration PayPal Express Logos

Here, the PayPal Express logo should be uploaded, and the Packstation inquiry is also configured in this section.

If no image file is available, the PayPal ECS button will not be displayed in the shopping cart. At least one button must be present and marked as the default.

PayPal Express V2

Click under Customers → Payments → PAYONE  Kontrollzentrum → Zahlungsarten → PayPal Express V2



Field Description

Paypal V2 show BNPL button

Here you select whether the PayPal BNPL button should be displayed in the frontend.

Paypal V2 Merchant ID

In test mode, this is NOT required. A fixed ID from Payone is used in this case.

Paypal V2 Express button color

Here you can choose the color of the PayPal Express button in the frontend.

Paypal V2 Express button shape

Here you can select the shape of the PayPal Express button.

Ratepay

Click under Customers → Payments → PAYONE Kontrollzentrum → Zahlungsarten → Ratepay

To ensure the Ratepay payment method functions smoothly, you need to enter some additional configuration data provided by Ratepay. Use the "Add" button to add more Ratepay configurations:

 

Field Description

ShopId

The shop ID provided by Ratepay.

This represents a configuration data set (country, currency, interest rates, installment periods, etc.).

Währung

Currency that should be used for this shop ID.

Ratenkauf Modus

This setting does not affect the other Ratepay payment methods (invoice, direct debit).

  • Vorkasse - The buyer must transfer the installments to an account designated by Ratepay.
  • Lastschrift - The installments are collected via direct debit from the buyer's account.

Save the configuration and then retrieve the data from RatePay by clicking on "Retrieve Ratepay Configuration."

Google Pay

Click under Customers → Payments → PAYONE  Kontrollzentrum → Zahlungsarten → Google Pay

In the test environment, it is not necessary to enter a "Google Pay Merchant ID" in the Google Pay settings. However, when switching to the live environment, the merchant's "GooglePay Merchant ID" must be entered here.

You can find your merchant ID at the top in the Google Merchant Center.

PAYONE Secured Invoice + PAYONE Secured Installment

These two payment methods require their own payment portal. Please navigate to Customers → Payments → PAYONE Control Center, select the payment methods: PAYONE Secured Invoice Purchase and PAYONE Secured Installment Purchase, and enter a separate Portal ID for each.

If orders are partially captured, refunds must be issued in the same amount. The reason is that each capture creates a new claim.
Payment methods setup

When you install the PAYONE plugin, all available PAYONE payment types are automatically created in your store. For easier identification, they are created with the prefix "PAYONE". However, you can easily change this by changing the name of the payment type.

Activate the desired payment methods under Configuration → Payment Methods

Editing the orders

The PAYONE plugin sets the payment status of an order according to the set status assignment.

Capture

Under Customers → Orders you can enter pre-authorized orders. To do this, you need to edit the respective order by clicking on the pen.
 

The items to be captured must be marked (checkmarked) and then confirmed with the "capture position" button.
 
 

Check the amount again. Decide whether the shipping costs should also be collected. After clicking on (partial) money collection, the money will be collected and the receivable will be booked on the PAYONE platform.
 

For a partial withdrawal, simply add a new identical item to the item and specify the quantity of items you wish to withdraw. Make sure, however, that the original position is reduced in terms of quantity. Use the button final capture to mark the order as completely captured. Where supported, the claim may be reduced by the payment method provider and remaining reservations will be dismissed.

Refund

Under Customers → Orders you can create credit notes. To do this, you need to edit the respective order by clicking on the pen.

In the following order details you will find on the sheet Positions the "debt position" button.

The items to be refund must be marked (checkmarked) and then confirmed with the "debt position" button.
 

Marking of conspicuous orders

If there are discrepancies in an order, the order will be marked with the status "Verification required". In this case, the amount in Shopware 5 should be checked with the amount in PAYONE Merchant Interface (PMI), as this could be a fraud attempt. 

 

Extended configurations

Here you will find separate setting options that allow you to customize our plugin more precisely to your needs.

Address check

You can use the following options only if you have ordered the Protect module from PAYONE. The use of address checks is associated with variable costs per transaction, which you will see in the contract.

Under Customers → Payments → PAYONE → Konfiguration → sheet "adress check" you can define if and in which form the address checks should be performed and how the Shopware eShop should behave if certain results apply.

 

Field Description

active

Activates the address check

operating mode
 

Setting in which mode the address check should take place: in test or live.

Test and live data are different. Test data can only be used in test mode.

billing address

  • Do not check - No address check is performed
  • Basic - Address check for existence (street number, postcode, city, country) as well as addition and correction of address (possible for addresses from Germany, Austria, Switzerland, Netherlands, Belgium, Luxembourg, France, Italy, Spain, Portugal, Denmark, Sweden, Finland, Norway, Poland, Slovakia, Czech Republic, Hungary, USA, Canada).
  • Person - Checking whether the person is known at the address given, checking the existence of the address and supplementing and correcting the address (Germany only).

shipping address

(see billing address)

auto correct

If Yes is selected, an address corrected by the PAYONE platform will be adopted. Not otherwise. In addition, there are options here that the user can agree to a correction or be prompted to enter the address again.

error handling

Here you can define what should happen if there is a technical error. For example, the address validation is not available or reachable.

minimum basket value

Shopping cart value from which an address check is performed

maximum basket value

Shopping cart value until an address check is performed

validity in days

The duration in days for registered users in the shop for which the result of the verification is valid.

error message
 

Here you can define which message is displayed to the user if an incorrect entry has been made.

Person Status Mapping

Below are listed the individual possible results of address verification person to whom you can assign each of the traffic light values:

  • red
  • yellow
  • green

to the other. In conjunction with the setting in the Risk area, this means that payment types are not available to the customer or are hidden by this traffic light value.

Credit assesment

You can use the following options only if you have ordered the Protect module from PAYONE. The use of credit checks is associated with variable costs per transaction, which you will see in the contract.
Please make the settings for the credit check carefully. The credit check is performed after the personal data has been entered and influences the payment types that are offered to your customers in the checkout process. You should only use the credit check for payment types that pose a risk of non-payment for you (e.g. open invoices or direct debits). You configure this via the Traffic Light Value / Score setting in the configuration of the respective payment type. In addition, you should indicate in your store in a suitable manner that you carry out the credit check via infoscore Consumer Data GmbH.

Under Customers → Payments → PAYONE → Konfiguration → sheet "credit assesment" you can specify whether and in what form the credit checks should be performed and how the Shopware eShop should behave if certain results apply.
 

Field Description

active

Activates the credit check

operating mode

Setting in which mode the address check should take place: in test or live.

Test and live data are different. Test data can only be used in test mode.

check timing

Select the time of the check here.

This setting only applies if the value "Alle (global)" is selected for "Applies to payment type".

check type B2C

  • Infoscore (hard characteristics) - Check for hard characteristics via Infoscore (e.g. consumer insolvency proceedings, arrest warrant for affidavit or enforcement of affidavit)
  • Infoscore (all characteristics) - Examination for so-called "hard" negative features (see above) and "medium" negative features (e.g. order for payment order, enforcement order or enforcement) and "soft" negative features (e.g. collection dunning procedure initiated, continuation of out-of-court collection dunning procedure after partial payment, discontinuation of out-of-court collection dunning procedure due to hopelessness)
  • Infoscore (all characteristics + Boniscore) - Checking for all characteristics (see above) and delivery of the BoniScore, which as a score value enables a higher selectivity for existing negative characteristics.
  • Boniverse VERITA Score - Check for VERITA-Scores via Boniversum

check type B2B

Determines whether corporate customers are to be checked. The definition is based on the selection of the end customer during registration or checkout. ("I am a private customer/business customer") 

default score for new customers

Here you can define the traffic light value for new customers.

Boniversum unknown

Here you can define the traffic light value for customers who are unknown to Boniversum (only applies when using the check type "Boniversum").

validity in days

Number of days for which the credit standing value returned is valid. No new credit checks will be carried out for the set period for the registered shop buyer / user concerned until the set period expires.

minimum basket value

Shopping cart value from which a credit check is carried out.

maximum basket value

Shopping cart value until a credit check is carried out.

error handling

Here you can define what should happen if a technical error occurs. For example, the credit assessment is not available or attainable.

notification message

Enter here the text to be displayed to the buyer when a credit check is performed for him.

consent question

Enter here the text of the question that will be asked to the customer to agree to a credit check.

Please make the settings for the credit check carefully. Incorrect configurations can lead to errors in the checkout process and unwanted costs due to an increased number of queries and an unnecessarily high risk of non-payment.

Paymentstatus

Under Customers → Payments → PAYONE → Konfiguration → sheet "Paymentstatus" you can define which status the order should have in Shopware

For more information about transaction state callbacks, see this page of our server API documentation.

Forward the transaction status

Under Customers → Payments → PAYONE → Konfiguration → sheet "forward the transaction status" you can, if required, assign a separate forwarding URL to each payment status message of the PAYONE platform (transaction status). This is always necessary if other systems in your system environment also require this payment information.

Field Description

Logging

Enables logging for the transaction status forwarding log.

Timeout

Response time in milliseconds until termination

Timeout increase
 

Increase timeout in milliseconds for the next attempt

max. Tries

Maximum attempts to forward until aborted

If the Logging is enabled, errors in forwarding of transaction status messages are displayed in a separate system log. You can then view and download the current logs under Configuration → Logfile → sheet "System Log".

Log Eintrag When? Meaning

notification controller called

always

Information value only - marks the start of txstatus processing

different shop active, submitted id, new shopid [1,2,2]

active shop has a different ID than the shop that's referred to in the request

1,2,2 means:

  • active shop has ID 1
  • Request refers to shop ID 2
  • tx status processing therefore uses shop ID 2

push received for tx 123456789

always

txid der txstatus-Anfrage

clearingdata already exists

if a transaction already has clearing data attached to it

info - clearing data doesn't get overwritten

clearingdata is empty

if a transaction doesn't have yet clearing data attached to it

info - clearing data from the txstatus request is attached to the transaction

save attribute data

always

info - data gets saved as attributes to an order

finished, output TSOK

always

processing finished - TSOK is being sent

starting tx forwards

always

info - txstatus gets forwarded now

finished all tasks, exit

always

info - clearing data from the txstatus request is attached to the transaction

API- and Transaktionsstatus-Log

Under Customers → Payments → PAYONE → API-Log you will find all information about the processed payments and communication with the PAYONE platform.

The overview shows all received and processed requests to the PAYONE platform. By clicking on an entry, you can view details about the respective request.

Under Customers → Payments → PAYONE → Transaktionsstatus-Log you have an overview of the transaction status messages received and can view details by clicking on a record.

Integrate clearing data into HTML and PDFs

The clearing data is stored in the s_order_attributes table in the mopt_payone_clearing_data column in JSON format. The orderID column contains the ID of the corresponding order stored in the s_order table. The data can be read, for example, with the following SQL statement:

Sample Query
SELECT JSON_PRETTY(mopt_payone_clearing_data)  FROM s_order_attributes WHERE orderID = <orderID>

Ausgabe:
{
  "clearing_txid": "822243227",
  "clearing_bankbic": "DEUTDEHH210",
  "clearing_bankcity": "Kiel",
  "clearing_bankcode": "21070020",
  "clearing_bankiban": "DE87210700200022520120",
  "clearing_bankname": "Deutsche Bank AG",
  "clearing_bankaccount": "0022520120",
  "clearing_bankcountry": "DE",
  "clearing_bankaccountholder": "PAYONE GmbH"
}

Display prepayment clearing data in the email template.

All email templates can be customized under Settings → Email Management → Email Templates. The order confirmation email template can be found under System emails → sORDER.

There are 2 templates: one for text emails and one for HTML emails.

The translations of the two templates must be adjusted via the globe button in the upper right corner.

 

Customize Text Email Template

You can customize the templates depending on the payment method you use. To customize the templates, you need to use the internal name of the payment method used. You can find the names in the payment methods overview:

 

To add transfer information to the template for the PAYONE Prepayment payment type, please find the following block in the template source code.

Here 2 text boxes, one for TEXT and one for HTML: 

Text
{if $additional.payment.name == "prepayment"}
     Unsere Bankverbindung:
    {config name=bankAccount}
{/if}

HTML
{if $additional.payment.name == "prepayment"}
    Unsere Bankverbindung:<br/>
    IBAN: ###<br/>
    BIC: ###<br/>
{/if}

And add the following block after it:

DE Text
{if $additional.payment.name == "mopt_payone__acc_payinadvance" || $additional.payment.name == "mopt_payone__fin_payone_secured_directdebit" || $additional.payment.name == "mopt_payone__fin_payone_secured_invoice" || $additional.payment.name == "mopt_payone__acc_invoice" }
    {if $additional.moptPayoneClearingData}
        {if $instruction.clearing_legalnote}
        Hinweise:     {$instruction.clearing_legalnote}
        {/if}
        {if $instruction.clearing_instructionnote}
        Weitere Hinweise:     {$instruction.clearing_instructionnote}
        {/if}
        {if $instruction.clearing_duedate}
        Fälligkeit:   {$instruction.clearing_duedate|substr:6:2}.{$instruction.clearing_duedate|substr:4:2}.{$instruction.clearing_duedate|substr:0:4}
        {/if}
        Unsere Bankverbindung:
        Kontoinhaber: {$additional.moptPayoneClearingData.clearing_bankaccountholder}
        IBAN:         {$additional.moptPayoneClearingData.clearing_bankiban}
        BIC:          {$additional.moptPayoneClearingData.clearing_bankbic}
        Bank:         {$additional.moptPayoneClearingData.clearing_bankname}
        Referenz:     {$additional.moptPayoneClearingData.clearing_txid}
    {/if}
{/if}

DE HTML
{if $additional.payment.name == "mopt_payone__acc_payinadvance" || $additional.payment.name == "mopt_payone__fin_payone_secured_directdebit" || $additional.payment.name == "mopt_payone__fin_payone_secured_invoice" || $additional.payment.name == "mopt_payone__acc_invoice" }
    {if $additional.moptPayoneClearingData}
    <table>
        <tr>
        <td>{if $additional.moptPayoneClearingData.clearing_legalnote} Hinweise:{/if}</td>
        <td>{if $additional.moptPayoneClearingData.clearing_legalnote}{$additional.moptPayoneClearingData.clearing_legalnote}{/if}</td>
        </tr>
        <tr>
        <td>{if $additional.moptPayoneClearingData.clearing_instructionnote} Weitere Hinweise:{/if}</td>
        <td>{if $additional.moptPayoneClearingData.clearing_instructionnote} $additional.moptPayoneClearingData.clearing_instructionnote} {/if}</td>
        </tr>
        <tr>
        <td>Unsere Bankverbindung:</td>
        </tr>
        <tr>
        <td>Kontoinhaber:</td>
        <td>{$additional.moptPayoneClearingData.clearing_bankaccountholder}}</td>
        </tr>
        <tr>
        <td>IBAN:</td>
        <td>{$additional.moptPayoneClearingData.clearing_bankiban}</td>
        </tr>
        <tr>
        <td>BIC:</td>
        <td>$additional.moptPayoneClearingData.clearing_bankbic}</td>
        </tr>
        <tr>
        <td>Bank:</td>
        <td>{$additional.moptPayoneClearingData.clearing_bankname}</td>
        </tr>
        <tr>
        <td>{if $additional.moptPayoneClearingData.clearing_duedate} Fälligkeit: {/if}</td>
        <td>{if $additional.moptPayoneClearingData.clearing_duedate} {$additional.moptPayoneClearingData.clearing_duedate|substr:6:2}.{$additional.moptPayoneClearingData.clearing_duedate|substr:4:2}.{$additional.moptPayoneClearingData.clearing_duedate|substr:0:4}{/if}</td>
        </tr>
        <tr>
        <td>Referenz:</td>
        <td>{if $additional.moptPayoneClearingData.clearing_reference} {$additional.moptPayoneClearingData.clearing_reference} {else} $additional.moptPayoneClearingData.clearing_txid} {/if}</td>
        </tr>
    </table>
    {/if}
{/if}

EN Text
{if $additional.payment.name == "mopt_payone__acc_payinadvance" || $additional.payment.name == "mopt_payone__fin_payone_secured_directdebit" || $additional.payment.name == "mopt_payone__fin_payone_secured_invoice" || $additional.payment.name == "mopt_payone__acc_invoice" }
    {if $additional.moptPayoneClearingData}
        {if $instruction.clearing_legalnote}
        Notes:     {$instruction.clearing_legalnote}
        {/if}
        {if $instruction.clearing_instructionnote}
        Additional notes:     {$instruction.clearing_instructionnote}
        {/if}
        {if $instruction.clearing_duedate}
        Due date:   {$instruction.clearing_duedate|substr:6:2}.{$instruction.clearing_duedate|substr:4:2}.{$instruction.clearing_duedate|substr:0:4}
        {/if}
        Bank account details:
        Bank account holder: {$additional.moptPayoneClearingData.clearing_bankaccountholder}
        IBAN:         {$additional.moptPayoneClearingData.clearing_bankiban}
        BIC:          {$additional.moptPayoneClearingData.clearing_bankbic}
        Bank name:         {$additional.moptPayoneClearingData.clearing_bankname}
        Reference:     {$additional.moptPayoneClearingData.clearing_txid}
    {/if}
{/if}

EN HTML
{if $additional.payment.name == "mopt_payone__acc_payinadvance" || $additional.payment.name == "mopt_payone__fin_payone_secured_directdebit" || $additional.payment.name == "mopt_payone__fin_payone_secured_invoice" || $additional.payment.name == "mopt_payone__acc_invoice" }
    {if $additional.moptPayoneClearingData}
    <table>
        <tr>
        <td>{if $additional.moptPayoneClearingData.clearing_legalnote} Notes:{/if}</td>
        <td>{if $additional.moptPayoneClearingData.clearing_legalnote}{$additional.moptPayoneClearingData.clearing_legalnote}{/if}</td>
        </tr>
        <tr>
        <td>{if $additional.moptPayoneClearingData.clearing_instructionnote} Additional Notes:{/if}</td>
        <td>{if $additional.moptPayoneClearingData.clearing_instructionnote} $additional.moptPayoneClearingData.clearing_instructionnote} {/if}</td>
        </tr>
        <tr>
        <td>Bank account details:</td>
        </tr>
        <tr>
        <td>Bank account holder:</td>
        <td>{$additional.moptPayoneClearingData.clearing_bankaccountholder}}</td>
        </tr>
        <tr>
        <td>IBAN:</td>
        <td>{$additional.moptPayoneClearingData.clearing_bankiban}</td>
        </tr>
        <tr>
        <td>BIC:</td>
        <td>$additional.moptPayoneClearingData.clearing_bankbic}</td>
        </tr>
        <tr>
        <td>Bank name:</td>
        <td>{$additional.moptPayoneClearingData.clearing_bankname}</td>
        </tr>
        <tr>
        <td>{if $additional.moptPayoneClearingData.clearing_duedate} Due date: {/if}</td>
        <td>{if $additional.moptPayoneClearingData.clearing_duedate} {$additional.moptPayoneClearingData.clearing_duedate|substr:6:2}.{$additional.moptPayoneClearingData.clearing_duedate|substr:4:2}.{$additional.moptPayoneClearingData.clearing_duedate|substr:0:4}{/if}</td>
        </tr>
        <tr>
        <td>Reference:</td>
        <td>{if $additional.moptPayoneClearingData.clearing_reference} {$additional.moptPayoneClearingData.clearing_reference} {else} $additional.moptPayoneClearingData.clearing_txid} {/if}</td>
        </tr>
    </table>
    {/if}
{/if}

To add remittance information to the template for the PAYONE Open Invoice payment type, add the following block after it:

DE Text
{if $additional.payment.name == "mopt_payone__acc_invoice"}
     Unsere Bankverbindung:
    {config name=bankAccount}
{/if}

DE HTML
{if $additional.payment.name == "mopt_payone__acc_invoice"}
    Unsere Bankverbindung::<br/>
    {config name=bankAccount}
{/if}

EN Text
{if $additional.payment.name == "mopt_payone__acc_invoice"}
    Bank account details:
    {config name=bankAccount}
{/if}

EN HTML
{if $additional.payment.name == "mopt_payone__acc_invoice"}
    Bank account details:<br/>
    {config name=bankAccount}
{/if}

Extend PDF Templates

In order to display the clearing data on PDF documents, the JSON-encoded content of the corresponding variables must first be decoded. This is done in the .tpl file for the invoice (or similar) for your template:

Bankdaten
{assign var=mopt_payone_decoded_clearing_data value=$Order._order.attributes.mopt_payone_clearing_data|json_decode:true}

These and other variables are then available:

Content Variable

Recipient

{$mopt_payone_decoded_clearing_data.clearing_bankaccountholder}

IBAN

{$mopt_payone_decoded_clearing_data.clearing_bankiban}

BIC

{$mopt_payone_decoded_clearing_data.clearing_bankbic}

Bank name

{$mopt_payone_decoded_clearing_data.clearing_bankname}

Clearing Reference

{$mopt_payone_decoded_clearing_data.clearing_reference}

{$mopt_payone_decoded_clearing_data.clearing_txid}

{$attributes.mopt_payone_txid}

{$sBookingID}

Invoice gross amount

{$Order._order.invoice_amount}

Invoice net amount

{$Order._order.invoice_amount_net}

List all variables (for debugging purposes)

{$mopt_payone_decoded_clearing_data|print_r}

Risk Management
In order to use the risk management services, the Protect module of the PAYONE platform must be put into operation.
Die Plausibilitäts- und Gültigkeitsprüfung von Bankkontoverbindungen (Bankkontoprüfung) und Kreditkartennummern mittels LUHN-Prüfung (Kreditkartenprüfung) wird unabhängig von den Funktionalitäten des Protect-Moduls bei der Abwicklung von Zahlungen per Lastschrift und Kreditkarte eingesetzt.
Darüber hinaus können weitere Risikomanagement-Services zur Betrugsprävention über die PAYONE Plattform genutzt werden (IP Check, BIN Check, Velocity Check, Risk Matrix, etc.).
Creditworthiness-dependent management of the payment portfolio

With the PAYONE plugin for Shopware, you can control which payment methods are offered to your customers depending on their creditworthiness. The check takes place in real time for each individual buyer during the checkout process.

The settings can be defined differently for each payment type, so that risk checks are only performed under certain conditions and a payment type is only offered under certain conditions.

By installing the PAYONE plugin, the conditions of the traffic light value were added to the existing rules.

Under Configuration → Risk management you can determine whether a payment type is blocked based on a defined traffic light value.

Shipping Costs

To ensure smooth operation of the plug-in, it is necessary to assign shipping rates to each payment method. As a further option, you can define an alternative shipping type that always takes effect if no concrete shipping cost record is assigned to a payment type.

 

Customizing snippets

For the display of certain texts, text modules have been provided with the installation of the plug-in, which you can adapt according to the language used in each case. You find the administration of the snippets under Configuration → Snippets.

 

All text output (except bank names, e.g. with iDeal) in the frontend is provided via text modules, so that there is the greatest possible flexibility when using several languages. According to the Shopware standard, the text modules are initialized and stored in the database the first time they are used. They are then editable. The most important components are already stored during the installation of the plug-in. To edit specific text modules, you may first have to call the corresponding page in the frontend.

The text frame for the PAYONE plug-in can be found in the namespace frontend/MoptPaymentPayone. There is a general error message "generalErrorMessage" that is used when no specific error message is available. Specific error messages can be configured for individual error codes from the PAYONE platform. The text module for an error number 888 is then called "errorMessage888". Exceptions to this are the check of the bank details and the address, since no numerical error codes are returned there. The text modules for this are called "bankaccountcheck-blocked" or "addresscheckcorrected".

For technical reasons, only a few individual elements of the checkout can be processed directly in the templates. These templates can be found at:

/engine/Shopware/Plugins/Default/Frontend/MoptPaymentPayone/ViewsResponsive/frontend/plugins/payment

in the Shopware directory. 

Please ensure to always clear the shop caches after any alterations!

Duplicate payment method

Under Configuration → Payment methods you can copy the payment methods for separate use, with a subshop or other reasons such as country assignments.

After duplication, you can give the payment type a different name and assign it to a country or even to another subshop.

Please do not change the name of the payment type (here mopt_payone__cc_visa), because it is needed for using the correct routines. After duplication, a numeric suffix is appended to the name, which is necessary for the uniqueness of the names.