feat(main): Add base theme: This is the falcon theme out of the box.

This is falcon v3.1.2
This commit is contained in:
2025-11-18 14:04:01 +01:00
parent 3a7f2db331
commit 6849b8eefd
605 changed files with 49820 additions and 0 deletions

View File

@ -0,0 +1,40 @@
{block name='account_transformation_form'}
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">
{l s='Registration' d='Shop.Istheme'}
</h5>
</div>
<div class="card-body">
<h6>
{l s='Save time on your next order, sign up now' d='Shop.Theme.Checkout'}
</h6>
<ul class="mb-3 font-sm">
<li> - {l s='Personalized and secure access' d='Shop.Theme.Customeraccount'}</li>
<li> - {l s='Fast and easy checkout' d='Shop.Theme.Customeraccount'}</li>
<li> - {l s='Easier merchandise return' d='Shop.Theme.Customeraccount'}</li>
</ul>
<form method="post" class="mb-0">
<div class="form-group">
<label class="form-label required" for="field-email">
{l s='Set your password:' d='Shop.Forms.Labels'}
</label>
<input type="password" class="form-control" data-validate="isPasswd" required name="password" value="">
</div>
<footer class="form-footer">
<input type="hidden" name="submitTransformGuestToCustomer" value="1">
<div class="text-center mt-3">
<button class="btn btn-primary d-none d-md-inline-block" type="submit">
{l s='Create account' d='Shop.Theme.Actions'}
</button>
<button class="btn btn-primary btn-block d-block d-md-none" type="submit">
{l s='Create account' d='Shop.Theme.Actions'}
</button>
</div>
</footer>
</form>
</div>
</div>
{/block}

View File

@ -0,0 +1,66 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to https://devdocs.prestashop.com/ for more information.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
*}
{block name="address_form"}
<div class="js-address-form user-form user-form--sm">
{include file='_partials/form-errors.tpl' errors=$errors['']}
{block name="address_form_url"}
<form
method="POST"
action="{url entity='address' params=['id_address' => $id_address]}"
data-id-address="{$id_address}"
data-refresh-url="{url entity='address' params=['ajax' => 1, 'action' => 'addressForm']}"
>
{/block}
{block name="address_form_fields"}
<section class="form-fields">
{block name='form_fields'}
{foreach from=$formFields item="field"}
{block name='form_field'}
{form_field field=$field}
{/block}
{/foreach}
{/block}
</section>
{/block}
{block name="address_form_footer"}
<footer class="form-footer text-center mt-3">
<input type="hidden" name="submitAddress" value="1">
{block name='form_buttons'}
<button class="btn btn-primary form-control-submit d-none d-md-inline-block" type="submit">
{l s='Save' d='Shop.Theme.Actions'}
</button>
<button class="btn btn-primary form-control-submit btn-block d-block d-md-none" type="submit">
{l s='Save' d='Shop.Theme.Actions'}
</button>
{/block}
</footer>
{/block}
</form>
</div>
{/block}

View File

@ -0,0 +1,45 @@
{**
* 2007-2017 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2017 PrestaShop SA
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
{block name='address_block_item'}
<article id="address-{$address.id}" class="address card h-100" data-id-address="{$address.id}">
<p class="address__header card-header h5">{$address.alias}</p>
<div class="address__body card-body">
<address>{$address.formatted nofilter}</address>
</div>
{block name='address_block_item_actions'}
<div class="address__footer small card-footer">
<a class="d-flex align-items-center justify-content-center" href="{url entity=address id=$address.id}" data-link-action="edit-address">
<i class="material-icons mr-1 font-reset">&#xE254;</i>
<span>{l s='Update' d='Shop.Theme.Actions'}</span>
</a>
<a class="d-flex align-items-center justify-content-center" href="{url entity=address id=$address.id params=['delete' => 1, 'token' => $token]}" data-link-action="delete-address">
<i class="material-icons mr-1 font-reset">&#xE872;</i>
<span>{l s='Delete' d='Shop.Theme.Actions'}</span>
</a>
</div>
{/block}
</article>
{/block}

View File

@ -0,0 +1,65 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to https://devdocs.prestashop.com/ for more information.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
*}
{block name='customer_form'}
{block name='customer_form_errors'}
{include file='_partials/form-errors.tpl' errors=$errors['']}
{/block}
<form action="{block name='customer_form_actionurl'}{$action}{/block}" id="customer-form" class="js-customer-form needs-validation user-form user-form--sm"
method="post">
<div>
{block "form_fields"}
{foreach from=$formFields item="field"}
{block "form_field"}
{if $field.type === "password"}
<div class="field-password-policy">
{form_field field=$field}
</div>
{else}
{form_field field=$field}
{/if}
{/block}
{/foreach}
{$hook_create_account_form nofilter}
{/block}
</div>
{block name='customer_form_footer'}
<footer class="form-footer text-center mt-3">
<input type="hidden" name="submitCreate" value="1">
{block "form_buttons"}
<button class="btn btn-primary form-control-submit d-none d-md-inline-block" data-link-action="save-customer" type="submit">
{l s='Save' d='Shop.Theme.Actions'}
</button>
<button class="btn btn-primary form-control-submit btn-block d-block d-md-none" data-link-action="save-customer" type="submit">
{l s='Save' d='Shop.Theme.Actions'}
</button>
{/block}
</footer>
{/block}
</form>
{/block}

