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,7 @@
<div id="js-product-list-footer">
{if $category.additional_description && $listing.pagination.items_shown_from == 1}
<div id="category-description-2" class="cms-content my-3">
{$category.additional_description nofilter}
</div>
{/if}
</div>

View File

@ -0,0 +1,37 @@
{**
* 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)
*}
<div id="js-product-list-header">
<div class="block-category">
<h1 class="h1">
{$category.name}
{if $listing.pagination.items_shown_from !== 1}
{l s='- page' d='Shop.Theme.Catalog'} {$listing.pagination.current_page}
{/if}
</h1>
{if $category.description && $listing.pagination.items_shown_from == 1}
<div id="category-description" class="cms-content">{$category.description nofilter}</div>
{/if}
</div>
</div>

View File

@ -0,0 +1,28 @@
<div class="product-miniature__actions">
{if $product.add_to_cart_url && ($product.quantity > 0 || $product.allow_oosp) && !$configuration.is_catalog}
<form class="product-miniature__form" action="{$product.add_to_cart_url}" method="post">
<input type="hidden" name="id_product" value="{$product.id}">
<input
type="hidden"
name="qty"
value="{if isset($product.product_attribute_minimal_quantity) && $product.product_attribute_minimal_quantity != ''}{$product.product_attribute_minimal_quantity}{else}{$product.minimal_quantity}{/if}"
class="form-control input-qty"
>
<button
class="btn btn-primary btn-block add-to-cart"
data-button-action="add-to-cart"
type="submit"
{if !$product.add_to_cart_url}
disabled
{/if}
>
{l s='Add to cart' d='Shop.Theme.Actions'}
</button>
</form>
{else}
<a href="{$product.canonical_url}"
class="btn btn-secondary btn-block"
> {l s='View' d='Shop.Theme.Actions'}
</a>
{/if}
</div>

View File

@ -0,0 +1,18 @@
{block name='product_price_and_shipping'}
{if $product.show_price}
<div class="product-miniature__pricing text-right">
{if $product.has_discount}
{hook h='displayProductPriceBlock' product=$product type="old_price"}
<span class="price price--regular mr-1" aria-label="{l s='Regular price' d='Shop.Theme.Catalog'}">{$product.regular_price}</span>
{/if}
{hook h='displayProductPriceBlock' product=$product type="before_price"}
<span class="price" aria-label="{l s='Price' d='Shop.Theme.Catalog'}">{$product.price}</span>
{hook h='displayProductPriceBlock' product=$product type='unit_price'}
{hook h='displayProductPriceBlock' product=$product type='weight'}
</div>
{/if}
{/block}

View File

@ -0,0 +1,36 @@
{block name='product_thumbnail'}
<div class="product-miniature__thumb position-relative {$thumbExtraClass|default:''}">
<a href="{$product.url}" class="product-miniature__thumb-link">
{images_block webpEnabled=$webpEnabled}
<img
{if $product.default_image}
data-full-size-image-url="{$product.default_image.large.url}"
{generateImagesSources image=$product.default_image size='home_default' lazyload=true}
alt="{if !empty($product.default_image.legend)}{$product.default_image.legend}{else}{$product.name|truncate:30:'...'}{/if}"
width="{$product.default_image.bySize.home_default.width}"
height="{$product.default_image.bySize.home_default.height}"
{else}
src="{$urls.no_picture_image.bySize.home_default.url}"
alt="{$product.name|truncate:30:'...'}"
width="{$urls.no_picture_image.bySize.home_default.width}"
height="{$urls.no_picture_image.bySize.home_default.height}"
{/if}
class="img-fluid rounded lazyload"
/>
{/images_block}
{include file='catalog/_partials/product-flags.tpl'}
</a>
{block name='quick_view'}
<a class="quick-view product-miniature__functional-btn btn btn-light shadow rounded-circle" href="#" data-link-action="quickview">
<span class="material-icons product-miniature__functional-btn-icon">visibility</span>
</a>
{/block}
{block name='product_reviews'}
{hook h='displayProductListReviews' product=$product}
{/block}
</div>
{/block}

View File

@ -0,0 +1,9 @@
{block name='product_name'}
{$headingTag = 'h2'}
{if $page.page_name == 'index'}
{$headingTag = 'h3'}
{/if}
<{$headingTag} class="h5 product-miniature__title mb-2">
<a class="text-reset" href="{$product.url}">{$product.name}</a>
</{$headingTag}>
{/block}

View File

@ -0,0 +1,7 @@
<div class="product-miniature__information {if !$product.main_variants} product-miniature__information--no-variants{/if} hidden-sm-down">
{block name='product_variants'}
{if $product.main_variants}
{include file='catalog/_partials/variant-links.tpl' variants=$product.main_variants}
{/if}
{/block}
</div>

View File

@ -0,0 +1,47 @@
{**
* 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='brand_miniature_item'}
<li class="col-lg-3 col-sm-4 col-6 mb-3">
<div class="card h-100">
{$sizes = Image::getSize('home_default')}
<img
src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='{$sizes.width}' height='{$sizes.height}' viewBox='0 0 1 1'%3E%3C/svg%3E"
data-src="{$brand.image|replace:'small_default':'home_default'}"
alt="{$brand.name}"
class="card-img-top lazyload"
width="{$sizes.width}"
height="{$sizes.height}"
>
<div class="card-body">
<p class="h6 mb-0">
<a class="text-reset stretched-link" href="{$brand.url}">{$brand.name}</a>
</p>
</div>
<div class="card-footer text-center">
<span class="btn btn-link p-0">{$brand.nb_products}</span>
</div>
</div>
</li>
{/block}

View File

@ -0,0 +1,40 @@
{**
* 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='category_miniature_item'}
<section class="category-miniature">
<a href="{$category.url}">
<img
src="{$category.image.medium.url}"
alt="{if !empty($category.image.legend)}{$category.image.legend}{else}{$category.name}{/if}"
>
</a>
<h1 class="h2">
<a href="{$category.url}">{$category.name}</a>
</h1>
<div class="category-description">{$category.description nofilter}</div>
</section>
{/block}

View File

