Skip to content

Commit

Permalink
Merge pull request #84 from spryker-eco/feature/cc-8680/multi-channel…
Browse files Browse the repository at this point in the history
…-poc

TE-10886 Release Dynamic Store
  • Loading branch information
spryker-release-bot authored Mar 31, 2023
2 parents 8997e0d + ab57443 commit a8446eb
Show file tree
Hide file tree
Showing 40 changed files with 576 additions and 417 deletions.
3 changes: 2 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@
*.exe binary

# Remove files for archives generated using `git archive`
codeception.yml export-ignore
dependency.json export-ignore
.coveralls.yml export-ignore
.travis.yml export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.gitignore export-ignore
architecture-baseline.json export-ignore
psalm-report.json export-ignore
6 changes: 4 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ jobs:
strategy:
fail-fast: false
matrix:
php: [ '7.3', ]
php: [ '8.0', '8.1']
ruby: 2.6
product: [ 'suite' ]
composer_preference: ['', '--prefer-lowest']
services:
Expand Down Expand Up @@ -79,7 +80,8 @@ jobs:
strategy:
fail-fast: false
matrix:
php: [ '7.3', ]
php: [ '8.0', '8.1']
ruby: 2.6
product: [ 'suite' ]
composer_preference: [ '', '--prefer-lowest' ]
services:
Expand Down
2 changes: 1 addition & 1 deletion .scrutinizer.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
build:
environment:
php: '7.3'
php: '8.0'