View File

@ -0,0 +1,63 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to https://devdocs.prestashop.com/ for more information.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
*}
{block name='login_form'}
{block name='login_form_errors'}
{include file='_partials/form-errors.tpl' errors=$errors['']}
{/block}
<form id="login-form" action="{block name='login_form_actionurl'}{$action}{/block}" method="post">
<div>
{block name='login_form_fields'}
{foreach from=$formFields item="field"}
{block name='form_field'}
{form_field field=$field}
{/block}
{/foreach}
{/block}
<div class="forgot-password text-center mb-3">
<a href="{$urls.pages.password}" rel="nofollow">
{l s='Forgot your password?' d='Shop.Theme.Customeraccount'}
</a>
</div>
</div>
{block name='login_form_footer'}
<footer class="form-footer text-center clearfix">
<input type="hidden" name="submitLogin" value="1">
{block name='form_buttons'}
<button id="submit-login" class="btn btn-primary d-none d-md-inline-block" data-link-action="sign-in" type="submit" class="form-control-submit">
{l s='Sign in' d='Shop.Theme.Actions'}
</button>
<button id="submit-login" class="btn btn-primary btn-block d-block d-md-none" data-link-action="sign-in" type="submit" class="form-control-submit">
{l s='Sign in' d='Shop.Theme.Actions'}
</button>
{/block}
</footer>
{/block}
</form>
{/block}

View File

@ -0,0 +1,32 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to https://devdocs.prestashop.com/ for more information.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
*}
{block name='my_account_links'}
<a href="{$urls.pages.my_account}" class="account-link">
<span>{l s='Back to your account' d='Shop.Theme.Customeraccount'}</span>
</a>
<a href="{$urls.pages.index}" class="account-link">
<span>{l s='Home' d='Shop.Theme.Global'}</span>
</a>
{/block}

View File

@ -0,0 +1,73 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to https://devdocs.prestashop.com/ for more information.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
*}
{block name='order_products_table'}
<div class="card my-4">
{include file="customer/_partials/product-table.tpl" products=$order.products}
</div>
<div class="row card-group no-gutters my-4">
{block name='order_details'}
<div class="col-sm-6 col-12 card mb-sm-0 mb-4">
<div class="card-header">
<h3 class="h5 mb-0 card-title">{l s='Order details' d='Shop.Theme.Checkout'}</h3>
</div>
<div class="card-body">
<ul class="m-0">
<li class="cart-summary-line">
<span>{l s='Carrier' d='Shop.Theme.Checkout'}: <strong>{$order.carrier.name}</strong></span>
</li>
<li class="cart-summary-line">
<span>{l s='Payment method' d='Shop.Theme.Checkout'}: <strong>{$order.details.payment}</strong></span>
</li>
</ul>
</div>
</div>
{/block}
<div class="col-sm-6 col-12 card mb-0">
<div class="card-header">
<h3 class="h5 mb-0 card-title">{l s='Order subtotals' d='Shop.Istheme'}</h3>
</div>
<div class="card-body">
{foreach $order.subtotals as $line}
{if $line.value}
<div class="cart-summary-line">
<span class="label">{$line.label}</span>
<span class="value">{if 'discount' == $line.type}-&nbsp;{/if}{$line.value}</span>
</div>
{/if}
{/foreach}
<div class="cart-summary-line cart-total">
<span class="label">{$order.totals.total.label}</span>
<div class="value">{$order.totals.total.value}</div>
</div>
</div>
</div>
</div>
{/block}

