Skip to content

Commit

Permalink
Added Stripe Payments
Browse files Browse the repository at this point in the history
  • Loading branch information
aschempp committed Dec 10, 2024
1 parent 84bc089 commit 9554e1e
Show file tree
Hide file tree
Showing 13 changed files with 253 additions and 0 deletions.
25 changes: 25 additions & 0 deletions docs/payment-stripe/_index.de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: "Stripe Zahlungen für Isotope eCommerce"
---

# Stripe Zahlungen für Isotope eCommerce

Mit dieser Erweiterung kannst du den Zahlungsanbieter [Stripe](https://www.stripe.com)
in deinem Isotope eCommerce Shop verwenden.


## Vorteile

- _Stripe Payments_ vereinheitlicht die Abwicklung von [über 100 Zahlungsmittel][Payments] wie
Kreditkarte (VISA, MasterCard), PayPal, ApplePay, Klarna und viele mehr.

- Die Auswahl der Zahlungsmittel erfolgt entweder auf Seite von Stripe (automatisches Angebot)
abhängig vom Kunden, oder kann in der Zahlungsmethode in Isotope konfiguriert werden. [Siehe Zahlungsmittel][payment_types]

- Durch Webhooks werden erfolgreiche Zahlungen sichergestellt, auch wenn Kund:innen
den Bestellprozess z.B. nach Abschluss bei PayPal verlassen. [Siehe Webhooks][webhooks]


[Payments]: https://stripe.com/de-ch/payments/payment-methods
[payment_types]: ./einrichtung#zahlungsarten
[webhooks]: ./webhooks
25 changes: 25 additions & 0 deletions docs/payment-stripe/_index.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: "Stripe payments for Isotope eCommerce"
---

# Stripe payments for Isotope eCommerce

With this extension you can use the payment provider [Stripe](https://www.stripe.com)
in your Isotope eCommerce Shop.


## Advantages

- _Stripe Payments_ standardizes the processing of [over 100 payment methods][Payments] such as
credit card (VISA, MasterCard), PayPal, ApplePay, Klarna and many more.

- The means of payment is selected either on the Stripe side (automatic offer)
depending on the customer, or can be configured in the payment method in Isotope. [See means of payment][payment_types]

- Webhooks ensure successful payments, even if customers leave the order process,
e.g. after completing it with PayPal. [See webhooks][webhooks]


[Payments]: https://stripe.com/de-ch/payments/payment-methods
[payment_types]: ./configuration#zahlungsarten
[webhooks]: ./webhooks
60 changes: 60 additions & 0 deletions docs/payment-stripe/configuration/_index.de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
title: "Einrichtung"
url: "einrichtung"
weight: 100
---

Nach erfolgreicher Installation der Erweiterung steht im Backend
von Isotope eCommerce eine neue Zahlungsart zur Verfügung. Diese
kann über den Punkt _Shop-Konfiguration_ => _Zahlungsarten_ eingerichtet werden.

![](backend.de.png)


## Einrichtung der Zugangsdaten

Für die Verbindung mit Stripe werden API-Zugangsdaten (öffentlicher und geheimer Schlüssel)
benötigt. Diese können im Stripe-Benutzerkonto unter _Developers_ gefunden werden.
Beide Schlüssel müssen ins Backend von Contao kopiert werden.

![](keys.png)

## Weitere Felder

### Beschreibung der Bestellung

Dieser Text wird bei Stripe angezeigt, wenn die Bestellung verarbeitet wird.
Gib z.B. deinen Shop-Namen oder "Bestellung von xxx" ein. Diese Zeile wird benötigt,
da Stripe keine negativen Produktdaten (Rabatte) darstellen kann.


### Zahlungsarten

> Stripe zeigt deinen Kunden/Kundinnen dynamisch die relevantesten Zahlungsmethoden an,
> basierend auf den im Dashboard festgelegten Präferenzen für die Zahlungsmethoden und
> den Berechtigungsfaktoren wie Transaktionsbetrag, Währung und Zahlungsfluss.
> [Stripe Dokumentation](https://docs.stripe.com/payments/payment-methods/integration-options#using-dynamic-payment-methods)
Im Feld _Zahlungsarten_ kann eine kommaseparierte Liste von Zahlungsmethoden eingegeben werden,
falls nicht automatisch alle angeboten werden sollen. Siehe dazu die [Liste der möglichen Werte](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type).

### Transaktions-Typ

Hier kann gesteuert werden, ob Zahlungen z.B. bei Kreditkarten automatisch belastet
oder nur reserviert werden. Im Normalfall ist "Authorisieren und Einnehmen" die sinnvollere Option.

### Erlaube verzögerte Zahlungsmittel

Standardmässig werden Bestellungen in Isotope nur abgeschlossen, wenn die Zahlung erfolgreich ist,
z.B. wenn die Kreditkarte erfolgreich belastet werden konnte. Stripe unterstützt allerdings auch
Zahlungsmittel, welche erst verzögert erfolgreich sind. Dazu gehören zum Beispiel _SEPA-Lastschrift_
oder _Banküberweisung_.

Wird die entsprechende Option aktiviert, prüft die Zahlungsmethode nicht mehr auf Erfolg der Zahlung.
Die Bestellung wird sofort abgeschlossen, ob die Bestellung versendet werden soll, muss manuell geprüft werden.

{{% notice warning %}}
Wenn verzögerte Zahlungsmittel verwendet werden, sollte ein Bestellstatus gewählt werden,
der nicht sofort als _bezahlt_ gilt. Ansonsten ist es möglich, z.B. digitale Artikel wie PDFs herunterzuladen,
bevor die Zahlung tatsächlich erfolgreich ist.
{{% /notice %}}
58 changes: 58 additions & 0 deletions docs/payment-stripe/configuration/_index.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: "Configuration"
url: "configuration"
weight: 100
---

After successfully installing the extension, a new payment method will appear in the backend
of Isotope eCommerce. It can be set up by selecting _Store configuration_ => _Payment methods_.
![](backend.en.png)


## Setting up the access details

API access credentials (publishable and secret key) are required for the connection with Stripe.
These can be found in the Stripe user account under _Developers_. Both keys must be copied into the Contao backend.

![](keys.png)

## Other fields

### Order Description

This text is displayed by Stripe in the payment processing screen.
Enter your store name or "Order from xxx" for example. Unfortunately, this line
is required, as Stripe cannot display negative product amounts (discounts).


### Payment method types

> Stripe dynamically displays the most relevant payment methods to your customers based on the payment method
> preferences you set in the Dashboard and eligibility factors such as transaction amount, currency, and payment flow.
> [Stripe documentation](https://docs.stripe.com/payments/payment-methods/integration-options#using-dynamic-payment-methods)
A comma-separated list of payment methods can be entered in the _Payment method types_ field,
if not all of them are to be offered automatically.
See the [list of possible values](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type).

### Transaction type

Here you can control whether payments, e.g. for credit cards, are automatically debited
or only reserved. Normally, "Authorize and collect" is the more sensible option.

### Allow delayed payment methods

By default, orders in Isotope are only completed if the payment is successful,
e.g. when the credit card has been successfully charged. However, Stripe also supports
payment methods that are only successful after a delay. These include _SEPA direct debit_
or _bank transfer_ and others.

If the option is activated, the payment method no longer checks whether the payment was successful.
The order is completed immediately, whether the order should be sent must be checked manually.


{{% notice warning %}}
If delayed means of payment are used, an order status should be selected that is not immediately considered _paid_.
Otherwise, it might be possible to download digital items such as PDFs
before the payment is actually successful.
{{% /notice %}}
Binary file added docs/payment-stripe/configuration/backend.de.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/payment-stripe/configuration/backend.en.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/payment-stripe/configuration/keys.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 31 additions & 0 deletions docs/payment-stripe/webhooks/_index.de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: "Webhooks"
url: "webhooks"
weight: 200
---

Durch die Einrichtung von Webhooks kann der Shop auf Ereignisse in deinem Stripe-Konto reagieren,
um die korrekte Verarbeitung von Zahlungen sicherzustellen. Weitere Erklärungen findest
du in der [Dokumentation von Stripe](https://docs.stripe.com/webhooks).

{{% notice info %}}
**Für die Nutzung von Webhooks benötigtst du mindestens Version 1.0.0 der Erweiterung.**
Beachte das Webhooks nicht auf lokalen Testsystemen funktionieren, oder wenn du
deinen Shop mittels Passwort geschützt hast.
{{% /notice %}}


## Einrichtung bei Stripe

Registriere die URL des Webhook-Endpoints im Abschnitt [Webhooks](https://dashboard.stripe.com/webhooks)
im Entwickler-Dashboard. Dadurch weiss Stripe, wohin Ereignisse übermittelt werden sollen.

Als _Event_ benötigt Isotope nur **checkout.session.completed**. Die **Endpoint-URL** findest du im Backend von Contao, wenn du die entsprechende Zahlungsmethode bearbeitest.
Sie wird oben als Hinweis über dem Eingabeformular angezeigt.


## Einrichtung bei Isotope

Für die Verarbeitung von Webhooks ist bei Isotope keine Anpassung nötig.
Sobald die entsprechenden Meldungen von Stripe eingehen, werden diese
vom Shop automatisch akzeptiert und falls nötig verarbeitet.
31 changes: 31 additions & 0 deletions docs/payment-stripe/webhooks/_index.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: "Webhooks"
url: "webhooks"
weight: 200
---

By setting up webhooks, your shop can react to events in your Stripe account
to ensure the correct processing of payments. Further explanations can be found
in the [Stripe documentation](https://docs.stripe.com/webhooks).

{{% notice info %}}
**To use webhooks you need at least version 1.0.0 of the extension.**
Note that webhooks do not work on local test systems, or if you have protected
your store website with a password.
{{% /notice %}}


## Setting up Stripe

Register the URL of the webhook endpoint in the [Webhooks](https://dashboard.stripe.com/webhooks) section
in the developer dashboard. This tells Stripe where events should be transmitted to.

As _event_ Isotope only needs **checkout.session.completed**. You can find the **Endpoint URL** in the Contao backend
when you edit the corresponding payment method. It is displayed as a note above the input form.


## Setting up Isotope

Isotope does not require any setup for processing webhooks.
As soon as the corresponding messages are received from Stripe, they are
automatically accepted by the store and processed if necessary.
12 changes: 12 additions & 0 deletions page/config/payment-stripe/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
contentDir: '../docs/payment-stripe'
title: 'Stripe Payments'
defaultContentLanguageInSubdir: true
DefaultContentLanguage: en

menu:
shortcuts:
-
name: "<i class='fas fa-shopping-cart'></i> Extension Store"
identifier: "ds"
url: "https://extensions.terminal42.ch/p/payment-stripe"
weight: 10
6 changes: 6 additions & 0 deletions page/config/payment-stripe/languages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
en:
languageName: English
weight: 1
de:
languageName: Deutsch
weight: 2
4 changes: 4 additions & 0 deletions page/config/payment-stripe/params.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
DocumentationTitleEn: Stripe Payments
DocumentationTitleDe: Stripe Zahlungen
extensionPermalink: https://extensions.terminal42.ch/p/payment-stripe
extensionIcon: payment-stripe.svg
1 change: 1 addition & 0 deletions page/static/images/logos/payment-stripe.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 9554e1e

Please sign in to comment.