tests:
override:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[![Latest Stable Version](https://poser.pugx.org/spryker-eco/payone/v/stable.svg)](https://packagist.org/packages/spryker-eco/payone)
[![License](https://img.shields.io/github/license/spryker-eco/payone.svg?b=master)](https://github.com/spryker-eco/payone)
[![ScrutCI](https://scrutinizer-ci.com/g/spryker-eco/payone/badges/build.png?b=master)](https://scrutinizer-ci.com/g/spryker-eco/payone/build-status/master)
[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%207.3-8892BF.svg)](https://php.net/)
[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%208.0-8892BF.svg)](https://php.net/)

Enables Payone Payment integration.

Expand Down
9 changes: 5 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "Payone module",
"license": "MIT",
"require": {
"php": ">=7.3",
"php": ">=8.0",
"spryker/calculation": "^4.0.0",
"spryker/cart": "^5.0.0 || ^7.0.0",
"spryker/checkout-extension": "^1.3.0",
Expand All @@ -16,13 +16,14 @@
"spryker/kernel": "^3.33.0",
"spryker/oms": "^6.0.0 || ^7.0.0 || ^8.0.0 || ^10.0.0 || ^11.0.0",
"spryker/propel-orm": "^1.6.0",
"spryker/quote": "^2.14.0",
"spryker/quote": "^2.18.0",
"spryker/refund": "^4.0.0 || ^5.0.0",
"spryker/sales": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^10.0.0 || ^11.0.0",
"spryker/shipment": "^6.0.0 || ^8.0.0",
"spryker/step-engine": "^3.0.0",
"spryker/store": "^1.1.0",
"spryker/store": "^1.19.0",
"spryker/symfony": "^3.1.1",
"spryker/transfer": "^3.25.0",
"spryker/util-encoding": "^2.0.0",
"spryker/zed-request": "^3.2.0"
},
Expand All @@ -32,7 +33,7 @@
"spryker/checkout": "*",
"spryker/code-sniffer": "*",
"spryker/container": "*",
"spryker/country": "^3.2.0",
"spryker/country": "^3.2.0 || ^4.0.0",
"spryker/payment": "*",
"spryker/propel": "*",
"spryker/router": "*",
Expand Down
5 changes: 5 additions & 0 deletions dependency.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"include": {
"spryker/transfer": "Provides transfer objects definition with `::get*OrFail()` functionality."
}
}
2 changes: 2 additions & 0 deletions src/SprykerEco/Shared/Payone/PayoneConstants.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ interface PayoneConstants

/**
* Path to bundle glossary file.
*
* @deprecated No longer used. Will be removed without replacement.
*/
public const GLOSSARY_FILE_PATH = 'Business/Internal/glossary.yml';

Expand Down
2 changes: 1 addition & 1 deletion src/SprykerEco/Shared/Payone/Transfer/payone.transfer.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="spryker:transfer-01 http://static.spryker.com/transfer-01.xsd">

<transfer name="PayoneAuthorization">
<transfer name="PayoneAuthorization" deprecated="No longer used. Exists for BC reasons only.">
<property name="amount" type="int"/>
<property name="referenceId" type="string"/>
<property name="paymentMethod" type="string"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,26 @@

use Generated\Shared\Transfer\PaymentTransfer;
use Generated\Shared\Transfer\PayonePaymentTransfer;
use Spryker\Shared\Kernel\Store;
use Spryker\Shared\Kernel\Transfer\AbstractTransfer;
use Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface;
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToStoreClientInterface;
use SprykerEco\Yves\Payone\Form\DirectDebitSubForm;

class DirectDebitDataProvider implements StepEngineFormDataProviderInterface
{
/**
* @var \SprykerEco\Yves\Payone\Dependency\Client\PayoneToStoreClientInterface
*/
private $storeClient;

/**
* @param \SprykerEco\Yves\Payone\Dependency\Client\PayoneToStoreClientInterface $storeClient
*/
public function __construct(PayoneToStoreClientInterface $storeClient)
{
$this->storeClient = $storeClient;
}

/**
* @param \Spryker\Shared\Kernel\Transfer\AbstractTransfer|\Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
*
Expand Down Expand Up @@ -47,13 +60,13 @@ public function getOptions(AbstractTransfer $quoteTransfer)
}

/**
* @return array
* @return array<string, string>
*/
protected function getBankCountries()
protected function getBankCountries(): array
{
return [
Store::getInstance()->getCurrentCountry() => Store::getInstance()->getCurrentCountry(),
];
$countries = $this->storeClient->getCurrentStore()->getCountries();

return array_combine($countries, $countries);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,26 @@

use Generated\Shared\Transfer\PaymentTransfer;
use Generated\Shared\Transfer\PayonePaymentTransfer;
use Spryker\Shared\Kernel\Store;
use Spryker\Shared\Kernel\Transfer\AbstractTransfer;
use Spryker\Yves\StepEngine\Dependency\Form\StepEngineFormDataProviderInterface;
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToStoreClientInterface;
use SprykerEco\Yves\Payone\Form\InstantOnlineTransferSubForm;

class InstantOnlineTransferDataProvider implements StepEngineFormDataProviderInterface
{
/**
* @var \SprykerEco\Yves\Payone\Dependency\Client\PayoneToStoreClientInterface
*/
protected $storeClient;

/**
* @param \SprykerEco\Yves\Payone\Dependency\Client\PayoneToStoreClientInterface $storeClient
*/
public function __construct(PayoneToStoreClientInterface $storeClient)
{
$this->storeClient = $storeClient;
}

/**
* @param \Spryker\Shared\Kernel\Transfer\AbstractTransfer|\Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
*
Expand Down Expand Up @@ -46,12 +59,12 @@ public function getOptions(AbstractTransfer $quoteTransfer)
}

/**
* @return array
* @return array<string, string>
*/
protected function getBankCountries()
protected function getBankCountries(): array
{
return [
Store::getInstance()->getCurrentCountry() => Store::getInstance()->getCurrentCountry(),
];
$countries = $this->storeClient->getCurrentStore()->getCountries();

return array_combine($countries, $countries);
}
}
10 changes: 8 additions & 2 deletions src/SprykerEco/Yves/Payone/Form/DirectDebitSubForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

use Generated\Shared\Transfer\PaymentTransfer;
use Generated\Shared\Transfer\PayonePaymentDirectDebitTransfer;
use Spryker\Shared\Kernel\Store;
use Spryker\Yves\StepEngine\Dependency\Form\SubFormInterface;
use SprykerEco\Shared\Payone\PayoneConstants;
use SprykerEco\Yves\Payone\Form\Constraint\ManageMandate;
Expand All @@ -20,6 +19,10 @@
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;


/**
* @method \SprykerEco\Yves\Payone\PayoneFactory getFactory()
*/
class DirectDebitSubForm extends AbstractPayoneSubForm
{
public const PAYMENT_METHOD = 'direct_debit';
Expand All @@ -31,6 +34,7 @@ class DirectDebitSubForm extends AbstractPayoneSubForm
public const FIELD_BANK_CODE = 'bankcode';
public const OPTION_BANK_COUNTRIES = 'direct debit bank countries';
public const OPTION_BANK_ACCOUNT_MODE = 'direct debit bank account mode';
protected const COUNTRY_DE = 'DE';

/**
* @return string
Expand Down Expand Up @@ -89,7 +93,9 @@ public function buildForm(FormBuilderInterface $builder, array $options)
$this->addIBAN($builder)
->addBIC($builder);

if (Store::getInstance()->getCurrentCountry() === 'DE') {
$currentCountry = $this->getFactory()->createStoreReader()->getDefaultStoreCountry();

if ($currentCountry === static::COUNTRY_DE) {
$this->addBankAccount($builder)
->addBankCode($builder)
->addBankCountry($builder, $options)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@
use Generated\Shared\Transfer\QuoteTransfer;
use Generated\Shared\Transfer\ShipmentMethodTransfer;
use Generated\Shared\Transfer\ShipmentTransfer;
use Spryker\Shared\Kernel\Store;
use SprykerEco\Shared\Payone\PayoneApiConstants;
use SprykerEco\Shared\Payone\PayoneConstants;
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToCalculationInterface;
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToCustomerInterface;
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToShipmentInterface;
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToStoreClientInterface;

class QuoteHydrator implements QuoteHydratorInterface
{
Expand Down Expand Up @@ -100,7 +100,7 @@ protected function hydrateQuoteWithPayment(QuoteTransfer $quoteTransfer): QuoteT
$paymentDetailTransfer
->setAmount($quoteTransfer->getTotals()->getGrandTotal())
->setType(PayoneApiConstants::E_WALLET_TYPE_PAYPAL)
->setCurrency(Store::getInstance()->getCurrencyIsoCode())
->setCurrency($quoteTransfer->getCurrencyOrFail()->getCodeOrFail())
->setWorkOrderId(
$quoteTransfer->getPayment()->getPayonePaypalExpressCheckout()->getWorkOrderId()
);
Expand Down
11 changes: 1 addition & 10 deletions src/SprykerEco/Yves/Payone/Handler/PayoneHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
use Generated\Shared\Transfer\PaymentTransfer;
use Generated\Shared\Transfer\PayonePaymentTransfer;
use Generated\Shared\Transfer\QuoteTransfer;
use Spryker\Shared\Kernel\Store;
use SprykerEco\Shared\Payone\PayoneApiConstants;
use Symfony\Component\HttpFoundation\Request;

Expand Down Expand Up @@ -127,7 +126,7 @@ protected function setPayonePayment(Request $request, QuoteTransfer $quoteTransf
$paymentDetailTransfer = new PaymentDetailTransfer();
// get it from quotaTransfer
$paymentDetailTransfer->setAmount($quoteTransfer->getTotals()->getGrandTotal());
$paymentDetailTransfer->setCurrency($this->getCurrency());
$paymentDetailTransfer->setCurrency($quoteTransfer->getCurrencyOrFail()->getCodeOrFail());
if ($paymentSelection === PaymentTransfer::PAYONE_CREDIT_CARD) {
/** @var \Generated\Shared\Transfer\PayonePaymentCreditCardTransfer $payonePaymentTransfer */
$paymentDetailTransfer->setPseudoCardPan($payonePaymentTransfer->getPseudocardpan());
Expand Down Expand Up @@ -179,14 +178,6 @@ protected function setPayonePayment(Request $request, QuoteTransfer $quoteTransf
$paymentTransfer->setPayone($payonePaymentTransfer);
}

/**
* @return string
*/
protected function getCurrency(): string
{
return Store::getInstance()->getCurrencyIsoCode();
}

/**
* @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
* @param string $paymentSelection
Expand Down
34 changes: 34 additions & 0 deletions src/SprykerEco/Yves/Payone/Model/StoreReader.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php

/**
* MIT License
* Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
*/

namespace SprykerEco\Yves\Payone\Model;

use SprykerEco\Yves\Payone\Dependency\Client\PayoneToStoreClientInterface;

class StoreReader implements StoreReaderInterface
{
/**
* @var \SprykerEco\Yves\Payone\Dependency\Client\PayoneToStoreClientInterface
*/
protected PayoneToStoreClientInterface $storeClient;

/**
* @param \SprykerEco\Yves\Payone\Dependency\Client\PayoneToStoreClientInterface $storeClient
*/
public function __construct(PayoneToStoreClientInterface $storeClient)
{
$this->storeClient = $storeClient;
}

/**
* @return string
*/
public function getDefaultStoreCountry(): string
{
return current($this->storeClient->getCurrentStore()->getCountries());
}
}
16 changes: 16 additions & 0 deletions src/SprykerEco/Yves/Payone/Model/StoreReaderInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

/**
* MIT License
* Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
*/

namespace SprykerEco\Yves\Payone\Model;

interface StoreReaderInterface
{
/**
* @return string
*/
public function getDefaultStoreCountry(): string;
}
Loading

0 comments on commit a8446eb

Please sign in to comment.