View File

@ -0,0 +1,92 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to https://devdocs.prestashop.com/ for more information.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
*}
{block name='order_products_table'}
<div class="card my-4">
{include file="customer/_partials/product-table.tpl" products=$order.products}
</div>
<div class="row card-group no-gutters my-4">
{block name='order_details'}
<div class="col-sm-6 col-12 card mb-sm-0 mb-4">
<div class="card-header">
<h3 class="h5 mb-0 card-title">{l s='Order details' d='Shop.Theme.Checkout'}</h3>
</div>
<div class="card-body">
<ul class="m-0">
<li class="cart-summary-line">
<span>{l s='Carrier' d='Shop.Theme.Checkout'}: <strong>{$order.carrier.name}</strong></span>
</li>
<li class="cart-summary-line">
<span>{l s='Payment method' d='Shop.Theme.Checkout'}: <strong>{$order.details.payment}</strong></span>
</li>
</ul>
</div>
</div>
{/block}
<div class="col-sm-6 col-12 card mb-0">
<div class="card-header">
<h3 class="h5 mb-0 card-title">{l s='Order subtotals' d='Shop.Istheme'}</h3>
</div>
<div class="card-body">
{foreach $order.subtotals as $line}
{if $line.value}
<div class="cart-summary-line">
<span class="label">{$line.label}</span>
<span class="value">{if 'discount' == $line.type}-&nbsp;{/if}{$line.value}</span>
</div>
{/if}
{/foreach}
<div class="cart-summary-line cart-total">
<span class="label">{$order.totals.total.label}</span>
<div class="value">{$order.totals.total.value}</div>
</div>
</div>
</div>
</div>
<div class="my-4">
<h3 class="h4 mb-1">
{l s='Merchandise returns' d='Shop.Theme.Customeraccount'}
</h3>
<p class="mb-4">
{l s='If you wish to return one or more products, click on \'Request a return\' button' d='Shop.Theme.Customeraccount'}
</p>
<div class="text-center">
<button class="btn btn-primary d-none d-md-inline-block" data-toggle="modal" data-target="#order-return-modal">
{l s='Request a return' d='Shop.Theme.Customeraccount'}
</button>
<button class="btn btn-primary btn-block d-block d-md-none" data-toggle="modal" data-target="#order-return-modal">
{l s='Request a return' d='Shop.Theme.Customeraccount'}
</button>
</div>
</div>
{include file="customer/_partials/order-details-return-modal.tpl" order=$order}
{/block}

View File

@ -0,0 +1,57 @@
{extends file='components/modal.tpl'}
{block name='modal_extra_attribues'}id="order-return-modal"{/block}
{block name='modal_dialog_extra_class'}modal-lg{/block}
{block name='modal_content'}
<form id="order-return-form" class="modal-content js-order-return-form" action="{$urls.pages.order_follow}" method="post">
{block name='modal_header'}
<div class="modal-header {block name='modal_header_extra_class'}{/block}">
{block name='modal_title'}
<h5 class="modal-title">{l s='Merchandise return' d='Shop.Theme.Customeraccount'}</h5>
{/block}
{block name='modal_close'}
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
{/block}
</div>
{/block}
{block name='modal_body'}
<div class="modal-body {block name='modal_body_extra_class'}{/block}">
<div class="mb-3">
<p>{l s='If you wish to return one or more products, please mark the corresponding boxes and provide an explanation for the return. When complete, click the button below.' d='Shop.Theme.Customeraccount'}</p>
</div>
<div class="card my-4">
{include file="customer/_partials/order-details-return-table.tpl" products=$order.products}
</div>
<section class="form-fields">
<label for="returnText" class="form-control-label">
{l s='Reason for the return' d='Shop.Theme.Customeraccount'}
</label>
<div class="form-group">
<textarea cols="67" rows="3" name="returnText" id="returnText" class="form-control"></textarea>
</div>
</section>
</div>
{/block}
{block name='modal_footer'}
<div class="modal-footer {block name='modal_footer_extra_class'}{/block}">
<input type="hidden" name="id_order" value="{$order.details.id}">
<button class="form-control-submit btn btn-primary d-none d-md-inline-block" type="submit" name="submitReturnMerchandise">
{l s='Request a return' d='Shop.Theme.Customeraccount'}
</button>
<button class="form-control-submit btn btn-primary btn-block d-block d-md-none" type="submit" name="submitReturnMerchandise">
{l s='Request a return' d='Shop.Theme.Customeraccount'}
</button>
</div>
{/block}
</form>
{/block}