@ -0,0 +1,62 @@
{**
* 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='pack_miniature_item'}
<div class="card overflow-hidden">
<div class="row no-gutters flex-nowrap">
<div class="col-4 col-md-3 col-xl-2">
<a href="{$product.url}" title="{$product.name}">
{images_block webpEnabled=$webpEnabled}
<img
class="img-fluid lazyload"
{generateImagesSources image=$product.default_image size='cart_default' lazyload=true}
width="{$product.default_image.bySize.cart_default.width}"
height="{$product.default_image.bySize.cart_default.height}"
{if !empty($product.default_image.legend)}
alt="{$product.default_image.legend}"
title="{$product.default_image.legend}"
{else}
alt="{$product.name}"
{/if}
data-full-size-image-url="{$product.default_image.large.url}"
>
{/images_block}
</a>
</div>
<div class="card-body align-self-center">
<p class="pack-product-name h6 mb-2">
<a href="{$product.url}" class="text-reset" title="{$product.name}">
<span class="text-muted">{$product.pack_quantity}x</span> {$product.name}
</a>
</p>
{if $showPackProductsPrice}
<div class="price">
{$product.price}
</div>
{/if}
</div>
</div>
</div>
{/block}

View File

@ -0,0 +1,64 @@
{**
* 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='product_miniature_item'}
{$listingType = $type|default:'listing'}
<div
class="products-list__block products-list__block--list"
>
<article class="product-miniature card js-product-miniature p-2 h-100 {block name='product_miniature_item_class'}{/block}" data-id-product="{$product.id_product}" data-id-product-attribute="{$product.id_product_attribute}">
<div class="row">
<div class="col-md-4 col-lg-3">
{include file='catalog/_partials/miniatures/_partials/product-thumb.tpl'}
</div>
<div class="col-md-8 col-lg-9">
<div class="d-flex flex-column h-100">
{include file='catalog/_partials/miniatures/_partials/product-title.tpl'}
{block name='product_desc'}
{if $product.description_short}
<div class="product-miniature__desc">
{$product.description_short nofilter}
</div>
{/if}
{/block}
<div class="row mt-auto">
<div class="col">
{include file='catalog/_partials/miniatures/_partials/product-prices.tpl'}
</div>
<div class="col">
{include file='catalog/_partials/miniatures/_partials/product-form.tpl'}
</div>
</div>
</div>
</div>
</div>
</article>
</div>
{/block}

View File

@ -0,0 +1,50 @@
{**
* 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='product_miniature_item'}
{$listingType = $type|default:'listing'}
<div
{if $listingType === 'listing'}
class="products-list__block products-list__block--grid"
{elseif $listingType === 'slider'}
class="swiper-slide product-slider__item col-6 col-md-4 col-lg-3"
{/if}
>
<article
class="product-miniature card js-product-miniature p-2 h-100 {block name='product_miniature_item_class'}{/block}"
data-id-product="{$product.id_product}" data-id-product-attribute="{$product.id_product_attribute}"
>
{include file='catalog/_partials/miniatures/_partials/product-thumb.tpl' thumbExtraClass='mb-2'}
{include file='catalog/_partials/miniatures/_partials/product-title.tpl'}
{include file='catalog/_partials/miniatures/_partials/product-prices.tpl'}
{block name='product_form'}
{include file='catalog/_partials/miniatures/_partials/product-form.tpl'}
{/block}
</article>
</div>
{/block}

View File

@ -0,0 +1,55 @@
{**
* 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)
*}
{$defaultPerPage = Configuration::get('PS_PRODUCTS_PER_PAGE')}
{$currentPerPage = $smarty.get.resultsPerPage|default:$defaultPerPage}
{if $listing.pagination.total_items > $defaultPerPage}
{$currentPage = $listing.pagination.current_page}
{$currentUrl = $listing.current_url}
{$currentUrlFormatted = $currentUrl|replace:"page=`$currentPage`":"page=1"} {* RESET PAGE IS REQUIRED *}
{$otherParamsExists = !!strpos($currentUrl, '?')}
{$productPerPageArray = [
$defaultPerPage,
$defaultPerPage * 2,
$defaultPerPage * 4
]}
<select data-action="search-select" class="custom-select">
{foreach $productPerPageArray as $perPage}
<option
{if $currentPerPage == $perPage}selected{/if}
{if $smarty.get.resultsPerPage|default:0}
data-href="{$currentUrlFormatted|replace:"resultsPerPage=`$currentPerPage`":"resultsPerPage=`$perPage`"}"
{else}
data-href="{$currentUrlFormatted}{if $otherParamsExists}&{else}?{/if}resultsPerPage={$perPage}"
{/if}>
{l s='Per page:' d='Shop.Theme.Catalog'} {$perPage}
</option>
{/foreach}
</select>
{/if}

View File

@ -0,0 +1,6 @@
{extends file="components/featured-products.tpl"}
{block name='featured_products_title'}
{l s='You might also like' d='Shop.Theme.Catalog'}
{/block}

View File

@ -0,0 +1,37 @@
{**
* 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)
*}
{if $page.admin_notifications}
<div class="alert alert-warning row" role="alert">
<div class="container">
<div class="row">
{foreach $page.admin_notifications as $notif}
<div class="col-sm-12">
<p class="alert-text">{$notif.message}</p>
</div>
{/foreach}
</div>
</div>
</div>
{/if}

View File

@ -0,0 +1,112 @@
{**
* 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)
*}
<div class="product-add-to-cart js-product-add-to-cart">
{if !$configuration.is_catalog}
{block name='product_quantity'}
<div class="product-quantity row mb-1 mx-n1 mt-n2 align-items-center">
<div class="qty col-12 col-sm-auto mx-auto mt-2 px-1">
<input
type="number"
name="qty"
id="quantity_wanted"
inputmode="numeric"
pattern="[0-9]*"
{if $product.quantity_wanted}
value="{$product.quantity_wanted}"
min="{$product.minimal_quantity}"
{else}
value="1"
min="1"
{/if}
class="input-group input-touchspin"
aria-label="{l s='Quantity' d='Shop.Theme.Actions'}"
>
</div>
<div class="add col mt-2 px-1">
<button
class="btn btn-primary add-to-cart btn-block"
data-button-action="add-to-cart"
type="submit"
{if !$product.add_to_cart_url}
disabled
{/if}
>
{l s='Add to cart' d='Shop.Theme.Actions'}
</button>
</div>
<div class="col-auto mt-2 px-1">
<div class="js-product-actions-buttons">
<div class="row mx-n1 mt-n2 align-items-center">
{hook h='displayProductActions' product=$product}
</div>
</div>
</div>
</div>
{/block}
{block name='product_availability'}
<span id="product-availability" class="js-product-availability">
{if $product.show_availability && $product.availability_message}
<span
{if $product.availability == 'available'}
class="badge badge-success py-1 mb-1"
{elseif $product.availability == 'last_remaining_items'}
class="badge badge-warning py-1 mb-1"
{else}
class="badge badge-danger py-1 mb-1"
{/if}
>
{if $product.availability == 'available'}
<i class="material-icons rtl-no-flip font-reset align-bottom">&#xE5CA;</i>
{elseif $product.availability == 'last_remaining_items'}
<i class="material-icons font-reset align-bottom">&#xE002;</i>
{else}
<i class="material-icons font-reset align-bottom">&#xE14B;</i>
{/if}
{$product.availability_message}
</span>
{/if}
</span>
{/block}
{block name='product_minimal_quantity'}
<div class="product-minimal-quantity js-product-minimal-quantity">
{if $product.minimal_quantity > 1}
<small>
{l
s='The minimum purchase order quantity for the product is %quantity%.'
d='Shop.Theme.Checkout'
sprintf=['%quantity%' => $product.minimal_quantity]
}
</small>
{/if}
</div>
{/block}
{/if}
</div>

