{block name='productdetails-basket'}
    {et_isShopVersionAtLeast value="5.6.0-rc.2" assign='shopIsAtLeast56'}
    {if ($Artikel->inWarenkorbLegbar == 1 || $Artikel->nErscheinendesProdukt == 1) || $Artikel->Variationen}
        <div id="add-to-cart" class="product-buy{if $Artikel->nErscheinendesProdukt} coming_soon{/if}">
            {* "Coming Soon" Alert *}
            {if $Artikel->nErscheinendesProdukt}
                {block name='productdetails-basket-coming-soon'}
                    <div class="{if $Einstellungen.global.global_erscheinende_kaeuflich === 'Y'}alert alert-warning coming_soon{/if} text-center-util">
                        {lang key='productAvailableFrom' section='global'}: <strong>{$Artikel->Erscheinungsdatum_de}</strong>
                        {if $Einstellungen.global.global_erscheinende_kaeuflich === 'Y' && $Artikel->inWarenkorbLegbar == 1}
                            ({lang key='preorderPossible' section='global'})
                        {/if}
                    </div>
                {/block}
            {/if}

            {* Buy Button *}
            {if $Artikel->inWarenkorbLegbar == 1 || $Artikel->nIstVater && $Artikel->kVaterArtikel == 0}
                {if !$showMatrix}
                    {block name='productdetails-basket-form-inline'}
                        <div class="basket-form-inline et-validation-error-wrapper">
                            {if defined('FKT_ATTRIBUT_VOUCHER_FLEX') && $Artikel->Preise->fVKNetto == 0 && isset($Artikel->FunktionsAttribute[$smarty.const.FKT_ATTRIBUT_VOUCHER_FLEX])}
                                {block name='productdetails-basket-voucher-flex'}
                                    <div id="quantity-grp" class="choose_quantity input-group">
                                        <input class="form-control" type="number" step=".01" value="{if isset($voucherPrice)}{$voucherPrice}{/if}" name="{$smarty.const.FKT_ATTRIBUT_VOUCHER_FLEX}Value" required placeholder="{lang key='voucherFlexPlaceholder' section='productDetails' printf=$smarty.session.Waehrung->getName()}" />
                                        <div class="input-group-append">
                                            <div class="input-group-text form-control">
                                                {JTL\Session\Frontend::getCurrency()->getName()}
                                            </div>
                                        </div>
                                    </div>
                                    {block name='productdetails-basket-voucher-flex-add-to-cart'}
                                        <div class="et-voucher-flex-add-to-cart">
                                            {include file="widgets/base/button.tpl"
                                            variant="cart"
                                            type="submit"
                                            name="inWarenkorb"
                                            value="{lang key='addToCart'}"
                                            disabled="{($Artikel->bHasKonfig && !$isConfigCorrect|default:false || ($Artikel->nIstVater && $Artikel->kVaterArtikel == 0))}"
                                            classes="js-cfg-validate"
                                            label="
                                                    <span class=\"btn-basket-check\">
                                                        <span>
                                                            {if isset($kEditKonfig)}
                                                                {lang key='applyChanges'}
                                                            {else}
                                                                {lang key='addToCart'}
                                                            {/if}
                                                        </span>
                                                    </span>
                                                    <svg x=\"0px\" y=\"0px\" width=\"32px\" height=\"32px\" viewBox=\"0 0 32 32\" role=\"img\"
                                                        {if $shopIsAtLeast56} aria-label=\"{lang key='success' section='aria'}\"{/if}
                                                    >
                                                        <path stroke-dasharray=\"19.79 19.79\" stroke-dashoffset=\"19.79\" fill=\"none\" stroke=\"#FFFFFF\" stroke-width=\"2\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" d=\"M9,17l3.9,3.9c0.1,0.1,0.2,0.1,0.3,0L23,11\"/>
                                                    </svg>"
                                            }
                                        </div>
                                    {/block}
                                    {if $Artikel->hasUploads && isset($pdp_unique)}
                                        <input type="hidden" name="pdp_unique" value="{$pdp_unique}" />
                                    {/if}
                                    {if isset($kEditKonfig)}
                                        <input type="hidden" name="kEditKonfig" value="{$kEditKonfig}" />
                                    {/if}
                                    <input type="hidden" id="quantity" class="quantity" name="anzahl" value="1" />
                                {/block}
                            {else}
                                {block name='productdetails-basket-quantity'}
                                    <div id="quantity-grp" class="choose_quantity input-group">
                                        {block name='productdetails-basket-quantity-input'}
                                            {$pid = $Artikel->kVariKindArtikel|default:$Artikel->kArtikel}
                                            <input type="number"
                                                min="{if $Artikel->fMindestbestellmenge}{$Artikel->fMindestbestellmenge}{else}0{/if}"
                                                max="{$Artikel->FunktionsAttribute[$smarty.const.FKT_ATTRIBUT_MAXBESTELLMENGE]|default:''}"
                                                {if $Artikel->fAbnahmeintervall > 0}required{/if}
                                                step="{if $Artikel->cTeilbar === 'Y' && $Artikel->fAbnahmeintervall == 0}any{elseif $Artikel->fAbnahmeintervall > 0}{$Artikel->fAbnahmeintervall}{else}1{/if}"
                                                id="quantity" class="form-control quantity  {if $Artikel->cEinheit}has-unit{/if}" name="anzahl"
                                                aria-label="{lang key='quantity'}"
                                                value="{if $Artikel->fAbnahmeintervall > 0 || $Artikel->fMindestbestellmenge > 1}{if $Artikel->fMindestbestellmenge > $Artikel->fAbnahmeintervall}{$Artikel->fMindestbestellmenge}{else}{$Artikel->fAbnahmeintervall}{/if}{else}1{/if}"
                                                data-decimals="{getDecimalLength quantity=$Artikel->fAbnahmeintervall}"
                                                data-product-id="{$pid}"
                                            />
                                        {/block}

                                        {if $Artikel->cEinheit}
                                            {block name='productdetails-basket-unit-text'}
                                                <div class="input-group-append">
                                                    <div class="input-group-text unit form-control">
                                                        {$Artikel->cEinheit}
                                                    </div>
                                                </div>
                                            {/block}
                                        {/if}

                                        {block name='productdetails-basket-add-to-cart'}
                                            <div class="input-group-append">
                                                {include file="widgets/base/button.tpl"
                                                    variant="cart"
                                                    type="submit"
                                                    name="inWarenkorb"
                                                    value="{lang key='addToCart'}"
                                                    disabled="{($Artikel->bHasKonfig && !$isConfigCorrect|default:false || ($Artikel->nIstVater && $Artikel->kVaterArtikel == 0))}"
                                                    classes="js-cfg-validate"
                                                    label="
                                                        <span class=\"btn-basket-check\">
                                                            <span>
                                                                {if isset($kEditKonfig)}
                                                                    {lang key='applyChanges'}
                                                                {else}
                                                                    {lang key='addToCart'}
                                                                {/if}
                                                            </span>
                                                        </span>
                                                        <svg x=\"0px\" y=\"0px\" width=\"32px\" height=\"32px\" viewBox=\"0 0 32 32\" role=\"img\">
                                                            <path stroke-dasharray=\"19.79 19.79\" stroke-dashoffset=\"19.79\" fill=\"none\" stroke=\"#FFFFFF\" stroke-width=\"2\" stroke-linecap=\"square\" stroke-miterlimit=\"10\" d=\"M9,17l3.9,3.9c0.1,0.1,0.2,0.1,0.3,0L23,11\"/>
                                                        </svg>"
                                                }
                                                {if isset($kEditKonfig)}
                                                    <input type="hidden" name="kEditKonfig" value="{$kEditKonfig}"/>
                                                {/if}
                                            </div>
                                        {/block}
                                    </div>
                                {/block}
                            {/if}
                        </div>
                    {/block}
                {/if}
            {/if}

            {* Choose Variation Alert *}
            {if $Artikel->nIstVater && $Artikel->kVaterArtikel == 0}
                {block name='productdetails-basket-alert-choose'}
                    <div role="alert" class="alert alert-info choose-variations">
                        <div class="sr-only">x</div>
                        {et_getIcon key="alertInfo" assign='icon'}
                        {if $icon}<i class="{$icon}"></i>{/if}
                        {lang key='chooseVariations' section='messages'}
                    </div>
                {/block}
            {/if}

            {* Different Alert Messages Combined *}
            {if $Artikel->inWarenkorbLegbar == 1
            && ($Artikel->fMindestbestellmenge > 1
                || ($Artikel->fMindestbestellmenge > 0 && $Artikel->cTeilbar === 'Y')
                || ($Artikel->fAbnahmeintervall > 0 && $Einstellungen.artikeldetails.artikeldetails_artikelintervall_anzeigen === 'Y')
                || $Artikel->cTeilbar === 'Y'
                || $Artikel->FunktionsAttribute[$smarty.const.FKT_ATTRIBUT_MAXBESTELLMENGE]|default:0 > 0)}
                {block name='productdetails-basket-alert-purchase-info'}
                    <div role="alert" class="alert alert-info purchase-info">
                        <div class="sr-only">x</div>
                        {et_getIcon key="alertInfo" assign='icon'}

                        {assign var=units value=$Artikel->cEinheit}
                        {if empty($Artikel->cEinheit) || $Artikel->cEinheit|@count_characters == 0}
                            {lang key='units' section='productDetails' assign='units'}
                        {/if}

                        {if $Artikel->fMindestbestellmenge > 1 || ($Artikel->fMindestbestellmenge > 0 && $Artikel->cTeilbar === 'Y')}
                            {lang key='minimumPurchase' section='productDetails' assign='minimumPurchase'}
                            <p>{if $icon}<i class="{$icon}"></i>{/if} {$minimumPurchase|replace:"%d":$Artikel->fMindestbestellmenge|replace:"%s":$units}</p>
                        {/if}

                        {if $Artikel->fAbnahmeintervall > 0}
                            {lang key='takeHeedOfInterval' section='productDetails' assign='takeHeedOfInterval'}
                            <p id="intervall-notice" {if $Einstellungen.artikeldetails.artikeldetails_artikelintervall_anzeigen !== 'Y'}class="d-none"{/if}>{if $icon}<i class="{$icon}"></i>{/if} {$takeHeedOfInterval|replace:"%d":$Artikel->fAbnahmeintervall|replace:"%s":$units}</p>
                        {/if}

                        {if $Artikel->cTeilbar === 'Y'}
                            <p>{lang key='integralQuantities' section='productDetails'}</p>
                        {/if}
                        {if $Artikel->FunktionsAttribute[$smarty.const.FKT_ATTRIBUT_MAXBESTELLMENGE]|default:0 > 0}
                            {lang key='maximalPurchase' section='productDetails' assign='maximalPurchase'}
                            <p>{if $icon}<i class="{$icon}"></i>{/if} {$maximalPurchase|replace:"%d":$Artikel->FunktionsAttribute[$smarty.const.FKT_ATTRIBUT_MAXBESTELLMENGE]|replace:"%s":$units}</p>
                        {/if}
                    </div>
                {/block}
            {/if}
        </div>
    {/if}
{/block}