View File

@ -0,0 +1,184 @@
<table id="order-products" class="table product-table product-table--return return">
<thead class="thead-default product-table__head">
<tr>
<th class="head-checkbox">
<div class="custom-control custom-checkbox custom-checkbox-block">
<input
class="custom-control-input"
type="checkbox"
id="return_bulk">
<label class="custom-control-label" for="return_bulk"></label>
</div>
</th>
<th>
</th>
<th>
{l s='Product' d='Shop.Theme.Catalog'}
</th>
<th>
{l s='Price' d='Shop.Theme.Catalog'}
</th>
<th>
{l s='Quantity' d='Shop.Theme.Catalog'}
</th>
</tr>
</thead>
{foreach from=$order.products item=product name=products}
<tr class="product-table__row product-line product-line--return">
<td class="product-line__cell product-line__cell--checkbox">
{if !$product.product.is_virtual}
<label class="custom-control custom-checkbox product-line__checkbox-block mb-0 custom-checkbox-block">
<input
class="custom-control-input"
type="checkbox"
id="cb_{$product.id_order_detail}"
name="ids_order_detail[{$product.id_order_detail}]"
value="{$product.id_order_detail}">
<span class="custom-control-label" for="cb_{$product.id_order_detail}"></span>
</label>
{else}
{foreach $product.customizations as $customization}
<label class="custom-control custom-checkbox product-line__checkbox-block mb-0 custom-checkbox-block">
<input
class="custom-control-input"
type="checkbox"
id="cb_{$product.id_order_detail}_{$customization.id_customization}"
name="customization_ids[{$product.id_order_detail}][]"
value="{$customization.id_customization}">
<span class="custom-control-label"></span>
</label>
{/foreach}
{/if}
</td>
<td class="product-line__cell product-line__cell--img">
{images_block webpEnabled=$webpEnabled}
{if $product.default_image}
<img
{generateImagesSources image=$product.cover size='cart_default' lazyload=false}
alt="{$product.name|escape:'quotes'}"
class="product-line__img rounded img-fluid"
width="{$product.cover.bySize.cart_default.width}"
height="{$product.cover.bySize.cart_default.height}">
{else}
<img
src="{$urls.no_picture_image.bySize.cart_default.url}"
width="{$urls.no_picture_image.bySize.cart_default.width}"
height="{$urls.no_picture_image.bySize.cart_default.height}"
class="product-line__img rounded img-fluid">
{/if}
{/images_block}
</td>
<td class="product-line__cell product-line__cell--prod">
{assign var="productAttrs" value=[]}
{foreach from=$product.attributes key="attribute" item="value"}
{$productAttrs[]= "- `$attribute` : `$value`"}
{/foreach}
{$productAttrs = ""|implode:$productAttrs}
<p class="product-line__title h6 mb-2">
{if $product.attributes|count > 0}
{$product.name|replace:$productAttrs : ''}
{else}
{$product.name}
{/if}
</p>
{if $product.attributes}
<ul class="product-line__attributes mb-0">
{foreach from=$product.attributes key="attribute" item="value"}
<li class="product-line__attribute text-muted small">
<span>{$attribute}</span>: <span class="font-weight-bold">{$value}</span>
</li>
{/foreach}
</ul>
{/if}
{if $product.is_virtual}
{l s='Virtual products can\'t be returned.' d='Shop.Theme.Customeraccount'}<br/>
{/if}
{if isset($product.download_link)}
<a href="{$product.download_link}">{l s='Download' d='Shop.Theme.Actions'}</a><br/>
{/if}
{if $product.customizations}
{foreach from=$product.customizations item="customization"}
<div class="customization">
<a href="#" data-toggle="modal" data-target="#product-customizations-modal-{$customization.id_customization}">{l s='Product customization' d='Shop.Theme.Catalog'}</a>
</div>
<div id="_desktop_product_customization_modal_wrapper_{$customization.id_customization}">
<div class="modal fade customization-modal" id="product-customizations-modal-{$customization.id_customization}" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="{l s='Close' d='Shop.Theme.Global'}">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title">{l s='Product customization' d='Shop.Theme.Catalog'}</h4>
</div>
<div class="modal-body">
{foreach from=$customization.fields item="field"}
<div class="product-customization-line row">
<div class="col-sm-3 col-4 label">
{$field.label}
</div>
<div class="col-sm-9 col-8 value">
{if $field.type == 'text'}
{if (int)$field.id_module}
{$field.text nofilter}
{else}
{$field.text}
{/if}
{elseif $field.type == 'image'}
<img src="{$field.image.small.url}" loading="lazy">
{/if}
</div>
</div>
{/foreach}
</div>
</div>
</div>
</div>
</div>
{/foreach}
{/if}
</td>
<td class="product-line__cell product-line__cell--price" data-title="{l s='Price' d='Shop.Theme.Catalog'}">
<div class="price product-line__price">
{$product.price}
</div>
</td>
<td class="product-line__cell product-line__cell--qty qty" {if $product.quantity > $product.qty_returned} data-title="{l s='Quantity' d='Shop.Theme.Catalog'}"{/if}>
{if !$product.customizations}
{if $product.quantity > $product.qty_returned}
<div class="select" id="_desktop_return_qty_{$product.id_order_detail}">
<select name="order_qte_input[{$product.id_order_detail}]" class="custom-select">
{section name=quantity start=1 loop=$product.quantity+1-$product.qty_returned}
<option value="{$smarty.section.quantity.index}">{$smarty.section.quantity.index}</option>
{/section}
</select>
</div>
{/if}
{else}
{foreach $product.customizations as $customization}
<div class="select" id="_desktop_return_qty_{$product.id_order_detail}_{$customization.id_customization}">
<select
name="customization_qty_input[{$customization.id_customization}]"
class="custom-select"
>
{section name=quantity start=1 loop=$customization.quantity+1}
<option value="{$smarty.section.quantity.index}">{$smarty.section.quantity.index}</option>
{/section}
</select>
</div>
{/foreach}
{/if}
</td>
</tr>
{/foreach}
</table>

