mirror of
https://github.com/vr-payment/shopware-6.git
synced 2026-06-04 19:03:01 +00:00
1026 lines
38 KiB
HTML
1026 lines
38 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
|
<meta name="keywords" value="VR Payment, Shopware, Shopware Plugin, Payment, Payment Integration, Documentation"><meta name="description" value="The documentation for the Shopware 6 plugin that enables processing payments with VR Payment.">
|
|
<link rel="canonical" href="@WalleeCanonicalPath(https://plugin-documentation.wallee.com/wallee-payment, VRPaymentPayment/docs/en/documentation.html)" />
|
|
<title>VR Payment Shopware 6 Documentation</title>
|
|
<link href="assets/monokai-sublime.css" rel="stylesheet" />
|
|
<link href="assets/base.css" rel="stylesheet" />
|
|
</head>
|
|
<body class="documentation">
|
|
<div class="layout-wrapper">
|
|
<div class="layout-title">
|
|
<h1>VR Payment Shopware 6 Documentation</h1>
|
|
<h2>Documentation</h2> </div>
|
|
<div class="layout-navigation">
|
|
<ul class="nav">
|
|
<li>
|
|
<a href="https://gateway.vr-payment.de/user/login">
|
|
Sign Up
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="@WalleeReleasePath()">
|
|
Source
|
|
</a>
|
|
</li>
|
|
</ul> </div>
|
|
<div class="layout-content">
|
|
<div class="col-body">
|
|
<div class="col-body-wrapper">
|
|
<div class="body-container">
|
|
<div class="chapter" id="_overview">
|
|
<div class="chapter-title">
|
|
<h1>
|
|
<span class="title-number">1</span>Overview </h1>
|
|
</div>
|
|
<div class="chapter-body">
|
|
<div class="paragraph">
|
|
<p>The VR Payment Payment Plugin integrates modern payment processing into Shopware 6, offering features like iFrame-based payments, refunds, captures, and PCI compliance. It supports seamless integration with the VR Payment Portal for managing transactions and payment methods.</p>
|
|
</div><div class="paragraph">
|
|
<p>Important: Please note that only Major (e.g. 6.x.0.0) and Minor (e.g. 6.0.x.0) update will be tested for compatibility within a 2 weeks after release.</p>
|
|
</div> </div>
|
|
</div> <div class="chapter" id="_requirements">
|
|
<div class="chapter-title">
|
|
<h1>
|
|
<span class="title-number">2</span>Requirements </h1>
|
|
</div>
|
|
<div class="chapter-body">
|
|
<div class="paragraph">
|
|
<p>Shopware Version: 6.5.x or 6.6.x (see <a href="#compatibility">compatibility table</a>).</p>
|
|
</div><div class="paragraph">
|
|
<p>PHP: Minimum version as required by your Shopware installation (e.g., 7.4+).</p>
|
|
</div><div class="paragraph">
|
|
<p>VR Payment Account: Obtain Space ID, User ID, and API Key from VR Payment Portal (see <a href="#portal-startup-guide">Portal Start-up Guide</a>).</p>
|
|
</div> </div>
|
|
</div> <div class="chapter" id="compatibility">
|
|
<div class="chapter-title">
|
|
<h1>
|
|
<span class="title-number">3</span>Compatibility </h1>
|
|
</div>
|
|
<div class="chapter-body">
|
|
<table class="tableblock frame-all grid-all spread">
|
|
<colgroup>
|
|
<col style="width: 25%;"/>
|
|
<col style="width: 25%;"/>
|
|
<col style="width: 25%;"/>
|
|
<col style="width: 25%;"/>
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Shopware Version</strong></p></td>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Plugin Version</strong></p></td>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>PHP Version</strong></p></td>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Support Until</strong></p></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock">6.6.x</p></td>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock">6.x.x</p></td>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PHP 8.2 and 8.3</p></td>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Ongoing</p></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock">6.5.x - Deprecated</p></td>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock">5.x.x</p></td>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PHP 8.2 and 8.3</p></td>
|
|
<td class="tableblock halign-left valign-top"><p class="tableblock">October 2024</p></td>
|
|
</tr>
|
|
</tbody>
|
|
</table> </div>
|
|
</div> <div class="chapter" id="_installation">
|
|
<div class="chapter-title">
|
|
<h1>
|
|
<span class="title-number">4</span>Installation </h1>
|
|
</div>
|
|
<div class="chapter-body">
|
|
<div class="section" id="_via_marketplace">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">4.1</span>Via Marketplace </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="olist arabic">
|
|
<ol class="arabic">
|
|
<li>
|
|
<p>Log in to the backend of your Shopware store.</p>
|
|
</li>
|
|
<li>
|
|
<p>Navigate to Settings → System → Plugins.</p>
|
|
</li>
|
|
<li>
|
|
<p>Click on the menu caret and select the Install link of the plugin to install</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/plugin-installation.png" alt="plugin installation"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Activate the VR Payment Payment plugin from the Plugin Manager.</p>
|
|
</li>
|
|
</ol>
|
|
</div> </div>
|
|
</div> <div class="section" id="_via_composer_recommended">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">4.2</span>Via Composer (Recommended) </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="olist arabic">
|
|
<ol class="arabic">
|
|
<li>
|
|
<p>Navigate to your Shopware root directory.</p>
|
|
</li>
|
|
<li>
|
|
<p>Run:</p>
|
|
<div class="listingblock">
|
|
<div class="content">
|
|
<pre class="highlight"><code class="language-bash" data-lang="bash">composer require vrpayment/shopware-6
|
|
php bin/console plugin:refresh
|
|
php bin/console plugin:install --activate --clearCache VRPaymentPayment</code></pre>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</div> </div>
|
|
</div> <div class="section" id="_manual_installation">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">4.3</span>Manual Installation </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="olist arabic">
|
|
<ol class="arabic">
|
|
<li>
|
|
<p>Download the <a href="https://github.com/vr-payment/shopware-6/releases" target="_blank">latest release</a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Extract the ZIP into <code>custom/plugins/</code></p>
|
|
</li>
|
|
<li>
|
|
<p>Run</p>
|
|
<div class="listingblock">
|
|
<div class="content">
|
|
<pre class="highlight"><code class="language-bash" data-lang="bash">php bin/console plugin:refresh
|
|
php bin/console plugin:install --activate --clearCache VRPaymentPayment</code></pre>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</div> </div>
|
|
</div> </div>
|
|
</div> <div class="chapter" id="portal-startup-guide">
|
|
<div class="chapter-title">
|
|
<h1>
|
|
<span class="title-number">5</span>Portal Startup Guide </h1>
|
|
</div>
|
|
<div class="chapter-body">
|
|
<div class="paragraph">
|
|
<p>Go to <a href="https://gateway.vr-payment.de/user/login">VR Payment</a> and create an Account if you do not already have one.</p>
|
|
</div><div class="admonitionblock tip">
|
|
<table>
|
|
<tr>
|
|
<td class="icon">
|
|
<div class="title">Tip</div>
|
|
</td>
|
|
<td class="content">
|
|
Please select the proper subscription plan - it should support ecommerce transaction.
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div> <div class="section" id="_create_the_api_key">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">5.1</span>Create the API key: </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="olist arabic">
|
|
<ol class="arabic">
|
|
<li>
|
|
<p>Once your account is activated; please navigate to Account → Application Users</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/application-users.png" alt="application users"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Click on Create application user</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/user.png" alt="user"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Specify a name for this API Key - I will put Test Shop and click on Create application user</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/api-key.png" alt="api key"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Your Application User will then be created. Please copy the User ID and Authentication Key as you will need them to link your shop to the portal.</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/token.png" alt="token"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Finally; you will need to allow certain permission to this Application User so it can communicate with your space. To do so; under Role; navigate to Manage.</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/roles.png" alt="roles"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Click on the + sign next to Space Roles</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/assign-role.png" alt="assign role"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Please add the role Space Admin and click on Assign Role.</p>
|
|
<div class="admonitionblock tip">
|
|
<table>
|
|
<tr>
|
|
<td class="icon">
|
|
<div class="title">Tip</div>
|
|
</td>
|
|
<td class="content">
|
|
Please note that Roles might be loading for few seconds
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/loading-roles.png" alt="loading roles"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Finally click on Save Roles; you will need to enter your password to confirm.</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/save-role.png" alt="save role"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</div> </div>
|
|
</div> <div class="section" id="_setup_payment_methods">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">5.2</span>Setup Payment Methods </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>You can now setup the payment methods you would like to have; for testing purpose we will use the Bogus Processor. Please note that if you would like to run production transaction; you can use either our Payfac offering or connect directly to a specific PSP (Worldline; ACI; …​)</p>
|
|
</div><div class="olist arabic">
|
|
<ol class="arabic">
|
|
<li>
|
|
<p>Navigate to Space → Settings and click on Processors</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/payment-settings.png" alt="payment settings"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Click on Configure processor</p>
|
|
</li>
|
|
<li>
|
|
<p>Select Bogus Processor and click on Continue</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/bogus-processor.png" alt="bogus processor"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Set up the name you would like to give to your processor - e.g. Test Processor - and click on Create</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/name-processor.png" alt="name processor"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Select all the Connectors that apply and click on Save</p>
|
|
<div class="admonitionblock tip">
|
|
<table>
|
|
<tr>
|
|
<td class="icon">
|
|
<div class="title">Tip</div>
|
|
</td>
|
|
<td class="content">
|
|
Please note that the connectors seems duplicated but it because one is for Physical Terminal payment and one for Ecommerce Payment
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/connectors.png" alt="connectors"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</div><div class="paragraph">
|
|
<p>Payments methods are now available in the portal</p>
|
|
</div> </div>
|
|
</div> </div>
|
|
</div> <div class="chapter" id="_shop_startup_guide">
|
|
<div class="chapter-title">
|
|
<h1>
|
|
<span class="title-number">6</span>Shop Startup Guide </h1>
|
|
</div>
|
|
<div class="chapter-body">
|
|
<div class="olist arabic">
|
|
<ol class="arabic">
|
|
<li>
|
|
<p><strong>API Credentials</strong></p>
|
|
<div class="olist loweralpha">
|
|
<ol class="loweralpha" type="a">
|
|
<li>
|
|
<p>Navigate to <strong>Shopware Admin</strong> → <strong>Settings</strong> → <strong>Extensions</strong> → <strong>VR Payment Payment</strong> and click on <strong>Save</strong>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Enter your <code>Space ID</code>, <code>User ID</code>, and <code>API Key</code></p>
|
|
<div class="olist lowerroman">
|
|
<ol class="lowerroman" type="i">
|
|
<li>
|
|
<p>For the Space id; you can navigate to Space and it will be provided - e.g. Space id = 76231</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/plugin-configuration.png" alt="plugin configuration"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p><strong>Payment Methods</strong></p>
|
|
<div class="paragraph">
|
|
<p>The payment methods available at checkout are driven by the VR Payment Portal. If you would like to disable a payment method; you will need to disable such payment method from the portal.</p>
|
|
</div>
|
|
<div class="admonitionblock note">
|
|
<table>
|
|
<tr>
|
|
<td class="icon">
|
|
<div class="title">Note</div>
|
|
</td>
|
|
<td class="content">
|
|
Please note that as there is a synchronisation between the portal and shop; you can do the same from the shop under <strong>Settings → Payment Methods</strong>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="olist loweralpha">
|
|
<ol class="loweralpha" type="a">
|
|
<li>
|
|
<p>Go to your <strong>Space</strong> → <strong>Settings</strong> → <strong>Payments</strong> → <strong>Payment</strong> Methods</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/payment-methods.png" alt="payment methods"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Select the payment method you would like to disable. Click on the slider to disable it → it should become inactive.</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/cc-enable.png" alt="cc enable"/>
|
|
</div>
|
|
</div>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/cc-disable.png" alt="cc disable"/>
|
|
</div>
|
|
</div>
|
|
<div class="admonitionblock tip">
|
|
<table>
|
|
<tr>
|
|
<td class="icon">
|
|
<div class="title">Tip</div>
|
|
</td>
|
|
<td class="content">
|
|
If you would like to disable only a Connector from a Payment Method (e.g. Mastercard for a Credit Card); please go to the Connector section.
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p><strong>Options</strong></p>
|
|
<div class="olist loweralpha">
|
|
<ol class="loweralpha" type="a">
|
|
<li>
|
|
<p><strong>Space View Id</strong>: This field allows you to apply custom styling to the payment form and payment page. The styling is defined in your Space settings in the Portal.</p>
|
|
<div class="admonitionblock note">
|
|
<table>
|
|
<tr>
|
|
<td class="icon">
|
|
<div class="title">Note</div>
|
|
</td>
|
|
<td class="content">
|
|
Please note that if you do not use the Space View Id; this option should stay empty
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p><strong>Integration</strong>: The Integration Options setting determines how the payment form is displayed during the checkout process. The following options are available:</p>
|
|
<div class="olist lowerroman">
|
|
<ol class="lowerroman" type="i">
|
|
<li>
|
|
<p><strong>IFrame</strong>: Embeds the payment form directly within the WooCommerce checkout page for a seamless experience.</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>Lightbox</strong>: Opens a secure popup window for customers to complete their payment without leaving the checkout page.</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>Payment Page</strong>: Redirects customers to a dedicated payment page hosted by the payment provider.</p>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p><strong>Line Item Consistency</strong>: Shopware calculates taxes at the line-item level, which may result in minor discrepancies (typically a few cents) between the order’s total tax and the displayed price. This discrepancy occurs due to rounding differences during individual line-item calculations. If the "Enforce consistency" setting is enabled, the portal will automatically reject orders with such discrepancies. To avoid payment processing issues, we recommend disabling this setting unless strict tax total validation is required.</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>Send Order Confirmation Email</strong>: Enable this option to send order confirmation emails directly from Shopware instead of the Portal.</p>
|
|
<div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/order-confirmation-email.png" alt="order confirmation email"/>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</div> </div>
|
|
</div> <div class="chapter" id="_transaction_state_graph">
|
|
<div class="chapter-title">
|
|
<h1>
|
|
<span class="title-number">7</span>Transaction State graph </h1>
|
|
</div>
|
|
<div class="chapter-body">
|
|
<div class="paragraph">
|
|
<p>The Payment Process of VR Payment is <strong>completely standardized for every payment method</strong> you can process. This gives you the ability to simply add
|
|
a payment method or processor without changes inside of your Shopware configuration. An overview about the states and the payment processes of VR Payment
|
|
can be found in the <a href="https://gateway.vr-payment.de/en-us/doc/payment/transaction-process" target="_blank">Payment Documentation</a>.</p>
|
|
</div><div class="paragraph">
|
|
<p>In the following section we provide you an overview about how the VR Payment states are mapped into the Shopware State graph for orders and payment states.</p>
|
|
</div> <div class="section" id="_state_mapping_of_shopware_orders">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">7.1</span>State mapping of Shopware orders </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>When the order gets abandoned also Order status goes to "cancel" after approx. 40 minutes. We also change the Payment status, and the Delivery status.</p>
|
|
</div> <div class="section" id="_general_remarks_regarding_order_statuses">
|
|
<div class="section-title">
|
|
<h3>
|
|
<span class="title-number">7.1.1</span>General remarks regarding order statuses </h3>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>We recommend that you only change the Order status once the Payment status has reached a final state.</p>
|
|
</div> </div>
|
|
</div> </div>
|
|
</div> <div class="section" id="_state_mapping_of_shopware_payment_status">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">7.2</span>State mapping of Shopware payment status </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>Below you can find a diagram that shows the state machine of Shopware for payment status including additional information for the state transitions.</p>
|
|
</div><div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/shopware_6_stage_graph_order.svg" alt="shopware 6 stage graph order"/>
|
|
</div>
|
|
</div><div class="olist glossary">
|
|
<ol class="glossary">
|
|
<li>
|
|
<p>If the transaction is <code>Authorized</code> in VR Payment, the Shopware order payment status is marked as <code>In Progress</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the transaction fails before or during the authorization process, the Shopware order payment status is marked as <code>Failed</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the transaction fails after the authorization, the Shopware order payment status is marked as <code>Cancelled</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the transaction invoice in VR Payment is marked as <code>Paid</code> or <code>Not Applicable</code>, the Shopware order payment status is marked as <code>Paid</code>.</p>
|
|
</li>
|
|
</ol>
|
|
</div> <div class="section" id="_general_remarks_regarding_payment_statuses">
|
|
<div class="section-title">
|
|
<h3>
|
|
<span class="title-number">7.2.1</span>General remarks regarding payment statuses </h3>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>We recommend that you do not change the payment status manually. If you do so, it may be changed again by the plugin.</p>
|
|
</div> </div>
|
|
</div> </div>
|
|
</div> <div class="section" id="_state_mapping_of_shopware_delivery_status">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">7.3</span>State mapping of Shopware delivery status </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>Below you find a diagram that shows the state machine of Shopware delivery status including additional information for the state transitions.</p>
|
|
</div><div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/shopware_6_stage_graph_delivery.svg" alt="shopware 6 stage graph delivery"/>
|
|
</div>
|
|
</div><div class="olist glossary">
|
|
<ol class="glossary">
|
|
<li>
|
|
<p>If the transaction is <code>Confirmed</code> status in VR Payment, the Shopware order delivery status is marked as <code>Hold</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the transaction in VR Payment is marked as <code>Fulfill</code>, the Shopware order delivery status is marked as <code>Open</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the transaction is in <code>Decline</code>, <code>Failed</code> or <code>Voided</code>, the Shopware order delivery status is marked as <code>Cancelled</code>.</p>
|
|
</li>
|
|
</ol>
|
|
</div> </div>
|
|
</div> </div>
|
|
</div> <div class="chapter" id="_transaction_management">
|
|
<div class="chapter-title">
|
|
<h1>
|
|
<span class="title-number">8</span>Transaction management </h1>
|
|
</div>
|
|
<div class="chapter-body">
|
|
<div class="paragraph">
|
|
<p>You can capture, cancel and refund transactions directly from within the Shopware backend. Please note
|
|
if you refund, void or capture transactions inside VR Payment the events will be synchronized into
|
|
Shopware. However, there are some limitations (see below).</p>
|
|
</div> <div class="section" id="_complete_capture_an_order">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">8.1</span>Complete (capture) an order </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>You have the possibility for your transactions to have the payment only authorized after the order is placed. Inside the <a href="https://gateway.vr-payment.de/space/select?target=/payment/connector-configuration/list" target="_blank">connector configuration</a> you have the option, if the payment method supports it, to define whether the payment should be completed immediately or deferred.</p>
|
|
</div><div class="paragraph">
|
|
<p>In order to capture a transaction, open the order and click on the <code>Complete</code> button.</p>
|
|
</div><div class="admonitionblock note">
|
|
<table>
|
|
<tr>
|
|
<td class="icon">
|
|
<div class="title">Note</div>
|
|
</td>
|
|
<td class="content">
|
|
When the completion is pending in VR Payment the order will stay in pending state.
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/capture-transaction.png" alt="capture transaction"/>
|
|
</div>
|
|
</div><div class="paragraph">
|
|
<p><strong>Deferred payment completion</strong></p>
|
|
</div><div class="paragraph">
|
|
<p>Retailers often have the case that they want to authorize transactions only and start the fulfillment process once all items are shippable. This is also possible with VR Payment.</p>
|
|
</div><div class="paragraph">
|
|
<p>However, certain processes should be followed. If you have configured payment completion to be deferred you should capture the transaction before you initiate the shipment
|
|
as it can always happen that a completion fails. If you want to be sure that you do not ship items for which you have not been paid you should postpone the shipment until
|
|
the fulfill state is reached. Initially the transaction will be in the <code>Authorized</code> state in VR Payment and <code>In Progress</code> in Shopware. If you want to start the fulfillment process make sure you initiate the completion process as described above. Once the completion was successful the order will switch into the <code>Fulfill</code> state in VR Payment and into <code>Paid</code> state in Shopware. You can now start the fulfillment process.</p>
|
|
</div> </div>
|
|
</div> <div class="section" id="_void_a_transaction">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">8.2</span>Void a transaction </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>In order to void a transaction, open the order and click on the <code>Cancel authorization</code> button.</p>
|
|
</div><div class="admonitionblock note">
|
|
<table>
|
|
<tr>
|
|
<td class="icon">
|
|
<div class="title">Note</div>
|
|
</td>
|
|
<td class="content">
|
|
You can only void transactions that are not yet completed.
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/void-transaction.png" alt="void transaction"/>
|
|
</div>
|
|
</div> </div>
|
|
</div> <div class="section" id="_refund_of_a_transaction">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">8.3</span>Refund of a transaction </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>You have the possibility to refund already completed transactions. In order to do so, open the captured order. By clicking on the 3 dots (…​) on a line-item, you can refund the line-item partially (if it has a higher quantity than 1), or you can refund the whole line-item. In case the payment method does not support refunds, you will not see the possibility to issue online refunds.</p>
|
|
</div><div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/refund-transaction.png" alt="refund transaction"/>
|
|
</div>
|
|
</div><div class="paragraph">
|
|
<p>You can carry out as many individual refunds as you wish until you have reached the total amount of the original order.
|
|
The status of the order then automatically switches to complete.</p>
|
|
</div><div class="admonitionblock note">
|
|
<table>
|
|
<tr>
|
|
<td class="icon">
|
|
<div class="title">Note</div>
|
|
</td>
|
|
<td class="content">
|
|
It can take some time until you see the refund in Shopware. Refunds will only be visible once they have been processed successfully.
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div> </div>
|
|
</div> <div class="section" id="_on_hold_orders">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">8.4</span>On hold orders </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>The delivery should not be done whilst the delivery state is <code>Hold</code>. This happens when the transaction in VR Payment
|
|
has not reached the fulfill state.</p>
|
|
</div><div class="paragraph">
|
|
<p>There are essentially two reasons why this can happen:</p>
|
|
</div><div class="ulist">
|
|
<ul>
|
|
<li>
|
|
<p>The transaction is not completed. In this case you have to complete the transaction as written above.</p>
|
|
</li>
|
|
<li>
|
|
<p>We are not able to tell if you should fulfill the order. The delivery decision is done automatically. If this does not happen
|
|
within the defined time frame, VR Payment will generate a manual task which you should observe and follow the instructions.</p>
|
|
</li>
|
|
</ul>
|
|
</div><div class="paragraph">
|
|
<p>You can find more information about manual tasks in our <a href="https://gateway.vr-payment.de/en-us/doc/manual-tasks" target="_blank">Manual Task Documentation</a>.</p>
|
|
</div> </div>
|
|
</div> <div class="section" id="_limitations_of_the_synchronization_between_whitelabelname_and_shopware">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">8.5</span>Limitations of the synchronization between VR Payment and Shopware </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>Please note that captures, voids and refunds done in VR Payment are synchronized. However, there are some
|
|
limitations. Inside VR Payment you are able to change the <strong>unit price</strong> and the <strong>quantity</strong> at once. This can not
|
|
be done in the Shopware backend. We therefore recommend that you
|
|
perform the refunds always inside the Shopware backend and not inside VR Payment. If a refund
|
|
cannot be synchronized it will be sent to the processor but it could be that you do not see it inside
|
|
your Shopware backend.</p>
|
|
</div><div class="paragraph">
|
|
<p>You can find more information about Refunds in VR Payment in our <a href="https://gateway.vr-payment.de/en-us/doc/payment/refund" target="_blank">Refund Documentation</a>.</p>
|
|
</div> </div>
|
|
</div> <div class="section" id="_tokenization">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">8.6</span>Tokenization </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p>In case the payment method supports tokenization you can store the payment details of your customer for future purchases.
|
|
In order to use this feature make sure that the <strong>One-Click-Payment Mode</strong> in your <a href="https://gateway.vr-payment.de/space/select?target=/payment/method-configuration/list" target="_blank">payment method configuration</a> is set to <code>allow</code> or <code>force</code> storage.</p>
|
|
</div><div class="admonitionblock note">
|
|
<table>
|
|
<tr>
|
|
<td class="icon">
|
|
<div class="title">Note</div>
|
|
</td>
|
|
<td class="content">
|
|
Tokenization is not available for guest checkouts.
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div> </div>
|
|
</div> <div class="section" id="_key_features">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">8.7</span>Key Features </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="ulist">
|
|
<ul>
|
|
<li>
|
|
<p><strong>iFrame Integration</strong>: Embed payment forms directly into your checkout.</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>Refunds & Captures</strong>: Trigger full/partial refunds and captures from Shopware or the VR Payment Portal.</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>Multi-Store Support</strong>: Manage configurations across multiple stores.</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>Automatic Updates</strong>: Payment methods sync dynamically via the VR Payment API.</p>
|
|
</li>
|
|
</ul>
|
|
</div> </div>
|
|
</div> <div class="section" id="_troubleshooting">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">8.8</span>Troubleshooting </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="ulist">
|
|
<ul>
|
|
<li>
|
|
<p>Logs: Check payment logs with:</p>
|
|
<div class="listingblock">
|
|
<div class="content">
|
|
<pre class="highlight"><code class="language-bash" data-lang="bash">tail -f var/log/whitelabelname_payment*.log</code></pre>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Common Issues:</p>
|
|
<div class="ulist">
|
|
<ul>
|
|
<li>
|
|
<p>Ensure <code>composer update whitelabelname/shopware-6</code> is run after updates.</p>
|
|
</li>
|
|
<li>
|
|
<p>Verify API credentials match your VR Payment account.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div> </div>
|
|
</div> <div class="section" id="_faqs">
|
|
<div class="section-title">
|
|
<h2>
|
|
<span class="title-number">8.9</span>FAQs </h2>
|
|
</div>
|
|
<div class="section-body">
|
|
<div class="paragraph">
|
|
<p><strong>Q: How to be sure that the connection between the portal and the shop is working?</strong></p>
|
|
</div><div class="paragraph">
|
|
<p>A: You will need to see if the webhooks were correctly created. To do so; please navigate to your space in the portal, go to Settings → General → Webhook Listeners</p>
|
|
</div><div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/webhooks.png" alt="webhooks"/>
|
|
</div>
|
|
</div><div class="imageblock">
|
|
<div class="content">
|
|
<img src="resource/webhook-listeners.png" alt="webhook listeners"/>
|
|
</div>
|
|
</div><div class="paragraph">
|
|
<p><strong>Q: Does this plugin support one-click payments?</strong></p>
|
|
</div><div class="paragraph">
|
|
<p>A: Yes, via tokenization in the VR Payment Portal.</p>
|
|
</div><div class="paragraph">
|
|
<p><strong>Q: How do I handle PCI compliance?</strong></p>
|
|
</div><div class="paragraph">
|
|
<p>A: The plugin uses iFrame integration, reducing PCI requirements to SAQ-A.</p>
|
|
</div><div class="paragraph">
|
|
<p><strong>Q: Does the plugin support Apple Pay?</strong></p>
|
|
</div><div class="paragraph">
|
|
<p>A: Yes, the plugin support wallet like Apple Pay.</p>
|
|
</div> </div>
|
|
</div> </div>
|
|
</div> <div class="chapter" id="_changelog">
|
|
<div class="chapter-title">
|
|
<h1>
|
|
<span class="title-number">9</span>Changelog </h1>
|
|
</div>
|
|
<div class="chapter-body">
|
|
<div class="paragraph">
|
|
<p>For version-specific updates, see the <a href="https://github.com/vr-payment/shopware-6/releases" target="_blank">GitHub Releases</a>.</p>
|
|
</div> </div>
|
|
</div> <div class="chapter" id="_contributing">
|
|
<div class="chapter-title">
|
|
<h1>
|
|
<span class="title-number">10</span>Contributing </h1>
|
|
</div>
|
|
<div class="chapter-body">
|
|
<div class="paragraph">
|
|
<p>Report issues via <a href="https://github.com/vr-payment/shopware-6/issues" target="_blank">GitHub Issues</a>.</p>
|
|
</div><div class="paragraph">
|
|
<p>Follow the <a href="https://developer.shopware.com/docs/guides/plugins/plugins/plugin-base-guide.html" target="_blank">Shopware Plugin Base Guide</a> for development.</p>
|
|
</div> </div>
|
|
</div> <div class="chapter" id="_support">
|
|
<div class="chapter-title">
|
|
<h1>
|
|
<span class="title-number">11</span>Support </h1>
|
|
</div>
|
|
<div class="chapter-body">
|
|
<div class="paragraph">
|
|
<p>If you need help, feel free to contact our <a href="https://www.vr-payment.de/hotline">support</a>.</p>
|
|
</div> </div>
|
|
</div> </div>
|
|
</div>
|
|
</div>
|
|
<div class="col-right">
|
|
<div class="col-right-wrapper">
|
|
<div class="table-of-contents">
|
|
<ul class="nav">
|
|
<li class="nav-level-1">
|
|
<a href="#_overview">
|
|
<span class="item-number">1</span>
|
|
<span class="item-title">Overview</span>
|
|
</a>
|
|
</li> <li class="nav-level-1">
|
|
<a href="#_requirements">
|
|
<span class="item-number">2</span>
|
|
<span class="item-title">Requirements</span>
|
|
</a>
|
|
</li> <li class="nav-level-1">
|
|
<a href="#compatibility">
|
|
<span class="item-number">3</span>
|
|
<span class="item-title">Compatibility</span>
|
|
</a>
|
|
</li> <li class="nav-level-1">
|
|
<a href="#_installation">
|
|
<span class="item-number">4</span>
|
|
<span class="item-title">Installation</span>
|
|
</a>
|
|
<ul class="nav">
|
|
<li class="nav-level-2">
|
|
<a href="#_via_marketplace">
|
|
<span class="item-number">4.1</span>
|
|
<span class="item-title">Via Marketplace</span>
|
|
</a>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_via_composer_recommended">
|
|
<span class="item-number">4.2</span>
|
|
<span class="item-title">Via Composer (Recommended)</span>
|
|
</a>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_manual_installation">
|
|
<span class="item-number">4.3</span>
|
|
<span class="item-title">Manual Installation</span>
|
|
</a>
|
|
</li> </ul>
|
|
</li> <li class="nav-level-1">
|
|
<a href="#portal-startup-guide">
|
|
<span class="item-number">5</span>
|
|
<span class="item-title">Portal Startup Guide</span>
|
|
</a>
|
|
<ul class="nav">
|
|
<li class="nav-level-2">
|
|
<a href="#_create_the_api_key">
|
|
<span class="item-number">5.1</span>
|
|
<span class="item-title">Create the API key:</span>
|
|
</a>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_setup_payment_methods">
|
|
<span class="item-number">5.2</span>
|
|
<span class="item-title">Setup Payment Methods</span>
|
|
</a>
|
|
</li> </ul>
|
|
</li> <li class="nav-level-1">
|
|
<a href="#_shop_startup_guide">
|
|
<span class="item-number">6</span>
|
|
<span class="item-title">Shop Startup Guide</span>
|
|
</a>
|
|
</li> <li class="nav-level-1">
|
|
<a href="#_transaction_state_graph">
|
|
<span class="item-number">7</span>
|
|
<span class="item-title">Transaction State graph</span>
|
|
</a>
|
|
<ul class="nav">
|
|
<li class="nav-level-2">
|
|
<a href="#_state_mapping_of_shopware_orders">
|
|
<span class="item-number">7.1</span>
|
|
<span class="item-title">State mapping of Shopware orders</span>
|
|
</a>
|
|
<ul class="nav">
|
|
<li class="nav-level-3">
|
|
<a href="#_general_remarks_regarding_order_statuses">
|
|
<span class="item-number">7.1.1</span>
|
|
<span class="item-title">General remarks regarding order statuses</span>
|
|
</a>
|
|
</li> </ul>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_state_mapping_of_shopware_payment_status">
|
|
<span class="item-number">7.2</span>
|
|
<span class="item-title">State mapping of Shopware payment status</span>
|
|
</a>
|
|
<ul class="nav">
|
|
<li class="nav-level-3">
|
|
<a href="#_general_remarks_regarding_payment_statuses">
|
|
<span class="item-number">7.2.1</span>
|
|
<span class="item-title">General remarks regarding payment statuses</span>
|
|
</a>
|
|
</li> </ul>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_state_mapping_of_shopware_delivery_status">
|
|
<span class="item-number">7.3</span>
|
|
<span class="item-title">State mapping of Shopware delivery status</span>
|
|
</a>
|
|
</li> </ul>
|
|
</li> <li class="nav-level-1">
|
|
<a href="#_transaction_management">
|
|
<span class="item-number">8</span>
|
|
<span class="item-title">Transaction management</span>
|
|
</a>
|
|
<ul class="nav">
|
|
<li class="nav-level-2">
|
|
<a href="#_complete_capture_an_order">
|
|
<span class="item-number">8.1</span>
|
|
<span class="item-title">Complete (capture) an order</span>
|
|
</a>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_void_a_transaction">
|
|
<span class="item-number">8.2</span>
|
|
<span class="item-title">Void a transaction</span>
|
|
</a>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_refund_of_a_transaction">
|
|
<span class="item-number">8.3</span>
|
|
<span class="item-title">Refund of a transaction</span>
|
|
</a>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_on_hold_orders">
|
|
<span class="item-number">8.4</span>
|
|
<span class="item-title">On hold orders</span>
|
|
</a>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_limitations_of_the_synchronization_between_whitelabelname_and_shopware">
|
|
<span class="item-number">8.5</span>
|
|
<span class="item-title">Limitations of the synchronization between VR Payment and Shopware</span>
|
|
</a>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_tokenization">
|
|
<span class="item-number">8.6</span>
|
|
<span class="item-title">Tokenization</span>
|
|
</a>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_key_features">
|
|
<span class="item-number">8.7</span>
|
|
<span class="item-title">Key Features</span>
|
|
</a>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_troubleshooting">
|
|
<span class="item-number">8.8</span>
|
|
<span class="item-title">Troubleshooting</span>
|
|
</a>
|
|
</li> <li class="nav-level-2">
|
|
<a href="#_faqs">
|
|
<span class="item-number">8.9</span>
|
|
<span class="item-title">FAQs</span>
|
|
</a>
|
|
</li> </ul>
|
|
</li> <li class="nav-level-1">
|
|
<a href="#_changelog">
|
|
<span class="item-number">9</span>
|
|
<span class="item-title">Changelog</span>
|
|
</a>
|
|
</li> <li class="nav-level-1">
|
|
<a href="#_contributing">
|
|
<span class="item-number">10</span>
|
|
<span class="item-title">Contributing</span>
|
|
</a>
|
|
</li> <li class="nav-level-1">
|
|
<a href="#_support">
|
|
<span class="item-number">11</span>
|
|
<span class="item-title">Support</span>
|
|
</a>
|
|
</li> </ul>
|
|
</div> </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/javascript" src="assets/jquery.js"></script>
|
|
<script type="text/javascript" src="assets/scrollspy.js"></script>
|
|
<script type="text/javascript" src="assets/sticky-kit.js"></script>
|
|
<script type="text/javascript" src="assets/highlight.js"></script>
|
|
<script type="text/javascript" src="assets/base.js"></script>
|
|
</body>
|
|
</html>
|