Skip to content

Commit

Permalink
Added Klarna order state automation. Added option to turn on or off t…
Browse files Browse the repository at this point in the history
…he creation of customers at Mollie. Small fix for sales channels that could not get redirected after failed payments.
  • Loading branch information
milan-kiener committed Oct 16, 2020
1 parent 2516428 commit fe42eec
Show file tree
Hide file tree
Showing 8 changed files with 138 additions and 24 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "kiener/mollie-payments-plugin",
"description": "Mollie Payments",
"version": "v1.2.3",
"version": "v1.3.0",
"type": "shopware-platform-plugin",
"license": "MIT",
"authors": [
Expand Down
2 changes: 1 addition & 1 deletion src/Factory/MollieApiFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public function getClient(?string $salesChannelId = null, ?Context $context = nu

// @todo Add plugin version variable
$this->apiClient->addVersionString(
'MollieShopware6/1.2.3'
'MollieShopware6/1.3.0'
);
} catch (Exception $e) {
$this->logger->error($e->getMessage(), [$e]);
Expand Down
32 changes: 31 additions & 1 deletion src/Helper/OrderStateHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ public function __construct(
*/
public function setOrderState(OrderEntity $order, string $orderState, Context $context): bool
{

$completedOrCancelled = false;
// Collect an array of possible order states
$orderStates = [
OrderStates::STATE_OPEN,
Expand All @@ -62,6 +64,12 @@ public function setOrderState(OrderEntity $order, string $orderState, Context $c
$transitionName = StateMachineTransitionActions::ACTION_PROCESS;
}

if ($orderState === OrderStates::STATE_COMPLETED ||
$orderState === OrderStates::STATE_CANCELLED
) {
$completedOrCancelled = true;
}

if ($orderState === OrderStates::STATE_COMPLETED) {
$transitionName = StateMachineTransitionActions::ACTION_COMPLETE;
}
Expand All @@ -70,6 +78,28 @@ public function setOrderState(OrderEntity $order, string $orderState, Context $c
$transitionName = StateMachineTransitionActions::ACTION_CANCEL;
}

if ($completedOrCancelled) {
try {
$this->stateMachineRegistry->transition(
new Transition(
OrderDefinition::ENTITY_NAME,
$order->getId(),
StateMachineTransitionActions::ACTION_PROCESS,
'stateId'
),
$context
);
} catch (Exception $e) {
$this->logger->addEntry(
$e->getMessage(),
$context,
$e,
[
'function' => 'payment-automate-order-state',
]
);
}
}
// Transition the order
if (isset($transitionName)) {
try {
Expand All @@ -96,4 +126,4 @@ public function setOrderState(OrderEntity $order, string $orderState, Context $c

return true;
}
}
}
2 changes: 2 additions & 0 deletions src/Helper/PaymentStatusHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,8 @@ public function processPaymentStatus(
]
);
}
// Process the order state automation
$this->orderStateHelper->setOrderState($order, $settings->getOrderStateWithAAuthorizedTransaction(), $context);
return PaymentStatus::STATUS_AUTHORIZED;
}

Expand Down
44 changes: 44 additions & 0 deletions src/Resources/config/config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,12 @@
<label lang="de-DE">Use standard failed payment redirect.</label>
<label lang="nl-NL">Use standard failed payment redirect.</label>
</input-field>
<input-field type="bool">
<name>noCustomersAtMollie</name>
<label>Do not create customers at Mollie.</label>
<label lang="de-DE">Do not create customers at Mollie.</label>
<label lang="nl-NL">Do not create customers at Mollie.</label>
</input-field>
</card>
<card>
<title>Order State Automation</title>
Expand Down Expand Up @@ -189,5 +195,43 @@
</option>
</options>
</input-field>
<input-field type="single-select">
<name>orderStateWithAAuthorizedTransaction</name>
<label>Order state with a authorized transaction</label>
<label lang="de-DE">Order state with a authorized transaction</label>
<label lang="nl-NL">Bestelstatus bij een geautoriseerde transactie</label>
<options>
<option>
<id>skip</id>
<name>Skip this status</name>
<name lang="de-DE">Skip this status</name>
<name lang="nl-NL">Sla deze status over</name>
</option>
<option>
<id>open</id>
<name>Open</name>
<name lang="de-DE">Open</name>
<name lang="nl-NL">Open</name>
</option>
<option>
<id>in_progress</id>
<name>In progress</name>
<name lang="de-DE">In progress</name>
<name lang="nl-NL">In verwerking</name>
</option>
<option>
<id>completed</id>
<name>Completed</name>
<name lang="de-DE">Completed</name>
<name lang="nl-NL">Voltooid</name>
</option>
<option>
<id>cancelled</id>
<name>Cancelled</name>
<name lang="de-DE">Cancelled</name>
<name lang="nl-NL">Geannuleerd</name>
</option>
</options>
</input-field>
</card>
</config>
40 changes: 20 additions & 20 deletions src/Resources/config/payment_handlers.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -29,7 +29,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -43,7 +43,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -57,7 +57,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -71,7 +71,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -85,7 +85,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -99,7 +99,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -113,7 +113,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -127,7 +127,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -141,7 +141,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -155,7 +155,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -169,7 +169,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -183,7 +183,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -197,7 +197,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -211,7 +211,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -225,7 +225,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -239,7 +239,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -253,7 +253,7 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>
Expand All @@ -267,11 +267,11 @@
<argument type="service" id="Kiener\MolliePayments\Service\SettingsService" />
<argument type="service" id="Kiener\MolliePayments\Helper\PaymentStatusHelper" />
<argument type="service" id="Kiener\MolliePayments\Service\LoggerService" />
<argument type="service" id="router.default"/>
<argument type="service" id="router"/>
<argument>%kernel.environment%</argument>
<tag name="shopware.payment.method.async" />
</service>

</services>

</container>
</container>
38 changes: 38 additions & 0 deletions src/Setting/MollieSettingStruct.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ class MollieSettingStruct extends Struct
*/
protected $shopwareFailedPayment = false;

/**
* @var bool
*/
protected $noCustomersAtMollie = false;

/**
* @var bool
*/
Expand Down Expand Up @@ -75,6 +80,11 @@ class MollieSettingStruct extends Struct
*/
protected $orderStateWithACancelledTransaction = self::ORDER_STATE_SKIP;

/**
* @var string
*/
protected $orderStateWithAAuthorizedTransaction = self::ORDER_STATE_SKIP;

/**
* @return string
*/
Expand Down Expand Up @@ -170,6 +180,26 @@ public function setShopwareFailedPaymentMethod(bool $shopwareFailedPayment): sel
return $this;
}

/**
* @return bool
*/
public function createNoCustomersAtMollie(): bool
{
return (bool) $this->noCustomersAtMollie;
}

/**
* @param bool $noCustomersAtMollie
*
* @return self
*/
public function setCreateNoCustomersAtMollie(bool $noCustomersAtMollie): self
{
$this->noCustomersAtMollie = $noCustomersAtMollie;
return $this;
}


/**
* @return bool
*/
Expand Down Expand Up @@ -282,4 +312,12 @@ public function getOrderStateWithACancelledTransaction(): string
{
return (string) $this->orderStateWithACancelledTransaction;
}

/**
* @return string
*/
public function getOrderStateWithAAuthorizedTransaction(): string
{
return (string) $this->orderStateWithAAuthorizedTransaction;
}
}
2 changes: 1 addition & 1 deletion src/Subscriber/CustomerRegistrationSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ public function onCustomerRegistration(EntityWrittenEvent $entityWrittenEvent):
if ($context !== null) {
$salesChannelId = $context->getSource()->getSalesChannelId();
$settings = $this->settingsService->getSettings($salesChannelId);
if ($settings->isTestMode() === false) {
if ($settings->isTestMode() === false && $settings->createNoCustomersAtMollie() === true) {
foreach ($entityWrittenEvent->getPayloads() as $payload) {
$id = (isset($payload['id'])) ? $payload['id'] : null;
$name = (isset($payload['firstName']) && isset($payload['lastName'])) ? $payload['firstName'] .' '. $payload['lastName'] : null;
Expand Down

0 comments on commit fe42eec

Please sign in to comment.