View File

@ -0,0 +1,27 @@
{**
* 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)
*}
<div class="product-additional-info js-product-additional-info">
{hook h='displayProductAdditionalInfo' product=$product}
</div>

View File

@ -0,0 +1,183 @@
{**
* 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)
*}
{if Tools::getValue('quickview') || Tools::getValue('action') == 'quickview'}
<div class="js-product-images">
<div class="card">
<div class="card-body">
{images_block webpEnabled=$webpEnabled}
{if $product.default_image}
<img
class="rounded img-fluid"
{generateImagesSources image=$product.default_image size='large_default' lazyload=false}
width="{$product.default_image.bySize.large_default.width}"
height="{$product.default_image.bySize.large_default.height}"
{if !empty($product.default_image.legend)}
alt="{$product.default_image.legend}"
title="{$product.default_image.legend}"
{else}
alt="{$product.name}"
{/if}
>
{else}
<img src="{$urls.no_picture_image.bySize.large_default.url}" class="rounded img-fluid">
{/if}
{/images_block}
</div>
</div>
</div>
{else}
<div class="js-product-images">
{block name='product_cover'}
{if $product.default_image}
<div class="product-main-images">
{if $product.images|count > 1}
{$index = 0}
{images_block webpEnabled=$webpEnabled}
<div class="js-product-main-images swiper swiper-custom" data-index="{$index}">
<div class="product-main-images__list swiper-wrapper">
<div class="swiper-slide">
<img
class="rounded img-fluid"
{generateImagesSources image=$product.default_image size='large_default' lazyload=false}
width="{$product.default_image.bySize.large_default.width}"
height="{$product.default_image.bySize.large_default.height}"
{if !empty($product.default_image.legend)}
alt="{$product.default_image.legend}"
title="{$product.default_image.legend}"
{else}
alt="{$product.name}"
{/if}
>
</div>
{if $product.images|count > 1}
{foreach from=$product.images item=image}
{if $image.id_image === $product.default_image.id_image}
{continue}
{/if}
{$index = $index + 1}
<div class="swiper-slide" data-index="{$index}">
<img
class="rounded img-fluid lazyload"
{generateImagesSources image=$image size='large_default' lazyload=true}
width="{$image.bySize.large_default.width}"
height="{$image.bySize.large_default.height}"
{if !empty($product.default_image.legend)}
alt="{$image.legend}" title="{$image.legend}"
{else}
alt="{$product.name}"
{/if}
>
</div>
{/foreach}
{/if}
</div>
<div class="swiper-button-prev swiper-button-custom">
<span class="sr-only">{l s='Previous' d='Shop.Theme.Actions'}</span>
<span class="material-icons">keyboard_arrow_left</span>
</div>
<div class="swiper-button-next swiper-button-custom">
<span class="sr-only">{l s='Next' d='Shop.Theme.Actions'}</span>
<span class="material-icons">keyboard_arrow_right</span>
</div>
</div>
{/images_block}
{else}
{images_block webpEnabled=$webpEnabled}
<img
class="rounded img-fluid"
{generateImagesSources image=$product.default_image size='large_default' lazyload=false}
width="{$product.default_image.bySize.large_default.width}"
height="{$product.default_image.bySize.large_default.height}"
{if !empty($product.default_image.legend)}
alt="{$product.default_image.legend}"
title="{$product.default_image.legend}"
{else}
alt="{$product.name}"
{/if}>
{/images_block}
{/if}
<a class="product-main-images__modal-trigger-layer btn btn-light shadow rounded-circle hidden-sm-down" data-toggle="modal" data-target="#product-modal">
<span class="material-icons font-reset line-height-reset">zoom_in</span>
</a>
</div>
{else}
<img src="{$urls.no_picture_image.bySize.large_default.url}" class="rounded img-fluid">
{/if}
{/block}
{block name='product_images'}
{if $product.images|count > 1}
<div class="js-product-thumbs product-thumbs swiper mt-2 swiper-custom">
{images_block webpEnabled=$webpEnabled}
<div class="product-thumbs__list swiper-wrapper">
<div class="product-thumbs__elem swiper-slide">
<img
class="rounded img-fluid lazyload"
{generateImagesSources image=$product.default_image size='home_default' lazyload=true}
width="{$product.default_image.bySize.home_default.width}"
height="{$product.default_image.bySize.home_default.height}"
{if !empty($product.default_image.legend)}
alt="{$product.default_image.legend}"
title="{$product.default_image.legend}"
{else}
alt="{$product.name}"
{/if}
>
</div>
{if $product.images|count > 1}
{foreach from=$product.images item=image}
{if $image.id_image === $product.default_image.id_image}
{continue}
{/if}
<div class="product-thumbs__elem swiper-slide">
<img
class="rounded img-fluid lazyload"
{generateImagesSources image=$image size='home_default' lazyload=true}
width="{$image.bySize.home_default.width}"
height="{$image.bySize.home_default.height}"
{if !empty($product.default_image.legend)}
alt="{$image.legend}" title="{$image.legend}"
{else}
alt="{$product.name}"
{/if}
>
</div>
{/foreach}
{/if}
</div>
{/images_block}
</div>
{/if}
{/block}
</div>
{hook h='displayAfterProductThumbs' product=$product}
{/if}

View File

