diff --git a/.github/workflows/backport-pull-request.yml b/.github/workflows/backport-pull-request.yml index c79d97415..da7391057 100644 --- a/.github/workflows/backport-pull-request.yml +++ b/.github/workflows/backport-pull-request.yml @@ -13,7 +13,7 @@ jobs: create-backport-pull-request: if: ${{ (github.event.pull_request.merged == true) && (contains(github.event.pull_request.labels.*.name, 'release')) }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4c9c31314..53b8cbaf7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -14,7 +14,7 @@ jobs: lint-and-test: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 @@ -25,6 +25,11 @@ jobs: version: 3.x repo-token: ${{ github.token }} + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3.12 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 diff --git a/.github/workflows/e2e-test-post-results.yml b/.github/workflows/e2e-test-post-results.yml index 33a8702e6..57c7a9a94 100644 --- a/.github/workflows/e2e-test-post-results.yml +++ b/.github/workflows/e2e-test-post-results.yml @@ -23,7 +23,7 @@ on: jobs: e2e-post-results: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/e2e-test.yaml b/.github/workflows/e2e-test.yaml index 6b2ad2220..86ff66e05 100644 --- a/.github/workflows/e2e-test.yaml +++ b/.github/workflows/e2e-test.yaml @@ -8,7 +8,7 @@ on: jobs: launch: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 if: github.event.pull_request.draft == false && !contains(github.event.pull_request.labels.*.name, 'hotfix') strategy: @@ -53,7 +53,7 @@ jobs: repositories: integration-infrastructure - name: Trigger E2E tests in the integration-infrastructure repository - uses: codex-/return-dispatch@v1 + uses: codex-/return-dispatch@v2 id: e2e-tests-workflow-dispatch with: token: ${{ steps.github-token-infrastructure.outputs.token }} diff --git a/.github/workflows/hotfix-pull-request.yml b/.github/workflows/hotfix-pull-request.yml index 8e9996ae0..d8c4436e6 100644 --- a/.github/workflows/hotfix-pull-request.yml +++ b/.github/workflows/hotfix-pull-request.yml @@ -11,7 +11,7 @@ on: jobs: create-hotfix-pull-request: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index 62015b278..d3f2d9ee8 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -9,7 +9,7 @@ jobs: contents: read pull-requests: write - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: TimonVS/pr-labeler-action@v5 env: diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index caec0ce60..8106cff6c 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -11,7 +11,7 @@ jobs: release: if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'release') - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/release-pull-request.yml b/.github/workflows/release-pull-request.yml index 7e9cb5ae9..d2b0c8e55 100644 --- a/.github/workflows/release-pull-request.yml +++ b/.github/workflows/release-pull-request.yml @@ -6,7 +6,7 @@ on: jobs: create-release-pull-request: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ad09459f1..1e12d7ef5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,13 +2,13 @@ # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/commitizen-tools/commitizen - rev: v3.29.0 + rev: v3.30.1 hooks: - id: commitizen name: Check commit message format stages: [commit-msg] - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-added-large-files args: ["--maxkb=1024"] @@ -39,7 +39,7 @@ repos: stages: [commit] - repo: https://github.com/returntocorp/semgrep - rev: v1.87.0 + rev: v1.96.0 hooks: - id: semgrep args: @@ -58,4 +58,4 @@ repos: hooks: - id: check-branch-name args: - - "-r^((chore|ci|dependabot|devx|docs|feature|fix|release|hotfix|hotfix-backport|infra|other|perf|refactor|security|test)\/.+|(snyk)-.+|main|develop|HEAD)$$" + - "-r^((chore|ci|dependabot|devx|renovate|docs|feature|fix|release|hotfix|hotfix-backport|infra|other|perf|refactor|security|test)\/.+|(snyk)-.+|main|develop|HEAD)$$" diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c2adfeca..eba1d8292 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## v4.5.0 - 2024-11-13 + +### Changes + +### 🚀 New Features + +- feat: add inpage setting for selector payment buttons (#581) + +### 🐛 Bug Fixes + +- fix: Update wording for In-Page advanced feature (#594) +- fix: Prevent crash when there is not quantity input on product page for insurance (#598) +- fix: issue with some translation in payment buttons (#593) + +#### Contributors + +@Benjamin-Freoua-Alma, @alma-renovate-bot, @alma-renovate-bot[bot], @carine-bonnafous, @github-actions and @olance + ## v4.4.1 - 2024-10-30 ### 🐛 Bug Fixes diff --git a/alma/alma.php b/alma/alma.php index 45ea046f8..5a5ff2240 100644 --- a/alma/alma.php +++ b/alma/alma.php @@ -30,7 +30,7 @@ class Alma extends PaymentModule { - const VERSION = '4.4.1'; + const VERSION = '4.5.0'; const PS_ACCOUNTS_VERSION_REQUIRED = '5.3.0'; public $_path; @@ -81,7 +81,7 @@ public function __construct() { $this->name = 'alma'; $this->tab = 'payments_gateways'; - $this->version = '4.4.1'; + $this->version = '4.5.0'; $this->author = 'Alma'; $this->need_instance = false; $this->bootstrap = true; diff --git a/alma/controllers/hook/DisplayProductActionsHookController.php b/alma/controllers/hook/DisplayProductActionsHookController.php index 8959309f5..981cce9e9 100644 --- a/alma/controllers/hook/DisplayProductActionsHookController.php +++ b/alma/controllers/hook/DisplayProductActionsHookController.php @@ -120,6 +120,8 @@ public function run($params) ? $productParams['id_product_attribute'] : null; + $quantityWanted = isset($productParams['quantity_wanted']) ? $productParams['quantity_wanted'] : 1; + $cmsReference = $this->insuranceHelper->createCmsReference($productId, $productAttributeId); $staticPrice = $this->productHelper->getPriceStatic($productId, $productAttributeId); @@ -132,11 +134,12 @@ public function run($params) 'productDetails' => $this->handleProductDetails($params), 'settingsInsurance' => $this->handleSettings($merchantId), 'iframeUrl' => sprintf( - '%s%s?cms_reference=%s&product_price=%s&product_name=%s&merchant_id=%s&customer_session_id=%s&cart_id=%s', + '%s%s?cms_reference=%s&product_price=%s&product_quantity=%s&product_name=%s&merchant_id=%s&customer_session_id=%s&cart_id=%s', $this->adminInsuranceHelper->envUrl(), ConstantsHelper::FO_IFRAME_WIDGET_INSURANCE_PATH, $cmsReference, $staticPriceInCents, + $quantityWanted, $productName, $merchantId, $this->context->cookie->checksum, diff --git a/alma/controllers/hook/FrontHeaderHookController.php b/alma/controllers/hook/FrontHeaderHookController.php index 13cbed51d..91d7e4727 100644 --- a/alma/controllers/hook/FrontHeaderHookController.php +++ b/alma/controllers/hook/FrontHeaderHookController.php @@ -478,8 +478,20 @@ private function assetsInPage() $this->controller->unregisterJavascript(ConstantsHelper::WIDGETS_JS_ID); } } + + $content .= $this->almaInPageHeader(); } return $content; } + + /** + * @return string + */ + protected function almaInPageHeader() + { + $settings = json_encode($this->settingsHelper->getInPageSettings()); + + return "
"; + } } diff --git a/alma/controllers/hook/GetContentHookController.php b/alma/controllers/hook/GetContentHookController.php index b14bec9f9..9c1bd9fa4 100644 --- a/alma/controllers/hook/GetContentHookController.php +++ b/alma/controllers/hook/GetContentHookController.php @@ -133,6 +133,8 @@ final class GetContentHookController extends AdminHookController 'action' => 'cast_bool', 'suffix' => '_ON', ], + InpageAdminFormBuilder::ALMA_INPAGE_PAYMENT_BUTTON_SELECTOR => 'none', + InpageAdminFormBuilder::ALMA_INPAGE_PLACE_ORDER_BUTTON_SELECTOR => 'none', 'ALMA_ACTIVATE_LOGGING' => [ 'action' => 'cast_bool', 'suffix' => '_ON', @@ -709,6 +711,8 @@ protected function getFieldsValueForForm() PaymentButtonAdminFormBuilder::ALMA_PNX_AIR_BUTTON_DESC ), InpageAdminFormBuilder::ALMA_ACTIVATE_INPAGE . '_ON' => $this->settingsHelper->isInPageEnabled(), + InpageAdminFormBuilder::ALMA_INPAGE_PAYMENT_BUTTON_SELECTOR => $this->settingsHelper->getKey(InpageAdminFormBuilder::ALMA_INPAGE_PAYMENT_BUTTON_SELECTOR, InpageAdminFormBuilder::ALMA_INPAGE_DEFAULT_VALUE_PAYMENT_BUTTON_SELECTOR), + InpageAdminFormBuilder::ALMA_INPAGE_PLACE_ORDER_BUTTON_SELECTOR => $this->settingsHelper->getKey(InpageAdminFormBuilder::ALMA_INPAGE_PLACE_ORDER_BUTTON_SELECTOR, InpageAdminFormBuilder::ALMA_INPAGE_DEFAULT_VALUE_PLACE_ORDER_BUTTON_SELECTOR), 'ALMA_SHOW_DISABLED_BUTTON' => SettingsHelper::showDisabledButton(), 'ALMA_SHOW_ELIGIBILITY_MESSAGE_ON' => SettingsHelper::showEligibilityMessage(), 'ALMA_CART_WDGT_NOT_ELGBL_ON' => SettingsHelper::showCartWidgetIfNotEligible(), diff --git a/alma/lib/Forms/InpageAdminFormBuilder.php b/alma/lib/Forms/InpageAdminFormBuilder.php index bd22fcaa4..16b5b3c88 100644 --- a/alma/lib/Forms/InpageAdminFormBuilder.php +++ b/alma/lib/Forms/InpageAdminFormBuilder.php @@ -34,6 +34,10 @@ class InpageAdminFormBuilder extends AbstractAlmaAdminFormBuilder { const ALMA_ACTIVATE_INPAGE = 'ALMA_ACTIVATE_INPAGE'; + const ALMA_INPAGE_PAYMENT_BUTTON_SELECTOR = 'ALMA_INPAGE_PAYMENT_BUTTON_SELECTOR'; + const ALMA_INPAGE_DEFAULT_VALUE_PAYMENT_BUTTON_SELECTOR = '[data-module-name=alma]'; + const ALMA_INPAGE_PLACE_ORDER_BUTTON_SELECTOR = 'ALMA_INPAGE_PLACE_ORDER_BUTTON_SELECTOR'; + const ALMA_INPAGE_DEFAULT_VALUE_PLACE_ORDER_BUTTON_SELECTOR = '#payment-confirmation button'; /** * @return array @@ -44,9 +48,29 @@ protected function configForm() $this->inputAlmaSwitchForm( self::ALMA_ACTIVATE_INPAGE, $this->module->l('Activate in-page checkout', 'InpageAdminFormBuilder'), - $this->module->l('Activate in-page checkout for Pay Now, P2X, P3X and P4X', 'InpageAdminFormBuilder'), + $this->module->l('Activate in-page checkout for all Alma payment methods', 'InpageAdminFormBuilder'), $this->module->l('The checkout in-page in your own website', 'InpageAdminFormBuilder') ), + $this->inputTextForm( + self::ALMA_INPAGE_PAYMENT_BUTTON_SELECTOR, + $this->module->l('Input payment button Alma selector', 'InpageAdminFormBuilder'), + sprintf( + $this->module->l('%1$sAdvanced%2$s [Optional] CSS selector used by our scripts to identify the Alma payment button', 'InpageAdminFormBuilder'), + '', + '' + ), + $this->module->l('E.g. #id, .class, ...', 'InpageAdminFormBuilder') + ), + $this->inputTextForm( + self::ALMA_INPAGE_PLACE_ORDER_BUTTON_SELECTOR, + $this->module->l('Place order button selector', 'InpageAdminFormBuilder'), + sprintf( + $this->module->l('%1$sAdvanced%2$s [Optional] CSS selector used by our scripts to identify the payment confirmation button', 'InpageAdminFormBuilder'), + '', + '' + ), + $this->module->l('E.g. #id, .class, ...', 'InpageAdminFormBuilder') + ), ]; } diff --git a/alma/lib/Helpers/PaymentOptionTemplateHelper.php b/alma/lib/Helpers/PaymentOptionTemplateHelper.php index e964a3557..bb84f4a0d 100644 --- a/alma/lib/Helpers/PaymentOptionTemplateHelper.php +++ b/alma/lib/Helpers/PaymentOptionTemplateHelper.php @@ -172,7 +172,7 @@ public function buildTemplateVar( if ($isDeferred) { $templateVar['installmentText'] = sprintf( - $this->translationHelper->getTranslation('0 € today then %1$s on %2$s', 'PaymentOptionsHookController'), + $this->translationHelper->l('0 € today then %1$s on %2$s', 'PaymentOptionTemplateHelper'), $this->priceHelper->formatPriceToCentsByCurrencyId( $plans[0]['purchase_amount'] + $plans[0]['customer_fee'] ), diff --git a/alma/lib/Helpers/PlanHelper.php b/alma/lib/Helpers/PlanHelper.php index a09fdd43f..899a49ef2 100644 --- a/alma/lib/Helpers/PlanHelper.php +++ b/alma/lib/Helpers/PlanHelper.php @@ -128,18 +128,18 @@ public function buildDates($plans, $locale, $feePlans, $key, $isPayNow) $plans[$keyPlan]['human_date'] = $this->dateHelper->getDateFormat($locale, $paymentPlan['due_date']); if (0 === $keyPlan) { - $plans[$keyPlan]['human_date'] = $this->translationHelper->getTranslation('Today', 'PaymentService'); + $plans[$keyPlan]['human_date'] = $this->translationHelper->l('Today', 'PlanHelper'); continue; } if ($isPayNow) { - $plans[$keyPlan]['human_date'] = $this->translationHelper->getTranslation('Total', 'PaymentService'); + $plans[$keyPlan]['human_date'] = $this->translationHelper->l('Total', 'PlanHelper'); continue; } if ($this->settingsHelper->isDeferredTriggerLimitDays($feePlans, $key)) { $plans[$keyPlan]['human_date'] = sprintf( - $this->translationHelper->getTranslation('%s month later', 'PaymentService'), + $this->translationHelper->l('%s month later', 'PaymentService'), $keyPlan ); diff --git a/alma/lib/Helpers/SettingsHelper.php b/alma/lib/Helpers/SettingsHelper.php index 2110dde7b..762b13e63 100644 --- a/alma/lib/Helpers/SettingsHelper.php +++ b/alma/lib/Helpers/SettingsHelper.php @@ -193,6 +193,8 @@ public static function deleteAllValues() PaymentButtonAdminFormBuilder::ALMA_PNX_AIR_BUTTON_DESC, ExcludedCategoryAdminFormBuilder::ALMA_NOT_ELIGIBLE_CATEGORIES, InpageAdminFormBuilder::ALMA_ACTIVATE_INPAGE, + InpageAdminFormBuilder::ALMA_INPAGE_PAYMENT_BUTTON_SELECTOR, + InpageAdminFormBuilder::ALMA_INPAGE_PLACE_ORDER_BUTTON_SELECTOR, 'ALMA_STATE_REFUND', 'ALMA_STATE_REFUND_ENABLED', 'ALMA_STATE_TRIGGER', @@ -496,6 +498,18 @@ public function isInPageEnabled() return (bool) (int) $this->getKey(InpageAdminFormBuilder::ALMA_ACTIVATE_INPAGE, false); } + /** + * @return array + */ + public function getInPageSettings() + { + return [ + 'enabled' => $this->isInPageEnabled(), + 'paymentButtonSelector' => $this->getKey(InpageAdminFormBuilder::ALMA_INPAGE_PAYMENT_BUTTON_SELECTOR, InpageAdminFormBuilder::ALMA_INPAGE_DEFAULT_VALUE_PAYMENT_BUTTON_SELECTOR), + 'placeOrderButtonSelector' => $this->getKey(InpageAdminFormBuilder::ALMA_INPAGE_PLACE_ORDER_BUTTON_SELECTOR, InpageAdminFormBuilder::ALMA_INPAGE_DEFAULT_VALUE_PLACE_ORDER_BUTTON_SELECTOR), + ]; + } + /** * Return activated plans. * diff --git a/alma/lib/Helpers/TranslationHelper.php b/alma/lib/Helpers/TranslationHelper.php index 3191dcdde..cb69a581c 100644 --- a/alma/lib/Helpers/TranslationHelper.php +++ b/alma/lib/Helpers/TranslationHelper.php @@ -51,7 +51,7 @@ public function __construct($moduleFactory) * * @return mixed */ - public function getTranslation($string, $file) + public function l($string, $file) { return $this->module->l($string, $file); } diff --git a/alma/tests/Unit/Helper/PaymentOptionTemplateHelperTest.php b/alma/tests/Unit/Helper/PaymentOptionTemplateHelperTest.php index 0e74917b7..01cfe2f52 100644 --- a/alma/tests/Unit/Helper/PaymentOptionTemplateHelperTest.php +++ b/alma/tests/Unit/Helper/PaymentOptionTemplateHelperTest.php @@ -91,7 +91,7 @@ public function testBuildTemplateVarNoDeferredPlan() $this->settingsHelperMock->shouldReceive('getModeActive')->andReturn('test'); $this->settingsHelperMock->shouldReceive('getIdMerchant')->andReturn('merchantId'); $this->configurationHelperMock->shouldReceive('isInPageEnabled')->andReturn(true); - $this->translationHelperMock->shouldReceive('getTranslation')->andReturn('My translation'); + $this->translationHelperMock->shouldReceive('l')->andReturn('My translation'); $this->priceHelperMock->shouldReceive('formatPriceToCentsByCurrencyId')->andReturn('110.00'); $this->dateHelperMock->shouldReceive('getDateFormat')->andReturn('22/05/2024'); @@ -163,7 +163,7 @@ public function testBuildTemplateVarDeferredPlan() $this->settingsHelperMock->shouldReceive('getModeActive')->andReturn('test'); $this->settingsHelperMock->shouldReceive('getIdMerchant')->andReturn('merchantId'); $this->configurationHelperMock->shouldReceive('isInPageEnabled')->andReturn(true); - $this->translationHelperMock->shouldReceive('getTranslation')->andReturn('My translation'); + $this->translationHelperMock->shouldReceive('l')->andReturn('My translation'); $this->priceHelperMock->shouldReceive('formatPriceToCentsByCurrencyId')->andReturn('110.00'); $this->dateHelperMock->shouldReceive('getDateFormat')->andReturn('22/05/2024'); diff --git a/alma/tests/Unit/Helper/SettingsHelperTest.php b/alma/tests/Unit/Helper/SettingsHelperTest.php index d2a0eded1..1b2506d75 100644 --- a/alma/tests/Unit/Helper/SettingsHelperTest.php +++ b/alma/tests/Unit/Helper/SettingsHelperTest.php @@ -26,6 +26,7 @@ use Alma\API\Entities\FeePlan; use Alma\PrestaShop\Builders\Helpers\SettingsHelperBuilder; +use Alma\PrestaShop\Forms\InpageAdminFormBuilder; use Alma\PrestaShop\Helpers\ConfigurationHelper; use Alma\PrestaShop\Helpers\SettingsHelper; use Alma\PrestaShop\Helpers\ShopHelper; @@ -37,11 +38,32 @@ class SettingsHelperTest extends TestCase * @var SettingsHelper */ protected $settingsHelper; + /** + * @var ShopHelper + */ + protected $shopHelper; + /** + * @var ConfigurationHelper + */ + protected $configurationHelper; + /** + * @var (SettingsHelper&\PHPUnit\Framework\MockObject\MockObject)|\PHPUnit_Framework_MockObject_MockObject + */ + protected $settingsHelperMock; public function setUp() { - $settingsHelperBuilder = new SettingsHelperBuilder(); - $this->settingsHelper = $settingsHelperBuilder->getInstance(); + $this->shopHelper = $this->createMock(ShopHelper::class); + $this->configurationHelper = $this->createMock(ConfigurationHelper::class); + $this->settingsHelper = new SettingsHelper( + $this->shopHelper, + $this->configurationHelper + ); + + $this->settingsHelperMock = $this->getMockBuilder(SettingsHelper::class) + ->setConstructorArgs([$this->shopHelper, $this->configurationHelper]) + ->setMethods(['isInPageEnabled', 'getKey']) + ->getMock(); } /** @@ -417,7 +439,57 @@ public function testGetExcludedCategories() $this->assertEquals([], $result); } - public function testGetDataFromKey() + /** + * @dataProvider inPageSettingsDataProvider + * + * @return void + */ + public function testGetInPageSettingsDefaultValues($isInPageEnabled, $paymentButtonSelector, $placeOrderButtonSelector) + { + $this->settingsHelperMock->expects($this->once()) + ->method('isInPageEnabled') + ->willReturn($isInPageEnabled); + $this->settingsHelperMock->expects($this->exactly(2)) + ->method('getKey') + ->withConsecutive( + [InpageAdminFormBuilder::ALMA_INPAGE_PAYMENT_BUTTON_SELECTOR, InpageAdminFormBuilder::ALMA_INPAGE_DEFAULT_VALUE_PAYMENT_BUTTON_SELECTOR], + [InpageAdminFormBuilder::ALMA_INPAGE_PLACE_ORDER_BUTTON_SELECTOR, InpageAdminFormBuilder::ALMA_INPAGE_DEFAULT_VALUE_PLACE_ORDER_BUTTON_SELECTOR] + ) + ->willReturnOnConsecutiveCalls( + $paymentButtonSelector, + $placeOrderButtonSelector + ); + + $expected = [ + 'enabled' => $isInPageEnabled, + 'paymentButtonSelector' => $paymentButtonSelector, + 'placeOrderButtonSelector' => $placeOrderButtonSelector, + ]; + + $this->assertEquals($expected, $this->settingsHelperMock->getInPageSettings()); + } + + /** + * @return array[] + */ + public function inPageSettingsDataProvider() { + return [ + 'Default values' => [ + 'enabled' => false, + 'paymentButtonSelector' => InpageAdminFormBuilder::ALMA_INPAGE_DEFAULT_VALUE_PAYMENT_BUTTON_SELECTOR, + 'placeOrderButtonSelector' => InpageAdminFormBuilder::ALMA_INPAGE_DEFAULT_VALUE_PLACE_ORDER_BUTTON_SELECTOR, + ], + 'in-page disable and selector custom' => [ + 'enabled' => false, + 'paymentButtonSelector' => 'payment button selector custom', + 'placeOrderButtonSelector' => 'place order selector custom', + ], + 'in-page enable and selector custom' => [ + 'enabled' => true, + 'paymentButtonSelector' => 'payment button selector custom', + 'placeOrderButtonSelector' => 'place order selector custom', + ], + ]; } } diff --git a/alma/tests/Unit/Helper/TranslationHelperTest.php b/alma/tests/Unit/Helper/TranslationHelperTest.php index 9ed8e3608..17e172924 100644 --- a/alma/tests/Unit/Helper/TranslationHelperTest.php +++ b/alma/tests/Unit/Helper/TranslationHelperTest.php @@ -34,6 +34,6 @@ public function testGetTranslation() $translationHelperBuilder = new TranslationHelperBuilder(); $translationHelper = $translationHelperBuilder->getInstance(); - $this->assertEquals('Today', $translationHelper->getTranslation('Today', 'PaymentService')); + $this->assertEquals('Today', $translationHelper->l('Today', 'PaymentService')); } } diff --git a/alma/translations/de.php b/alma/translations/de.php index a46762ffe..fd0f2ba12 100644 --- a/alma/translations/de.php +++ b/alma/translations/de.php @@ -32,6 +32,7 @@ $_MODULE['<{alma}prestashop>alma_fbb47375d2272bef79f5722a183bf1ec'] = 'Alma erfordert die PHP-JSON-Erweiterung'; $_MODULE['<{alma}prestashop>alma_7fb83ba9cf3cc38857a2ddae98534d22'] = 'Alma erfordert OpenSSL 1.0.1 oder höher'; $_MODULE['<{alma}prestashop>modulefactorytest_5914ca153abaf8a2af61e13e7fe7e829'] = 'My wording to translate'; +$_MODULE['<{alma}prestashop>translationhelpertest_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Heute'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_cc76de47de858ac2fa2964f534ecfdfb'] = 'Could not connect to Alma using your API keys.'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_733b6ddadc31fd97174b0cfe69b584c9'] = 'Please double check your keys on your %1$sAlma dashboard%2$s.'; $_MODULE['<{alma}prestashop>wrongparamsexception_8ec75b5f68c49d1d6541b1e318a8120d'] = 'Error(s) key(s): %1$s.'; @@ -79,8 +80,13 @@ $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_c4cea4750fb3ef077cbf2e1283c312ac'] = 'Meldung, die auf einer Seite mit einem ausgeschlossenen Produkt oder auf der Seite mit dem Einkaufswagen angezeigt wird, wenn dieser ein ausgeschlossenes Produkt enthält.'; $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_36359547b09bdb31f46c419a0bd5807e'] = 'Ausgeschlossene Kategorien'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_2420ebe02d61c738479f399a97e1cf18'] = 'In-Page-Kaufabwicklung aktivieren'; -$_MODULE['<{alma}prestashop>inpageadminformbuilder_bf3b980c4aa11b5fca4cc3096f50e0b8'] = 'Aktivieren Sie die In-Page-Kasse für Pay Now, P2X, P3X und P4X'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_3dd32a0e923aeb930c7c0ced60f7b2e0'] = 'Aktivieren Sie den In-Page-Checkout für alle Alma-Zahlungsarten'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_220a4f39147308a2160f7abc4d00ae43'] = 'Die In-Page-Kasse auf Ihrer eigenen Website'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6f7991629de2e9ee19a0bf2a0469138c'] = 'Zahlungseingangstaste Alma-Selektor'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6644897911f79aa5889998a5ab18c5cd'] = '%1$sAdvanced%2$s [Optional] CSS-Selektor, der von unseren Skripten verwendet wird, um die Alma-Zahlungsschaltfläche zu identifizieren'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_cc12a5229a16dced1984745e05872a94'] = 'Z.B. #id, .class, ...'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_8ee0042ba2657c2af782fcc8893fa45a'] = 'Auswahl der Schaltfläche Bestellung aufgeben'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_afa1a431a4735641af813166d75b1c06'] = '%1$sAdvanced%2$s [Optional] CSS-Selektor, der von unseren Skripten verwendet wird, um die Schaltfläche zur Zahlungsbestätigung zu identifizieren'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_6de24747c86085e597f6b38d4d1d01a4'] = 'In-Page-Kasse'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_a2a52a9dd1864e2b995793bd67b8c6e5'] = 'Mit diesem Widget können Sie Ihre Kunden direkt auf der Produktseite über die Verfügbarkeit der Alma-Zahlungsmöglichkeiten informieren und so Ihre Konversionsrate erhöhen. Für weitere Details zur Konfiguration oder bei Problemen konsultieren Sie bitte %1$sdiese Dokumentation%2$s.'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_ac6329ea064b9212be7e442cb46bf68f'] = 'Widget anzeigen'; @@ -134,7 +140,11 @@ $_MODULE['<{alma}prestashop>paymentvalidation_6f11098989b14063e0a4cfe362734850'] = 'Alma – Zahlung in %d Raten'; $_MODULE['<{alma}prestashop>refundhelper_446ae76a36687f9dbc62430e7006ca91'] = 'Leider gab es ein Problem während des Zahlungsvorgangs. Ihre Zahlung an Alma wird vollständig zurückerstattet. Bitte versuchen Sie Ihre Zahlung erneut, um Ihre Bestellung abzuschließen.'; $_MODULE['<{alma}prestashop>refundhelper_448edd2d5c593906afa202847b8d79c0'] = 'Wir bitten um Entschuldigung für die Unannehmlichkeiten, leider gab es ein Problem während des Zahlungsvorgangs, die Rückerstattung Ihrer Alma Zahlung war nicht möglich. Um dieses Problem zu lösen, bitten wir Sie, unser Support-Team mit Ihrer Zahlungsreferenz zu kontaktieren: %s. Unser Team wird Sie gerne unterstützen, damit Sie Ihre volle Rückerstattung erhalten. Vielen Dank für Ihre Mitarbeit.'; +$_MODULE['<{alma}prestashop>planhelper_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Heute'; +$_MODULE['<{alma}prestashop>planhelper_96b0141273eabab320119c467cdcaf17'] = 'Insgesamt'; +$_MODULE['<{alma}prestashop>planhelper_9bbd94e0a507283ae202812ea1bd6f20'] = '%s Monat später'; $_MODULE['<{alma}prestashop>orderhelper_7960c85fd5916169fc5038a2192094f8'] = 'Fehler: Alma-Transaktion konnte nicht gefunden werden'; +$_MODULE['<{alma}prestashop>paymentoptiontemplatehelper_9088921432b295dfe6f02863b2dc0ff8'] = '0 € heute dann %1$s am %2$s'; $_MODULE['<{alma}prestashop>customfieldshelper_2c53dea2326232a2d867ddd1d2206aa0'] = 'Jetzt per Kreditkarte bezahlen'; $_MODULE['<{alma}prestashop>customfieldshelper_300de0751d957421cc332ba21c43a598'] = 'Zahlung in %d Raten'; $_MODULE['<{alma}prestashop>customfieldshelper_726c61fad46c135efb4198820e5484ba'] = 'Jetzt kaufen Bezahlen in %d Tagen'; @@ -148,7 +158,8 @@ $_MODULE['<{alma}prestashop>admininsurancehelper_7442e29d7d53e549b78d93c46b8cdcfc'] = 'Orders'; $_MODULE['<{alma}prestashop>insuranceservice_d87aee5118a62a7ff6c21e4ac31006c5'] = 'I hereby acknowledge my acceptance to subscribe to the insurance offered by Alma. In doing so, I confirm that I have previously reviewed the [information notice, which constitutes the general conditions], the [insurance product information document], and the [pre-contractual information and advice sheet]. I ahead to it without reservation and agree to electronically sign the various documents forming my contract, if applicable. I expressly consent to the collection and use of my personal data for the purpose of subscribing to and managing my insurance contract(s).'; $_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b824200e9b8aca1fbb762d6566ff0cd7'] = 'Your configuration has been saved'; -$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_4a39c6a33c3441762924914168d2a387'] = 'Error creating configuration Alma insurance: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_a6bf06f186e2fccecad054fd831c2144'] = '[Alma] Fehler beim Versicherungsprodukt während der Änderungskonfiguration: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b42688965893bdb7a37cf1197e506e25'] = '[Alma] Fehler beim Erstellen der Konfiguration Alma Versicherung: %1$s'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_a66f446516cd125af12bd25073f88b78'] = 'Orders with insurance'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_49414cda71621b3ee718ae5ff40804c5'] = 'Id Order'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_63d5049791d9d79d86e9a108b0a999ca'] = 'Reference'; @@ -260,8 +271,8 @@ $_MODULE['<{alma}prestashop>notificationconfiguration_cf5ec9fb9f7214a3db82a5a39fec5b48'] = 'Enter your API key'; $_MODULE['<{alma}prestashop>notificationconfiguration_055f421849c2a1c32b885c95540f827c'] = 'Find your API live key on your %1$s Alma dashboard%2$s'; $_MODULE['<{alma}prestashop>notificationconfiguration_53b458e8453e3694811e61c96527d638'] = 'Um den Testmodus zu verwenden, rufen Sie Ihren Test-API-Schlüssel von Ihrem %1$ssandbox dashboard%2$s ab.'; -$_MODULE['<{alma}prestashop>notificationconfiguration_b040aba3ff898146cd8c1fb8cfd04daf'] = 'Wir bieten Ihnen an, das PrestaShop Account-Modul herunterzuladen oder zu aktualisieren (mindestens erforderliche Version %1$s)'; -$_MODULE['<{alma}prestashop>notificationconfiguration_9700e091d54b8ff1fafcd27518c75b23'] = 'Verknüpfen Sie Ihren Shop mit Ihrem PrestaShop-Konto, um alle Vorteile der vom PrestaShop Marketplace angebotenen Module zu nutzen und Ihre Erfahrungen zu optimieren.'; +$_MODULE['<{alma}prestashop>notificationconfiguration_b040aba3ff898146cd8c1fb8cfd04daf'] = 'We offer to download or update the PrestaShop Account module (minimum required version %1$s)'; +$_MODULE['<{alma}prestashop>notificationconfiguration_9700e091d54b8ff1fafcd27518c75b23'] = 'Link your store to your PrestaShop account to take full advantage of the modules offered by the PrestaShop Marketplace and optimize your experience.'; $_MODULE['<{alma}prestashop>notificationconfiguration_6997dde298b14fbf6a7c95bd39fe8dc4'] = 'Das Modul %1$sfinden Sie hier%2$s'; $_MODULE['<{alma}prestashop>notificationshareofcheckout_a6b0ef107f0d278df612764187bbdece'] = ' Steigern Sie Ihre Leistung und erhalten Sie Einblicke!'; $_MODULE['<{alma}prestashop>notificationshareofcheckout_5b64cb0849dd12ea528c04f2fe66ae4d'] = 'Indem Sie diese Option akzeptieren, ermöglichen Sie es Alma, die Nutzung Ihrer Zahlungsmittel zu analysieren, [1]mehr Informationen zu erhalten, um[/1] durchzuführen und diese Daten mit Ihnen zu teilen. Sie können [2]jederzeit abbestellen und Ihre Daten[/2] löschen.'; @@ -320,4 +331,3 @@ $_MODULE['<{alma}prestashop>notificationfirstinstallation_1e6898bbd6a44041932ac84cbda13bd7'] = 'Ihren Live-API-Schlüssel finden Sie in %1$sIhrem Alma-Dashboard%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_689c39b29a6d91e6dff728a7762cbc9e'] = 'Um den Testmodus zu nutzen, rufen Sie in %1$sIhrem Sandbox-Dashboard%2$s Ihren Test-API-Schlüssel ab'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_dcab24ea1a3cd9bab8047b1b6f7ee65c'] = 'Wenn Sie Probleme haben, kontaktieren Sie uns bitte per E-Mail unter %1$ssupport@getalma.eu%2$s'; -$_MODULE['<{alma}prestashop>displaypayment_pnx_22f0189423433ab0e055b91d98970e5f'] = 'Die Ratenzahlung mit Alma ist bei dieser Bestellung nicht möglich'; diff --git a/alma/translations/en.php b/alma/translations/en.php index 3364d5093..ca468def7 100644 --- a/alma/translations/en.php +++ b/alma/translations/en.php @@ -32,6 +32,7 @@ $_MODULE['<{alma}prestashop>alma_fbb47375d2272bef79f5722a183bf1ec'] = 'Alma requires the JSON PHP extension.'; $_MODULE['<{alma}prestashop>alma_7fb83ba9cf3cc38857a2ddae98534d22'] = 'Alma requires OpenSSL >= 1.0.1'; $_MODULE['<{alma}prestashop>modulefactorytest_5914ca153abaf8a2af61e13e7fe7e829'] = 'My wording to translate'; +$_MODULE['<{alma}prestashop>translationhelpertest_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Today'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_cc76de47de858ac2fa2964f534ecfdfb'] = 'Could not connect to Alma using your API keys.'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_733b6ddadc31fd97174b0cfe69b584c9'] = 'Please double check your keys on your %1$sAlma dashboard%2$s.'; $_MODULE['<{alma}prestashop>wrongparamsexception_8ec75b5f68c49d1d6541b1e318a8120d'] = 'Error(s) key(s): %1$s.'; @@ -79,8 +80,13 @@ $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_c4cea4750fb3ef077cbf2e1283c312ac'] = 'Message displayed on an excluded product page or on the cart page if it contains an excluded product.'; $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_36359547b09bdb31f46c419a0bd5807e'] = 'Excluded categories'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_2420ebe02d61c738479f399a97e1cf18'] = 'Activate in-page checkout'; -$_MODULE['<{alma}prestashop>inpageadminformbuilder_bf3b980c4aa11b5fca4cc3096f50e0b8'] = 'Activate in-page checkout for Pay Now, P2X, P3X and P4X'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_3dd32a0e923aeb930c7c0ced60f7b2e0'] = 'Activate in-page checkout for all Alma payment methods'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_220a4f39147308a2160f7abc4d00ae43'] = 'The checkout in-page in your own website'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6f7991629de2e9ee19a0bf2a0469138c'] = 'Input payment button Alma selector'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6644897911f79aa5889998a5ab18c5cd'] = '%1$sAdvanced%2$s [Optional] CSS selector used by our scripts to identify the Alma payment button'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_cc12a5229a16dced1984745e05872a94'] = 'E.g. #id, .class, ...'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_8ee0042ba2657c2af782fcc8893fa45a'] = 'Place order button selector'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_afa1a431a4735641af813166d75b1c06'] = '%1$sAdvanced%2$s [Optional] CSS selector used by our scripts to identify the payment confirmation button'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_6de24747c86085e597f6b38d4d1d01a4'] = 'In-page checkout'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_a2a52a9dd1864e2b995793bd67b8c6e5'] = 'This widget allows you to inform your customers of the availability of Alma\'s payment facilities right from the product page, which will help to increase your conversion rate. For more details on its configuration or in case of problems, please consult %1$sthis documentation%2$s.'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_ac6329ea064b9212be7e442cb46bf68f'] = 'Display widget'; @@ -134,7 +140,11 @@ $_MODULE['<{alma}prestashop>paymentvalidation_6f11098989b14063e0a4cfe362734850'] = 'Alma - %d monthly installments'; $_MODULE['<{alma}prestashop>refundhelper_446ae76a36687f9dbc62430e7006ca91'] = 'We regret to inform you that there was an issue during the payment process, your Alma payment will be fully refunded. Please retry your payment to complete your order.'; $_MODULE['<{alma}prestashop>refundhelper_448edd2d5c593906afa202847b8d79c0'] = 'We apologize for the inconvenience, but there was an issue during the payment process, and we were unable to refund your Alma payment. To fix this, we kindly ask you to contact our support team with your payment reference: %s. Our team will be happy to assist you in ensuring that you receive your full refund. Thank you for your cooperation.'; +$_MODULE['<{alma}prestashop>planhelper_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Today'; +$_MODULE['<{alma}prestashop>planhelper_96b0141273eabab320119c467cdcaf17'] = 'Total'; +$_MODULE['<{alma}prestashop>planhelper_9bbd94e0a507283ae202812ea1bd6f20'] = '%s month later'; $_MODULE['<{alma}prestashop>orderhelper_7960c85fd5916169fc5038a2192094f8'] = 'Error: Could not find Alma transaction'; +$_MODULE['<{alma}prestashop>paymentoptiontemplatehelper_9088921432b295dfe6f02863b2dc0ff8'] = '0 € today then %1$s on %2$s'; $_MODULE['<{alma}prestashop>customfieldshelper_2c53dea2326232a2d867ddd1d2206aa0'] = 'Pay now by credit card'; $_MODULE['<{alma}prestashop>customfieldshelper_300de0751d957421cc332ba21c43a598'] = 'Pay in %d installments'; $_MODULE['<{alma}prestashop>customfieldshelper_726c61fad46c135efb4198820e5484ba'] = 'Buy now Pay in %d days'; @@ -148,7 +158,8 @@ $_MODULE['<{alma}prestashop>admininsurancehelper_7442e29d7d53e549b78d93c46b8cdcfc'] = 'Orders'; $_MODULE['<{alma}prestashop>insuranceservice_d87aee5118a62a7ff6c21e4ac31006c5'] = 'I hereby acknowledge my acceptance to subscribe to the insurance offered by Alma. In doing so, I confirm that I have previously reviewed the [information notice, which constitutes the general conditions], the [insurance product information document], and the [pre-contractual information and advice sheet]. I ahead to it without reservation and agree to electronically sign the various documents forming my contract, if applicable. I expressly consent to the collection and use of my personal data for the purpose of subscribing to and managing my insurance contract(s).'; $_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b824200e9b8aca1fbb762d6566ff0cd7'] = 'Your configuration has been saved'; -$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_4a39c6a33c3441762924914168d2a387'] = 'Error creating configuration Alma insurance: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_a6bf06f186e2fccecad054fd831c2144'] = '[Alma] Error insurance product during change configuration: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b42688965893bdb7a37cf1197e506e25'] = '[Alma] Error creating configuration Alma insurance: %1$s'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_a66f446516cd125af12bd25073f88b78'] = 'Orders with insurance'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_49414cda71621b3ee718ae5ff40804c5'] = 'Id Order'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_63d5049791d9d79d86e9a108b0a999ca'] = 'Reference'; @@ -320,4 +331,3 @@ $_MODULE['<{alma}prestashop>notificationfirstinstallation_1e6898bbd6a44041932ac84cbda13bd7'] = 'You can find your Live API key in %1$syour Alma dashboard%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_689c39b29a6d91e6dff728a7762cbc9e'] = 'To use the Test mode, you need your Test API key from %1$syour sandbox dasboard%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_dcab24ea1a3cd9bab8047b1b6f7ee65c'] = 'If you have any problems, please contact us by email at %1$ssupport@getalma.eu%2$s'; -$_MODULE['<{alma}prestashop>displaypayment_pnx_22f0189423433ab0e055b91d98970e5f'] = 'Alma Monthly Installments are not available for this order'; diff --git a/alma/translations/es.php b/alma/translations/es.php index 7ba586292..ccd31d3a1 100644 --- a/alma/translations/es.php +++ b/alma/translations/es.php @@ -32,6 +32,7 @@ $_MODULE['<{alma}prestashop>alma_fbb47375d2272bef79f5722a183bf1ec'] = 'Alma requiere la extensión PHP JSON'; $_MODULE['<{alma}prestashop>alma_7fb83ba9cf3cc38857a2ddae98534d22'] = 'Alma requiere OpenSSL >= 1.0.1'; $_MODULE['<{alma}prestashop>modulefactorytest_5914ca153abaf8a2af61e13e7fe7e829'] = 'Mi redacción para traducir'; +$_MODULE['<{alma}prestashop>translationhelpertest_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Hoy'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_cc76de47de858ac2fa2964f534ecfdfb'] = 'No se pudo conectar a Alma utilizando tus claves de API.'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_733b6ddadc31fd97174b0cfe69b584c9'] = 'Por favor, vuelve a comprobar tus claves en tu %1$sPanel de control Alma%2$s.'; $_MODULE['<{alma}prestashop>wrongparamsexception_8ec75b5f68c49d1d6541b1e318a8120d'] = 'Clave(s) de error(es): %1$s.'; @@ -79,8 +80,13 @@ $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_c4cea4750fb3ef077cbf2e1283c312ac'] = 'Mensaje a mostrar en la página de un producto excluido o en la página del carrito si contiene un producto excluido.'; $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_36359547b09bdb31f46c419a0bd5807e'] = 'Categorías excluidas'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_2420ebe02d61c738479f399a97e1cf18'] = 'Activar el pago integrado'; -$_MODULE['<{alma}prestashop>inpageadminformbuilder_bf3b980c4aa11b5fca4cc3096f50e0b8'] = 'Activar el pago integrado para Pay Now, P2X, P3X y P4X'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_3dd32a0e923aeb930c7c0ced60f7b2e0'] = 'Activar en la página de pago para todos los métodos de pago Alma'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_220a4f39147308a2160f7abc4d00ae43'] = 'La página de pago en tu propio sitio web'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6f7991629de2e9ee19a0bf2a0469138c'] = 'Botón de pago de entrada Selector de Alma'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6644897911f79aa5889998a5ab18c5cd'] = '%1$sAvanzado%2$s [Opcional] Selector CSS utilizado por nuestros scripts para identificar el botón de pago Alma'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_cc12a5229a16dced1984745e05872a94'] = 'Por ejemplo, #id, .class, ...'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_8ee0042ba2657c2af782fcc8893fa45a'] = 'Selector de botones para realizar pedidos'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_afa1a431a4735641af813166d75b1c06'] = '%1$sAvanzado%2$s [Opcional] Selector CSS utilizado por nuestros scripts para identificar el botón de confirmación de pago.'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_6de24747c86085e597f6b38d4d1d01a4'] = 'Pago integrado'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_a2a52a9dd1864e2b995793bd67b8c6e5'] = 'Este widget te permite informar a tus Clientes de la disponibilidad del pago aplazado con Alma directamente desde la página del producto. Esto te ayudará a aumentar tu tasa de conversión. Para más detalles sobre su configuración o en caso de problemas, consulta %1$sesta documentación%2$s.'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_ac6329ea064b9212be7e442cb46bf68f'] = 'Mostrar widget'; @@ -134,7 +140,11 @@ $_MODULE['<{alma}prestashop>paymentvalidation_6f11098989b14063e0a4cfe362734850'] = 'Alma - Pago en %d plazos'; $_MODULE['<{alma}prestashop>refundhelper_446ae76a36687f9dbc62430e7006ca91'] = 'Lamentamos informarte que ha habido un problema al procesar el pago. Tu pago con Alma será reembolsado en su totalidad. Por favor, vuelve a intentarlo para completar su pedido.'; $_MODULE['<{alma}prestashop>refundhelper_448edd2d5c593906afa202847b8d79c0'] = 'Disculpa las molestias, pero se ha producido un problema al procesar el pago y no hemos podido reembolsarte tu pago de Alma. Para solucionarlo, rogamos que te pongas en contacto con nuestro equipo de soporte indicando tu referencia de pago: %s. Nuestro equipo estará encantado de ayudarte a recibir el reembolso en su totalidad. Gracias por tu colaboración.'; +$_MODULE['<{alma}prestashop>planhelper_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Hoy'; +$_MODULE['<{alma}prestashop>planhelper_96b0141273eabab320119c467cdcaf17'] = 'Total'; +$_MODULE['<{alma}prestashop>planhelper_9bbd94e0a507283ae202812ea1bd6f20'] = '%s mes después'; $_MODULE['<{alma}prestashop>orderhelper_7960c85fd5916169fc5038a2192094f8'] = 'Error: No se pudo encontrar la transacción de Alma'; +$_MODULE['<{alma}prestashop>paymentoptiontemplatehelper_9088921432b295dfe6f02863b2dc0ff8'] = '0 € hoy después %1$s en %2$s'; $_MODULE['<{alma}prestashop>customfieldshelper_2c53dea2326232a2d867ddd1d2206aa0'] = 'Paga ahora con tarjeta de crédito'; $_MODULE['<{alma}prestashop>customfieldshelper_300de0751d957421cc332ba21c43a598'] = 'Pagar en %d plazos'; $_MODULE['<{alma}prestashop>customfieldshelper_726c61fad46c135efb4198820e5484ba'] = 'Comprar ahora Pagar en %d días'; @@ -148,7 +158,8 @@ $_MODULE['<{alma}prestashop>admininsurancehelper_7442e29d7d53e549b78d93c46b8cdcfc'] = 'Pedidos'; $_MODULE['<{alma}prestashop>insuranceservice_d87aee5118a62a7ff6c21e4ac31006c5'] = 'Por la presente acepto suscribir el seguro ofrecido por Alma. Al hacerlo, confirmo que he revisado previamente el [aviso informativo, que constituye las condiciones generales], el [documento de información sobre el producto de seguro] y la [hoja de información y asesoramiento precontractual]. Y sin reservas, acepto firmar electrónicamente los distintos documentos que forman mi contrato, si procede. Consiento expresamente la recolección y utilización de mis datos personales a efectos de la suscripción y gestión de mi(s) contrato(s) de seguro.'; $_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b824200e9b8aca1fbb762d6566ff0cd7'] = 'Tu configuración se ha guardado'; -$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_4a39c6a33c3441762924914168d2a387'] = 'Error al crear la configuración Alma insurance: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_a6bf06f186e2fccecad054fd831c2144'] = '[Alma] Error al asegurar el producto durante la configuración del cambio: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b42688965893bdb7a37cf1197e506e25'] = '[Alma] Error al crear la configuración Alma seguro: %1$s'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_a66f446516cd125af12bd25073f88b78'] = 'Pedidos con seguro'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_49414cda71621b3ee718ae5ff40804c5'] = 'Id Orden'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_63d5049791d9d79d86e9a108b0a999ca'] = 'Referencia'; @@ -260,7 +271,7 @@ $_MODULE['<{alma}prestashop>notificationconfiguration_cf5ec9fb9f7214a3db82a5a39fec5b48'] = 'Introduce tu clave API'; $_MODULE['<{alma}prestashop>notificationconfiguration_055f421849c2a1c32b885c95540f827c'] = 'Encuentra tu API live key en tu %1$s Alma dashboard%2$s'; $_MODULE['<{alma}prestashop>notificationconfiguration_53b458e8453e3694811e61c96527d638'] = 'Para utilizar el modo de prueba, obtenga su clave de API de prueba en el panel de control de su sandbox %1$s%2$s'; -$_MODULE['<{alma}prestashop>notificationconfiguration_b040aba3ff898146cd8c1fb8cfd04daf'] = 'Le ofrecemos descargar o actualizar el módulo Cuenta de PrestaShop (versión mínima requerida %1$s)'; +$_MODULE['<{alma}prestashop>notificationconfiguration_b040aba3ff898146cd8c1fb8cfd04daf'] = 'Te ofrecemos descargar o actualizar el módulo de tu cuenta de PrestaShop (versión mínima requerida %1$s)'; $_MODULE['<{alma}prestashop>notificationconfiguration_9700e091d54b8ff1fafcd27518c75b23'] = 'Vincula tu tienda a tu cuenta PrestaShop para aprovechar al máximo los módulos que ofrece PrestaShop Marketplace y optimizar tu experiencia.'; $_MODULE['<{alma}prestashop>notificationconfiguration_6997dde298b14fbf6a7c95bd39fe8dc4'] = 'Encontrará el módulo %1$saquí%2$s'; $_MODULE['<{alma}prestashop>notificationshareofcheckout_a6b0ef107f0d278df612764187bbdece'] = ' Aumenta tu rendimiento y obtén información'; @@ -320,4 +331,3 @@ $_MODULE['<{alma}prestashop>notificationfirstinstallation_1e6898bbd6a44041932ac84cbda13bd7'] = 'Encuentra tu clave API Live en %1$stu panel de control Alma%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_689c39b29a6d91e6dff728a7762cbc9e'] = 'Para utilizar el modo Test (en pruebas), copia tu clave API Test desde %1$stu panel de control sandbox%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_dcab24ea1a3cd9bab8047b1b6f7ee65c'] = 'Si tienes algún problema, pónte en contacto con nosotros por correo electrónico en %1$ssoporte@almapay.com%2$s'; -$_MODULE['<{alma}prestashop>displaypayment_pnx_22f0189423433ab0e055b91d98970e5f'] = 'El pago a plazos con Alma no está disponible para este pedido'; diff --git a/alma/translations/fr.php b/alma/translations/fr.php index eb322d0a5..72d440502 100644 --- a/alma/translations/fr.php +++ b/alma/translations/fr.php @@ -32,6 +32,7 @@ $_MODULE['<{alma}prestashop>alma_fbb47375d2272bef79f5722a183bf1ec'] = 'Alma nécessite l\'extension PHP JSON'; $_MODULE['<{alma}prestashop>alma_7fb83ba9cf3cc38857a2ddae98534d22'] = 'Alma nécessite OpenSSL >= 1.0.1'; $_MODULE['<{alma}prestashop>modulefactorytest_5914ca153abaf8a2af61e13e7fe7e829'] = 'Ma formulation à traduire'; +$_MODULE['<{alma}prestashop>translationhelpertest_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Aujourd\'hui'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_cc76de47de858ac2fa2964f534ecfdfb'] = 'Impossible de se connecter à Alma en utilisant vos clés API.'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_733b6ddadc31fd97174b0cfe69b584c9'] = 'Veuillez vérifier vos clés sur votre tableau de bord %1$sAlma%2$s.'; $_MODULE['<{alma}prestashop>wrongparamsexception_8ec75b5f68c49d1d6541b1e318a8120d'] = 'Clé(s) d\'erreur : %1$s.'; @@ -79,8 +80,13 @@ $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_c4cea4750fb3ef077cbf2e1283c312ac'] = 'Message affiché sur les pages de produits exclus ou sur la page du panier s\'il contient un produit exclus'; $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_36359547b09bdb31f46c419a0bd5807e'] = 'Catégories exclues'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_2420ebe02d61c738479f399a97e1cf18'] = 'Activer le paiement avec In-page'; -$_MODULE['<{alma}prestashop>inpageadminformbuilder_bf3b980c4aa11b5fca4cc3096f50e0b8'] = 'Activer le paiement avec In-page pour paiement comptant, P2X, P3X et P4X'; -$_MODULE['<{alma}prestashop>inpageadminformbuilder_220a4f39147308a2160f7abc4d00ae43'] = 'La page d\'accueil de la caisse dans votre propre site web'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_3dd32a0e923aeb930c7c0ced60f7b2e0'] = 'Activer le paiement avec In-page pour toutes les méthodes de paiement Alma'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_220a4f39147308a2160f7abc4d00ae43'] = 'Le paiement avec In-page dans votre propre site web'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6f7991629de2e9ee19a0bf2a0469138c'] = 'Bouton de paiement à l\'entrée Sélecteur d\'alma'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6644897911f79aa5889998a5ab18c5cd'] = '%1$sAdvanced%2$s [Optional] Sélecteur CSS utilisé par nos scripts pour identifier le bouton de paiement Alma'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_cc12a5229a16dced1984745e05872a94'] = 'Ex : #id, .class, ...'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_8ee0042ba2657c2af782fcc8893fa45a'] = 'Sélecteur de bouton de commande'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_afa1a431a4735641af813166d75b1c06'] = '%1$sAvancé%2$s [Facultatif] Sélecteur CSS utilisé par nos scripts pour identifier le bouton de confirmation de paiement.'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_6de24747c86085e597f6b38d4d1d01a4'] = 'Paiement en ligne'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_a2a52a9dd1864e2b995793bd67b8c6e5'] = 'Ce badge permet d\'informer vos clients de la disponibilité des facilité de paiement Alma dès la fiche produit, ce qui participera à augmenter votre taux de conversion. Pour des précisions sur sa configuration ou en cas de problèmes, consultez %1$scette documentation%2$s.'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_ac6329ea064b9212be7e442cb46bf68f'] = 'Afficher le badge'; @@ -134,7 +140,11 @@ $_MODULE['<{alma}prestashop>paymentvalidation_6f11098989b14063e0a4cfe362734850'] = 'Alma - Paiement en %d fois'; $_MODULE['<{alma}prestashop>refundhelper_446ae76a36687f9dbc62430e7006ca91'] = 'Nous avons le regret de vous informer qu\'il y a eu un problème lors du processus de paiement, votre paiement Alma sera entièrement remboursé. Veuillez réessayer votre paiement pour terminer votre commande.'; $_MODULE['<{alma}prestashop>refundhelper_448edd2d5c593906afa202847b8d79c0'] = 'Nous nous excusons pour la gêne occasionnée, mais il y a eu un problème pendant le processus de paiement, et nous n\'avons pas été en mesure de vous rembourser votre paiement Alma. Pour résoudre ce problème, nous vous demandons de contacter notre équipe d\'assistance en indiquant la référence de votre paiement : %s. Notre équipe sera heureuse de vous aider à obtenir le remboursement intégral de votre paiement. Nous vous remercions de votre coopération.'; +$_MODULE['<{alma}prestashop>planhelper_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Aujourd\'hui'; +$_MODULE['<{alma}prestashop>planhelper_96b0141273eabab320119c467cdcaf17'] = 'Total'; +$_MODULE['<{alma}prestashop>planhelper_9bbd94e0a507283ae202812ea1bd6f20'] = 'Dans %s mois'; $_MODULE['<{alma}prestashop>orderhelper_7960c85fd5916169fc5038a2192094f8'] = 'Erreur : La transaction Alma n\'a pas pu être récupérée'; +$_MODULE['<{alma}prestashop>paymentoptiontemplatehelper_9088921432b295dfe6f02863b2dc0ff8'] = '0 € aujourd\'hui puis %1$s le %2$s'; $_MODULE['<{alma}prestashop>customfieldshelper_2c53dea2326232a2d867ddd1d2206aa0'] = 'Payer maintenant par carte bancaire'; $_MODULE['<{alma}prestashop>customfieldshelper_300de0751d957421cc332ba21c43a598'] = 'Payer en %d fois'; $_MODULE['<{alma}prestashop>customfieldshelper_726c61fad46c135efb4198820e5484ba'] = 'Payer dans %d jours'; @@ -148,7 +158,8 @@ $_MODULE['<{alma}prestashop>admininsurancehelper_7442e29d7d53e549b78d93c46b8cdcfc'] = 'Commandes'; $_MODULE['<{alma}prestashop>insuranceservice_d87aee5118a62a7ff6c21e4ac31006c5'] = 'Par la présente, je reconnais accepter de souscrire à l\'assurance proposée par Alma. Ce faisant, je confirme avoir préalablement pris connaissance de la [notice d\'information valant conditions générales], du [document d\'information sur le produit d\'assurance], et de la [fiche d\'information et de conseil précontractuelle]. J\'y adhère sans réserve et accepte de signer électroniquement les différents documents formant mon contrat, le cas échéant. Je consens expressément à la collecte et à l\'utilisation de mes données personnelles aux fins de la souscription et de la gestion de mon (mes) contrat(s) d\'assurance.'; $_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b824200e9b8aca1fbb762d6566ff0cd7'] = 'Votre configuration a été sauvegardée'; -$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_4a39c6a33c3441762924914168d2a387'] = 'Erreur lors de la création de la configuration Assurance Alma : %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_a6bf06f186e2fccecad054fd831c2144'] = '[Alma] Erreur d\'assurance du produit lors de la modification de la configuration : %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b42688965893bdb7a37cf1197e506e25'] = '[Alma] Erreur lors de la création de la configuration Assurance Alma : %1$s'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_a66f446516cd125af12bd25073f88b78'] = 'Commandes avec assurance'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_49414cda71621b3ee718ae5ff40804c5'] = 'Ordonnance Id'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_63d5049791d9d79d86e9a108b0a999ca'] = 'Référence'; @@ -320,4 +331,3 @@ $_MODULE['<{alma}prestashop>notificationfirstinstallation_1e6898bbd6a44041932ac84cbda13bd7'] = 'Retrouvez votre clef d\'API Live sur %1$svotre tableau de bord Alma%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_689c39b29a6d91e6dff728a7762cbc9e'] = 'Pour utiliser le mode Test, récupérez votre clef d\'API Test sur %1$svotre tableau de bord sandbox%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_dcab24ea1a3cd9bab8047b1b6f7ee65c'] = 'En cas de problème, veuillez nous contacter par courrier électronique à l\'adresse suivante : %1$ssupport@getalma.eu%2$s'; -$_MODULE['<{alma}prestashop>displaypayment_pnx_22f0189423433ab0e055b91d98970e5f'] = 'Le paiement en plusieurs fois Alma n\'est pas disponible pour cette commande'; diff --git a/alma/translations/it.php b/alma/translations/it.php index 2462a45e3..aa4ac1e1d 100644 --- a/alma/translations/it.php +++ b/alma/translations/it.php @@ -26,12 +26,13 @@ $_MODULE['<{alma}prestashop>alma_c407a14c73b61d727c55a42fb531f2e3'] = '1x 2x 3x 4x, D+15 o D+30 Alma - Pagamento rateale e differito'; $_MODULE['<{alma}prestashop>alma_7f9c508fa226d3e72644403653115c29'] = 'Vendi di più aumentando la soddisfazione cliente! Metti al sicuro le tue liquidità con Alma, il pagamento a rate semplice e garantito.'; $_MODULE['<{alma}prestashop>alma_ce67a7d4b82bc360a17d25943924b388'] = 'Sei sicuro di voler disattivare i pagamenti Alma dal tuo negozio?'; -$_MODULE['<{alma}prestashop>alma_f1206f9fadc5ce41694f69129aecac26'] = 'Configurare'; +$_MODULE['<{alma}prestashop>alma_f1206f9fadc5ce41694f69129aecac26'] = 'Configura'; $_MODULE['<{alma}prestashop>alma_36359547b09bdb31f46c419a0bd5807e'] = 'Categorie escluse'; $_MODULE['<{alma}prestashop>alma_7bab99339291e7eea710b4a998e663de'] = 'Alma richiede l\'estensione PHP cURL'; $_MODULE['<{alma}prestashop>alma_fbb47375d2272bef79f5722a183bf1ec'] = 'Alma richiede l\'estensione PHP JSON.'; $_MODULE['<{alma}prestashop>alma_7fb83ba9cf3cc38857a2ddae98534d22'] = 'Alma richiede OpenSSL >= 1.0.1'; $_MODULE['<{alma}prestashop>modulefactorytest_5914ca153abaf8a2af61e13e7fe7e829'] = 'La mia formulazione da tradurre'; +$_MODULE['<{alma}prestashop>translationhelpertest_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Oggi'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_cc76de47de858ac2fa2964f534ecfdfb'] = 'Impossibile connettersi ad Alma utilizzando le chiavi API.'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_733b6ddadc31fd97174b0cfe69b584c9'] = 'Controlla che le chiavi API inserite corrispondano a quelle sul %1$sportale Alma%2$s.'; $_MODULE['<{alma}prestashop>wrongparamsexception_8ec75b5f68c49d1d6541b1e318a8120d'] = 'Errore/i chiave: %1$s.'; @@ -79,8 +80,13 @@ $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_c4cea4750fb3ef077cbf2e1283c312ac'] = 'Messaggio visualizzato nella pagina di un prodotto escluso o nella pagina del carrello se contiene un prodotto escluso.'; $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_36359547b09bdb31f46c419a0bd5807e'] = 'Categorie escluse'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_2420ebe02d61c738479f399a97e1cf18'] = 'Attiva il checkout nella stessa pagine'; -$_MODULE['<{alma}prestashop>inpageadminformbuilder_bf3b980c4aa11b5fca4cc3096f50e0b8'] = 'Attiva del checkout nella stessa pagine per Paga Ora, P2X, P3X e P4X'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_3dd32a0e923aeb930c7c0ced60f7b2e0'] = 'Attivare il checkout in-page per tutti i metodi di pagamento Alma'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_220a4f39147308a2160f7abc4d00ae43'] = 'La pagina di checkout all\'interno del tuo sito web'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6f7991629de2e9ee19a0bf2a0469138c'] = 'Pulsante di pagamento in entrata Selettore Alma'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6644897911f79aa5889998a5ab18c5cd'] = '%1$sAdvanced%2$s [Opzionale] Selettore CSS utilizzato dai nostri script per identificare il pulsante di pagamento Alma'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_cc12a5229a16dced1984745e05872a94'] = 'Per esempio #id, .class, ...'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_8ee0042ba2657c2af782fcc8893fa45a'] = 'Selettore del pulsante di invio dell\'ordine'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_afa1a431a4735641af813166d75b1c06'] = '%1$sAdvanced%2$s [Opzionale] Selettore CSS utilizzato dai nostri script per identificare il pulsante di conferma del pagamento'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_6de24747c86085e597f6b38d4d1d01a4'] = 'Pagamento sulla stessa pagina'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_a2a52a9dd1864e2b995793bd67b8c6e5'] = 'Questo widget ti consente di informare i tuoi clienti della disponibilità del sistema di pagamento Alma direttamente sulla pagina del prodotto, aiutandoti così ad aumentare il tuo tasso di conversione. Per maggiori dettagli sulla sua configurazione o in caso di problemi, consulta %1$squesta documentazione%2$s.'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_ac6329ea064b9212be7e442cb46bf68f'] = 'Visualizza Widget'; @@ -134,7 +140,11 @@ $_MODULE['<{alma}prestashop>paymentvalidation_6f11098989b14063e0a4cfe362734850'] = 'Alma - Pagamento in %d rate'; $_MODULE['<{alma}prestashop>refundhelper_446ae76a36687f9dbc62430e7006ca91'] = 'Siamo spiacenti di informarti che si è verificato un problema durante il processo di pagamento; il tuo pagamento Alma sarà completamente rimborsato. Ti preghiamo di riprovare il pagamento per completare l\'ordine.'; $_MODULE['<{alma}prestashop>refundhelper_448edd2d5c593906afa202847b8d79c0'] = 'Ci scusiamo per l\'inconveniente, ma si è verificato un problema durante il processo di pagamento e non siamo stati in grado di rimborsare il tuo pagamento Alma. Per risolvere il problema, ti chiediamo gentilmente di contattare l\'assistenza di Alma indicando il seguente riferimento di pagamento: %s. Il nostro team sarà lieto di assisterti a ricevere il rimborso completo. Grazie per la collaborazione.'; +$_MODULE['<{alma}prestashop>planhelper_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Oggi'; +$_MODULE['<{alma}prestashop>planhelper_96b0141273eabab320119c467cdcaf17'] = 'Totale'; +$_MODULE['<{alma}prestashop>planhelper_9bbd94e0a507283ae202812ea1bd6f20'] = '%s mese dopo'; $_MODULE['<{alma}prestashop>orderhelper_7960c85fd5916169fc5038a2192094f8'] = 'Errore: Impossibile trovare la transazione Alma'; +$_MODULE['<{alma}prestashop>paymentoptiontemplatehelper_9088921432b295dfe6f02863b2dc0ff8'] = 'Oggi paghi 0 € poi %1$s il %2$s'; $_MODULE['<{alma}prestashop>customfieldshelper_2c53dea2326232a2d867ddd1d2206aa0'] = 'Paga ora con la carta bancaria'; $_MODULE['<{alma}prestashop>customfieldshelper_300de0751d957421cc332ba21c43a598'] = 'Paga in %d rate'; $_MODULE['<{alma}prestashop>customfieldshelper_726c61fad46c135efb4198820e5484ba'] = 'Compra ora Paga in %d giorni'; @@ -144,11 +154,12 @@ $_MODULE['<{alma}prestashop>customfieldshelper_6ed45ebd72fcca0fc0c271128e9d7b7b'] = 'Alla spedizione'; $_MODULE['<{alma}prestashop>apihelper_fc610b81ff31f9d969ddb659cd8248c1'] = 'Alma ha riscontrato un errore durante il recupero dello stato del commerciante, si prega di controllare le chiavi api o di riprovare più tardi.'; $_MODULE['<{alma}prestashop>admininsurancehelper_eaff1bdf24fcffe0e14e29a1bff51a12'] = 'Assicurazione'; -$_MODULE['<{alma}prestashop>admininsurancehelper_f1206f9fadc5ce41694f69129aecac26'] = 'Configurare'; +$_MODULE['<{alma}prestashop>admininsurancehelper_f1206f9fadc5ce41694f69129aecac26'] = 'Configura'; $_MODULE['<{alma}prestashop>admininsurancehelper_7442e29d7d53e549b78d93c46b8cdcfc'] = 'Ordini'; -$_MODULE['<{alma}prestashop>insuranceservice_d87aee5118a62a7ff6c21e4ac31006c5'] = 'Con la presente dichiaro di accettare di sottoscrivere l\'assicurazione offerta da Alma. In tal modo, confermo di aver preso visione della [nota informativa, che costituisce le condizioni generali], del [documento informativo sul prodotto assicurativo] e del [foglio informativo e di consulenza precontrattuale]. Accetto senza riserve e acconsento a firmare elettronicamente i vari documenti che formano il mio contratto, se del caso. Acconsento espressamente alla raccolta e all\'utilizzo dei miei dati personali ai fini della sottoscrizione e della gestione del/i mio/i contratto/i di assicurazione.'; +$_MODULE['<{alma}prestashop>insuranceservice_d87aee5118a62a7ff6c21e4ac31006c5'] = 'Con la presente dichiaro di accettare di sottoscrivere l\'assicurazione offerta da Alma. In tal modo, confermo di aver preso visione della [nota informativa, che costituisce le condizioni generali], del [documento informativo sul prodotto assicurativo] e del [foglio informativo e di consulenza precontrattuale]. Accetto senza riserve e acconsento a firmare elettronicamente i vari documenti che formano il mio contratto, se applicabile. Acconsento espressamente alla raccolta e all\'utilizzo dei miei dati personali ai fini della sottoscrizione e della gestione del/i mio/i contratto/i di assicurazione.'; $_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b824200e9b8aca1fbb762d6566ff0cd7'] = 'La configurazione è stata salvata'; -$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_4a39c6a33c3441762924914168d2a387'] = 'Errore nella creazione della configurazione dell\'assicurazione Alma: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_a6bf06f186e2fccecad054fd831c2144'] = '[Alma] Errore nell\'assicurazione del prodotto durante la configurazione delle modifiche: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b42688965893bdb7a37cf1197e506e25'] = '[Alma] Errore nella creazione della configurazione dell\'assicurazione Alma: %1$s'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_a66f446516cd125af12bd25073f88b78'] = 'Ordini con assicurazione'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_49414cda71621b3ee718ae5ff40804c5'] = 'Ordine Id'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_63d5049791d9d79d86e9a108b0a999ca'] = 'Riferimento'; @@ -171,7 +182,7 @@ $_MODULE['<{alma}prestashop>adminalmarefunds_dde9188155937e885e5f5b002e6dcb39'] = 'Errore: tipo di rimborso sconosciuto (%s)'; $_MODULE['<{alma}prestashop>subscription_e8b288e3bc9f8001cb5e625c549420e9'] = 'Manca l\'id dell\'abbonamento'; $_MODULE['<{alma}prestashop>subscription_0d06849941740b4bdd9281f07d28e0dd'] = 'L\'azione è sconosciuta'; -$_MODULE['<{alma}prestashop>subscription_a8cec6fae3a5545458fcf2f8a34dcbe9'] = 'Errore nell\'annullare l\'abbonamento'; +$_MODULE['<{alma}prestashop>subscription_a8cec6fae3a5545458fcf2f8a34dcbe9'] = 'Errore durante la cancellazione dell\'abbonamento'; $_MODULE['<{alma}prestashop>payment_2f9f52496706027b880bac2e3c9af1d8'] = 'Si è verificato un errore al momento della richiesta di pagamento. Si prega di riprovare più tardi o di contattarci qualora il problema dovesse persistere.'; $_MODULE['<{alma}prestashop>payment_efa820507b1951ee5722003639b1a0b0'] = 'Il pagamento rateale Alma non è disponibile per questa valuta'; $_MODULE['<{alma}prestashop>validation_9d55a51cbc2d6cf7f9251b0cec59390e'] = 'Si è verificato un errore al momento della convalida del pagamento. Si prega di riprovare più tardi o di contattarci qualora il problema dovesse persistere. ID carrello: %d'; @@ -190,7 +201,7 @@ $_MODULE['<{alma}prestashop>getcontenthookcontroller_bf17ac149e2e7a530c677e9bd51d3fd2'] = 'Moduli'; $_MODULE['<{alma}prestashop>getcontenthookcontroller_5f265dfcb9ab68a1258ec25393ffb886'] = 'Responsabile del modulo'; $_MODULE['<{alma}prestashop>getcontenthookcontroller_c6e24f81cb99e08c3d56b191c00aea28'] = 'Gestione dei moduli - Elenco'; -$_MODULE['<{alma}prestashop>frontheaderhookcontroller_0bbf1fb0708055cf522541b4151894c4'] = 'Per gestire i vostri acquisti con Assurance, accedete alla pagina di checkout.'; +$_MODULE['<{alma}prestashop>frontheaderhookcontroller_0bbf1fb0708055cf522541b4151894c4'] = 'Per gestire i vostri acquisti con Assurance, accedi alla pagina di checkout.'; $_MODULE['<{alma}prestashop>frontheaderhookcontroller_8f1e80580ceb2bb7a54a7288ea169b30'] = 'L\'assicurazione Alma può essere aggiunta al carrello solo se è associata a un prodotto assicurabile. Verrà proposta nella pagina del prodotto in questione.'; $_MODULE['<{alma}prestashop>displaypaymenthookcontroller_afd8ac1c65e1519d6a890e5f98558a52'] = '%1$s allora %2$d x %3$s'; $_MODULE['<{alma}prestashop>displaypaymenthookcontroller_bc69b42c4bd339154f9025f3299ad146'] = 'Oggi paghi %1$s poi %2$d x %3$s'; @@ -198,7 +209,7 @@ $_MODULE['<{alma}prestashop>actionordergriddefinitionmodifierhookcontroller_26ddd5e40e811e8db050efc33508167b'] = 'Ha un\'assicurazione'; $_MODULE['<{alma}prestashop>actionordergriddefinitionmodifierhookcontroller_93cba07454f06a4a960172bbd6e2a435'] = 'Sì'; $_MODULE['<{alma}prestashop>actionordergriddefinitionmodifierhookcontroller_bafd7322c6e97d25b6299b5d6fe8920b'] = 'No'; -$_MODULE['<{alma}prestashop>displayadminordertophookcontroller_f23e273d05fb22018b906de7ac983510'] = 'Questo carrello comprende uno o più abbonamenti assicurativi. Assicuratevi che l\'abbonamento o gli abbonamenti siano stati annullati prima di procedere al rimborso. %1$sGestite la cancellazione direttamente qui.%2$s'; +$_MODULE['<{alma}prestashop>displayadminordertophookcontroller_f23e273d05fb22018b906de7ac983510'] = 'Questo carrello comprende uno o più abbonamenti assicurativi. Assicurati che l\'abbonamento o gli abbonamenti siano stati annullati prima di procedere al rimborso. %1$sGestisci la cancellazione direttamente qui.%2$s'; $_MODULE['<{alma}prestashop>insurance_order_details_f5d74ea75357b5e139854c14f8e24fe3'] = 'Dettagli dell\'ordine'; $_MODULE['<{alma}prestashop>insurance_order_details_88b1b598df916ded43ff4abb0935ed7e'] = 'Dettagli degli ordini'; $_MODULE['<{alma}prestashop>insurance_254f642527b45bc260048e30704edb39'] = 'Configurazione'; @@ -226,7 +237,7 @@ $_MODULE['<{alma}prestashop>excludedcategories_2b02fe17f294da7167110f5df2b72fc0'] = 'Se vendi tali prodotti, dovrai configurare il modulo Alma in modo tale che sia disattivato quando i clienti consultano o acquistano queste tipologie di prodotti.'; $_MODULE['<{alma}prestashop>excludedcategories_eeecfb6e26e4e102986292a543d37542'] = 'Utilizza %1$s%2$sla pagina delle categorie escluse%3$s%4$s per adeguarti a tali regole.'; $_MODULE['<{alma}prestashop>excludedcategories_576dc983c16c3d346e6dfe174b662bf2'] = 'Categorie attualmente escluse:'; -$_MODULE['<{alma}prestashop>displayadminordertop_57f05100f1068b2f65644ff34e339eb1'] = 'Ricordate di annullare gli abbonamenti assicurativi prima di avviare un rimborso.'; +$_MODULE['<{alma}prestashop>displayadminordertop_57f05100f1068b2f65644ff34e339eb1'] = 'Ricordati di annullare gli abbonamenti assicurativi prima di avviare un rimborso'; $_MODULE['<{alma}prestashop>sample_payment_button_1f956efd3d3772790153d1e9e95e64c5'] = 'Modifica il testo visualizzato durante la scelta del metodo di pagamento nel tuo checkout. Si adatterà alle lingue del tuo sito.'; $_MODULE['<{alma}prestashop>sample_payment_button_f3244aba99d8eb5ccaf1f3a6b8ad1a93'] = 'Esempio di pulsante di pagamento Alma'; $_MODULE['<{alma}prestashop>sample_payment_button_9f04fe30d0288024643a1dd3074abe2e'] = 'Esempio di titolo e descrizione.'; @@ -253,15 +264,15 @@ $_MODULE['<{alma}prestashop>pnx_fees_5532ee2e5ea88b613ccb38e9c88f9a77'] = 'se pensi che i tuoi volumi di vendita giustifichino tariffe migliori!'; $_MODULE['<{alma}prestashop>order_refund_ps15_cbb3ab577b705e328991986e35218f50'] = 'Importo rimborsato'; $_MODULE['<{alma}prestashop>order_refund_ps15_96b0141273eabab320119c467cdcaf17'] = 'Totale'; -$_MODULE['<{alma}prestashop>notificationconfiguration_9f246d669c560d2ac604f5e01c8dd981'] = 'Per utilizzare Alma, seguire i seguenti passaggi'; -$_MODULE['<{alma}prestashop>notificationconfiguration_3f2c7ed52eb56243edc3a40def7df34b'] = 'Associare un account PrestaShop (appena sotto)'; -$_MODULE['<{alma}prestashop>notificationconfiguration_b6a9cb8bac15ad209cf970e3f7cc73a0'] = 'Creare un account Alma'; -$_MODULE['<{alma}prestashop>notificationconfiguration_e243bbd390b43c9ee6047fab4ab3cdc0'] = 'Consultate la nostra guida introduttiva'; -$_MODULE['<{alma}prestashop>notificationconfiguration_cf5ec9fb9f7214a3db82a5a39fec5b48'] = 'Inserire la chiave API'; -$_MODULE['<{alma}prestashop>notificationconfiguration_055f421849c2a1c32b885c95540f827c'] = 'Trovate la vostra chiave API live sul vostro cruscotto %1$s Alma%2$s'; -$_MODULE['<{alma}prestashop>notificationconfiguration_53b458e8453e3694811e61c96527d638'] = 'Per utilizzare la modalità Test, recuperare la chiave API Test dalla dashboard di %1$ssandbox%2$s.'; +$_MODULE['<{alma}prestashop>notificationconfiguration_9f246d669c560d2ac604f5e01c8dd981'] = 'Per utilizzare Alma, ti invitiamo a seguire i seguenti passaggi'; +$_MODULE['<{alma}prestashop>notificationconfiguration_3f2c7ed52eb56243edc3a40def7df34b'] = 'Associa un account PrestaShop (vedi sotto)'; +$_MODULE['<{alma}prestashop>notificationconfiguration_b6a9cb8bac15ad209cf970e3f7cc73a0'] = 'Crea un account Alma'; +$_MODULE['<{alma}prestashop>notificationconfiguration_e243bbd390b43c9ee6047fab4ab3cdc0'] = 'Consulta la nostra guida introduttiva'; +$_MODULE['<{alma}prestashop>notificationconfiguration_cf5ec9fb9f7214a3db82a5a39fec5b48'] = 'Inserisci la chiave API'; +$_MODULE['<{alma}prestashop>notificationconfiguration_055f421849c2a1c32b885c95540f827c'] = 'Trovi la tua chiave API live nel tuo account Alma %1$s Alma%2$s'; +$_MODULE['<{alma}prestashop>notificationconfiguration_53b458e8453e3694811e61c96527d638'] = 'Per utilizzare la modalità Test, recupera la chiave API Test dalla dashboard di %1$ssandbox%2$s'; $_MODULE['<{alma}prestashop>notificationconfiguration_b040aba3ff898146cd8c1fb8cfd04daf'] = 'Offriamo il download o l\'aggiornamento del modulo PrestaShop Account (versione minima richiesta %1$s).'; -$_MODULE['<{alma}prestashop>notificationconfiguration_9700e091d54b8ff1fafcd27518c75b23'] = 'Collegate il vostro negozio al vostro account PrestaShop per sfruttare appieno i moduli offerti dal Marketplace PrestaShop e ottimizzare la vostra esperienza.'; +$_MODULE['<{alma}prestashop>notificationconfiguration_9700e091d54b8ff1fafcd27518c75b23'] = 'Collega il tuo negozio al tuo account PrestaShop per sfruttare appieno i moduli offerti dal Marketplace PrestaShop e ottimizza la tua esperienza.'; $_MODULE['<{alma}prestashop>notificationconfiguration_6997dde298b14fbf6a7c95bd39fe8dc4'] = 'È possibile trovare il modulo %1$squi%2$s'; $_MODULE['<{alma}prestashop>notificationshareofcheckout_a6b0ef107f0d278df612764187bbdece'] = 'Aumenta le tue prestazioni e ricevi approfondimenti sulle tue vendite!'; $_MODULE['<{alma}prestashop>notificationshareofcheckout_5b64cb0849dd12ea528c04f2fe66ae4d'] = 'Attivando questa opzione, permetti ad Alma di analizzare l\'utilizzo dei tuoi metodi di pagamento [1]al fine[/1] di migliorare il servizio e condividerti un approfondimento sui dati analizzati. Puoi [2]annullare l\'iscrizione e cancellare i tuoi dati[/2] in qualsiasi momento.'; @@ -270,11 +281,11 @@ $_MODULE['<{alma}prestashop>notificationshareofcheckout_28515fa383208fc73e01ab440f053fb0'] = 'fornitore di pagamento per ogni ordine'; $_MODULE['<{alma}prestashop>notificationshareofcheckout_d98ac12774fca5c3cbaffe276840c55f'] = 'Rifiuta'; $_MODULE['<{alma}prestashop>notificationshareofcheckout_c4408d335012a56ff58937d78050efad'] = 'Accetta'; -$_MODULE['<{alma}prestashop>displaybackofficeheader_1e5f420d1f82c216803c0f6f2d25fb19'] = 'Confermare la cancellazione dell\'assicurazione prima di rimborsare l\'ordine'; -$_MODULE['<{alma}prestashop>displaybackofficeheader_ea4788705e6873b424c65e91c2846b19'] = 'Annullamento'; -$_MODULE['<{alma}prestashop>displaybackofficeheader_9fc85cd14a16265c6062fef6709317f0'] = 'Rimborsare l\'ordine'; -$_MODULE['<{alma}prestashop>displaybackofficeheader_d51b3b1c19648b5d3bfc1c5db6264519'] = 'Prima di procedere al rimborso dell\'ordine, accertarsi che i contratti assicurativi associati siano stati annullati con successo.'; -$_MODULE['<{alma}prestashop>displaybackofficeheader_36e992ad2ba4173cd6391e4c737b8e1d'] = 'È sicuro di voler confermare il rimborso?'; +$_MODULE['<{alma}prestashop>displaybackofficeheader_1e5f420d1f82c216803c0f6f2d25fb19'] = 'Ti chiediamo di confermare di voler cancellare l\'assicurazione prima di rimborsare l\'ordine'; +$_MODULE['<{alma}prestashop>displaybackofficeheader_ea4788705e6873b424c65e91c2846b19'] = 'Annulla'; +$_MODULE['<{alma}prestashop>displaybackofficeheader_9fc85cd14a16265c6062fef6709317f0'] = 'Rimborsa l\'ordine'; +$_MODULE['<{alma}prestashop>displaybackofficeheader_d51b3b1c19648b5d3bfc1c5db6264519'] = 'Prima di procedere al rimborso dell\'ordine, verifica che i contratti assicurativi associati siano stati annullati con successo.'; +$_MODULE['<{alma}prestashop>displaybackofficeheader_36e992ad2ba4173cd6391e4c737b8e1d'] = 'Sei sicuro di voler procedere al rimborso?'; $_MODULE['<{alma}prestashop>getcontent_53ce4ef3d9b0dde0cb18ee9424dc4e4f'] = 'Compilare tutti i campi obbligatori'; $_MODULE['<{alma}prestashop>getcontent_8f5fc63df52306a94566eba9f11de438'] = 'Inserire la chiave API Live per utilizzare la modalità Live'; $_MODULE['<{alma}prestashop>getcontent_fde62b5820c448b8db7eb98235de0138'] = 'Inserire la chiave API Test per utilizzare la modalità Test'; @@ -298,7 +309,7 @@ $_MODULE['<{alma}prestashop>getcontent_8c10d3b0970a247fc554062dc9055fd1'] = 'L’ammontare massimo per i pagamenti in %1$d rate deve essere compreso tra %2$d e %3$d.'; $_MODULE['<{alma}prestashop>getcontent_84b96a3ca61f4425b3fd56534a89a653'] = 'Impossibile salvare le impostazioni di Share of Checkout, riprova più tardi'; $_MODULE['<{alma}prestashop>getcontent_7f40d377cc4942c4f0d6e75a736f8445'] = 'Configurazione memorizzata con successo'; -$_MODULE['<{alma}prestashop>widgetaddinsuranceproducts_f1aab89a3a1e86807c8dffa61d41ded6'] = 'Proteggete il resto dei vostri prodotti con'; +$_MODULE['<{alma}prestashop>widgetaddinsuranceproducts_f1aab89a3a1e86807c8dffa61d41ded6'] = 'Proteggi il resto dei tuoi prodotti con'; $_MODULE['<{alma}prestashop>widgetaddinsuranceproducts_f28220d70798406523119d998573b489'] = 'Voglio assicurare tutti i [1]%1$s[/1] rimanenti nel mio carrello'; $_MODULE['<{alma}prestashop>fees_3acc62b245d8bc10f04d81f69d85b685'] = '(Nessun costo aggiuntivo)'; $_MODULE['<{alma}prestashop>feeplan_64408fc092e84b9eb352626a0bcbbdf7'] = 'TAEG fisso'; @@ -319,5 +330,4 @@ $_MODULE['<{alma}prestashop>notificationfirstinstallation_8e51eafe439b0adfecc2dc209c2efb15'] = 'Potrai quindi inserire le tue chiavi API:'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_1e6898bbd6a44041932ac84cbda13bd7'] = 'Trovi la tua chiave API Live sulla %1$stua dashboard Alma%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_689c39b29a6d91e6dff728a7762cbc9e'] = 'Per utilizzare la modalità Test, recupera la tua chiave API Test sulla %1$stua dashboard sandbox%2$s'; -$_MODULE['<{alma}prestashop>notificationfirstinstallation_dcab24ea1a3cd9bab8047b1b6f7ee65c'] = 'In caso di problemi, si prega di contattarci via e-mail all\'indirizzo %1$ssupport@getalma.eu%2$s'; -$_MODULE['<{alma}prestashop>displaypayment_pnx_22f0189423433ab0e055b91d98970e5f'] = 'Il pagamento rateale di Alma non è disponibile per questo ordine'; +$_MODULE['<{alma}prestashop>notificationfirstinstallation_dcab24ea1a3cd9bab8047b1b6f7ee65c'] = 'In caso di problemi, ti invitiamo a contattarci via e-mail all\'indirizzo %1$ssupport@getalma.eu%2$s'; diff --git a/alma/translations/nl.php b/alma/translations/nl.php index 59d104eda..7ddddd9d2 100644 --- a/alma/translations/nl.php +++ b/alma/translations/nl.php @@ -32,6 +32,7 @@ $_MODULE['<{alma}prestashop>alma_fbb47375d2272bef79f5722a183bf1ec'] = 'Voor Alma is een PHP JSON extensie nodig.'; $_MODULE['<{alma}prestashop>alma_7fb83ba9cf3cc38857a2ddae98534d22'] = 'Voor Alma is OpenSSL >= 1.0.1 nodig'; $_MODULE['<{alma}prestashop>modulefactorytest_5914ca153abaf8a2af61e13e7fe7e829'] = 'Mijn formulering om te vertalen'; +$_MODULE['<{alma}prestashop>translationhelpertest_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Vandaag'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_cc76de47de858ac2fa2964f534ecfdfb'] = 'Kan geen verbinding maken met Alma met behulp van jouw API-keys.'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_733b6ddadc31fd97174b0cfe69b584c9'] = 'Controleer de API-keys op jouw %1$sAlma dashboard%2$s.'; $_MODULE['<{alma}prestashop>wrongparamsexception_8ec75b5f68c49d1d6541b1e318a8120d'] = 'Fout(en) sleutel(s): %1$s.'; @@ -79,8 +80,13 @@ $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_c4cea4750fb3ef077cbf2e1283c312ac'] = 'Bericht dat wordt weergegeven op een uitgesloten productpagina of op de winkelwagenpagina als deze een uitgesloten product bevat.'; $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_36359547b09bdb31f46c419a0bd5807e'] = 'Uitgesloten categorieën'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_2420ebe02d61c738479f399a97e1cf18'] = 'In-pagina afrekenen activeren'; -$_MODULE['<{alma}prestashop>inpageadminformbuilder_bf3b980c4aa11b5fca4cc3096f50e0b8'] = 'In-page checkout activeren voor Pay Now, P2X, P3X en P4X'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_3dd32a0e923aeb930c7c0ced60f7b2e0'] = 'In-page checkout activeren voor alle betaalmethoden van Alma'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_220a4f39147308a2160f7abc4d00ae43'] = 'De in-pagina checkout op je eigen website'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6f7991629de2e9ee19a0bf2a0469138c'] = 'Invoer betaalknop Alma keuzeschakelaar'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6644897911f79aa5889998a5ab18c5cd'] = '%1$sGeavanceerd%2$s [Optioneel] CSS-selector gebruikt door onze scripts om de Alma-betaalknop te identificeren'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_cc12a5229a16dced1984745e05872a94'] = 'Bijv. #id, .class, ...'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_8ee0042ba2657c2af782fcc8893fa45a'] = 'Bestelling plaatsen knop selector'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_afa1a431a4735641af813166d75b1c06'] = '%1$sGeavanceerd%2$s [Optioneel] CSS-selector die door onze scripts wordt gebruikt om de knop voor betalingsbevestiging te identificeren'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_6de24747c86085e597f6b38d4d1d01a4'] = 'In-pagina afrekenen'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_a2a52a9dd1864e2b995793bd67b8c6e5'] = 'Met deze widget kunt u uw klanten informeren over de beschikbaarheid van Alma\'s betalingsmogelijkheden direct vanaf de productpagina, wat helpt om uw conversiepercentage te verhogen. Voor meer details over de configuratie of voor bij problemen kunt u %1$sdeze documentatie%2$sraadplegen.'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_ac6329ea064b9212be7e442cb46bf68f'] = 'Weergave widget'; @@ -134,7 +140,11 @@ $_MODULE['<{alma}prestashop>paymentvalidation_6f11098989b14063e0a4cfe362734850'] = 'Alma - Betalen in %d keer'; $_MODULE['<{alma}prestashop>refundhelper_446ae76a36687f9dbc62430e7006ca91'] = 'Het spijt ons je te moeten informeren dat er een probleem opgetreden is tijdens het betaalproces, jouw Alma-betaling zal volledig worden terugbetaald. Probeer de betaling opnieuw om je bestelling te voltooien.'; $_MODULE['<{alma}prestashop>refundhelper_448edd2d5c593906afa202847b8d79c0'] = 'Onze excuses voor het ongemak, maar er was een probleem tijdens het betaalproces, en we konden jouw Alma-betaling niet terugbetalen. Om dit op te lossen, willen we je vriendelijk verzoeken contact op te nemen met ons support team met jouw betaalreferentie: %s. Ons team zal je helpen om ervoor te zorgen dat je de volledige terugbetaling ontvangt. Bedankt voor je medewerking.'; +$_MODULE['<{alma}prestashop>planhelper_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Vandaag'; +$_MODULE['<{alma}prestashop>planhelper_96b0141273eabab320119c467cdcaf17'] = 'Totaal'; +$_MODULE['<{alma}prestashop>planhelper_9bbd94e0a507283ae202812ea1bd6f20'] = '%s maand later'; $_MODULE['<{alma}prestashop>orderhelper_7960c85fd5916169fc5038a2192094f8'] = 'Fout: Kon Alma transactie niet vinden'; +$_MODULE['<{alma}prestashop>paymentoptiontemplatehelper_9088921432b295dfe6f02863b2dc0ff8'] = '€0 vandaag dan %1$s op %2$s'; $_MODULE['<{alma}prestashop>customfieldshelper_2c53dea2326232a2d867ddd1d2206aa0'] = 'Betaal nu met creditcard'; $_MODULE['<{alma}prestashop>customfieldshelper_300de0751d957421cc332ba21c43a598'] = 'Betalen in %d termijnen'; $_MODULE['<{alma}prestashop>customfieldshelper_726c61fad46c135efb4198820e5484ba'] = 'Koop nu Betaal in %d dagen'; @@ -148,7 +158,8 @@ $_MODULE['<{alma}prestashop>admininsurancehelper_7442e29d7d53e549b78d93c46b8cdcfc'] = 'Bestellingen'; $_MODULE['<{alma}prestashop>insuranceservice_d87aee5118a62a7ff6c21e4ac31006c5'] = 'Hierbij verklaar ik akkoord te gaan met de verzekering aangeboden door Alma. Hierbij bevestig ik dat ik vooraf kennis heb genomen van de [informatiebrochure, die de algemene voorwaarden vormt], het [informatiedocument over het verzekeringsproduct] en het [precontractuele informatie- en adviesblad]. Ik ga er zonder voorbehoud mee akkoord en stem ermee in de verschillende documenten die mijn contract vormen, indien van toepassing, elektronisch te ondertekenen. Ik geef uitdrukkelijk toestemming voor het verzamelen en gebruiken van mijn persoonsgegevens met het oog op het afsluiten en beheren van mijn verzekeringscontract(en).'; $_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b824200e9b8aca1fbb762d6566ff0cd7'] = 'Je configuratie is opgeslagen'; -$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_4a39c6a33c3441762924914168d2a387'] = 'Fout bij het aanmaken van configuratie Alma verzekering: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_a6bf06f186e2fccecad054fd831c2144'] = '[Alma] Fout verzekering product tijdens wijziging configuratie: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b42688965893bdb7a37cf1197e506e25'] = '[Alma] Fout bij het aanmaken van configuratie Alma verzekering: %1$s'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_a66f446516cd125af12bd25073f88b78'] = 'Bestellingen met verzekering'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_49414cda71621b3ee718ae5ff40804c5'] = 'Id bestelling'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_63d5049791d9d79d86e9a108b0a999ca'] = 'Referentie'; @@ -320,4 +331,3 @@ $_MODULE['<{alma}prestashop>notificationfirstinstallation_1e6898bbd6a44041932ac84cbda13bd7'] = 'Vindt jouw API-sleutel voor Live op %1$suw dashboard van Alma%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_689c39b29a6d91e6dff728a7762cbc9e'] = 'Om de Test-modus te gebruiken, zoek je jouw API-sleutel voor Test op %1$suw sandbox dashboard%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_dcab24ea1a3cd9bab8047b1b6f7ee65c'] = 'Als je problemen ondervindt, kun je contact met ons opnemen via e-mail op %1$ssupport@getalma.eu%2$s'; -$_MODULE['<{alma}prestashop>displaypayment_pnx_22f0189423433ab0e055b91d98970e5f'] = 'Gespreide betaling van Alma is niet beschikbaar voor deze bestelling'; diff --git a/alma/translations/pt.php b/alma/translations/pt.php index 242031aca..88b2dea25 100644 --- a/alma/translations/pt.php +++ b/alma/translations/pt.php @@ -32,6 +32,7 @@ $_MODULE['<{alma}prestashop>alma_fbb47375d2272bef79f5722a183bf1ec'] = 'A Alma requer a extensão JSON PHP'; $_MODULE['<{alma}prestashop>alma_7fb83ba9cf3cc38857a2ddae98534d22'] = 'A Alma requer OpenSSL >= 1.0.1'; $_MODULE['<{alma}prestashop>modulefactorytest_5914ca153abaf8a2af61e13e7fe7e829'] = 'A minha redação para traduzir'; +$_MODULE['<{alma}prestashop>translationhelpertest_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Hoje'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_cc76de47de858ac2fa2964f534ecfdfb'] = 'Não foi possível conectar-se à Alma usando suas chaves de API.'; $_MODULE['<{alma}prestashop>wrongcredentialsexception_733b6ddadc31fd97174b0cfe69b584c9'] = 'Por favor, verifique novamente as suas chaves no seu painel de instrumentos %1$sAlma%2$s.'; $_MODULE['<{alma}prestashop>wrongparamsexception_8ec75b5f68c49d1d6541b1e318a8120d'] = 'Chave(s) de erro(s): %1$s.'; @@ -79,8 +80,13 @@ $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_c4cea4750fb3ef077cbf2e1283c312ac'] = 'Mensagem exibida numa página de produto excluído ou na página do cesto, se incluir um produto excluído.'; $_MODULE['<{alma}prestashop>excludedcategoryadminformbuilder_36359547b09bdb31f46c419a0bd5807e'] = 'Categorias excluídas'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_2420ebe02d61c738479f399a97e1cf18'] = 'Ativar o checkout na página'; -$_MODULE['<{alma}prestashop>inpageadminformbuilder_bf3b980c4aa11b5fca4cc3096f50e0b8'] = 'Ativar o checkout na página para Pay Now, P2X, P3X e P4X'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_3dd32a0e923aeb930c7c0ced60f7b2e0'] = 'Ativar o checkout na página para todos os métodos de pagamento Alma'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_220a4f39147308a2160f7abc4d00ae43'] = 'A página de checkout no seu próprio sítio Web'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6f7991629de2e9ee19a0bf2a0469138c'] = 'Botão de pagamento de entrada Seletor de Alma'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_6644897911f79aa5889998a5ab18c5cd'] = '%1$sAvançado%2$s [Opcional] Seletor CSS utilizado pelos nossos scripts para identificar o botão de pagamento Alma'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_cc12a5229a16dced1984745e05872a94'] = 'Por exemplo, #id, .class...'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_8ee0042ba2657c2af782fcc8893fa45a'] = 'Botão de seleção da encomenda'; +$_MODULE['<{alma}prestashop>inpageadminformbuilder_afa1a431a4735641af813166d75b1c06'] = '%1$sAvançado%2$s [Opcional] Seletor CSS utilizado pelos nossos scripts para identificar o botão de confirmação de pagamento'; $_MODULE['<{alma}prestashop>inpageadminformbuilder_6de24747c86085e597f6b38d4d1d01a4'] = 'Checkout na página'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_a2a52a9dd1864e2b995793bd67b8c6e5'] = 'Este widget permite informar os seus clientes sobre a disponibilidade das facilidades de pagamento da Alma diretamente na página do produto, o que ajudará a aumentar sua taxa de conversão. Para mais detalhes sobre a sua configuração ou em caso de problemas, consulte %1$sesta documentação%2$s.'; $_MODULE['<{alma}prestashop>carteligibilityadminformbuilder_ac6329ea064b9212be7e442cb46bf68f'] = 'Exibir o widget'; @@ -134,7 +140,11 @@ $_MODULE['<{alma}prestashop>paymentvalidation_6f11098989b14063e0a4cfe362734850'] = 'Alma - %d prestações mensais'; $_MODULE['<{alma}prestashop>refundhelper_446ae76a36687f9dbc62430e7006ca91'] = 'Lamentamos informar que houve um problema durante o processo de pagamento, o seu pagamento Alma será totalmente reembolsado. Por favor, tente novamente efectuar o pagamento para concluir a sua encomenda.'; $_MODULE['<{alma}prestashop>refundhelper_448edd2d5c593906afa202847b8d79c0'] = 'Pedimos desculpa pelo incómodo, mas houve um problema durante o processo de pagamento e não foi possível reembolsar o seu pagamento Alma. Para resolver este problema, pedimos-lhe que contacte a nossa equipa de apoio com a sua referência de pagamento: %s. A nossa equipa terá todo o prazer em ajudá-lo a garantir que recebe o seu reembolso total. Agradecemos a sua colaboração.'; +$_MODULE['<{alma}prestashop>planhelper_1dd1c5fb7f25cd41b291d43a89e3aefd'] = 'Hoje'; +$_MODULE['<{alma}prestashop>planhelper_96b0141273eabab320119c467cdcaf17'] = 'Total'; +$_MODULE['<{alma}prestashop>planhelper_9bbd94e0a507283ae202812ea1bd6f20'] = '%s mês mais tarde'; $_MODULE['<{alma}prestashop>orderhelper_7960c85fd5916169fc5038a2192094f8'] = 'Erro: não foi possível encontrar a transação da Alma'; +$_MODULE['<{alma}prestashop>paymentoptiontemplatehelper_9088921432b295dfe6f02863b2dc0ff8'] = '0€ hoje, e depois %1$s em %2$s'; $_MODULE['<{alma}prestashop>customfieldshelper_2c53dea2326232a2d867ddd1d2206aa0'] = 'Pagar agora com cartão de crédito'; $_MODULE['<{alma}prestashop>customfieldshelper_300de0751d957421cc332ba21c43a598'] = 'Pagar em %d prestações'; $_MODULE['<{alma}prestashop>customfieldshelper_726c61fad46c135efb4198820e5484ba'] = 'Compre agora e pague em %d dias'; @@ -148,7 +158,8 @@ $_MODULE['<{alma}prestashop>admininsurancehelper_7442e29d7d53e549b78d93c46b8cdcfc'] = 'Encomendas'; $_MODULE['<{alma}prestashop>insuranceservice_d87aee5118a62a7ff6c21e4ac31006c5'] = 'Confirmo a minha aceitação em subscrever o seguro proposto pela Alma. Ao fazê-lo, confirmo que tomei conhecimento prévio da [nota informativa, que constitui as condições gerais], do [documento de informação sobre o produto de seguro] e da [ficha de informação e aconselhamento pré-contratual]. Aceito sem reservas e concordo em assinar eletronicamente os vários documentos que constituem o meu contrato, se aplicável. Autorizo expressamente a recolha e utilização dos meus dados pessoais para efeitos de subscrição e gestão do(s) meu(s) contrato(s) de seguro.'; $_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b824200e9b8aca1fbb762d6566ff0cd7'] = 'A sua configuração foi guardada'; -$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_4a39c6a33c3441762924914168d2a387'] = 'Erro ao criar a configuração do seguro Alma: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_a6bf06f186e2fccecad054fd831c2144'] = '[Alma] Erro no produto de seguro durante a configuração da mudança: %1$s'; +$_MODULE['<{alma}prestashop>adminalmainsuranceconfiguration_b42688965893bdb7a37cf1197e506e25'] = '[Alma] Erro ao criar a configuração do seguro Alma: %1$s'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_a66f446516cd125af12bd25073f88b78'] = 'Encomendas com seguro'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_49414cda71621b3ee718ae5ff40804c5'] = 'Id Ordem'; $_MODULE['<{alma}prestashop>adminalmainsuranceorders_63d5049791d9d79d86e9a108b0a999ca'] = 'Referência'; @@ -320,4 +331,3 @@ $_MODULE['<{alma}prestashop>notificationfirstinstallation_1e6898bbd6a44041932ac84cbda13bd7'] = 'Pode encontrar a sua chave API live no %1$sseu painel de controlo Alma%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_689c39b29a6d91e6dff728a7762cbc9e'] = 'Para utilizar o modo teste, precisa da sua chave API de teste no %1$sseu painel sandbox%2$s'; $_MODULE['<{alma}prestashop>notificationfirstinstallation_dcab24ea1a3cd9bab8047b1b6f7ee65c'] = 'Se tiver algum problema, contacte-nos por correio eletrónico para %1$ssupport@getalma.eu%2$s'; -$_MODULE['<{alma}prestashop>displaypayment_pnx_22f0189423433ab0e055b91d98970e5f'] = 'As prestações mensais através da Alma não estão disponíveis para esta encomenda'; diff --git a/alma/upgrade/upgrade-4.5.0.php b/alma/upgrade/upgrade-4.5.0.php new file mode 100644 index 000000000..319a66e74 --- /dev/null +++ b/alma/upgrade/upgrade-4.5.0.php @@ -0,0 +1,54 @@ + + * @copyright 2018-2024 Alma SAS + * @license https://opensource.org/licenses/MIT The MIT License + */ + +use Alma\PrestaShop\Builders\Helpers\SettingsHelperBuilder; +use Alma\PrestaShop\Forms\InpageAdminFormBuilder; +use Alma\PrestaShop\Helpers\ConstantsHelper; + +if (!defined('_PS_VERSION_')) { + exit; +} + +function upgrade_module_4_5_0() +{ + $settingsHelperBuilder = new SettingsHelperBuilder(); + $settingsHelper = $settingsHelperBuilder->getInstance(); + + // Add default selector for In-Page + $settingsHelper->updateKey( + InpageAdminFormBuilder::ALMA_INPAGE_PAYMENT_BUTTON_SELECTOR, + InpageAdminFormBuilder::ALMA_INPAGE_DEFAULT_VALUE_PAYMENT_BUTTON_SELECTOR + ); + $settingsHelper->updateKey( + InpageAdminFormBuilder::ALMA_INPAGE_PLACE_ORDER_BUTTON_SELECTOR, + InpageAdminFormBuilder::ALMA_INPAGE_DEFAULT_VALUE_PLACE_ORDER_BUTTON_SELECTOR + ); + + if (version_compare(_PS_VERSION_, ConstantsHelper::PRESTASHOP_VERSION_1_7_0_2, '>')) { + Tools::clearAllCache(); + Tools::clearXMLCache(); + } + + return true; +} diff --git a/alma/views/js/alma-inpage.js b/alma/views/js/alma-inpage.js index 4b3949a84..29046e83e 100644 --- a/alma/views/js/alma-inpage.js +++ b/alma/views/js/alma-inpage.js @@ -20,11 +20,15 @@ * @copyright 2018-2024 Alma SAS * @license https://opensource.org/licenses/MIT The MIT License */ - let inPage = undefined; let paymentButtonEvents = []; +let inPageSettings = {}; window.addEventListener("load", function() { + if (!document.getElementById('alma-inpage-global')) { + throw new Error('[Alma] In Page Settings is missing.'); + } + inPageSettings = JSON.parse(document.querySelector('#alma-inpage-global').dataset.settings); onloadAlma(); window.__alma_refreshInpage = onloadAlma; }); @@ -50,7 +54,7 @@ function onloadAlma() { if (inPage !== undefined) { inPage.unmount(); } - if (this.dataset.moduleName === 'alma') { + if ($(input).is(inPageSettings.paymentButtonSelector)) { let formInpage = blockForm.querySelector('.alma-inpage'); if (this.checked && formInpage) { let installment = formInpage.dataset.installment; @@ -102,7 +106,6 @@ function createAlmaIframe(form, showPayButton = false, url = '') { let locale = form.dataset.locale; let selectorIframeInPage = form.querySelector('.alma-inpage-iframe'); - if (showPayButton) { inPage = Alma.InPage.initialize( { @@ -138,7 +141,7 @@ function createAlmaIframe(form, showPayButton = false, url = '') { } function mapPaymentButtonToAlmaPaymentCreation(url, inPage, input) { - let paymentButton = document.querySelector('#payment-confirmation button'); + let paymentButton = document.querySelector(inPageSettings.placeOrderButtonSelector); const eventAlma = async function (e) { e.preventDefault(); @@ -169,7 +172,6 @@ async function createPayment(url, inPage, input = null) { inPage.unmount(); } removeAlmaEventsFromPaymentButton(); - onloadAlma(); } } ); @@ -190,7 +192,7 @@ async function createPayment(url, inPage, input = null) { function removeAlmaEventsFromPaymentButton() { let event = paymentButtonEvents.shift(); while (event) { - document.querySelector('#payment-confirmation button').removeEventListener('click', event); + document.querySelector(inPageSettings.placeOrderButtonSelector).removeEventListener('click', event); event = paymentButtonEvents.shift(); } } diff --git a/alma/views/js/alma-product-insurance.js b/alma/views/js/alma-product-insurance.js index 74082f793..1b1b1c8aa 100644 --- a/alma/views/js/alma-product-insurance.js +++ b/alma/views/js/alma-product-insurance.js @@ -20,266 +20,320 @@ * @copyright 2018-2024 Alma SAS * @license https://opensource.org/licenses/MIT The MIT License */ -if (!document.getElementById('alma-widget-insurance-product-page')) { - throw new Error('[Alma] Product details not found. You need to add the hook displayProductActions in your template product page.'); -} -const settings = getSettingsInsurance(); -let insuranceSelected = false; -let selectedAlmaInsurance = null; -let addToCartFlow = false; -let productDetails = JSON.parse(document.querySelector('.alma-widget-insurance .js-product-details').dataset.product); -let quantity = getQuantity(); -let almaEligibilityAnswer = false; - (function ($) { $(function () { - //Insurance - $("body").on("hidden.bs.modal", "#blockcart-modal", function (e) { - removeInsurance(); - }); + if (!document.getElementById('alma-widget-insurance-product-page')) { + throw new Error('[Alma] Product details not found. You need to add the hook displayProductActions in your template product page.'); + } + + let loaded = false; + let insuranceSelected = false; + let addToCartFlow = false; + let quantity = getQuantity(); + let almaEligibilityAnswer = false; + + // Reset the insurance widget & input when customer chooses "continue shopping" from the "added to cart" modal + $("body").on("hidden.bs.modal", "#blockcart-modal", removeInsurance); + + // Display warning to customer if they're seeing the insurance "product" page handleInsuranceProductPage(); - btnLoaders('start'); - onloadAddInsuranceInputOnProductAlma(); - if (typeof prestashop !== 'undefined') { - prestashop.on( - 'updateProduct', - function (event) { - let addToCart = document.querySelector('.add-to-cart'); - - if (event.event !== undefined) { + + // Add spinner to add to cart button & disable it until insurance is loaded + showLoadingSpinner(); + + // Listening to messages from our widget + window.addEventListener('message', handleWidgetMessage); + + if (prestashop) { + prestashop.on('updateProduct', function (args) { + // TODO: is this really useful? + if (args.event !== undefined) { + quantity = getQuantity(); + } + + // Update quantity & reset insurance choices when quantity changes + if (args.eventType === 'updatedProductQuantity') { + if (args.event) { + quantity = Number(args.event.target.value); + } else { quantity = getQuantity(); } - if (event.eventType === 'updatedProductQuantity') { - quantity = getQuantity(); - if (event.event) { - quantity = event.event.target.value; + removeInsurance(); + } + + // Reset insurance choice when product changes + if (args.eventType === 'updatedProductCombination') { + removeInsurance(); + } + }); + + prestashop.on('updatedProduct', function (data) { + // Update product details data from the PrestaShop-sent data + if (data.product_details) { + const shadowDiv = document.createElement('div'); + $(shadowDiv).html(data.product_details); + + const psProductDetails = shadowDiv.querySelector('[data-product]'); + if (!psProductDetails || !psProductDetails.dataset.product) { + AlmaInsurance.productDetails = null + } else { + AlmaInsurance.productDetails = JSON.parse(psProductDetails.dataset.product); + } + } + + // If we did not get the data from PS's AJAX request, get it from the product-details panel + const psProductDetails = document.querySelector('[data-product]'); + if (!AlmaInsurance.productDetails && psProductDetails && psProductDetails.dataset.product) { + AlmaInsurance.productDetails = JSON.parse(psProductDetails.dataset.product); + } + + if (!AlmaInsurance.productDetails) { + // TODO: fallback on making an AJAX call ourselves? + console.error("Could not find product details"); + return; + } + + // There's a bug in some PS 1.7 versions where quantity_wanted is not set to the actual quantity value, + // while in later versions it's correctly set but the quantity input value is reset to 1 + AlmaInsurance.productDetails.quantity_wanted = quantity + setQuantity(AlmaInsurance.productDetails.quantity_wanted) + + refreshWidget(); + addModalListenerToAddToCart(); + }); + } + + + function getQuantityInput() { + return document.querySelector('.qty [name="qty"]'); + } + + // Retrieve wanted product quantity from the quantity selector + function getQuantity() { + let quantity = 1; + + const qtyInput = getQuantityInput(); + if (qtyInput) { + quantity = Number(qtyInput.value); + } + + if (quantity <= 0) { + quantity = 1; + } + + return quantity + } + + function setQuantity(quantity) { + if (quantity <= 0) { + quantity = 1; + } + + const qtyInput = getQuantityInput(); + if (qtyInput) { + qtyInput.value = quantity; + } + } + + // Display/hide a spinner on the add to cart button + function showLoadingSpinner(show = true) { + const $addBtn = $(getAddToCartButton()); + + if (show) { + loaded = false; + $addBtn.prepend($('
')); + $addBtn.attr("disabled", "disabled"); + } else { + $("#insuranceSpinner").remove(); + $addBtn.attr("disabled", null); + } + } + + // Handle incoming messages from the widget + function handleWidgetMessage(message) { + let widgetInsurance = document.getElementById('alma-widget-insurance-product-page'); + + switch (message.data.type) { + // Widget is sending us the result of the eligibility call for the current product + case 'almaEligibilityAnswer': + almaEligibilityAnswer = message.data.eligibilityCallResponseStatus.response.eligibleProduct; + + // TODO: we should receive a "loaded" message from the widget + if (!loaded) { + loaded = true; + showLoadingSpinner(false); + addModalListenerToAddToCart(); + } + + if (!almaEligibilityAnswer) { + widgetInsurance.style.display = 'none'; + let addToCart = document.querySelector('.add-to-cart'); + if (addToCart) { + addToCart.removeEventListener("click", addToCartListener) } - removeInsurance(); } - if (event.eventType === 'updatedProductCombination') { - removeInsurance(); + break; + + // Widget is asking us to adjust the iframe's height + case 'changeWidgetHeight': + widgetInsurance.style.height = message.data.widgetHeight + 'px'; + break; + + // Widget is sending us selected insurance data + case 'getSelectedInsuranceData': + const qtyInput = getQuantityInput(); + if (qtyInput && parseInt(qtyInput.value) !== quantity) { + quantity = getQuantity(); } - if (typeof event.selectedAlmaInsurance !== 'undefined' && event.selectedAlmaInsurance !== null) { - insuranceSelected = true; - addInputsInsurance(event); + + const data = { + selectedAlmaInsurance: message.data.selectedInsuranceData, + hasRemovedInsurance: message.data.declinedInsurance, + selectedInsuranceQuantity: message.data.selectedInsuranceQuantity } - if (typeof event.selectedInsuranceData !== 'undefined' && event.selectedInsuranceData) { - removeInputInsurance(); + + if (Boolean(data.selectedAlmaInsurance)) { + // An insurance offer has been chosen + insuranceSelected = true; + addInsuranceInputs(data); + } else if (data.hasRemovedInsurance) { + // Insurance choice has been withdrawn + insuranceSelected = false; + removeInsuranceInputs(); } + + // If we had intercepted the add to cart flow, resume it to effectively add the product to the cart if (addToCartFlow) { - addToCart.click(); - insuranceSelected = false; - addToCartFlow = false; + getAddToCartButton().click(); } - } - ); - prestashop.on( - 'updatedProduct', - function () { - document.querySelector('.qty [name="qty"]').value = quantity; - productDetails = JSON.parse(document.querySelector('.alma-widget-insurance .js-product-details').dataset.product); - productDetails.quantity_wanted = parseInt(quantity); - document.querySelector('.alma-widget-insurance .js-product-details').dataset.product = JSON.stringify(productDetails); - refreshWidget(); - addModalListenerToAddToCart(); - } + break; + } + } + + // Ask widget to refresh with updated product data + function refreshWidget() { + let cmsReference = createCmsReference(AlmaInsurance.productDetails); + let priceAmount = AlmaInsurance.productDetails.price_amount; + if (priceAmount === undefined) { + priceAmount = AlmaInsurance.productDetails.price; + } + let staticPriceToCents = Math.round(priceAmount * 100); + + // !! Global function provided by openInPageModal script + getProductDataForApiCall( + cmsReference, + staticPriceToCents, + AlmaInsurance.productDetails.name, + AlmaInsurance.settings.merchant_id, + quantity, + AlmaInsurance.settings.cart_id, + AlmaInsurance.settings.session_id, + insuranceSelected ); } - }); -})(jQuery); - -function getQuantity() { - var quantity = 1; - if (document.querySelector('.qty [name="qty"]')) { - quantity = parseInt(document.querySelector('.qty [name="qty"]').value); - } - return quantity -} - -function getSettingsInsurance() { - if (document.querySelector('#alma-widget-insurance-product-page')) { - return JSON.parse(document.querySelector('#alma-widget-insurance-product-page').dataset.almaInsuranceSettings); - } - - return null; -} - -function btnLoaders(action) { - const addBtn = $(".add-to-cart"); - if (action === 'start') { - $('
').insertBefore($(".add-to-cart i")); - addBtn.attr("disabled", "disabled"); - } - if (action === 'stop') { - $(".spinner").remove(); - addBtn.removeAttr("disabled"); - addModalListenerToAddToCart(); - } -} - -// ** Add input insurance in form to add to cart ** -function onloadAddInsuranceInputOnProductAlma() { - let currentResolve; - - window.addEventListener('message', (e) => { - let widgetInsurance = document.getElementById('alma-widget-insurance-product-page'); - if (e.data.type === 'almaEligibilityAnswer') { - almaEligibilityAnswer = e.data.eligibilityCallResponseStatus.response.eligibleProduct; - btnLoaders('stop'); - if (almaEligibilityAnswer) { - prestashop.emit('updateProduct', { - reason:{ - productUrl: window.location.href, - } - }); + + // Concatenate product ID & its combination ID for a unique identifier + function createCmsReference(productDetails) { + if (!productDetails.id_product) { + return + } + + if (productDetails.id_product_attribute <= 0) { + return productDetails.id_product; + } + + return productDetails.id_product + '-' + productDetails.id_product_attribute; + } + + // Add hidden inputs to the add to cart form so that our insurance product is added along with the main product + function addInsuranceInputs(event) { + let formAddToCart = document.getElementById('add-to-cart-or-refresh'); + let selectedInsuranceQuantity = event.selectedInsuranceQuantity; + + if (selectedInsuranceQuantity > quantity) { + selectedInsuranceQuantity = quantity + } + + // We need both the selected insurance contract ID, and how many subscriptions to add + addInsuranceInput('alma_id_insurance_contract', event.selectedAlmaInsurance.insuranceContractId, formAddToCart); + addInsuranceInput('alma_quantity_insurance', selectedInsuranceQuantity, formAddToCart); + } + + // Add a single insurance input to the add to cart form + function addInsuranceInput(inputName, value, form) { + let $elementInput = $(`#${inputName}`) + if (!$elementInput.length) { + const $input = $(``) + $(form).prepend($input); } else { - widgetInsurance.style.display = 'none'; - let addToCart = document.querySelector('.add-to-cart'); - if (addToCart) { - addToCart.removeEventListener("click", insuranceListener) - } + $elementInput.val(value); } } - if (e.data.type === 'changeWidgetHeight') { - widgetInsurance.style.height = e.data.widgetHeight + 'px'; + + // Remove our insurance hidden fields from the add to cart form + function removeInsuranceInputs() { + $('.alma_insurance_input').remove() + } + + function removeInsurance() { + // !! Global function provided by openInPageModal script + resetInsurance(); + insuranceSelected = false; + removeInsuranceInputs(); } - if (e.data.type === 'getSelectedInsuranceData') { - if (parseInt(document.querySelector('.qty [name="qty"]').value) !== quantity) { - quantity = getQuantity(); + + function addModalListenerToAddToCart() { + if (AlmaInsurance.settings.isAddToCartPopupActivated === true && almaEligibilityAnswer) { + const addToCart = getAddToCartButton(); + if (addToCart) { + // If we change the quantity the DOM is reloaded then we need to remove and add the listener again + addToCart.removeEventListener("click", addToCartListener); + addToCart.addEventListener("click", addToCartListener); + } } - insuranceSelected = true; - selectedAlmaInsurance = e.data.selectedInsuranceData; - prestashop.emit('updateProduct', { - reason:{ - productUrl: window.location.href - }, - selectedAlmaInsurance: selectedAlmaInsurance, - selectedInsuranceData: e.data.declinedInsurance, - selectedInsuranceQuantity: e.data.selectedInsuranceQuantity - }); - } else if (currentResolve) { - currentResolve(e.data); } - }); -} - -function refreshWidget() { - let cmsReference = createCmsReference(productDetails); - let priceAmount = productDetails.price_amount; - if (productDetails.price_amount === undefined) { - priceAmount = productDetails.price; - } - let staticPriceToCents = Math.round(priceAmount * 100); - - quantity = productDetails.quantity_wanted; - if (productDetails.quantity_wanted <= 0) { - quantity = 1; - } - - getProductDataForApiCall( - cmsReference, - staticPriceToCents, - productDetails.name, - settings.merchant_id, - quantity, - settings.cart_id, - settings.session_id, - insuranceSelected - ); -} - -function createCmsReference(productDetails) { - if (productDetails.id_product !== null) { - if (productDetails.id_product_attribute <= '0') { - return productDetails.id_product; + + // Find the selector for the add to cart button + function getAddToCartBtnSelector() { + // TODO: move selectors to a module configuration option + const selectors = [ + '[data-button-action=add-to-cart]:visible', // generic PrestaShop add to cart button + 'button.add-to-cart:visible', + '.add-to-cart a:visible', + '.add-to-cart button:visible', + 'a[role=button][href$=addToCart]:visible' // elementor addToCart widget + ]; + + // Return first selector that successfully matches an element in the DOM + return selectors.find(selector => $(selector).length > 0) } - return productDetails.id_product + '-' + productDetails.id_product_attribute; - } - - return undefined; -} - -function addInputsInsurance(event) { - let formAddToCart = document.getElementById('add-to-cart-or-refresh'); - let selectedInsuranceQuantity = event.selectedInsuranceQuantity; - - if (selectedInsuranceQuantity > quantity) { - selectedInsuranceQuantity = quantity - } - - handleInput('alma_id_insurance_contract', event.selectedAlmaInsurance.insuranceContractId, formAddToCart); - handleInput('alma_quantity_insurance', selectedInsuranceQuantity, formAddToCart); - -} - -function handleInput(inputName, value, form) { - let elementInput = document.getElementById(inputName); - if (elementInput == null) { - let input = document.createElement('input'); - input.setAttribute('value', value); - input.setAttribute('name', inputName); - input.setAttribute('class', 'alma_insurance_input'); - input.setAttribute('id', inputName); - input.setAttribute('type', 'hidden'); - - form.prepend(input); - } else { - elementInput.setAttribute('value', value); - } -} - -function removeInsurance() { - resetInsurance(); - insuranceSelected = false; - removeInputInsurance(); -} - -function removeInputInsurance() { - let inputsInsurance = document.getElementById('add-to-cart-or-refresh').querySelectorAll('.alma_insurance_input'); - inputsInsurance.forEach((input) => { - input.remove(); - }); -} - -function addModalListenerToAddToCart() { - if (settings.isAddToCartPopupActivated === true && almaEligibilityAnswer) { - const addToCart = getAddToCartButton(); - if (addToCart) { - // If we change the quantity the DOM is reloaded then we need to remove and add the listener again - addToCart.removeEventListener("click", insuranceListener); - addToCart.addEventListener("click", insuranceListener); + function getAddToCartButton() { + return $(getAddToCartBtnSelector())[0]; } - } -} - -function getAddToCartButton() { - let addToCart = document.querySelector('button.add-to-cart'); - // TODO: Ravate specific to generalise with selector configuration - if (!addToCart) { - addToCart = document.querySelector('.add-to-cart a, .add-to-cart button').first(); - } - - return addToCart; -} - -function insuranceListener(event) { - if (!insuranceSelected) { - event.preventDefault(); - event.stopPropagation(); - openModal('popupModal', quantity); - insuranceSelected = true; - addToCartFlow = true; + + function addToCartListener(event) { + if (!insuranceSelected && !addToCartFlow) { + event.preventDefault(); + event.stopPropagation(); + + addToCartFlow = true; + openModal('popupModal', quantity); + } else { + addToCartFlow = false; + } + } + + // This is only used to display a callout message when the product page for the actual insurance "product" from + // the catalog is being viewed by a customer + // TODO: This should probably be removed in favor of conditional templating/hooks on the product page itself + function handleInsuranceProductPage() { + const $almaInsuranceGlobal = $('#alma-insurance-global'); + if (AlmaInsurance.productDetails.id === $almaInsuranceGlobal.data('insurance-id')) { + //$('.product-prices').hide(); // To hide the price of the insurance product page + let tagInformationInsurance = '
' + $almaInsuranceGlobal.data('message-insurance-page') + '
'; + $(tagInformationInsurance).insertAfter('.product-variants'); + } } - insuranceSelected = false; -} - -function handleInsuranceProductPage() { - if (productDetails.id === $('#alma-insurance-global').data('insurance-id')) { - //$('.product-prices').hide(); // To hide the price of the insurance product page - let tagInformationInsurance = '
' + - $('#alma-insurance-global').data('message-insurance-page') - + '
'; - $(tagInformationInsurance).insertAfter('.product-variants'); - } -} + }); +})(jQuery); \ No newline at end of file diff --git a/alma/views/templates/front/payment_form_inpage.tpl b/alma/views/templates/front/payment_form_inpage.tpl index e51b0df42..551a7ac07 100644 --- a/alma/views/templates/front/payment_form_inpage.tpl +++ b/alma/views/templates/front/payment_form_inpage.tpl @@ -32,3 +32,4 @@ data-locale="{$locale|escape:'htmlall':'UTF-8'}">
+ diff --git a/alma/views/templates/hook/_partials/displayPayment_pnx.tpl b/alma/views/templates/hook/_partials/displayPayment_pnx.tpl deleted file mode 100644 index cf92acc74..000000000 --- a/alma/views/templates/hook/_partials/displayPayment_pnx.tpl +++ /dev/null @@ -1,94 +0,0 @@ -{* - * 2018-2024 Alma SAS - * - * THE MIT LICENSE - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and - * to permit persons to whom the Software is furnished to do so, subject to the following conditions: - * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE - * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * @author Alma SAS - * @copyright 2018-2024 Alma SAS - * @license https://opensource.org/licenses/MIT The MIT License - *} -{if $option.disabled} -
- -
-{else} - {if $options} -
- - {if $option.isInPageEnabled} -
-
-
- {/if} -
- {/if} -{/if} diff --git a/alma/views/templates/hook/displayProductActions.tpl b/alma/views/templates/hook/displayProductActions.tpl index 41e1835b9..e2ab487f9 100644 --- a/alma/views/templates/hook/displayProductActions.tpl +++ b/alma/views/templates/hook/displayProductActions.tpl @@ -20,7 +20,13 @@ * @copyright 2018-2024 Alma SAS * @license https://opensource.org/licenses/MIT The MIT License *} -
- +
+ {literal} + + {/literal}
diff --git a/compose.yml b/compose.yml index 2983d0f87..1662ce5ad 100644 --- a/compose.yml +++ b/compose.yml @@ -2,7 +2,7 @@ version: '3' services: mysql: - image: mysql:9.0 + image: mysql:9.1 environment: MYSQL_ROOT_PASSWORD: admin MYSQL_DATABASE: prestashop