Add InPost Pay integration to admin templates

- Created a new template for the cart rule form with custom label, switch, and choice widgets.
- Implemented the InPost Pay block in the order details template for displaying delivery method, APM, and VAT invoice request.
- Added legacy support for the order details template to maintain compatibility with older PrestaShop versions.
This commit is contained in:
2025-09-14 14:38:09 +02:00
parent d895f86a03
commit 4066f6fa31
1086 changed files with 76598 additions and 6 deletions

View File

@@ -0,0 +1,72 @@
<div class="row mt-n3 align-items-end">
<div class="col-lg-2 col-md-3 mt-3">
{{ form_row(form.apiConfiguration.environmentType) }}
</div>
<div class="col-lg-2 col-md-3 mt-3">
{{ form_row(form.enableForEveryone) }}
</div>
<div class="col-lg-2 col-md-3 mt-3">
{{ form_row(form.apiConfiguration.clientCredentials.clientId) }}
</div>
<div class="col-lg-2 col-md-3 mt-3">
{{ form_row(form.apiConfiguration.clientCredentials.clientSecret) }}
</div>
<div class="col-lg-2 col-md-3 mt-3">
{{ form_row(form.ordersConfiguration.pointOfSaleId) }}
</div>
<div class="col-lg-2 col-md-3 mt-3">
{{ form_row(form.apiConfiguration.merchantClientId) }}
</div>
</div>
<div class="row mt-n3">
<div class="col-xs-12 col-lg-auto mt-3">
{{ form_row(form.ordersConfiguration.allPaymentOptionsEnabled, {
attr: form.ordersConfiguration.allPaymentOptionsEnabled.vars.attr|merge({
'aria-expanded': form.ordersConfiguration.allPaymentOptionsEnabled.vars.value ? 'true' : 'false',
'data-toggle': 'collapse',
'data-target': '.js-available-payment-options',
}),
}) }}
</div>
</div>
<div class="row mt-n3 js-available-payment-options collapse{% if not form.ordersConfiguration.allPaymentOptionsEnabled.vars.value %} show{% endif %}">
<div class="col-xs-12 col-md-6 col-lg-8 col-xl-4 mt-3">
{{ form_row(form.ordersConfiguration.availablePaymentOptions) }}
</div>
</div>
<div class="row mt-n3 align-items-end">
<div class="col-xl-3 col-lg-4 col-md-6 mt-3">
{{ form_row(form.ordersConfiguration.defaultInitialStatusId) }}
</div>
<div class="col-xl-3 col-lg-4 col-md-6 mt-3">
{{ form_row(form.ordersConfiguration.cashOnDeliveryStatusId) }}
</div>
<div class="col-xl-3 col-lg-4 col-md-6 mt-3">
{{ form_row(form.ordersConfiguration.paidStatusId) }}
</div>
</div>
<div class="row mt-3">
<div class="col-xl-3 col-lg-4 col-md-6">
{{ form_row(form.thankYouDisplayHook) }}
</div>
<div class="col-xl-3 col-lg-4 col-md-6">
{{ form_row(form.productCardDisplayHook) }}
</div>
<div class="col-xl-3 col-lg-4 col-md-6">
{{ form_row(form.checkoutButtonDisplayHook) }}
</div>
</div>
<div class="row mt-3">
<div class="col-xl-3 col-lg-4 col-md-6">
{{ form_row(form.fullPageCacheModuleInUse) }}
</div>
<div class="col-xl-3 col-lg-4 col-md-6">
{{ form_row(form.sendAnalyticsData) }}
</div>
</div>

View File

