Add new payment and shipping parsers for various integrations

- Implemented Google Pay parser in bongooglepay.js
- Added Buckaroo 3 payment parser in buckaroo3.js
- Introduced DataTrans CW Mastercard parser in datatranscw.js
- Created DataTrans CW Credit Card parser in datatranscw_creditcard.js
- Developed DHL Assistant shipping parser in dhlassistant.js
- Added Estimated Delivery parser in estimateddelivery.js
- Implemented Floapay payment parser in floapay.js
- Created FS Pickup at Store shipping parser in fspickupatstore.js
- Developed Generic Iframe parser in generic_iframe_parser.js
- Added Geodis Officiel shipping parser in geodisofficiel.js
- Implemented Glob Kurier module shipping parser in globkuriermodule.js
- Created Latvija Post Express Pickup Terminal parser in latvijaspastsexpresspastspostterminalslv.js
- Developed LP Shipping parser in lpshipping.js
- Added Mijora Venipak parser in mijoravenipak.js
- Implemented Apple Pay parser in pm_applepay.js
- Created Przelewy24 payment parser in przelewy24.js
- Developed Pshugls shipping parser in pshugls.js
- Added Redsys Insite payment parser in redsysinsite.js
- Implemented Tpay payment parser in tpay.js
- Updated third-party integration documentation for FedEx DotCom
This commit is contained in:
2025-08-04 23:10:27 +02:00
parent 037a6c5551
commit d39433f0d4
125 changed files with 4986 additions and 1772 deletions

View File