@ -0,0 +1,74 @@
{**
* 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)
*}
<section class="product-customization">
{if !$configuration.is_catalog}
<div class="card">
<p class="h4 card-title mb-0">{l s='Product customization' d='Shop.Theme.Catalog'}</p>
<div class="card-body">
<p>
{l s='Don\'t forget to save your customization to be able to add to cart' d='Shop.Forms.Help'}
</p>
{block name='product_customization_form'}
<form method="post" action="{$product.url}" enctype="multipart/form-data">
<ul class="clearfix">
{foreach from=$customizations.fields item="field"}
<li class="product-customization-item">
<label class="customization-label">{$field.label}</label>
{if $field.type == 'text'}
<textarea placeholder="{l s='Your message here' d='Shop.Forms.Help'}" class="product-message" maxlength="250" {if $field.required} required {/if} name="{$field.input_name}"></textarea>
<small class="float-right">{l s='250 char. max' d='Shop.Forms.Help'}</small>
{if $field.text !== ''}
<h6 class="customization-message">{l s='Your customization:' d='Shop.Theme.Catalog'}
<label>{$field.text}</label>
</h6>
{/if}
{elseif $field.type == 'image'}
{if $field.is_customized}
<br>
<img src="{$field.image.small.url}" loading="lazy">
<a class="remove-image" href="{$field.remove_image_url}" rel="nofollow">{l s='Remove Image' d='Shop.Theme.Actions'}</a>
{/if}
<span class="custom-file">
<span class="js-file-name">{l s='No selected file' d='Shop.Forms.Help'}</span>
<input class="file-input js-file-input" {if $field.required} required {/if} type="file" name="{$field.input_name}">
<button class="btn btn-primary">{l s='Choose file' d='Shop.Theme.Actions'}</button>
</span>
{assign var=authExtensions value=' .'|implode:constant('ImageManager::EXTENSIONS_SUPPORTED')}
<small class="float-xs-right">.{$authExtensions}</small>
{/if}
</li>
{/foreach}
</ul>
<div class="clearfix">
<button class="btn btn-primary float-right" type="submit" name="submitCustomizedData">{l s='Save Customization' d='Shop.Theme.Actions'}</button>
</div>
</form>
{/block}
</div>
</div>
{/if}
</section>

View File

@ -0,0 +1,93 @@
<div class="js-product-details tab-pane fade"
id="product-details"
data-product="{$product.embedded_attributes|json_encode}"
role="tabpanel"
>
{block name='product_reference'}
{if isset($product_manufacturer->id)}
<div class="product-manufacturer">
{if isset($manufacturer_image_url)}
{images_block webpEnabled=$webpEnabled}
<a href="{$product_brand_url}">
<img src="{$manufacturer_image_url}" class="img img-thumbnail manufacturer-logo" alt="{$product_manufacturer->name}" loading="lazy">
</a>
{/images_block}
{else}
<label class="label">{l s='Brand' d='Shop.Theme.Catalog'}</label>
<span>
<a href="{$product_brand_url}">{$product_manufacturer->name}</a>
</span>
{/if}
</div>
{/if}
{if isset($product.reference_to_display) && $product.reference_to_display neq ''}
<div class="product-reference">
<label class="label">{l s='Reference' d='Shop.Theme.Catalog'} </label>
<span>{$product.reference_to_display}</span>
</div>
{/if}
{/block}
{block name='product_quantities'}
{if $product.show_quantities}
<div class="product-quantities">
<label class="label">{l s='In stock' d='Shop.Theme.Catalog'}</label>
<span data-stock="{$product.quantity}" data-allow-oosp="{$product.allow_oosp}">{$product.quantity} {$product.quantity_label}</span>
</div>
{/if}
{/block}
{block name='product_availability_date'}
{if $product.availability_date}
<div class="product-availability-date">
<label>{l s='Availability date:' d='Shop.Theme.Catalog'} </label>
<span>{$product.availability_date}</span>
</div>
{/if}
{/block}
{block name='product_out_of_stock'}
<div class="product-out-of-stock">
{hook h='actionProductOutOfStock' product=$product}
</div>
{/block}
{block name='product_features'}
{if $product.grouped_features}
<section class="product-features my-3">
<p class="h6">{l s='Data sheet' d='Shop.Theme.Catalog'}</p>
<dl class="row no-gutters mb-0">
{foreach from=$product.grouped_features item=feature}
<dt class="col-4 pr-3 {if !$feature@last}pb-2 mb-2 border-bottom{/if}">{$feature.name}</dt>
<dd class="col-8 {if !$feature@last}pb-2 mb-2 border-bottom{/if}">{$feature.value|escape:'htmlall'|nl2br nofilter}</dd>
{/foreach}
</dl>
</section>
{/if}
{/block}
{* if product have specific references, a table will be added to product details section *}
{block name='product_specific_references'}
{if !empty($product.specific_references)}
<section class="product-features my-3">
<p class="h6">{l s='Specific References' d='Shop.Theme.Catalog'}</p>
<dl class="row">
{foreach from=$product.specific_references item=reference key=key}
<dt class="col-4 pr-3 {if !$reference@last}pb-2 mb-2 border-bottom{/if}">{$key}</dt>
<dd class="col-8 {if !$reference@last}pb-2 mb-2 border-bottom{/if}">{$reference}</dd>
{/foreach}
</dl>
</section>
{/if}
{/block}
{block name='product_condition'}
{if $product.condition}
<div class="product-condition">
<label class="label">{l s='Condition' d='Shop.Theme.Catalog'} </label>
<link href="{$product.condition.schema_url}"/>
<span>{$product.condition.label}</span>
</div>
{/if}
{/block}
</div>

View File

@ -0,0 +1,49 @@
{**
* 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)
*}
<section class="product-discounts js-product-discounts">
{if $product.quantity_discounts}
<p class="h6 mb-2">{l s='Volume discounts' d='Shop.Theme.Catalog'}</p>
{block name='product_discount_table'}
<table class="table mb-4">
<thead>
<tr>
<th>{l s='Quantity' d='Shop.Theme.Catalog'}</th>
<th>{$configuration.quantity_discount.label}</th>
<th>{l s='You Save' d='Shop.Theme.Catalog'}</th>
</tr>
</thead>
<tbody>
{foreach from=$product.quantity_discounts item='quantity_discount' name='quantity_discounts'}
<tr data-discount-type="{$quantity_discount.reduction_type}" data-discount="{$quantity_discount.real_value}" data-discount-quantity="{$quantity_discount.quantity}">
<td><strong>{$quantity_discount.quantity}</strong></td>
<td><span class="price">{$quantity_discount.discount}<span></td>
<td><span class="price">{$quantity_discount.save}<span></td>
</tr>
{/foreach}
</tbody>
</table>
{/block}
{/if}
</section>

View File

@ -0,0 +1,31 @@
{**
* 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='product_flags'}
<ul class="product-flags d-flex flex-column position-absolute w-100 pe-none">
{foreach from=$product.flags item=flag}
<li class="product-flags__flag rounded product-flags__flag--{$flag.type}">{$flag.label}</li>
{/foreach}
</ul>
{/block}

View File