View File

@ -0,0 +1,87 @@
{**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License 3.0 (AFL-3.0)
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to https://devdocs.prestashop.com/ for more information.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
*}
{block name='order_messages_table'}
{if $order.messages}
<div class="box messages">
<h3>{l s='Messages' d='Shop.Theme.Customeraccount'}</h3>
{foreach from=$order.messages item=message}
<div class="message row">
<div class="col-sm-4">
<strong>{$message.name}</strong><br/>
<small>
{$message.message_date}
</small>
</div>
<div class="col-sm-8">
{$message.message|escape:'html'|nl2br nofilter}
</div>
</div>
{/foreach}
</div>
{/if}
{/block}
{block name='order_message_form'}
<section class="order-message-form my-4">
<form class="card" action="{$urls.pages.order_detail}" method="post">
<header class="card-header">
<h3 class="h4 card-title mb-0">{l s='Add a message' d='Shop.Theme.Customeraccount'}</h3>
</header>
<div class="card-body">
<section class="form-fields">
<p>{l s='If you would like to add a comment about your order, please write it in the field below.' d='Shop.Theme.Customeraccount'}</p>
<div class="form-group">
<label class="form-control-label">{l s='Product' d='Shop.Forms.Labels'}</label>
<select name="id_product" class="custom-select" data-role="product">
<option value="0">{l s='-- please choose --' d='Shop.Forms.Labels'}</option>
{foreach from=$order.products item=product}
<option value="{$product.id_product}">{$product.name}</option>
{/foreach}
</select>
</div>
<div class="form-group">
<textarea rows="4" name="msgText" class="form-control" data-role="msg-text"></textarea>
</div>
</section>
<footer class="form-footer text-center mt-3">
<input type="hidden" name="id_order" value="{$order.details.id}">
<button type="submit" name="submitMessage" class="btn btn-primary d-block btn-block d-md-none form-control-submit">
{l s='Send' d='Shop.Theme.Actions'}
</button>
<button type="submit" name="submitMessage" class="btn btn-primary form-control-submit d-none d-md-inline-block">
{l s='Send' d='Shop.Theme.Actions'}
</button>
</footer>
</div>
</form>
</section>
{/block}

