Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions AdminRender.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,17 @@ public function renderPage(string $tabName, JTLSmarty $smarty, $request): string

$smarty->assign('pluginURL', $this->plugin->getPaths()->getShopURL());

// Add JS script to Settings page for webhooks_secret field
if ($tabName === 'Settings') {
$jsUrl = $this->plugin->getPaths()->getAdminURL() . 'js/mondu_admin.js?v=3.0.8';
$postUrl = Shop::getURL() . '/' . \PFAD_ADMIN . 'plugin.php?kPlugin=' . $this->plugin->getID();

pq('body')->append('
<input type="hidden" name="mondu_post_url" id="mondu_post_url" value="' . $postUrl . '">
<script type="text/javascript" src="' . $jsUrl . '"></script>
');
}

if ($tabName === 'Info') {
return $smarty
->assign('postUrl', Shop::getURL() . '/' . \PFAD_ADMIN . 'plugin.php?kPlugin=' . $this->plugin->getID())
Expand Down Expand Up @@ -93,6 +104,7 @@ private function handleRegisterWebhooksRequest()
$response,
Response::HTTP_UNPROCESSABLE_ENTITY
);
exit;
}
}

Expand Down
13 changes: 13 additions & 0 deletions Bootstrap.php
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,19 @@ public function prepareFrontend(LinkInterface $link, JTLSmarty $smarty): bool
$routes = new RoutesService;
$routes->frontEndRoutes($this->getPlugin());

// Register CSS and JS files via Smarty
$pluginUrl = $this->getPlugin()->getPaths()->getBaseURL();
$version = $this->getPlugin()->getMeta()->getVersion();

// Add CSS to head
Shop::Smarty()->assign('monduPluginUrl', $pluginUrl);
Shop::Smarty()->assign('monduPluginVersion', $version);

// Register in page header
\pq('head')->append(
'<link rel="stylesheet" href="' . $pluginUrl . 'frontend/css/style.css?v=' . $version . '" type="text/css" media="all">'
);

return true;
}

Expand Down
6 changes: 4 additions & 2 deletions Migrations/Migration20221130105300.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@ class Migration20221130105300 extends Migration implements IMigration
{
public function up()
{
// Clear all hint texts for Mondu payment methods instead of setting them
$this->execute("
UPDATE `tzahlungsartsprache` zs
SET zs.`cHinweisTextShop` = 'Hinweise zur Verarbeitung Ihrer personenbezogenen Daten durch die Mondu GmbH finden Sie [url=https://www.mondu.ai/de/datenschutzgrundverordnung-kaeufer/]hier[/url].'
WHERE zs.`cGebuehrname` = 'Mondu' and zs.`cISOSprache` IN ('ger', 'eng');
SET zs.`cHinweisTextShop` = '', zs.`cHinweisText` = ''
WHERE zs.`cGebuehrname` = 'Mondu';
");
}

Expand All @@ -21,3 +22,4 @@ public function down()

}
}

156 changes: 99 additions & 57 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ JTL 5 Integration plugin for Mondu Payment.
2. Expand **Installed plug-ins** menu item on the left side and choose Mondu Payment
3. Configure the fields:
* API Sandbox Mode: Select yes to point the plugin to the sandbox environment
* Fill in API Secret
* Fill in API Secret (will be done automatically)
* Save configuration
* Click register webhooks button

Expand All @@ -35,87 +35,129 @@ JTL 5 Integration plugin for Mondu Payment.
2. Add following payment methods:

```
Rechnungskauf - jetzt kaufen, später bezahlen
SEPA-Lastschrift - jetzt kaufen, später per Bankeinzug bezahlen
Ratenzahlung - Bequem in Raten per Bankeinzug zahlen
Ratenkauf (3, 6, 12 Monaten)
SEPA-Lastschrift (30 Tage)
Rechnungskauf (30 Tage)
Echtzeitüberweisung
```

**Note: In case Payment Method names are changed manually in the JTL Shop, please update accordingly in the JTL Wawi.**

**Note: Please add or modify the net terms accordingly your contractual agreement. <br></br> In case the Mondu Payment Method names are changed manually in the JTL Shop, please update them accordingly in JTL Wawi.**

### Create Invoice Workflow