@ -0,0 +1,105 @@
{**
* 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)
*}
<div class="modal fade js-product-images-modal" id="product-modal">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-body">
<div class="js-modal-gallery modal-gallery swiper swiper-custom">
{if $product.default_image}
{images_block webpEnabled=$webpEnabled}
<div class="modal-gallery__list swiper-wrapper">
<div class="swiper-slide modal-gallery__elem">
<img
class="rounded img-fluid lazyload"
{generateImagesSources image=$product.default_image size='large_default' lazyload=false}
width="{$product.default_image.bySize.large_default.width}"
height="{$product.default_image.bySize.large_default.height}"
{if !empty($product.default_image.legend)}
alt="{$product.default_image.legend}"
title="{$product.default_image.legend}"
{else}
alt="{$product.name}"
{/if}
>
</div>
{if $product.images|count > 1}
{foreach from=$product.images item=image}
{if $image.id_image === $product.default_image.id_image}
{continue}
{/if}
<div class="swiper-slide modal-gallery__elem">
<img
class="rounded img-fluid lazyload"
{generateImagesSources image=$image size='large_default' lazyload=true}
width="{$image.bySize.large_default.width}"
height="{$image.bySize.large_default.height}"
{if !empty($product.default_image.legend)}
alt="{$image.legend}" title="{$image.legend}"
{else}
alt="{$product.name}"
{/if}
>
</div>
{/foreach}
{/if}
</div>
{/images_block}
{else}
{images_block webpEnabled=$webpEnabled}
<img
class="rounded img-fluid"
{generateImagesSources image=$product.default_image size='large_default' lazyload=false}
width="{$product.default_image.bySize.large_default.width}"
height="{$product.default_image.bySize.large_default.height}"
{if !empty($product.default_image.legend)}
alt="{$product.default_image.legend}"
title="{$product.default_image.legend}"
{else}
alt="{$product.name}"
{/if}>
{/images_block}
{/if}
{if $product.images|count > 1}
<div class="swiper-button-prev swiper-button-custom">
<span class="sr-only">{l s='Previous' d='Shop.Theme.Actions'}</span>
<span class="material-icons">keyboard_arrow_left</span>
</div>
<div class="swiper-button-next swiper-button-custom">
<span class="sr-only">{l s='Next' d='Shop.Theme.Actions'}</span>
<span class="material-icons">keyboard_arrow_right</span>
</div>
{/if}
</div>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->

View File

@ -0,0 +1,114 @@
{**
* 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)
*}
{if $product.show_price}
<div class="product-prices js-product-prices mb-3">
{block name='product_price'}
<div class="product-price">
{if $product.has_discount}
{if $product.discount_type === 'percentage'}
<span class="badge badge-danger">{l s='Save %percentage%' d='Shop.Theme.Catalog' sprintf=['%percentage%' => $product.discount_percentage_absolute]}</span>
{else}
<span class="badge badge-danger">
{l s='Save %amount%' d='Shop.Theme.Catalog' sprintf=['%amount%' => $product.discount_to_display]}
</span>
{/if}
{/if}
<div>
<span class="price price--lg">
{capture name='custom_price'}{hook h='displayProductPriceBlock' product=$product type='custom_price' hook_origin='product_sheet'}{/capture}
{if '' !== $smarty.capture.custom_price}
{$smarty.capture.custom_price nofilter}
{else}
{$product.price}
{/if}
</span>
{block name='product_discount'}
{if $product.has_discount}
<span class="ml-2 price price--regular">{$product.regular_price}</span>
{/if}
{/block}
{hook h='displayProductPriceBlock' product=$product type="old_price"}
</div>
{block name='product_unit_price'}
{if $displayUnitPrice}
<p class="product-unit-price small">{$product.unit_price_full}</p>
{/if}
{/block}
</div>
{/block}
{block name='product_without_taxes'}
{if $priceDisplay == 2}
<p class="product-without-taxes">{l s='%price% tax excl.' d='Shop.Theme.Catalog' sprintf=['%price%' => $product.price_tax_exc]}</p>
{/if}
{/block}
{block name='product_pack_price'}
{if $displayPackPrice}
<p class="product-pack-price"><span>{l s='Instead of %price%' d='Shop.Theme.Catalog' sprintf=['%price%' => $noPackPrice]}</span></p>
{/if}
{/block}
{block name='product_ecotax'}
{if !$product.is_virtual && $product.ecotax.amount > 0}
<p class="price-ecotax">{l s='Including %amount% for ecotax' d='Shop.Theme.Catalog' sprintf=['%amount%' => $product.ecotax_tax_inc]}
{if $product.has_discount}
{l s='(not impacted by the discount)' d='Shop.Theme.Catalog'}
{/if}
</p>
{/if}
{/block}
{hook h='displayProductPriceBlock' product=$product type="weight" hook_origin='product_sheet'}
<div class="tax-shipping-delivery-label">
{if !$configuration.taxes_enabled}
{l s='No tax' d='Shop.Theme.Catalog'}
{elseif $configuration.display_taxes_label}
{$product.labels.tax_long}
{/if}
{hook h='displayProductPriceBlock' product=$product type="price"}
{hook h='displayProductPriceBlock' product=$product type="after_price"}
{if $product.is_virtual == 0}
{if $product.additional_delivery_times == 1}
{if $product.delivery_information}
<span class="delivery-information">{$product.delivery_information}</span>
{/if}
{elseif $product.additional_delivery_times == 2}
{if $product.quantity >= $product.quantity_wanted}
<span class="delivery-information">{$product.delivery_in_stock}</span>
{* Out of stock message should not be displayed if customer can't order the product. *}
{elseif $product.add_to_cart_url}
<span class="delivery-information">{$product.delivery_out_stock}</span>
{/if}
{/if}
{/if}
</div>
</div>
{/if}

View File

@ -0,0 +1,89 @@
{block name='product_tabs'}
<div class="card product-tabs">
<div class="card-header">
<ul class="nav nav-tabs card-header-tabs" role="tablist">
{if $product.description}
<li class="nav-item">
<a
class="nav-link"
data-toggle="tab"
href="#description"
role="tab"
aria-controls="description"
>{l s='Description' d='Shop.Theme.Catalog'}</a>
</li>
{/if}
<li class="nav-item">
<a
class="nav-link"
data-toggle="tab"
href="#product-details"
role="tab"
aria-controls="product-details"
>{l s='Product Details' d='Shop.Theme.Catalog'}</a>
</li>
{if $product.attachments}
<li class="nav-item">
<a
class="nav-link"
data-toggle="tab"
href="#attachments"
role="tab"
aria-controls="attachments">{l s='Attachments' d='Shop.Theme.Catalog'}</a>
</li>
{/if}
{foreach from=$product.extraContent item=extra key=extraKey}
<li class="nav-item">
<a
class="nav-link"
data-toggle="tab"
href="#extra-{$extraKey}"
role="tab"
aria-controls="extra-{$extraKey}">{$extra.title}</a>
</li>
{/foreach}
</ul>
</div>
<div class="card-body">
<div class="tab-content" id="tab-content">
<div class="tab-pane fade in" id="description" role="tabpanel">
{block name='product_description'}
{cms_images_block webpEnabled=$webpEnabled}
<div class="product-description cms-content">{$product.description nofilter}</div>
{/cms_images_block}
{/block}
</div>
{block name='product_details'}
{include file='catalog/_partials/product-details.tpl'}
{/block}
{block name='product_attachments'}
{if $product.attachments}
<div class="tab-pane fade in" id="attachments" role="tabpanel">
<section class="product-attachments">
<p class="h5 text-uppercase">{l s='Download' d='Shop.Theme.Actions'}</p>
{foreach from=$product.attachments item=attachment}
<div class="attachment">
<h4><a href="{url entity='attachment' params=['id_attachment' => $attachment.id_attachment]}">{$attachment.name}</a></h4>
<p>{$attachment.description}</p>
<a href="{url entity='attachment' params=['id_attachment' => $attachment.id_attachment]}">
{l s='Download' d='Shop.Theme.Actions'} ({$attachment.file_size_formatted})
</a>
</div>
{/foreach}
</section>
</div>
{/if}
{/block}
{foreach from=$product.extraContent item=extra key=extraKey}
<div class="tab-pane fade in {$extra.attr.class} cms-content" id="extra-{$extraKey}" role="tabpanel" {foreach $extra.attr as $key => $val} {$key}="{$val}"{/foreach}>
{$extra.content nofilter}
</div>
{/foreach}
</div>
</div>
</div>
{/block}

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)
*}
<div class="product-variants js-product-variants mb-3">
{foreach from=$groups key=id_attribute_group item=group}
{if !empty($group.attributes)}
<div class="product-variants-item mb-3">
<p class="control-label h6 mb-2">{$group.name}</p>
{if $group.group_type == 'select'}
<select
class="custom-select"
id="group_{$id_attribute_group}"
data-product-attribute="{$id_attribute_group}"
name="group[{$id_attribute_group}]">
{foreach from=$group.attributes key=id_attribute item=group_attribute}
<option value="{$id_attribute}" title="{$group_attribute.name}"{if $group_attribute.selected} selected="selected"{/if}>{$group_attribute.name}</option>
{/foreach}
</select>
{elseif $group.group_type == 'color'}
<ul class="row mx-n1" id="group_{$id_attribute_group}">
{foreach from=$group.attributes key=id_attribute item=group_attribute}
<li class="col flex-grow-0 px-1 pb-2">
<div class="custom-control custom-radio-color">
<input class="custom-control-input" type="radio" data-product-attribute="{$id_attribute_group}" id="{$id_attribute_group}_{$id_attribute}" name="group[{$id_attribute_group}]" value="{$id_attribute}" title="{$group_attribute.name}"{if $group_attribute.selected} checked="checked"{/if}>
<label class="custom-control-label {if $group_attribute.html_color_code}custom-control-label-{if Tools::getBrightness($group_attribute.html_color_code) > 128}dark{else}bright{/if}{/if}" for="{$id_attribute_group}_{$id_attribute}" aria-label="{$group_attribute.name}">
<span
{if $group_attribute.texture}
class="custom-control-input-color" style="background-image: url({$group_attribute.texture})"
{elseif $group_attribute.html_color_code}
class="custom-control-input-color" style="background-color: {$group_attribute.html_color_code}"
{/if}
>
</span>
<span class="sr-only">
{$group_attribute.name}
</span>
</label>
</div>
</li>
{/foreach}
</ul>
{elseif $group.group_type == 'radio'}
<ul id="group_{$id_attribute_group}" class="row mx-n1">
{foreach from=$group.attributes key=id_attribute item=group_attribute}
<li class="input-container attribute-radio col-auto px-1 mb-2">
<label class="attribute-radio__label">
<input
class="input-radio attribute-radio__input"
type="radio"
data-product-attribute="{$id_attribute_group}"
name="group[{$id_attribute_group}]"
value="{$id_attribute}"
title="{$group_attribute.name}"
{if $group_attribute.selected}checked="checked"{/if}>
<span class="attribute-radio__text">{$group_attribute.name}</span>
</label>
</li>
{/foreach}
</ul>
{/if}
</div>
{/if}
{/foreach}
</div>