View File

@ -0,0 +1,76 @@
<td class="product-line__cell product-line__cell--img">
{images_block webpEnabled=$webpEnabled}
{if $product.default_image}
<img
{generateImagesSources image=$product.default_image size='cart_default' lazyload=false}
alt="{$product.name|escape:'quotes'}"
class="product-line__img rounded img-fluid"
width="{$product.default_image.bySize.cart_default.width}"
height="{$product.default_image.bySize.cart_default.height}">
{else}
<img
src="{$urls.no_picture_image.bySize.cart_default.url}"
width="{$urls.no_picture_image.bySize.cart_default.width}"
height="{$urls.no_picture_image.bySize.cart_default.height}"
class="product-line__img rounded img-fluid">
{/if}
{/images_block}
</td>
<td class="product-line__cell product-line__cell--prod">
{assign var="productAttrs" value=[]}
{foreach from=$product.attributes key="attribute" item="value"}
{$productAttrs[]= "- `$attribute` : `$value`"}
{/foreach}
{$productAttrs = ""|implode:$productAttrs}
<p class="product-line__title h6 mb-2">
{if $product.attributes|count > 0}
{$product.name|replace:$productAttrs : ''}
{else}
{$product.name}
{/if}
</p>
{if $product.attributes}
<ul class="product-line__attributes mb-0">
{foreach from=$product.attributes key="attribute" item="value"}
<li class="product-line__attribute text-muted small">
<span>{$attribute}</span>: <span class="font-weight-bold">{$value}</span>
</li>
{/foreach}
</ul>
{/if}
</td>
<td class="product-line__cell product-line__cell--price" data-title="{l s='Price' d='Shop.Theme.Catalog'}">
<div class="price product-line__price">
{$product.price}
</div>
</td>
<td class="product-line__cell product-line__cell--qty" data-title="{l s='Quantity' d='Shop.Theme.Catalog'}">
<span class="price product-line__price">{$product.quantity}</span>
</td>
{if $page.page_name == 'order-detail' && $order.details.is_returnable && isset($product.qty_returned)}
<td class="product-line__cell product-line__cell--returned" data-title="{l s='Returned' d='Shop.Theme.Customeraccount'}">
<div class="price product-line__price">
{$product.qty_returned}
</div>
</td>
{/if}
<td class="product-line__cell product-line__cell--total" data-title="{l s='Total' d='Shop.Theme.Checkout'}">
<div class="price product-line__price">
{if isset($product.is_gift) && $product.is_gift}
{l s='Gift' d='Shop.Theme.Checkout'}
{else}
{$product.total}
{/if}
</div>
</td>

View File

@ -0,0 +1,36 @@
<table class="table product-table">
<div class="card-header d-md-none">
<p class="card-title mb-0 h5">
{l s='Products' d='Shop.Theme.Catalog'}
</p>
</div>
<thead class="thead-default product-table__head">
<tr>
<th></th>
<th>
{l s='Product' d='Shop.Theme.Catalog'}
</th>
<th>
{l s='Price' d='Shop.Theme.Catalog'}
</th>
<th>
{l s='Quantity' d='Shop.Theme.Catalog'}
</th>
{if $page.page_name == 'order-detail' && $order.details.is_returnable}
<th>
{l s='Returned' d='Shop.Theme.Customeraccount'}
</th>
{/if}
<th>
{l s='Total' d='Shop.Theme.Checkout'}
</th>
</tr>
</thead>
{foreach from=$products item=product}
<tr class="product-table__row product-line {if $page.page_name == 'order-detail' && $order.details.is_returnable}product-line--extended{/if}">
{block name='cart_detailed_product_line'}
{include file='customer/_partials/product-table-line.tpl' product=$product interactive=$interactive|default:false}
{/block}
</tr>
{/foreach}
</table>