@@ -0,0 +1,39 @@
{% set messageOptionsForm = form.ordersConfiguration.messageOptions %}
<p class="h3 mb-3">
{{ form_label(messageOptionsForm, null, {
'label_attr': {
'class': 'p-0'
}
}) }}
</p>
<div class="row mt-3">
{% if messageOptionsForm.appendIfApmDelivery is defined %}
<div class="col-xl-4 col-lg-6 col-md-12">
{{ form_row(messageOptionsForm.appendIfApmDelivery) }}
<p class="text-muted">
<a href="https://dokumentacja-inpost.atlassian.net/wiki/spaces/PL/pages/163643393/InPost+Pay+-+PrestaShop#Komentarz-zamówienia" target="_blank">
{{ 'Click here'|legacy_trans }}
</a>
{{ 'to go to module documentation and read full instructions on how to configure message format.'|legacy_trans }}
</p>
</div>
<div class="col-xl-8 col-lg-6 col-md-12">
{{ form_row(messageOptionsForm.message) }}
</div>
{% else %}
<div class="col-xl-8 col-lg-6 col-md-12">
{{ form_row(messageOptionsForm.message) }}
<p class="text-muted">
<a href="https://dokumentacja-inpost.atlassian.net/wiki/spaces/PL/pages/163643393/InPost+Pay+-+PrestaShop#Komentarz-zamówienia" target="_blank">
{{ 'Click here'|legacy_trans }}
</a>
{{ 'to go to module documentation and read full instructions on how to configure message format.'|legacy_trans }}
</p>
</div>
{% endif %}
</div>

View File

@@ -0,0 +1,56 @@
{% set ordersConfigurationForm = form.ordersConfiguration.statusDescriptionMap %}
<p class="h3 mb-3">
{{ form_label(ordersConfigurationForm, null, {
'label_attr': {
'class': 'p-0'
}
}) }}
</p>
{% if not ordersConfigurationForm.vars.hide_locales %}
<div class="row mt-n1 align-items-center mx-n1 mb-1">
<div class="col-xs-12 col-auto mt-1 px-1">
<p class="mb-0 font-weight-bold">
{{ 'Choose a translation for your language'|legacy_trans }}:
</p>
</div>
<div class="col-xs-12 col-auto mt-1 px-1">
<div class="dropdown">
<button class="btn btn-outline-secondary dropdown-toggle js-locale-btn"
type="button"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
id="{{ ordersConfigurationForm.vars.id }}"
>
{{ ordersConfigurationForm.vars.default_locale.iso_code }}
</button>
<div class="dropdown-menu locale-dropdown-menu" aria-labelledby="{{ ordersConfigurationForm.vars.id }}">
{% for locale in ordersConfigurationForm.vars.locales %}
<span class="dropdown-item js-locale-item cursor-pointer" data-locale="{{ locale.iso_code }}">{{ locale.name }}</span>
{% endfor %}
</div>
</div>
</div>
</div>
{% endif %}
{% for formGroup in ordersConfigurationForm %}
{% set classes = 'js-locale-input js-locale-' ~ formGroup.vars.label %}
{% if ordersConfigurationForm.vars.default_locale.id_lang != formGroup.vars.name %}
{% set classes = classes ~ ' d-none' %}
{% endif %}
<div data-lang-id="{{ formGroup.vars.name }}" class="{{ classes }}" style="flex-grow: 1;">
<div class="row mt-n1">
{% for statusForm in formGroup %}
<div class="col-lg-3 col-md-4 mt-1">
{{ form_row(statusForm) }}
</div>
{% endfor %}
</div>
</div>
{% endfor %}

View File

@@ -0,0 +1,22 @@
{% set productForm = form.productConfiguration %}
<p class="h3 mb-3">
{{ form_label(productForm, null, {
'label_attr': {
'class': 'p-0'
}
}) }}
</p>
<div class="row">
<div class="col-lg-3 col-md-4 mt-1">
{{ form_row(productForm.normalImageTypeId) }}
</div>
<div class="col-lg-3 col-md-4 mt-1">
{{ form_row(productForm.smallImageTypeId) }}
</div>
<div class="col-lg-3 col-md-4 mt-1">
{{ form_row(productForm.largeImageTypeId) }}
</div>
</div>

View File

@@ -0,0 +1,6 @@
{{ form_row(form.maxSuggestedProducts, {
attr: {
class: 'inpostizi-input inpostizi-input--w-sm',
}
}) }}