View File

@ -0,0 +1,34 @@
{**
* 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)
*}
<div class="products-list row {if !empty($cssClass)}{$cssClass}{/if}">
{foreach from=$products item="product" key="position"}
{if $listingDisplayType == 'grid'}
{include file="catalog/_partials/miniatures/product.tpl" product=$product type='listing' position=$position}
{elseif $listingDisplayType == 'list'}
{include file="catalog/_partials/miniatures/product-list.tpl" product=$product type='listing' position=$position}
{/if}
{/foreach}
</div>

View File

@ -0,0 +1,6 @@
{*
* Classic theme doesn't use this subtemplate, feel free to do whatever you need here.
* This template is generated at each ajax calls.
* See ProductListingFrontController::getAjaxProductSearchVariables()
*}
<div id="js-product-list-bottom"></div>

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)
*}
<div id="js-product-list-top" class="row products-selection align-items-center mb-4 mt-n2">
<div class="col-auto mt-2">
{block name='sort_by'}
{include file='catalog/_partials/sort-orders.tpl' sort_orders=$listing.sort_orders}
{/block}
</div>
<div class="col-auto mt-2">
{block name='sort_by'}
{include file='catalog/_partials/per-page.tpl'}
{/block}
</div>
<div class="col-sm-auto col-12 mt-2 d-md-none ml-auto">
{if !empty($listing.rendered_facets)}
<button data-target="#mobile_filters" data-toggle="modal" class="btn btn-secondary d-sm-inline-block d-none">
{l s='Filter' d='Shop.Theme.Actions'}
</button>
<button data-target="#mobile_filters" data-toggle="modal" class="btn btn-secondary btn-block d-sm-none">
{l s='Filter' d='Shop.Theme.Actions'}
</button>
{/if}
</div>
<div class="col-auto d-none d-lg-block ml-auto mt-2">
<ul class="display-toggle d-flex align-items-center mx-n1 m-0">
<li class="display-toggle__elem px-1">
<a href="#" data-toggle-listing data-display-type="grid" class="display-toggle__link d-inline-block {if $listingDisplayType == 'grid'}active{/if}">
<span class="material-icons display-toggle__icon">view_module</span>
</a>
</li>
<li class="display-toggle__elem px-1">
<a href="#" data-toggle-listing data-display-type="list" class="display-toggle__link d-inline-block {if $listingDisplayType == 'list'}active{/if}">
<span class="material-icons display-toggle__icon">view_list</span>
</a>
</li>
</ul>
</div>
</div>

View File