@@ -20,7 +20,7 @@
<span>{l s='First, please enter your: ' mod='thecheckout'}
<ul>
{foreach $shipping_block_wait_for_address as $field_name}
<li>{$field_name}</li>
<li>{$field_name|escape:'htmlall':'UTF-8'}</li>
{/foreach}
</ul>
</span>
@@ -32,9 +32,9 @@
<div class="dummy-block-container disallowed">
<span>{l s='Please Save your Personal Info to see shipping options' mod='thecheckout'}</span></div>
{else}
{if isset($shippingAddressNotice) && $shippingAddressNotice|count}
{if isset($shippingAddressNotice) && $shippingAddressNotice}
<div class="shipping-address-notice">{l s='Shipping Address' d='Shop.Theme.Checkout'}: <span
class="country-name">{$shippingAddressNotice|join:', '}</span></div>
class="country-name">{$shippingAddressNotice|escape:'htmlall':'UTF-8'}</span></div>
{/if}
<div id="hook-display-before-carrier">
{$hookDisplayBeforeCarrier nofilter}
@@ -52,40 +52,46 @@
<div class="delivery-options">
{foreach from=$delivery_options item=carrier key=carrier_id}
<div
class="delivery-option-row row delivery-option{if isset($carrier.external_module_name) && "" != $carrier.external_module_name} {$carrier.external_module_name}{/if}{if (isset($customerSelectedDeliveryOption) && $carrier_id == $customerSelectedDeliveryOption)} user-selected{/if} carrier-ref-{$carrier.id_reference}">
class="delivery-option-row row delivery-option{if isset($carrier.external_module_name) && "" != $carrier.external_module_name} {$carrier.external_module_name|escape:'javascript':'UTF-8'}{/if}{if (isset($customerSelectedDeliveryOption) && $carrier_id == $customerSelectedDeliveryOption)} user-selected{/if} carrier-ref-{$carrier.id_reference|escape:'javascript':'UTF-8'}">
<div class="shipping-radio">
<span class="custom-radio float-xs-left">
<input type="radio" name="delivery_option[{$id_address}]" id="delivery_option_{$carrier.id}"
value="{$carrier_id}"{if $delivery_option == $carrier_id && (!$forceToChooseCarrier || (isset($customerSelectedDeliveryOption) && $carrier_id == $customerSelectedDeliveryOption))} checked{/if}>
<input type="radio" name="delivery_option[{$id_address|escape:'javascript':'UTF-8'}]" id="delivery_option_{$carrier.id|escape:'javascript':'UTF-8'}"
value="{$carrier_id|escape:'javascript':'UTF-8'}"{if $delivery_option == $carrier_id && (!$forceToChooseCarrier || (isset($customerSelectedDeliveryOption) && $carrier_id == $customerSelectedDeliveryOption))} checked{/if}>
<span></span>
</span>
</div>
<label for="delivery_option_{$carrier.id}" class="delivery-option-label delivery-option-2 {if $carrier.logo}has-logo{else}no-logo{/if}">
<div class="row">
<div class="delivery-option-detail">
<div class="row">
{if $carrier.logo}
<div class="delivery-option-logo">
<img src="{$carrier.logo}" alt="{$carrier.name}"/>
</div>
{/if}
<div class="delivery-option-name">
<span class="h6 carrier-name">{$carrier.name}</span>
</div>
<label for="delivery_option_{$carrier.id|escape:'javascript':'UTF-8'}" class="delivery-option-label delivery-option-2 {if $carrier.logo|escape:'javascript':'UTF-8'}has-logo{else}no-logo{/if}">
<div class="delivery-option-detail">
<div class="delivery-option-logo">
{if $carrier.logo}
<img src="{$carrier.logo|escape:'javascript':'UTF-8'}" alt="{$carrier.name|escape:'javascript':'UTF-8'}"/>
{/if}
</div>
<div class="name-and-delay">
<div class="delivery-option-name">
<span class="h6 carrier-name">{$carrier.name|escape:'htmlall':'UTF-8'}</span>
</div>
<div class="delivery-option-delay">
<span class="carrier-delay">{$carrier.delay|escape:'htmlall':'UTF-8'}</span>
</div>
{* Yes, this is repeated from below, so that we can control price display easily with CSS *}
<div style="display: none;" class="delivery-option-price{if $carrier.price_with_tax == 0} free{/if}">
<span class="carrier-price">{$carrier.price|escape:'htmlall':'UTF-8'}</span>
<span class="carrier-price-with-tax-formatted">{$carrier.price_with_tax_formatted|escape:'htmlall':'UTF-8'}</span>
<span class="carrier-price-without-tax-formatted">{$carrier.price_without_tax_formatted|escape:'htmlall':'UTF-8'}</span>
</div>
</div>
<div class="delivery-option-delay">
<span class="carrier-delay">{$carrier.delay}</span>
</div>
<div class="delivery-option-price">
<span class="carrier-price">{$carrier.price}</span>
<div class="delivery-option-price{if $carrier.price_with_tax == 0} free{/if}">
<span class="carrier-price">{$carrier.price|escape:'htmlall':'UTF-8'}</span>
<span class="carrier-price-with-tax-formatted">{$carrier.price_with_tax_formatted|escape:'htmlall':'UTF-8'}</span>
<span class="carrier-price-without-tax-formatted">{$carrier.price_without_tax_formatted|escape:'htmlall':'UTF-8'}</span>
</div>
</div>
</label>
</div>
{*Some themes have CSS definition: .carrier-extra-content:not(:empty) { margin-bottom: 2rem; } - so we need to keep no extra spaces here in .carrier-extra-content, if it shall be empty *}
<div
class="row carrier-extra-content{if "1" === $carrier.is_module} {$carrier.external_module_name}{/if}"{if $delivery_option != $carrier_id} style="display:none;"{/if}>{$carrier.extraContent nofilter}</div>
class="row carrier-extra-content{if isset($carrier.external_module_name) && "" != $carrier.external_module_name} {$carrier.external_module_name|escape:'javascript':'UTF-8'}{/if}"{if $delivery_option != $carrier_id} style="display:none;"{/if}>{$carrier.extraContent nofilter}</div>
<div class="clearfix"></div>
{/foreach}
</div>
@@ -111,12 +117,12 @@
<input class="js-gift-checkbox" id="input_gift" name="gift" type="checkbox" value="1"
{if $gift.isGift}checked="checked"{/if}>
<span><i class="material-icons rtl-no-flip checkbox-checked check-icon">&#xE5CA;</i></span>
<label for="input_gift">{$gift.label}</label>
<label for="input_gift">{$gift.label|escape:'htmlall':'UTF-8'}</label>
</span>
<div id="gift" class="collapse{if $gift.isGift} in show{/if}">
<label
for="gift_message">{l s='If you\'d like, you can add a note to the gift:' d='Shop.Theme.Checkout'}</label>
<textarea rows="2" id="gift_message" name="gift_message">{$gift.message}</textarea>
<textarea rows="2" id="gift_message" name="gift_message">{$gift.message|escape:'htmlall':'UTF-8'}</textarea>
</div>
{/if}