1. Navigate to the Admin -> JTL-Workflows
2. Select **Rechnungen** tab
3. Select Rechnungen -> Erstellt -> Rechnungen_Erstellt workflow
4. Configure condition with "One condition met" (Eine Bedingung erfüllt")
1. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** Rechnungskauf - jetzt kaufen, später bezahlen
2. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** SEPA-Lastschrift - jetzt kaufen, später per Bankeinzug bezahlen
3. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** Ratenzahlung - Bequem in Raten per Bankeinzug zahlen
### New installation:
Just create the workflows with the name of the payment methods which are mentioned in step 2 (add payment methods):
* Ratenkauf (3, 6, 12 Monaten)
* SEPA-Lastschrift (30 Tage)
* Rechnungskauf (30 Tage)
* Echtzeitüberweisung

### Update from existing installation:
Update the conditions so that the rules will match for old AND new naming e.g.:
* Ratenkauf (3, 6, 12 Monaten)
* SEPA-Lastschrift (30 Tage)
* Rechnungskauf (30 Tage)
* Echtzeitüberweisung <br/> OR create additional rules so that all new payment methods will be covered

1. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** Rechnungskauf
2. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** SEPA-Lastschrift
3. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** Rate
4. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** Echtzeitüberweisung
5. Configure action
1. Web-Request POST:
1. URL:
```
http://{SHOP-URL}/mondu-api?return=invoice-create&webhooks_secret={WEBHOOK SECRET}
```
2. Parameter:
```
gross_amount_cents={{ Vorgang.Auftrag.Positionen.BruttopreisGesamt2 }}&net_amount_cents={{ Vorgang.Auftrag.Positionen.NettopreisGesamt2 }}&invoice_id={{ Vorgang.Rechnungsnummer }}&order_id={{ Vorgang.Auftrag.ExterneAuftragsnummer }}
```
3. Header:
```
Content-Type: application/x-www-form-urlencoded
```

1. URL:
```
http://{SHOP-URL}/mondu-api?return=invoice-create&webhooks_secret={WEBHOOK SECRET}
```
2. Parameter:
```
gross_amount_cents={{ Vorgang.Auftrag.Positionen.BruttopreisGesamt2 }}&net_amount_cents={{ Vorgang.Auftrag.Positionen.NettopreisGesamt2 }}&invoice_id={{ Vorgang.Rechnungsnummer }}&order_id={{ Vorgang.Auftrag.ExterneAuftragsnummer }}
```
3. Header:
```
Content-Type: application/x-www-form-urlencoded
```
### Cancel Invoice Workflow

1. Navigate to the Admin -> JTL-Workflows
2. Select **Rechnungen** tab
3. Select Rechnungen - Manuell, create new Event with "Ereignis anlegen" button
4. Create new event
4. Configure condition with "One condition met" (Eine Bedingung erfüllt")
1. Auftrag\Zahlungsart\Name **Enthalt** Rechnungskauf - jetzt kaufen, später bezahlen
2. Auftrag\Zahlungsart\Name **Enthalt** SEPA-Lastschrift - jetzt kaufen, später per Bankeinzug bezahlen
3. Auftrag\Zahlungsart\Name **Enthalt** Ratenzahlung - Bequem in Raten per Bankeinzug zahlen
### New installation:
Just create the workflows with the name of the payment methods which are mentioned in step 2 (add payment methods):
* Ratenkauf (3, 6, 12 Monaten)
* SEPA-Lastschrift (30 Tage)
* Rechnungskauf (30 Tage)
* Echtzeitüberweisung

### Update from existing installation:
Update the conditions so that the rules will match for old AND new naming e.g.:
* Ratenkauf (3, 6, 12 Monaten)
* SEPA-Lastschrift (30 Tage)
* Rechnungskauf (30 Tage)
* Echtzeitüberweisung <br/> OR create additional rules so that all new payment methods will be covered

1. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** Rechnungskauf
2. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** SEPA-Lastschrift
3. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** Rate
4. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** Echtzeitüberweisung
6. Configure action
1. Web-Request POST:
1. URL:
```
http://{SHOP-URL}/mondu-api?return=cancel-invoice&webhooks_secret={WEBHOOK SECRET}
```
2. Parameter:
```
invoice_number={{ Vorgang.Rechnungsnummer }}
```
3. Header:
```
Content-Type: application/x-www-form-urlencoded
```

1. Web-Request POST:
1. URL:
```
http://{SHOP-URL}/mondu-api?return=cancel-invoice&webhooks_secret={WEBHOOK SECRET}
```
2. Parameter:
```
invoice_number={{ Vorgang.Rechnungsnummer }}
```
3. Header:
```
Content-Type: application/x-www-form-urlencoded
```
### Cancel Order Workflow

1. Navigate to the Admin -> JTL-Workflows
2. Select **Auftrage** tab
3. Select Auftrag -> Storniert and create a workflow
4. 4. Configure condition with "One condition met" (Eine Bedingung erfüllt")
1. Zahlungen\Zahlungsart\Name **Enthalt** Rechnungskauf - jetzt kaufen, später bezahlen
2. Zahlungen\Zahlungsart\Name **Enthalt** SEPA-Lastschrift - jetzt kaufen, später per Bankeinzug bezahlen
3. Zahlungen\Zahlungsart\Name **Enthalt** Ratenzahlung - Bequem in Raten per Bankeinzug zahlen
4. Configure condition with "One condition met" (Eine Bedingung erfüllt")
### New installation:
Just create the workflows with the name of the payment methods which are mentioned in step 2 (add payment methods):
* Ratenkauf (3, 6, 12 Monaten)
* SEPA-Lastschrift (30 Tage)
* Rechnungskauf (30 Tage)
* Echtzeitüberweisung

### Update from existing installation:
Update the conditions so that the rules will match for old AND new naming e.g.:
* Ratenkauf (3, 6, 12 Monaten)
* SEPA-Lastschrift (30 Tage)
* Rechnungskauf (30 Tage)
* Echtzeitüberweisung <br/> OR create additional rules so that all new payment methods will be covered

1. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** Rechnungskauf
2. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** SEPA-Lastschrift
3. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** Rate
4. Rechnungen\Auftrag\Zahlungsart\Name **Enthalt** Echtzeitüberweisung
5. Configure action
1. Web-Request POST:
1. URL:
```
http://{SHOP-URL}/mondu-api?return=cancel-order&webhooks_secret={WEBHOOK SECRET}
```
2. Parameter:
```
order_number={{ Vorgang.Stammdaten.ExterneAuftragsnummer }}
```
3. Header:
```
Content-Type: application/x-www-form-urlencoded
```

1. Web-Request POST:
1. URL:
```
http://{SHOP-URL}/mondu-api?return=cancel-order&webhooks_secret={WEBHOOK SECRET}
```
2. Parameter:
```
order_number={{ Vorgang.Stammdaten.ExterneAuftragsnummer }}
```
3. Header:
```
Content-Type: application/x-www-form-urlencoded
```
![image](https://user-images.githubusercontent.com/97665980/228552408-cf45d35d-9c62-4248-9ee8-fbf5aa6a7aa9.png)

### Configure Invoice Template
Expand Down
Loading
Loading