@ -0,0 +1,38 @@
{**
* 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)
*}
<div id="js-product-list">
{include file="catalog/_partials/productlist.tpl" products=$listing.products}
{block name='pagination'}
{include file='_partials/pagination.tpl' pagination=$listing.pagination}
{/block}
<div class="hidden-md-up text-xs-right up">
<a href="#header" class="btn btn-secondary">
{l s='Back to top' d='Shop.Theme.Actions'}
</a>
</div>
</div>

View File

@ -0,0 +1,74 @@
{**
* 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)
*}
<div id="quickview-modal-{$product.id}-{$product.id_product_attribute}" class="modal fade quickview in" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h1 class="h3 modal-title">{$product.name}</h1>
<button type="button" class="close" data-dismiss="modal" aria-label="{l s='Close' d='Shop.Theme.Global'}">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-lg-5 col-md-6 d-none d-md-block">
{block name='product_cover_thumbnails'}
{include file='catalog/_partials/product-cover-thumbnails.tpl'}
{/block}
</div>
<div class="col-lg-7 col-md-6">
{block name='product_prices'}
{include file='catalog/_partials/product-prices.tpl'}
{/block}
{block name='product_description_short'}
<div id="product-description-short">{$product.description_short nofilter}</div>
{/block}
{block name='product_buy'}
<div class="product-actions js-product-actions">
<form action="{$urls.pages.cart}" method="post" id="add-to-cart-or-refresh">
<input type="hidden" name="token" value="{$static_token}">
<input type="hidden" name="id_product" value="{$product.id}" id="product_page_product_id">
<input type="hidden" name="id_customization" value="{$product.id_customization}" id="product_customization_id" class="js-product-customization-id">
{block name='product_variants'}
{include file='catalog/_partials/product-variants.tpl'}
{/block}
{block name='product_add_to_cart'}
{include file='catalog/_partials/product-add-to-cart.tpl'}
{/block}
{* Input to refresh product HTML removed, block kept for compatibility with themes *}
{block name='product_refresh'}{/block}
</form>
</div>
{/block}
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,35 @@
{**
* 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)
*}
<select data-action="search-select" class="custom-select">
{foreach from=$listing.sort_orders item=sort_order}
<option
data-href="{$sort_order.url}"
{if $sort_order.current}selected{/if}
>
{$sort_order.label}
</option>
{/foreach}
</select>

View File

@ -0,0 +1,51 @@
{**
* 2007-2020 PrestaShop SA and Contributors
*
* 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 https://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2020 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
{if !empty($subcategories)}
{if (isset($display_subcategories) && $display_subcategories eq 1) || !isset($display_subcategories) }
<div id="subcategories" class="my-4">
<p class="subcategory-heading h3">{l s='Subcategories' d='Shop.Theme.Category'}</p>
<ul class="row">
{foreach from=$subcategories item=subcategory}
<div class="col-xl-3 col-lg-4 col-6 mb-3">
<div class="card h-100">
<div class="card-body">
<a class="stretched-link d-block text-center mb-3 pb-3 border-bottom" href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'html':'UTF-8'}" title="{$subcategory.name|escape:'html':'UTF-8'}" class="img">
<img
class="img-fluid"
height="{$subcategory.image.bySize.category_default.height}"
width="{$subcategory.image.bySize.category_default.width}"
src="{$subcategory.image.bySize.category_default.url}"
alt="{$subcategory.name|escape:'html':'UTF-8'}" loading="lazy">
</a>
<h5 class="card-title mb-0">{$subcategory.name|truncate:45:'...'|escape:'html':'UTF-8'}</h5>
</div>
</div>
</div>
{/foreach}
</ul>
</div>
{/if}
{/if}

View File

@ -0,0 +1,36 @@
{**
* 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)
*}
<div class="variant-links">
{foreach from=$variants item=variant}
<a href="{$variant.url}"
class="{$variant.type}"
title="{$variant.name}"
aria-label="{$variant.name}"
{if $variant.texture} style="background-image: url({$variant.texture})"
{elseif $variant.html_color_code} style="background-color: {$variant.html_color_code}" {/if}
></a>
{/foreach}
<span class="js-count count"></span>
</div>

View File

@ -0,0 +1,44 @@
{**
* 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)
*}
{extends file=$layout}
{block name='content'}
<section id="main">
{block name='brand_header'}
<h1>{l s='Brands' d='Shop.Theme.Catalog'}</h1>
{/block}
{block name='brand_miniature'}
<ul class="row">
{foreach from=$brands item=brand}
{include file='catalog/_partials/miniatures/brand.tpl' brand=$brand}
{/foreach}
</ul>
{/block}
</section>
{/block}

View File

@ -0,0 +1,5 @@
{*
* This file allows you to customize your best-sales page.
* You can safely remove it if you want it to appear exactly like all other product listing pages
*}
{extends file='catalog/listing/product-list.tpl'}

View File

@ -0,0 +1,33 @@
{**
* 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)
*}
{extends file='catalog/listing/product-list.tpl'}
{block name='product_list_header'}
{include file='catalog/_partials/category-header.tpl' listing=$listing category=$category}
{/block}
{block name='product_list_footer'}
{include file='catalog/_partials/category-footer.tpl' listing=$listing category=$category}
{/block}

View File

@ -0,0 +1,31 @@
{**
* 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)
*}
{extends file='catalog/listing/product-list.tpl'}
{block name='product_list_header'}
<h1>{l s='List of products by brand %brand_name%' sprintf=['%brand_name%' => $manufacturer.name] d='Shop.Theme.Catalog'}</h1>
<div id="manufacturer-short_description" class="cms-content">{$manufacturer.short_description nofilter}</div>
<div id="manufacturer-description" class="cms-content">{$manufacturer.description nofilter}</div>
{/block}

View File

@ -0,0 +1,5 @@
{*
* This file allows you to customize your new-product page.
* You can safely remove it if you want it to appear exactly like all other product listing pages
*}
{extends file='catalog/listing/product-list.tpl'}

View File

@ -0,0 +1,5 @@
{*
* This file allows you to customize your price-drop page.
* You can safely remove it if you want it to appear exactly like all other product listing pages
*}
{extends file='catalog/listing/product-list.tpl'}

View File

