Files
kupshop/web/templates/elnino/product/product.variations.tpl
2025-08-02 16:30:27 +02:00

312 lines
14 KiB
Smarty

{* @compiler:inline-only *}
{if !$body.product->isold()}
{$sorted_products = $body.products|sort_variations}
{$campaigns = getCampaigns()}
{function variationSubtitle}
{if $product.descr}
{$product.descr}
{if $product.set}<br>{/if}
{else}
{* Print non-unique parameters *}
{$uniqueParameters = []}
{foreach $product.param as $id_param => $parameter}
{if $body.product.param_list[$id_param].unique and $param != '' and !in_array($id_param,[18,28,29,37,38,39,80,81])}
{append 'uniqueParameters' $parameter}
{/if}
{/foreach}
{foreach $uniqueParameters as $parameter}
{$parameter.name}:
{foreach $parameter.values as $value}
{$value.value}{if !$value@last},{/if}
{/foreach}
{if !$parameter@last or $product.set}<br>{/if}
{/foreach}
{/if}
{if $product.set}
{$product.set}
{/if}
{/function}
{function printVariants}
{$sorted_photos = $product.photos|sort_photos:['Y', 'K', 'V', 'G']}
{$photos_count = 1} {* hlavni fotka *}
{if $product.longDescr or $body.model.descr or $body.serie.descr}
{$descr_exists=true scope=parent}
{/if}
{$product_name = $product.title|replace:$product.model_short_title:''|replace:$product.model_section:''|trim}
{if $product.set}{$product_name = "{t}Kazeta{/t}"}{/if}
{product_can_buy product=$product assign='canBuy'}
<div class="variations-row {if !$canBuy}soldout{/if}{if $product.set} variations-row-set{/if}"
data-variation-id="{$product.id}"
data-code="{$product.code}"
data-description="{$product.longDescr|default:$body.model.descr|default:$body.serie.descr|markdown2html}"
{if $ctrl.logged and {get_product_info id=$product.id type='is_favorite'}}
data-favorite="true"
{/if}
data-title="{if !$product.set}{$product.descr|default:$product.title|replace:$product.model_short_title:''}{else}{t}Kazeta{/t}{/if}"
{* je to kazeta, má složení *}
{if $product.set}
data-set="{$product.set}"
{/if}
{block "data-rwd-title"}
data-rwd-title="{t product_name=$product_name product_price=$product.price_array|format_price}{product_name} za {product_price}{/t}"
{/block}
data-image="{get_photo photo=$sorted_photos[0] size=3}"
data-main-image="{get_photo photo=$sorted_photos[0] size=0}"
data-image-title="{$product.title}"
{capture assign=gpsrTabContent}{strip}
{gpsr_tab_content product=$product}
{/strip}{/capture}
data-gpsr-tab-content="{htmlspecialchars($gpsrTabContent, ENT_QUOTES, 'UTF-8')}"
{if $product.cotyVideos[361]}
data-360="{$product.cotyVideos[361].path}"
{else}
{foreach $sorted_photos as $photo}
{if $photo.show_in_lead == 'G'}
data-360="{path('kupshop_elnino_photo_photo360', ['id' => $photo.id])}"
{/if}
{/foreach}
{/if}
{if $product.cotyVideos[362]}
data-coty-video="{$product.cotyVideos[362].path}"
{/if}
data-other-photos="{strip}
{foreach $sorted_photos as $photo}
{if in_array($photo.show_in_lead, ['K', 'V'])}
<div class='col-xxs-6' {if $photos_count > 2}style='display: none;'{/if}>
<a href='{get_photo photo=$photo size=0}' class='img-overlay' title='{$product.title}' data-rel='gallery'>
<img src='{get_photo photo=$photo size=1}' alt='{$product.title}' width='{$cfg.Photo.types.product_gallery.size[0]}'
height='{$cfg.Photo.types.product_gallery.size[1]}' class='img-responsive'>
</a>
</div>
{$photos_count = $photos_count + 1}
{/if}
{/foreach}
{/strip}"
{if $photos_count > 1}
data-photos-count="{$photos_count}"
{/if}
{* není skladem, zobrazuje se po rozkliknutí *}
{if $hidden == true}style="display: none;" data-var-hidden{/if}>
<span class="variation-check"></span>
<div class="variation-title">
{block "variation-title"}
<p class="title">
{if $product.size and !$product.set}{$product.size}{/if}
{if $product.campaign_codes.S}{t}Kazeta{/t}{/if}
{if $product.shade != ''}{t}odstín{/t}: {$product.shade} {/if}
{if $product.name2 != ''}{$product.name2}{/if}
{if $product.damage}{$product.damage}{/if}
{if $product.campaign_codes.T}
{t}Tester{/t}
<span class="fc icons_info"
data-tooltip="{t escape=false}Tester parfému má identické složení jako parfém v běžném provedení a slouží k testování a odzkoušení vůně. Jedinými a podstatnými odlišujícími rozdíly jsou:<br>
<ul>
<li>Cena - ve většině případů nižší.</li>
<li>Vůně - je identická jako standardní parfém.</li>
<li>Balení - je provedeno u většiny v kartónových, v barevně nezdobených krabičkách, někdy může být i bez krabičky.</li>
<li>Flakón - je shodný se standardním provedením, ale může být i odlišný, např. velikostí, zobrazením některých prvků, u některých není dodávána vrchní krytka rozprašovače.</li>
</ul>
Testery parfémů nejsou určeny k osobní spotřebě, ale pouze pro prodej za účelem zkoušení vůně při prodeji parfémů v provozovnách kupujících - viz obchodní podmínky.{/t}"
data-flag="tooltip-tester"></span>
{/if}
{if $product.campaign_codes.O}
{t}Odstřik{/t}
{/if}
{if $product.campaign_codes.V}
{t}Vzorek{/t}
{/if}
{$product.id_complement_type}
</p>
<p class="variation-subtitle">
{if $product.set}{$product.set}{/if}
</p>
{/block}
</div>
{if $product.set}
<p class="variation-subtitle variation-subtitle-resp">
{$product.set}
</p>
{/if}
<div class="variation-price">
{block "variation-price"}
{if $canBuy}
{$display_discount = $product.display_discount->asFloat()}
{$product_discount = $product.discount->asFloat()}
{if $dbcfg.increase_discount >= 1}
{$display_discount = $display_discount + $dbcfg.increase_discount}
{/if}
{if $display_discount > 0 or $product_discount > 0}
{$discount = (1 - $display_discount / 100) * (1 - $product_discount / 100)} {* mame-li 20% slevu, discount bude 0.8 *}
{$discountSum = ((1 - $discount) * 100)|round} {* prepocet slevy na % *}
{/if}
{if $discountSum >= 3 and $product.producer.data.hidePriceLineThrough != "Y"}
{$beforeDiscount = ($product.price_array.value_with_vat->asFloat() / $discount)}
{if $beforeDiscount|format_price == $product.price_array|format_price}
<span class="price-common">{$beforeDiscount|format_price:"ceil=no"}</span>
{else}
<span class="price-common">{$beforeDiscount|format_price}</span>
{/if}
{/if}
<p class="price-final">{$product.price_array.value_with_vat|format_price}</p>
{/if}
<p class="delivery delivery-{if $canBuy}0{else}{$product.deliveryTime}{/if}">
{if $canBuy}
{if $product.inStore > 3}
{t}skladem{/t}
{elseif $product.inStore > 0}
{t}skladem 1-3 kusy{/t}
{elseif $product.inStore <= 0 && $product.in_store_suppliers > 0 && $product.in_store_suppliers < 4}
{t}skladem 1-3 kusy{/t}{* u dodavatele *}
{else}
{$product.deliveryTimeText}
{/if}
{else}
{$product.deliveryTimeText}
{/if}
</p>
{/block}
</div>
{if $canBuy}
<div class="variation-flags">
{if $canBuy and !$product->isVirtual()}
{if $product.campaign_codes.N}
<span class="flag flag-new" title="{$campaigns['N'].singular}"><span class="fc icons_star-empty"></span></span>
{/if}
{if $product.campaign_codes.GC}
<span class="flag flag-gift" title="{$campaigns['GC'].singular}"><span class="fc icons_gift"></span></span>
{/if}
{if $product.campaign_codes.Z or ($free_delivery and $product.price_array.value_with_vat > $free_delivery)}
<span class="flag flag-delivery" title="{t}Doprava zdarma{/t}"><span class="fc icons_delivery"></span></span>
{/if}
{foreach $product.campaign_codes as $flag}
{if $flag.catalog_class}
<span class="flag flag-{$flag.catalog_class}" title="{$flag.singular}">{$flag.singular}</span>
{/if}
{/foreach}
{if $discountSum >= 3 and $product.producer.data.hidePriceLineThrough != "Y"}
<span class="flag flag-discount {if $dbcfg.black_friday == true and $product.campaign_codes.BF}flag-blackfriday{/if}">-{$discountSum}%</span>
{/if}
{/if}
{if $dbcfg.special_event == true and $canBuy and (getAdminUser() or $cfg.special.public)}
{foreach $product.sections as $section}
{if $section.parent.parent.id == $cfg.special.catId or $section.parent.id == $cfg.special.catId}
<span title="{$cfg.special.name}" class="special-product-flag"></span>
{break}
{/if}
{/foreach}
{elseif $dbcfg.valentine == true}
{foreach $product.sections as $section}
{if $section.parent.parent.id == $cfg.special.valentine.catId or $section.parent.id == $cfg.special.valentine.catId}
<span title="{t}Tip na Valentýna{/t}" class="special-product-flag flag-valentine"></span>
{break}
{/if}
{/foreach}
{/if}
{block "variation-flags-additional"}{/block}
</div>
<form action="{url s=cart}" method="get" class="variation-buy" data-buy-form>
<input type="hidden" name="act" value="add">
<input type="hidden" name="redir" value="1">
<input type="hidden" name="IDproduct" value="{$product.id}">
<input type="hidden" name="No" value="1">
<button type="submit" class="btn btn-ctr btn-insert"{if $dbcfg.analytics.google_tag_manager.gtm_dl_version == '2'} data-tracking-click='{get_gtm_data encode=true type='ecommerce' method='ClickAddToCart' data=['product' => $product, 'listType' => $listType, 'listId' => $listId]}'{/if}>{t}Do košíku{/t}<span class="rwd-title" data-rwd-title></span></button>
{include 'product/product.add-to-favorite.tpl'}
</form>
{else}
<div class="variation-watch" data-reload="product-watchdog-{$product.id}">
{get_product_info type='is_watchdog' product=$product assign='is_watchdog'}
{if !$is_watchdog}
<a class="btn btn-primary btn-watchdog"{if !$ctrl.logged} data-focus-opener="watchdog-focus" data-product-id="{$product.id}"{/if}
href="{url s=watchdog IDp=$product.id acn='add'}" rel="nofollow" data-product-url="{url s=product IDproduct=$product.id}"
data-tracking-click="{['event'=>'watchDog','id'=>$product.id]|json_encode}" onclick="window.wpj.tracking.handleEvent(event,'click')">
{t}Nastavit hlídání{/t}
</a>
{else}
<a class="btn btn-primary btn-watchdog active delete" href="{url s=watchdog IDp=$product.id acn='delete'}" rel="nofollow" data-product-url="{url s=product IDproduct=$product.id}">
{t}Zrušit hlídání{/t}
</a>
{/if}
{include 'product/product.add-to-favorite.tpl'}
</div>
{/if}
</div>
{/function}
{if $sorted_products|count}
<div class="product-variations" data-tooltip-wrapper data-variations="variations">
{$notinstoreExists = false}
{$instoreExists = false}
{foreach $sorted_products as $product}
{if ($product.inStore > 0 || $product->in_store_suppliers > 0) and !$product->isold()}
{$instoreExists = true}
{printVariants}
{elseif !$product->isold()}
{$notinstoreExists = true}
{/if}
{/foreach}
{if $notinstoreExists}
{foreach $sorted_products as $product}
{if $product.inStore == 0 && $product->in_store_suppliers == 0 && !$product->isold()}
{printVariants hidden=true}
{/if}
{/foreach}
{/if}
</div>
{* tlačítko zobraz jen když jsou produkty skladem a zároveň NEskladem *}
{if $notinstoreExists and $instoreExists}
<div class="more-vars">
<button type="button" class="btn btn-link" data-notinstore-opener data-show-text="{t}Zobrazit vyprodané varianty{/t}" data-hide-text="{t}Skrýt vyprodané varianty{/t}">{t}Zobrazit vyprodané varianty{/t}</button>
</div>
{/if}
{/if}
{else}
<p>{t}Toto zboží je bohužel aktuálně nedostupné{/t}</p>
{/if}