{block name='basket-cart-items'}
    {$lazyLoadImages=$lazyLoadImages|default:true}
    {et_isShopVersionAtLeast value="5.2.0-beta" assign='shopIsAtLeast52'}
    {et_getGlobalSettings assign="etGlobalSettings"}
    {$additionalProductLink=$additionalProductLink|default:'never'}
    {$additionalProductLinkAttribute=$additionalProductLinkAttribute|default:''}
    {$additionalProductLinkLabel=$additionalProductLinkLabel|default:[]}
    {$characteristicsLimit=$characteristicsLimit|default:[]}
    {$characteristicValuesLimit=$characteristicValuesLimit|default:[]}
    {$showVatRatePerPosition = $showVatRatePerPosition|default:''}
    <input type="submit" name="fake" class="form-control d-none" value="fake submit" />

    {* Set number of cols depending on which information should be displayed *}
    {block name='basket-cart-items-cols'}
        {if $Einstellungen.kaufabwicklung.warenkorb_produktbilder_anzeigen === 'Y'}
            {$itemInfoCols=4}
            {$cols=6}
        {else}
            {$itemInfoCols=7}
            {$cols=6}
        {/if}
        {if $Einstellungen.kaufabwicklung.bestellvorgang_einzelpreise_anzeigen !== 'Y'}
            {$itemInfoCols=$itemInfoCols+2}
        {/if}
    {/block}

    {block name='basket-cart-items-order-items'}
        {* "Table" Header *}
        {block name='basket-cart-items-order-items-header'}
            {* Not Used in default ET360 but maybe in Child Themes *}
        {/block}

        {* Cart Items *}
        {$uploadSchemaIndex = 0}
        {block name='basket-cart-items-order-items-main'}
        {foreach JTL\Session\Frontend::getCart()->PositionenArr as $oPosition}
            {if !$oPosition->istKonfigKind()}
                <div class="row cart-items-body type-{$oPosition->nPosTyp}">
                    {* Product image *}
                    {block name='basket-cart-items-image'}
                        {if $Einstellungen.kaufabwicklung.warenkorb_produktbilder_anzeigen === 'Y'}
                            <div class="col col-3 d-none d-lg-block cart-items-image">
                                {if !empty($oPosition->Artikel->cVorschaubildURL)}
                                    <a href="{$oPosition->Artikel->cURLFull}" title="{$oPosition->cName|trans|escape:'html'}">
                                        {image lazy=$lazyLoadImages
                                            webp=true
                                            src=$oPosition->Artikel->cVorschaubildURL
                                            alt=$oPosition->cName|trans|escape:'html'
                                            fluid-grow=true
                                        }
                                    </a>
                                {/if}
                            </div>
                        {/if}
                    {/block}

                    {* Main Content, ie product name, product data, etc. *}
                    {block name='basket-cart-items-items-main-content'}
                        {block name='basket-cart-items-product'}
                        <div class="{block name='basket-cart-items-product-classes'}col col-{$cols} col-lg-{$itemInfoCols}{/block}">
                            {if $oPosition->nPosTyp == $smarty.const.C_WARENKORBPOS_TYP_ARTIKEL || $oPosition->nPosTyp == $smarty.const.C_WARENKORBPOS_TYP_GRATISGESCHENK}
                                {* Product Name *}
                                {block name='basket-cart-items-product-link'}
                                    <a class="cart-items-name link-discreet" href="{$oPosition->Artikel->cURLFull}" title="{$oPosition->cName|trans|escape:'html'}">{$oPosition->cName|trans}</a>
                                {/block}

                                {* Product Rating *}
                                {block name='basket-cart-items-product-include-rating'}
                                    {if $Einstellungen.bewertung.bewertung_anzeigen === 'Y'}
                                        {* We have to call holeBewertungDurchschnitt() because the average rating is not available here... *}
                                        {assign var="oPosAr" value=$oPosition->Artikel->holeBewertungDurchschnitt()}
                                        {include file='productdetails/rating.tpl' stars=$oPosAr->fDurchschnittsBewertung link=$oPosAr->cURLFull}
                                    {/if}
                                {/block}

                                {* Product Data *}
                                {block name='basket-cart-items-product-data'}
                                    <ul class="list-unstyled cart-items-product-data">
                                        {* Short Description *}
                                        {if $Einstellungen.kaufabwicklung.bestellvorgang_artikelkurzbeschreibung == 'Y' && !empty($oPosition->Artikel->cKurzBeschreibung)}
                                            {block name='basket-cart-items-product-data-short-desc'}
                                                <li class="shortdescription">{$oPosition->Artikel->cKurzBeschreibung}</li>
                                            {/block}
                                        {/if}

                                        {* SKU *}
                                        {block name='basket-cart-items-product-data-sku'}
                                            <li class="sku"><span class="et-product-data-label">{lang key='productNo'}:</span> {$oPosition->Artikel->cArtNr}</li>
                                        {/block}

                                        {* MHD *}
                                        {if (!isset($Einstellungen.artikeldetails.show_shelf_life_expiration_date) || $Einstellungen.artikeldetails.show_shelf_life_expiration_date === 'Y') && isset($oPosition->Artikel->dMHD) && isset($oPosition->Artikel->dMHD_de) && $oPosition->Artikel->dMHD_de !== null}
                                            {block name='basket-cart-items-product-data-mhd'}
                                                <li title="{lang key='productMHDTool'}" class="best-before">
                                                    <span class="et-product-data-label">{lang key='productMHD'}:</span> {$oPosition->Artikel->dMHD_de}
                                                </li>
                                            {/block}
                                        {/if}

                                        {* Base Price / VPE *}
                                        {if $oPosition->Artikel->cLocalizedVPE
                                            && $oPosition->Artikel->cVPE !== 'N'
                                            && $oPosition->nPosTyp != $smarty.const.C_WARENKORBPOS_TYP_GRATISGESCHENK
                                        }
                                            {block name='basket-cart-items-product-data-base-price'}
                                                <li class="baseprice"><span class="et-product-data-label">{lang key='basePrice'}:</span> {$oPosition->Artikel->cLocalizedVPE[$NettoPreise]}</li>
                                            {/block}
                                        {/if}

                                        {* Variation *}
                                        {if $Einstellungen.kaufabwicklung.warenkorb_varianten_varikombi_anzeigen === 'Y' && isset($oPosition->WarenkorbPosEigenschaftArr) && !empty($oPosition->WarenkorbPosEigenschaftArr)}
                                            {foreach $oPosition->WarenkorbPosEigenschaftArr as $Variation}
                                                {block name='basket-cart-items-product-data-variations'}
                                                    <li class="variation">
                                                        <span class="et-product-data-label">{$Variation->cEigenschaftName|trans}:</span> {$Variation->cEigenschaftWertName|trans}
                                                    </li>
                                                {/block}
                                            {/foreach}
                                        {/if}

                                        {* Delivery Status *}
                                        {if $Einstellungen.kaufabwicklung.bestellvorgang_lieferstatus_anzeigen === 'Y' && $oPosition->cLieferstatus|trans}
                                            {block name='basket-cart-items-product-data-delivery-status'}
                                                <li class="delivery-status"><span class="et-product-data-label">{lang key='deliveryStatus'}:</span> {$oPosition->cLieferstatus|trans}</li>
                                            {/block}
                                        {/if}

                                        {* Additional Notes *}
                                        {if !empty($oPosition->cHinweis)}
                                            {block name='basket-cart-items-product-data-notice'}
                                                <li class="text-info notice">{$oPosition->cHinweis}</li>
                                            {/block}
                                        {/if}

                                        {* Manufacturers *}
                                        {if $oPosition->Artikel->cHersteller && $Einstellungen.artikeldetails.artikeldetails_hersteller_anzeigen != "N"}
                                            {block name='basket-cart-items-product-data-manufacturers'}
                                                <li class="manufacturer">
                                                    <span class="et-product-data-label">{lang key='manufacturer' section='productDetails'}</span>:
                                                    <span class="values">
                                                    {$oPosition->Artikel->cHersteller}
                                                    </span>
                                                </li>
                                            {/block}
                                        {/if}

                                        {* Characteristics  *}
                                        {if $Einstellungen.kaufabwicklung.bestellvorgang_artikelmerkmale == 'Y' && !empty($oPosition->Artikel->oMerkmale_arr)}
                                            {if $shopIsAtLeast52}
                                                {foreach $oPosition->Artikel->oMerkmale_arr as $characteristic}
                                                    {$hiddenXs = isset($characteristicsLimit['xs']) && $characteristicsLimit['xs'] > -1 && $characteristic@iteration > $characteristicsLimit['xs']}
                                                    {$hiddenSm = isset($characteristicsLimit['sm']) && $characteristicsLimit['sm'] > -1 && $characteristic@iteration > $characteristicsLimit['sm']}
                                                    {$hiddenMd = isset($characteristicsLimit['md']) && $characteristicsLimit['md'] > -1 && $characteristic@iteration > $characteristicsLimit['md']}
                                                    {$hiddenLg = isset($characteristicsLimit['lg']) && $characteristicsLimit['lg'] > -1 && $characteristic@iteration > $characteristicsLimit['lg']}
                                                    {$hiddenXl = isset($characteristicsLimit['xl']) && $characteristicsLimit['xl'] > -1 && $characteristic@iteration > $characteristicsLimit['xl']}
                                                    {block name='basket-cart-items-product-data-attributes'}
                                                        <li class="characteristic{if $hiddenXs} et-hidden-xs-only{/if}{if $hiddenSm} et-hidden-sm-only{/if}{if $hiddenMd} et-hidden-md-only{/if}{if $hiddenLg} et-hidden-lg-only{/if}{if $hiddenXl} et-hidden-xl-only{/if}">
                                                            <span class="et-product-data-label">{$characteristic->getName()|escape:'html'}</span>:
                                                            <span class="values">
                                                                {strip}
                                                                    {foreach $characteristic->getCharacteristicValues() as $characteristicValue}
                                                                        {$hiddenXs = isset($characteristicValuesLimit['xs']) && $characteristicValuesLimit['xs'] > -1 && $characteristicValue@iteration > $characteristicValuesLimit['xs']}
                                                                        {$hiddenSm = isset($characteristicValuesLimit['sm']) && $characteristicValuesLimit['sm'] > -1 && $characteristicValue@iteration > $characteristicValuesLimit['sm']}
                                                                        {$hiddenMd = isset($characteristicValuesLimit['md']) && $characteristicValuesLimit['md'] > -1 && $characteristicValue@iteration > $characteristicValuesLimit['md']}
                                                                        {$hiddenLg = isset($characteristicValuesLimit['lg']) && $characteristicValuesLimit['lg'] > -1 && $characteristicValue@iteration > $characteristicValuesLimit['lg']}
                                                                        {$hiddenXl = isset($characteristicValuesLimit['xl']) && $characteristicValuesLimit['xl'] > -1 && $characteristicValue@iteration > $characteristicValuesLimit['xl']}
                                                                        <span class="{if $hiddenXs} et-hidden-xs-only{/if}{if $hiddenSm} et-hidden-sm-only{/if}{if $hiddenMd} et-hidden-md-only{/if}{if $hiddenLg} et-hidden-lg-only{/if}{if $hiddenXl} et-hidden-xl-only{/if}">
                                                                            {if !$characteristicValue@first}, {/if}
                                                                            {$characteristicValue->getValue()}
                                                                        </span>
                                                                        {foreach ['xs', 'sm', 'md', 'lg', 'xl'] as $breakpoint}
                                                                            {if isset($characteristicValuesLimit[$breakpoint]) && $characteristicValuesLimit[$breakpoint] !== 0 && $characteristicValuesLimit[$breakpoint] > -1 && $characteristicValue@iteration === $characteristicValuesLimit[$breakpoint] + 1}
                                                                                <span class="et-visible-{$breakpoint}-only">, &hellip;</span>
                                                                            {/if}
                                                                        {/foreach}
                                                                    {/foreach}
                                                                {/strip}
                                                            </span>
                                                        </li>
                                                        {foreach ['xs', 'sm', 'md', 'lg', 'xl'] as $breakpoint}
                                                            {if isset($characteristicsLimit[$breakpoint]) && $characteristicsLimit[$breakpoint] !== 0 && $characteristicsLimit[$breakpoint] > -1 && $characteristic@iteration === $characteristicsLimit[$breakpoint] + 1}
                                                                <li class="et-visible-{$breakpoint}-only">&hellip;</li>
                                                            {/if}
                                                        {/foreach}
                                                    {/block}
                                                {/foreach}
                                            {else}
                                                {foreach $oPosition->Artikel->oMerkmale_arr as $oMerkmale_arr}
                                                    {block name='basket-cart-items-product-data-attributes'}
                                                        {$hiddenXs = isset($characteristicsLimit['xs']) && $characteristicsLimit['xs'] > -1 && $oMerkmale_arr@iteration > $characteristicsLimit['xs']}
                                                        {$hiddenSm = isset($characteristicsLimit['sm']) && $characteristicsLimit['sm'] > -1 && $oMerkmale_arr@iteration > $characteristicsLimit['sm']}
                                                        {$hiddenMd = isset($characteristicsLimit['md']) && $characteristicsLimit['md'] > -1 && $oMerkmale_arr@iteration > $characteristicsLimit['md']}
                                                        {$hiddenLg = isset($characteristicsLimit['lg']) && $characteristicsLimit['lg'] > -1 && $oMerkmale_arr@iteration > $characteristicsLimit['lg']}
                                                        {$hiddenXl = isset($characteristicsLimit['xl']) && $characteristicsLimit['xl'] > -1 && $oMerkmale_arr@iteration > $characteristicsLimit['xl']}
                                                        <li class="characteristic{if $hiddenXs} et-hidden-xs-only{/if}{if $hiddenSm} et-hidden-sm-only{/if}{if $hiddenMd} et-hidden-md-only{/if}{if $hiddenLg} et-hidden-lg-only{/if}{if $hiddenXl} et-hidden-xl-only{/if}">
                                                            <span class="et-product-data-label">{$oMerkmale_arr->cName|escape:'html'}</span>:
                                                            <span class="values">
                                                                {strip}
                                                                    {foreach $oMerkmale_arr->oMerkmalWert_arr as $oWert}
                                                                        {$hiddenXs = isset($characteristicValuesLimit['xs']) && $characteristicValuesLimit['xs'] > -1 && $oWert@iteration > $characteristicValuesLimit['xs']}
                                                                        {$hiddenSm = isset($characteristicValuesLimit['sm']) && $characteristicValuesLimit['sm'] > -1 && $oWert@iteration > $characteristicValuesLimit['sm']}
                                                                        {$hiddenMd = isset($characteristicValuesLimit['md']) && $characteristicValuesLimit['md'] > -1 && $oWert@iteration > $characteristicValuesLimit['md']}
                                                                        {$hiddenLg = isset($characteristicValuesLimit['lg']) && $characteristicValuesLimit['lg'] > -1 && $oWert@iteration > $characteristicValuesLimit['lg']}
                                                                        {$hiddenXl = isset($characteristicValuesLimit['xl']) && $characteristicValuesLimit['xl'] > -1 && $oWert@iteration > $characteristicValuesLimit['xl']}
                                                                        <span class="{if $hiddenXs} et-hidden-xs-only{/if}{if $hiddenSm} et-hidden-sm-only{/if}{if $hiddenMd} et-hidden-md-only{/if}{if $hiddenLg} et-hidden-lg-only{/if}{if $hiddenXl} et-hidden-xl-only{/if}">
                                                                            {if !$oWert@first}, {/if}
                                                                            {$oWert->cWert}
                                                                        </span>
                                                                        {foreach ['xs', 'sm', 'md', 'lg', 'xl'] as $breakpoint}
                                                                            {if isset($characteristicValuesLimit[$breakpoint]) && $characteristicValuesLimit[$breakpoint] !== 0 && $characteristicValuesLimit[$breakpoint] > -1 && $oWert@iteration === $characteristicValuesLimit[$breakpoint] + 1}
                                                                                <span class="et-visible-{$breakpoint}-only">, &hellip;</span>
                                                                            {/if}
                                                                        {/foreach}
                                                                    {/foreach}
                                                                {/strip}
                                                            </span>
                                                        </li>
                                                        {foreach ['xs', 'sm', 'md', 'lg', 'xl'] as $breakpoint}
                                                            {if isset($characteristicsLimit[$breakpoint]) && $characteristicsLimit[$breakpoint] !== 0 && $characteristicsLimit[$breakpoint] > -1 && $oMerkmale_arr@iteration === $characteristicsLimit[$breakpoint] + 1}
                                                                <li class="et-visible-{$breakpoint}-only">&hellip;</li>
                                                            {/if}
                                                        {/foreach}
                                                    {/block}
                                                {/foreach}
                                            {/if}
                                        {/if}

                                        {* Attributes *}
                                        {if $Einstellungen.kaufabwicklung.bestellvorgang_artikelattribute == 'Y' && !empty($oPosition->Artikel->Attribute)}
                                            {foreach $oPosition->Artikel->Attribute as $oAttribute_arr}
                                                {block name='basket-cart-items-product-data-attributes-attributes'}
                                                    <li class="attribute">
                                                        <span class="et-product-data-label">{$oAttribute_arr->cName}</span>:
                                                        <span class="values">
                                                            {$oAttribute_arr->cWert}
                                                        </span>
                                                    </li>
                                                {/block}
                                            {/foreach}
                                        {/if}

                                        {* Weight *}
                                        {if isset($oPosition->Artikel->cGewicht) && $Einstellungen.artikeldetails.artikeldetails_gewicht_anzeigen === 'Y' && $oPosition->Artikel->fGewicht > 0}
                                            {block name='basket-cart-items-product-data-weight'}
                                                <li class="weight">
                                                    <span class="et-product-data-label">{lang key='shippingWeight'}: </span>
                                                    <span class="value">
                                                        {if $oPosition->istKonfigVater()}
                                                            {$oPosition->getTotalConfigWeight()}
                                                        {else}
                                                            {$oPosition->Artikel->cGewicht}
                                                        {/if}
                                                        {lang key='weightUnit'}
                                                    </span>
                                                </li>
                                            {/block}
                                        {/if}
                                    </ul>
                                    {block name='basket-cart-items-product-uploads'}
                                        {if $oPosition->nPosTyp === $smarty.const.C_WARENKORBPOS_TYP_ARTIKEL
                                        && !empty($oPosition->Artikel->kArtikel)
                                        && isset($oPosition->Artikel->hasUploads)
                                        && $oPosition->Artikel->hasUploads === true
                                        && isset($uploadSchemaIndex)}
                                            {while isset($oUploadSchema_arr[$uploadSchemaIndex]) && isset($usedUploadSchemas[$uploadSchemaIndex])}
                                                {$uploadSchemaIndex = $uploadSchemaIndex + 1}
                                            {/while}
                                            {if isset($oUploadSchema_arr[$uploadSchemaIndex])}
                                                {$currentUploadSchema = $oUploadSchema_arr[$uploadSchemaIndex]}
                                                {if $currentUploadSchema->prodID == $oPosition->Artikel->kArtikel}
                                                    {include file='snippets/uploads.tpl' tplscope='basket-position' currentUploadSchema=$currentUploadSchema schemaIndex=$uploadSchemaIndex}
                                                    {$usedUploadSchemas[$uploadSchemaIndex] = true}
                                                    {$uploadSchemaIndex = $uploadSchemaIndex + 1}
                                                {/if}
                                            {/if}
                                        {/if}
                                    {/block}
                                {/block}

                                {* Additional Link *}
                                {block name='basket-cart-items-product-data-additional-link'}
                                    {if !empty($additionalProductLink) && $additionalProductLink === 'always' || ($additionalProductLink === 'functionalAttribute' && !empty($additionalProductLinkAttribute) && !empty($oPosition->Artikel->FunktionsAttribute[$additionalProductLinkAttribute]))}
                                        <div class="cart-items-additional-link">
                                            {if !empty($additionalProductLinkLabel.value)}
                                                {capture name='additionalProductLinkLabel'}{include file="widgets/base/textfield.tpl" value=$additionalProductLinkLabel type='span'}{/capture}
                                                <a href="{$oPosition->Artikel->cURLFull}" title="{$oPosition->cName|trans|escape:'html'}" target="_blank">{$smarty.capture.additionalProductLinkLabel}</a>
                                            {else}
                                                <a href="{$oPosition->Artikel->cURLFull}" title="{$oPosition->cName|trans|escape:'html'}" target="_blank">{et_language key="et360_cart_additional_link"}</a>
                                            {/if}
                                        </div>
                                    {/if}
                                {/block}

                                {* GPSR *}
                                {block name='basket-cart-items-product-data-gpsr'}
                                    {if !empty($etGlobalSettings.gpsrSource) && $etGlobalSettings.gpsrSource !== 'none'}
                                        {include file="widgets/snippets/gpsr.tpl" etGlobalSettings=$etGlobalSettings gpsrContext='cart' gpsrProduct=$oPosition->Artikel}
                                    {/if}
                                {/block}

                            {* Non-Product Item *}
                            {else}
                                {block name='basket-cart-items-is-not-product'}
                                    {$oPosition->cName|trans}{if isset($oPosition->discountForArticle)}{$oPosition->discountForArticle|trans}{/if}
                                    {if isset($oPosition->cArticleNameAffix)}
                                        {if is_array($oPosition->cArticleNameAffix)}
                                            <ul class="small text-muted-util">
                                                {foreach $oPosition->cArticleNameAffix as $cArticleNameAffix}
                                                    <li>{$cArticleNameAffix|trans}</li>
                                                {/foreach}
                                            </ul>
                                        {else}
                                            <ul class="small text-muted-util">
                                                <li>{$oPosition->cArticleNameAffix|trans}</li>
                                            </ul>
                                        {/if}
                                    {/if}
                                    {if !empty($oPosition->cHinweis)}
                                        <small class="text-info notice">{$oPosition->cHinweis}</small>
                                    {/if}
                                {/block}
                            {/if}

                            {* If the item is a configured product, list the actual configuration here *}
                            {if $oPosition->istKonfigVater()}
                                {block name='basket-cart-items-product-cofig-items'}
                                    <ul class="config-items text-muted-util small">
                                        {$labeled=false}
                                        {foreach JTL\Session\Frontend::getCart()->PositionenArr as $KonfigPos}
                                            {block name='product-config-item'}
                                                {if $oPosition->cUnique == $KonfigPos->cUnique
                                                && $KonfigPos->kKonfigitem > 0
                                                && !$KonfigPos->isIgnoreMultiplier()}
                                                    <li>
                                                        <span class="qty">{if !$KonfigPos->istKonfigVater()}{$KonfigPos->nAnzahlEinzel}{else}1{/if}x</span>
                                                        {$KonfigPos->cName|trans} &raquo;
                                                        <span class="price_value">
                                                            {$KonfigPos->cEinzelpreisLocalized[$NettoPreise][$smarty.session.cWaehrungName]}
                                                            {lang key='pricePerUnit' section='checkout'}
                                                        </span>
                                                    </li>
                                                    {block name='et-product-config-item-with-multiplier-upload'}
                                                        {if !empty($KonfigPos->Artikel->kArtikel) && !empty($oUploadSchema_arr)}
                                                            {foreach $oUploadSchema_arr as $schemaIdx => $uploadSchemaItem}
                                                                {if !isset($usedUploadSchemas[$schemaIdx]) && $uploadSchemaItem->prodID == $KonfigPos->Artikel->kArtikel}
                                                                    {$varMatch = true}
                                                                    {if !empty($uploadSchemaItem->WarenkorbPosEigenschaftArr) && !empty($KonfigPos->WarenkorbPosEigenschaftArr)}
                                                                        {if count($uploadSchemaItem->WarenkorbPosEigenschaftArr) != count($KonfigPos->WarenkorbPosEigenschaftArr)}
                                                                            {$varMatch = false}
                                                                        {else}
                                                                            {foreach $uploadSchemaItem->WarenkorbPosEigenschaftArr as $schemaVar}
                                                                                {$foundMatch = false}
                                                                                {foreach $KonfigPos->WarenkorbPosEigenschaftArr as $posVar}
                                                                                    {if $schemaVar->kEigenschaft == $posVar->kEigenschaft && $schemaVar->kEigenschaftWert == $posVar->kEigenschaftWert}
                                                                                        {$foundMatch = true}
                                                                                        {break}
                                                                                    {/if}
                                                                                {/foreach}
                                                                                {if !$foundMatch}
                                                                                    {$varMatch = false}
                                                                                    {break}
                                                                                {/if}
                                                                            {/foreach}
                                                                        {/if}
                                                                    {elseif !empty($uploadSchemaItem->WarenkorbPosEigenschaftArr) || !empty($KonfigPos->WarenkorbPosEigenschaftArr)}
                                                                        {$varMatch = false}
                                                                    {/if}
                                                                    {if $varMatch}
                                                                        {include file='snippets/uploads.tpl' tplscope='basket-position' currentUploadSchema=$uploadSchemaItem schemaIndex=$schemaIdx}
                                                                        {$usedUploadSchemas[$schemaIdx] = true}
                                                                        {break}
                                                                    {/if}
                                                                {/if}
                                                            {/foreach}
                                                        {/if}
                                                    {/block}
                                                {elseif $oPosition->cUnique == $KonfigPos->cUnique
                                                && $KonfigPos->kKonfigitem > 0
                                                && $KonfigPos->isIgnoreMultiplier()}
                                                    {if !$labeled}
                                                        <strong>{lang key='one-off' section='checkout'}</strong>
                                                        {$labeled=true}
                                                    {/if}
                                                    <li>
                                                        <span class="qty">{if !$KonfigPos->istKonfigVater()}{$KonfigPos->nAnzahlEinzel}{else}1{/if}x</span>
                                                        {$KonfigPos->cName|trans} &raquo;
                                                        <span class="price_value">
                                                            {$KonfigPos->cEinzelpreisLocalized[$NettoPreise][$smarty.session.cWaehrungName]}
                                                            {lang key='pricePerUnit' section='checkout'}
                                                        </span>
                                                    </li>
                                                    {block name='et-product-config-item-without-multiplier-upload'}
                                                        {if !empty($KonfigPos->Artikel->kArtikel) && !empty($oUploadSchema_arr)}
                                                            {foreach $oUploadSchema_arr as $schemaIdx => $uploadSchemaItem}
                                                                {if !isset($usedUploadSchemas[$schemaIdx]) && $uploadSchemaItem->prodID == $KonfigPos->Artikel->kArtikel}
                                                                    {$varMatch = true}
                                                                    {if !empty($uploadSchemaItem->WarenkorbPosEigenschaftArr) && !empty($KonfigPos->WarenkorbPosEigenschaftArr)}
                                                                        {if count($uploadSchemaItem->WarenkorbPosEigenschaftArr) != count($KonfigPos->WarenkorbPosEigenschaftArr)}
                                                                            {$varMatch = false}
                                                                        {else}
                                                                            {foreach $uploadSchemaItem->WarenkorbPosEigenschaftArr as $schemaVar}
                                                                                {$foundMatch = false}
                                                                                {foreach $KonfigPos->WarenkorbPosEigenschaftArr as $posVar}
                                                                                    {if $schemaVar->kEigenschaft == $posVar->kEigenschaft && $schemaVar->kEigenschaftWert == $posVar->kEigenschaftWert}
                                                                                        {$foundMatch = true}
                                                                                        {break}
                                                                                    {/if}
                                                                                {/foreach}
                                                                                {if !$foundMatch}
                                                                                    {$varMatch = false}
                                                                                    {break}
                                                                                {/if}
                                                                            {/foreach}
                                                                        {/if}
                                                                    {elseif !empty($uploadSchemaItem->WarenkorbPosEigenschaftArr) || !empty($KonfigPos->WarenkorbPosEigenschaftArr)}
                                                                        {$varMatch = false}
                                                                    {/if}
                                                                    {if $varMatch}
                                                                        {include file='snippets/uploads.tpl' tplscope='basket-position' currentUploadSchema=$uploadSchemaItem schemaIndex=$schemaIdx}
                                                                        {$usedUploadSchemas[$schemaIdx] = true}
                                                                        {break}
                                                                    {/if}
                                                                {/if}
                                                            {/foreach}
                                                        {/if}
                                                    {/block}
                                                {/if}
                                            {/block}
                                        {/foreach}
                                    </ul>
                                {/block}
                            {/if}

                            {* If the item is a part list item, list the parts here *}
                            {if (!$shopIsAtLeast52 || $Einstellungen.kaufabwicklung.bestellvorgang_partlist === 'Y') && !empty($oPosition->Artikel->kStueckliste) && !empty($oPosition->Artikel->oStueckliste_arr)}
                                {block name='basket-cart-items-product-partlist-items'}
                                    <ul class="partlist-items text-muted-util small">
                                        {foreach $oPosition->Artikel->oStueckliste_arr as $partListItem}
                                            <li>
                                                <span class="qty">{$partListItem->fAnzahl_stueckliste}x</span>
                                                {$partListItem->cName|trans}
                                            </li>
                                        {/foreach}
                                    </ul>
                                {/block}
                            {/if}
                        </div>
                        {/block}

                        {* Quantity *}
                        {block name='basket-cart-items-quantity-wrapper'}
                        <div class="col col-3 col-lg-2 cart-items-quantity et-validation-error-wrapper">
                            {block name='basket-cart-items-quantity'}
                                {if $oPosition->nPosTyp == $smarty.const.C_WARENKORBPOS_TYP_ARTIKEL}
                                    {if $oPosition->istKonfigVater() && empty($oPosition->Artikel->hasUploads)}
                                        <div class="qty-wrapper">
                                            {$oPosition->nAnzahl|replace_delim} {if !empty($oPosition->Artikel->cEinheit)}{$oPosition->Artikel->cEinheit}{/if}
                                            {include file="widgets/base/button.tpl" variant="secondary" classes="configurepos ml-3" href="{get_static_route id='index.php'}?a={$oPosition->kArtikel}&ek={$oPosition@index}" iconPosition="none" label="<i class=\"{et_getIcon key="configure"}\"></i>"}
                                        </div>
                                    {else}
                                        <div class="qty-wrapper dropdown">
                                            <div id="quantity-grp{$oPosition@index}" class="input-group">
                                                <input type="number"
                                                    class="form-control"
                                                    min="{if $oPosition->Artikel->fMindestbestellmenge}{$oPosition->Artikel->fMindestbestellmenge}{else}0{/if}"
                                                    max="{$oPosition->Artikel->FunktionsAttribute[$smarty.const.FKT_ATTRIBUT_MAXBESTELLMENGE]|default:''}"
                                                    {if ($oPosition->Artikel->fAbnahmeintervall > 0)}required{/if}
                                                    step="{if $oPosition->Artikel->cTeilbar === 'Y' && $oPosition->Artikel->fAbnahmeintervall == 0}any{elseif $oPosition->Artikel->fAbnahmeintervall > 0}{$oPosition->Artikel->fAbnahmeintervall}{else}1{/if}"
                                                    id="quantity[{$oPosition@index}]" class="quantity" name="anzahl[{$oPosition@index}]"
                                                    aria-label="{lang key='quantity'}"
                                                    value="{$oPosition->nAnzahl}"
                                                    data-decimals="{getDecimalLength quantity=$oPosition->Artikel->fAbnahmeintervall}"
                                                />
                                                {block name="basket-cart-items-quantity-button"}
                                                    <div class="input-group-append">
                                                        <button type="submit" class="btn" aria-label="{et_language key="et360_aria_apply_quantity"}">
                                                            <span class="{et_getIcon key="redo"}"></span>
                                                        </button>
                                                    </div>
                                                {/block}
                                            </div>
                                        </div>
                                    {/if}
                                {elseif $oPosition->nPosTyp == $smarty.const.C_WARENKORBPOS_TYP_GRATISGESCHENK}
                                    <input name="anzahl[{$oPosition@index}]" type="hidden" value="1" />
                                {/if}
                            {/block}
                        </div>
                        {/block}

                        {* Single Price *}
                        {block name='basket-cart-items-price-single'}
                            {if $Einstellungen.kaufabwicklung.bestellvorgang_einzelpreise_anzeigen === 'Y'}
                                <div class="col d-none d-lg-block col-lg-auto cart-items-single-price">
                                {if $oPosition->nPosTyp == $smarty.const.C_WARENKORBPOS_TYP_ARTIKEL && (!$oPosition->istKonfigVater() || !isset($oPosition->oKonfig_arr) || count($oPosition->oKonfig_arr) === 0)}
                                    {$oPosition->cEinzelpreisLocalized[$NettoPreise][$smarty.session.cWaehrungName]}
                                {/if}
                                </div>
                            {/if}
                        {/block}
                    {/block}

                    {* Pricing *}
                    {block name='basket-cart-items-order-items-price-net'}
                        <div class="col col-3 col-lg-auto cart-items-price price-col">
                            {* <strong class="cart-items-price-text">{lang key="price"}:</strong> *}
                            <span class="price_overall">
                                {if $oPosition->istKonfigVater()}
                                    {$oPosition->cKonfigpreisLocalized[$NettoPreise][$smarty.session.cWaehrungName]}
                                {else}
                                    {$oPosition->cGesamtpreisLocalized[$NettoPreise][$smarty.session.cWaehrungName]}
                                {/if}
                            </span>
                            {* VAT *}
                            {block name='et-basket-cart-items-vat'}
                                {if isset($oPosition->fMwSt) && !empty($showVatRatePerPosition) && $showVatRatePerPosition !== 'never'}
                                    {if $showVatRatePerPosition === 'always' || isset($oPosition->Artikel)}
                                        <div class="small">
                                            {lang key='vat' section='productDetails'}: {$oPosition->fMwSt}%
                                        </div>
                                    {/if}
                                {/if}
                            {/block}
                        </div>
                    {/block}

                    {* Product Actions (Wishlist, Remove from Basket) *}
                    {block name='basket-cart-items-cart-submit'}
                        {if $oPosition->nPosTyp == $smarty.const.C_WARENKORBPOS_TYP_ARTIKEL
                        || $oPosition->nPosTyp == $smarty.const.C_WARENKORBPOS_TYP_GRATISGESCHENK
                        }
                            <div class="col col-12 col-lg-9 cart-items-delete" data-toggle="product-actions">
                                {if $oPosition->nPosTyp == $smarty.const.C_WARENKORBPOS_TYP_ARTIKEL && $Einstellungen.global.global_wunschliste_anzeigen === 'Y'}
                                    {block name='basket-cart-items-cart-submit-include-wishlist-button'}
                                        {include file='snippets/wishlist_button.tpl' Artikel=$oPosition->Artikel buttonAndText=true}
                                    {/block}
                                {/if}
                                {block name='basket-cart-items-cart-submit-include-delete-button'}
                                    <button type="submit"
                                        class="btn btn-link btn-sm cart-items-delete-button droppos"
                                        name="dropPos"
                                        value="{$oPosition@index}"
                                        title="{lang key='delete'}"
                                    >
                                        <span class="{et_getIcon key="remove"}"></span>{lang key='delete'}
                                    </button>
                                {/block}
                            </div>
                        {/if}
                    {/block}

                    {block name='basket-cart-items-items-bottom-hr'}
                        <div class="col col-12">
                            <hr>
                        </div>
                    {/block}
                </div>
            {/if}
        {/foreach}
        {/block}
    {/block}
{/block}