@ -0,0 +1,96 @@
{**
* 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)
*}
{extends file=$layout}
{block name='hook_header' append}
{hook h='displayListingStructuredData' listing=$listing}
{/block}
{block name='content'}
<section id="main">
{block name='product_list_header'}
<h1 id="js-product-list-header" class="h2">{$listing.label}</h1>
{/block}
{block name='subcategory_list'}
{*
SUBCATEGORIES DISABLED
{if isset($subcategories) && $subcategories|@count > 0}
{include file='catalog/_partials/subcategories.tpl' subcategories=$subcategories}
{/if} *}
{/block}
{hook h="displayHeaderCategory"}
<section id="products">
{if $listing.products|count}
<div>
{block name='product_list_top'}
{include file='catalog/_partials/products-top.tpl' listing=$listing}
{/block}
</div>
{block name='product_list_active_filters'}
<div id="" class="hidden-sm-down">
{$listing.rendered_active_filters nofilter}
</div>
{/block}
<div>
{block name='product_list'}
{include file='catalog/_partials/products.tpl' listing=$listing}
{/block}
</div>
{block name='product_list_bottom'}
{include file='catalog/_partials/products-bottom.tpl' listing=$listing}
{/block}
{else}
<div id="js-product-list-top"></div>
<div id="js-product-list">
{capture assign="errorContent"}
<h4>{l s='No products available yet' d='Shop.Theme.Catalog'}</h4>
<p>{l s='Stay tuned! More products will be shown here as they are added.' d='Shop.Theme.Catalog'}</p>
{/capture}
{include file='errors/not-found.tpl' errorContent=$errorContent}
</div>
{block name='product_list_bottom'}
{include file='catalog/_partials/products-bottom.tpl' listing=$listing}
{/block}
{/if}
</section>
{block name='product_list_footer'}{/block}
{hook h="displayFooterCategory"}
</section>
{/block}

View File

@ -0,0 +1,10 @@
{*
* This file allows you to customize your search page.
* You can safely remove it if you want it to appear exactly like all other product listing pages
*}
{extends file='catalog/listing/product-list.tpl'}
{block name="error_content"}
<h4 id="product-search-no-matches">{l s='No matches were found for your search' d='Shop.Theme.Catalog'}</h4>
<p>{l s='Please try other keywords to describe what you are looking for.' d='Shop.Theme.Catalog'}</p>
{/block}

View File

@ -0,0 +1,30 @@
{**
* 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)
*}
{extends file='catalog/listing/product-list.tpl'}
{block name='product_list_header'}
<h1>{l s='List of products by supplier %s' sprintf=[$supplier.name] d='Shop.Theme.Catalog'}</h1>
<div id="supplier-description">{$supplier.description nofilter}</div>
{/block}

View File

@ -0,0 +1,25 @@
{**
* 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)
*}
{extends file='catalog/brands.tpl'}

View File

@ -0,0 +1,162 @@
{**
* 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)
*}
{extends file=$layout}
{block name='head' append}
{if $product.show_price}
<meta property="product:pretax_price:amount" content="{$product.price_tax_exc}">
<meta property="product:pretax_price:currency" content="{$currency.iso_code}">
<meta property="product:price:amount" content="{$product.price_amount}">
<meta property="product:price:currency" content="{$currency.iso_code}">
{/if}
{if isset($product.weight) && ($product.weight != 0)}
<meta property="product:weight:value" content="{$product.weight}">
<meta property="product:weight:units" content="{$product.weight_unit}">
{/if}
{/block}
{block name='head' prepend}
{if $product.default_image}
<link rel="preload" href="{$product.default_image.bySize.large_default.url}" as="image">
{/if}
{/block}
{block name='content'}
<section id="main">
<div class="row product-container js-product-container">
<div class="col-md-5 mb-4">
{block name='page_content_container'}
{block name='page_content'}
<div class="position-relative">
{include file='catalog/_partials/product-flags.tpl'}
{block name='product_cover_thumbnails'}
{include file='catalog/_partials/product-cover-thumbnails.tpl'}
{/block}
</div>
{/block}
{/block}
</div>
<div class="col-md-7 mb-4">
{block name='page_header_container'}
{block name='page_header'}
<h1 class="h1">{block name='page_title'}{$product.name}{/block}</h1>
{/block}
{/block}
{block name='product_prices'}
{include file='catalog/_partials/product-prices.tpl'}
{/block}
<div class="product-information ">
{block name='product_description_short'}
<div id="product-description-short-{$product.id}" class="product-description cms-content">{$product.description_short nofilter}</div>
{/block}
{if $product.is_customizable && count($product.customizations.fields)}
{block name='product_customization'}
{include file="catalog/_partials/product-customization.tpl" customizations=$product.customizations}
{/block}
{/if}
<div class="product-actions js-product-actions">
{block name='product_buy'}
<form action="{$urls.pages.cart}" method="post" id="add-to-cart-or-refresh">
<input type="hidden" name="token" value="{$static_token}">
<input type="hidden" name="id_product" value="{$product.id}" id="product_page_product_id">
<input type="hidden" name="id_customization" value="{$product.id_customization}" id="product_customization_id" class="js-product-customization-id">
{block name='product_variants'}
{include file='catalog/_partials/product-variants.tpl'}
{/block}
{block name='product_pack'}
{if $packItems}
<section class="product-pack">
<p class="h4">{l s='This pack contains' d='Shop.Theme.Catalog'}</p>
<div class="card-group-vertical mb-4">
{foreach from=$packItems item="product_pack"}
{block name='product_miniature'}
{include file='catalog/_partials/miniatures/pack-product.tpl' product=$product_pack showPackProductsPrice=$product.show_price}
{/block}
{/foreach}
</div>
</section>
{/if}
{/block}
{block name='product_discounts'}
{include file='catalog/_partials/product-discounts.tpl'}
{/block}
{block name='product_add_to_cart'}
{include file='catalog/_partials/product-add-to-cart.tpl'}
{/block}
{block name='product_additional_info'}
{include file='catalog/_partials/product-additional-info.tpl'}
{/block}
{* Input to refresh product HTML removed, block kept for compatibility with themes *}
{block name='product_refresh'}{/block}
</form>
{/block}
</div>
{block name='hook_display_reassurance'}
{hook h='displayReassurance'}
{/block}
</div>
</div>
</div>
{include file="catalog/_partials/product-tabs.tpl"}
{block name='product_footer'}
{hook h='displayFooterProduct' product=$product category=$category}
{/block}
{block name='product_accessories'}
{if $accessories}
{include file='catalog/_partials/product-accessories.tpl' products=$accessories}
{/if}
{/block}
{block name='product_images_modal'}
{include file='catalog/_partials/product-images-modal.tpl'}
{/block}
{block name='page_footer_container'}
<footer class="page-footer">
{block name='page_footer'}
<!-- Footer content -->
{/block}
</footer>
{/block}
</section>
{/block}

View File

@ -0,0 +1,29 @@
{**
* 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)
*}
{extends file='catalog/brands.tpl'}
{block name='brand_header'}
<h1>{l s='Suppliers' d='Shop.Theme.Catalog'}</h1>
{/block}