|
|
|
@@ -1,271 +1,230 @@
|
|
|
|
|
{if $system_configuration.shoppingcart_quickbuy == 1}
|
|
|
|
|
<div class="full_box">
|
|
|
|
|
<div class="title_wrapper">
|
|
|
|
|
<div class="title">
|
|
|
|
|
<h2>Schnelleinkauf</h2>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="box_content">
|
|
|
|
|
<div class="box_padder">
|
|
|
|
|
Suche Sie hier nach Artikel und legen diese direkt in den Warenkorb.<br />
|
|
|
|
|
<input type="text" id="shoppingcart_search_item" name="search_item" autocomplete="off" value="Suchartikel hier eingeben" style="border:1px solid #555555;width:680px;" />
|
|
|
|
|
<div id="shoppingcart_search_result" style="position:relative;z-index:999999;"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
{/if}
|
|
|
|
|
|
|
|
|
|
<div class="full_box">
|
|
|
|
|
<div class="title_wrapper">
|
|
|
|
|
<div class="title">
|
|
|
|
|
<h2>Warenkorb</h2>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="box_content">
|
|
|
|
|
<div class="box_padder">
|
|
|
|
|
{if $shoppingcart.items}
|
|
|
|
|
<form method="post" action="" id="cart_form">
|
|
|
|
|
<table class="cart_table" width="100%" border="0" cellpadding="0" cellspacing="0">
|
|
|
|
|
<tr class="cart_head">
|
|
|
|
|
<td class="alcenter">Pos.</td>
|
|
|
|
|
<td class="alcenter">Bild</td>
|
|
|
|
|
<td>Beschreibung</td>
|
|
|
|
|
<td class="alright">Stückpreis</td>
|
|
|
|
|
<td class="alcenter">Anzahl*</td>
|
|
|
|
|
<td class="alcenter">löschen</td>
|
|
|
|
|
<td class="alright">Gesamtpreis</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
{foreach from=$shoppingcart.items item=item name=items_loop}
|
|
|
|
|
{if $item->short_uri}
|
|
|
|
|
{assign var=itemSuri value="/`$item->short_uri`.html"}
|
|
|
|
|
{else}
|
|
|
|
|
{assign var=itemSuri value="/index.php?item_id=`$item->id`"}
|
|
|
|
|
{/if}
|
|
|
|
|
<tr class="cart_row">
|
|
|
|
|
<td class="alcenter">{$smarty.foreach.items_loop.iteration}</td>
|
|
|
|
|
<td class="alcenter"><img src="{$SHOP_DIR}images/article/thumb_{if $item->default_image_file_name}{$item->default_image_file_name}{else}default_image.png{/if}" /></td>
|
|
|
|
|
<td>
|
|
|
|
|
<a href="{$serverProtocol}://{$servername}{$itemSuri}"><strong>{$item->name}</strong></a><br />
|
|
|
|
|
{if $item->variant_1 || $item->variant_2}
|
|
|
|
|
{$item->variant_1} {$item->variant_2}<br />
|
|
|
|
|
{/if}
|
|
|
|
|
{if ($item->variant_1 || $item->variant_2) && $item->item_number}
|
|
|
|
|
<span>Art.-Nr. {$item->item_number}</span>
|
|
|
|
|
{else}
|
|
|
|
|
{if $item->attribute_7 && $item->number != $item->attribute_7}
|
|
|
|
|
<span>Art.-Nr. {$item->attribute_7} ({$template_text.item_details.old_item_number_title} {$item->number})</span>
|
|
|
|
|
{else}
|
|
|
|
|
<span>Art.-Nr. {$item->number}</span>
|
|
|
|
|
{/if}
|
|
|
|
|
|
|
|
|
|
{/if}
|
|
|
|
|
</td>
|
|
|
|
|
<td class="alright">{$item->calculatedPrices.shownPrice|number_format:"2":",":"."} €</td>
|
|
|
|
|
<td class="alcenter item_container" buy_quantity="{$item->buy_quantity}" min_quantity="{$item->min_quantity}">
|
|
|
|
|
<div style="position:relative;">
|
|
|
|
|
<div id="scart_error_message_one" class="message_min_quantity">
|
|
|
|
|
<div class="close_message_box">x</div>
|
|
|
|
|
<div class="content">Mindestabnahmemenge von {$item->min_quantity} Stück nicht erreicht!</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="scart_error_message_two" class="message_wrong_quantity">
|
|
|
|
|
<div class="close_message_box">x</div>
|
|
|
|
|
<div class="content">Sie haben eine ungültige Stückzahl eingegeben! Die Abnahmestückzahl ist in {$item->buy_quantity}er Schritten gestaffelt!</div>
|
|
|
|
|
</div>
|
|
|
|
|
<input type="text" name="update_item[{$item->shopping_cart_item_id}]" class="input_quantity" value="{$item->quantity}" />
|
|
|
|
|
</div>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="alcenter item_container" buy_quantity="{$item->buy_quantity}" min_quantity="{$item->min_quantity}">
|
|
|
|
|
<a href="#" class="item_delete" title="löschen" style="text-decoration:none;font-family: Arial;font-size:14px;font-weight:bold;color:#ff0000;">x</a>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="alright">
|
|
|
|
|
<strong>{($item->calculatedPrices.shownPrice * $item->quantity)|number_format:"2":",":"."} €</strong>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
{/foreach}
|
|
|
|
|
<tr class="cart_footer_first">
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td>Summe aller Artikel</td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td class="alright">{$shoppingcart.shown_price_sum|number_format:"2":",":"."} €</td>
|
|
|
|
|
</tr>
|
|
|
|
|
{foreach $shoppingcart.tax_values as $taxRate => $taxData}
|
|
|
|
|
<tr class="cart_footer_vat">
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td>
|
|
|
|
|
{if $shoppingcartVATUsage}
|
|
|
|
|
Darin enthaltene MwSt.
|
|
|
|
|
{else}
|
|
|
|
|
Zzgl. MwSt.
|
|
|
|
|
{/if}
|
|
|
|
|
</td>
|
|
|
|
|
<td>{$taxRate} %</td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td class="alright">
|
|
|
|
|
{$taxData['vat']|number_format:"2":",":"."} €
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
{/foreach}
|
|
|
|
|
<tr class="cart_footer_sum">
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td>
|
|
|
|
|
Fälliger Betrag
|
|
|
|
|
</td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td class="alright">
|
|
|
|
|
{$shoppingcart.price_sum_gross|number_format:"2":",":"."} €
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cart_footer_sum">
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td colspan="4" class="alright">
|
|
|
|
|
{$shoppingcart.price_tax_text|replace:'[tax]%':''}
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
<br /><br />
|
|
|
|
|
|
|
|
|
|
<div style="float:left;">
|
|
|
|
|
<input type="button" id="update_cart" name="shoppingcart_update" class="button" value=">> Aktualisieren" />
|
|
|
|
|
|
|
|
|
|
<div style="color:#959595;">
|
|
|
|
|
*Um Artikel zu entfernen, Anzahl <strong>0</strong> eingeben
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="float:right; text-align:right;">
|
|
|
|
|
<input id="cashdesk_button" type="button" class="button" value=">> Zur Kasse" />
|
|
|
|
|
{if isset($express_providers) && $express_providers}
|
|
|
|
|
{foreach from=$express_providers item=xp}
|
|
|
|
|
{if $xp.module == 'paypal_v2'}
|
|
|
|
|
<div style="margin-top:10px;">
|
|
|
|
|
<a href="/Kasse/?payment_express_start={$xp.module}" class="ppbutton" title="Direkt mit PayPal bezahlen – Adresse kommt von PayPal, Sie prüfen die Bestellung danach in der Kasse">
|
|
|
|
|
<img src="https://www.paypalobjects.com/webstatic/de_DE/i/de-pp-logo-100px.png" alt="PayPal">Direkt bezahlen
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
{else}
|
|
|
|
|
<div style="margin-top:10px;">
|
|
|
|
|
<a href="/Kasse/?payment_express_start={$xp.module}" class="ppbutton">Direkt mit {$xp.label|escape} bezahlen</a>
|
|
|
|
|
</div>
|
|
|
|
|
{/if}
|
|
|
|
|
{/foreach}
|
|
|
|
|
{/if}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<br style="clear:both;" />
|
|
|
|
|
</form>
|
|
|
|
|
{else}
|
|
|
|
|
Es befinden sich keine Artikel in Ihrem Warenkorb
|
|
|
|
|
{/if}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{if $shoppingcart.items && $system_configuration.shoppingcart_ordertext == 1}
|
|
|
|
|
<br /><br />
|
|
|
|
|
<div class="full_box">
|
|
|
|
|
<div class="title_wrapper">
|
|
|
|
|
<div class="title">
|
|
|
|
|
<h2>Anmerkung zu dieser Bestellung</h2>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="box_content">
|
|
|
|
|
<div class="box_padder">
|
|
|
|
|
<form method="post">
|
|
|
|
|
Sie können hier einen Nachrichtentext an uns zu dieser Bestellung hinzufügen.<br />
|
|
|
|
|
<textarea style="width:100%; height:200px;border:1px solid #555555;" name="customer_info">{if isset($customer_info)}{$customer_info}{/if}</textarea>
|
|
|
|
|
<input type="submit" name="order_text" class="button" value="Text speichern" />
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
{/if}
|
|
|
|
|
|
|
|
|
|
{literal}
|
|
|
|
|
<style>
|
|
|
|
|
/* Express-Button der Zahlungsanbieter (eigene Klasse, damit nicht .button greift) */
|
|
|
|
|
a.ppbutton, a.ppbutton:visited {
|
|
|
|
|
display: inline-flex; align-items: center; justify-content: center; gap: 8px;
|
|
|
|
|
min-width: 200px; padding: 10px 18px; box-sizing: border-box;
|
|
|
|
|
background: #ffc439; color: #003087; font-weight: 700; font-size: 15px;
|
|
|
|
|
text-decoration: none; border: 0; border-radius: 22px; line-height: 1.2;
|
|
|
|
|
box-shadow: 0 1px 2px rgba(0,0,0,.15); cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
a.ppbutton:hover, a.ppbutton:focus { background: #f2ba36; color: #003087; text-decoration: none; }
|
|
|
|
|
a.ppbutton img { height: 22px; width: auto; vertical-align: middle; }
|
|
|
|
|
</style>
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
$(document).ready(function() {
|
|
|
|
|
$('#cashdesk_button').click(function(e) {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
|
|
|
|
|
window.location.href = '/Kasse/';
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('.item_delete').click(function(e) {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
//$(this).prev('.input_quantity').val(0);
|
|
|
|
|
$('.input_quantity', $(this).parents('tr.cart_row')).val(0);
|
|
|
|
|
$('#update_cart').trigger('click');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$('#update_cart').click(function(e) {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
|
|
|
|
|
var amount_ok = 1;
|
|
|
|
|
$('.item_container').each(function() {
|
|
|
|
|
var buy_quantity = $(this).attr('buy_quantity');
|
|
|
|
|
var min_quantity = $(this).attr('min_quantity');
|
|
|
|
|
var quantity = $('.input_quantity', this).val();
|
|
|
|
|
|
|
|
|
|
if (parseInt(quantity) != 0) {
|
|
|
|
|
if (parseInt(min_quantity) <= 1 || parseInt(quantity) >= parseInt(min_quantity)) {
|
|
|
|
|
if (parseInt(buy_quantity) <= 1 || (parseInt(quantity) % parseInt(buy_quantity)) == 0) {
|
|
|
|
|
$('.message_min_quantity', this).css({'display': 'none'});
|
|
|
|
|
$('.message_wrong_quantity', this).css({'display': 'none'});
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
$('.message_min_quantity', this).css({'display': 'none'});
|
|
|
|
|
$('.message_wrong_quantity', this).css({'display': 'block'});
|
|
|
|
|
amount_ok = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
$('.message_min_quantity', this).css({'display': 'block'});
|
|
|
|
|
$('.message_wrong_quantity', this).css({'display': 'none'});
|
|
|
|
|
amount_ok = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if(amount_ok == 1) {
|
|
|
|
|
$('#cart_form').submit();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('.close_message_box').click(function(e) {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
$('#scart_error_message_two').css({'display': 'none'});
|
|
|
|
|
$('#scart_error_message_one').css({'display': 'none'});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
{/literal}
|
|
|
|
|
{* =====================================================================================
|
|
|
|
|
Warenkorb (theme2) -- ueberarbeitet 18.09.2026.
|
|
|
|
|
|
|
|
|
|
Aufbau: EIN Formular (#cart_form) fuer Mengen, Anmerkung und Weiterleitung. Vorher lag
|
|
|
|
|
die Anmerkung in einem zweiten Formular mit eigenem "Text speichern"-Knopf, und "Zur
|
|
|
|
|
Kasse" war ein reiner Link -- ungespeicherte Mengen und Anmerkungen gingen verloren.
|
|
|
|
|
Jetzt schickt jeder Weg (Aktualisieren, Zur Kasse, Express) das Formular ab; das Modul
|
|
|
|
|
website_shoppingcart.php speichert und leitet per cart_goto weiter.
|
|
|
|
|
|
|
|
|
|
Feldnamen sind Vertrag mit dem Modul: update_item[<cart_item_id>], customer_info,
|
|
|
|
|
cart_goto ('' | 'kasse' | 'express:<modul>'). IDs/Klassen fuer das JS unten und das
|
|
|
|
|
Theme-CSS (cart_table, cart_head, cart_row, cart_footer_*, input_quantity,
|
|
|
|
|
item_container, message_*) bleiben unveraendert.
|
|
|
|
|
===================================================================================== *}
|
|
|
|
|
{if $system_configuration.shoppingcart_quickbuy == 1}
|
|
|
|
|
<div class="full_box">
|
|
|
|
|
<div class="title_wrapper">
|
|
|
|
|
<div class="title">
|
|
|
|
|
<h2>Schnelleinkauf</h2>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="box_content">
|
|
|
|
|
<div class="box_padder">
|
|
|
|
|
Artikelnummer oder Bezeichnung eingeben und den Artikel direkt in den Warenkorb legen.<br />
|
|
|
|
|
<input type="text" id="shoppingcart_search_item" name="search_item" autocomplete="off" placeholder="Artikel suchen …" style="border:1px solid #555555;width:100%;max-width:680px;box-sizing:border-box;" />
|
|
|
|
|
<div id="shoppingcart_search_result" style="position:relative;z-index:999999;"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
{/if}
|
|
|
|
|
|
|
|
|
|
<div class="full_box">
|
|
|
|
|
<div class="title_wrapper">
|
|
|
|
|
<div class="title">
|
|
|
|
|
<h2>Warenkorb</h2>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="box_content">
|
|
|
|
|
<div class="box_padder">
|
|
|
|
|
{if $shoppingcart.items}
|
|
|
|
|
<form method="post" action="" id="cart_form">
|
|
|
|
|
<input type="hidden" name="cart_goto" id="cart_goto" value="" />
|
|
|
|
|
|
|
|
|
|
<table class="cart_table" width="100%" border="0" cellpadding="0" cellspacing="0">
|
|
|
|
|
<tr class="cart_head">
|
|
|
|
|
<td class="alcenter">Pos.</td>
|
|
|
|
|
<td class="alcenter">Bild</td>
|
|
|
|
|
<td>Artikel</td>
|
|
|
|
|
<td class="alright">Einzelpreis</td>
|
|
|
|
|
<td class="alcenter">Anzahl</td>
|
|
|
|
|
<td class="alcenter">Entfernen</td>
|
|
|
|
|
<td class="alright">Gesamt</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
{foreach from=$shoppingcart.items item=item name=items_loop}
|
|
|
|
|
{if $item->short_uri}
|
|
|
|
|
{assign var=itemSuri value="/`$item->short_uri`.html"}
|
|
|
|
|
{else}
|
|
|
|
|
{assign var=itemSuri value="/index.php?item_id=`$item->id`"}
|
|
|
|
|
{/if}
|
|
|
|
|
<tr class="cart_row">
|
|
|
|
|
<td class="alcenter">{$smarty.foreach.items_loop.iteration}</td>
|
|
|
|
|
<td class="alcenter">
|
|
|
|
|
<a href="{$serverProtocol}://{$servername}{$itemSuri}"><img src="{$SHOP_DIR}images/article/thumb_{if $item->default_image_file_name}{$item->default_image_file_name}{else}default_image.png{/if}" alt="{$item->name|escape}" /></a>
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<a href="{$serverProtocol}://{$servername}{$itemSuri}"><strong>{$item->name}</strong></a><br />
|
|
|
|
|
{if $item->variant_1 || $item->variant_2}
|
|
|
|
|
{$item->variant_1} {$item->variant_2}<br />
|
|
|
|
|
{/if}
|
|
|
|
|
{if ($item->variant_1 || $item->variant_2) && $item->item_number}
|
|
|
|
|
<span class="cart_item_number">Art.-Nr. {$item->item_number}</span>
|
|
|
|
|
{elseif $item->attribute_7 && $item->number != $item->attribute_7}
|
|
|
|
|
<span class="cart_item_number">Art.-Nr. {$item->attribute_7}</span>
|
|
|
|
|
<span class="cart_item_number_old" style="color:#777;">({$template_text.item_details.old_item_number_title} {$item->number})</span>
|
|
|
|
|
{else}
|
|
|
|
|
<span class="cart_item_number">Art.-Nr. {$item->number}</span>
|
|
|
|
|
{/if}
|
|
|
|
|
</td>
|
|
|
|
|
<td class="alright">{$item->calculatedPrices.shownPrice|number_format:"2":",":"."} €</td>
|
|
|
|
|
<td class="alcenter item_container" buy_quantity="{$item->buy_quantity}" min_quantity="{$item->min_quantity}">
|
|
|
|
|
<div style="position:relative;">
|
|
|
|
|
<div id="scart_error_message_one" class="message_min_quantity">
|
|
|
|
|
<div class="close_message_box">x</div>
|
|
|
|
|
<div class="content">Mindestabnahme: {$item->min_quantity} Stück.</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="scart_error_message_two" class="message_wrong_quantity">
|
|
|
|
|
<div class="close_message_box">x</div>
|
|
|
|
|
<div class="content">Dieser Artikel ist nur in {$item->buy_quantity}er Schritten bestellbar.</div>
|
|
|
|
|
</div>
|
|
|
|
|
<input type="text" name="update_item[{$item->shopping_cart_item_id}]" class="input_quantity" value="{$item->quantity}" inputmode="numeric" aria-label="Anzahl {$item->name|escape}" />
|
|
|
|
|
</div>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="alcenter item_container" buy_quantity="{$item->buy_quantity}" min_quantity="{$item->min_quantity}">
|
|
|
|
|
<a href="#" class="item_delete" title="Artikel aus dem Warenkorb entfernen" aria-label="Artikel entfernen" style="text-decoration:none;font-family:Arial;font-size:16px;font-weight:bold;color:#ff0000;">×</a>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="alright">
|
|
|
|
|
<strong>{($item->calculatedPrices.shownPrice * $item->quantity)|number_format:"2":",":"."} €</strong>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
{/foreach}
|
|
|
|
|
|
|
|
|
|
<tr class="cart_footer_first">
|
|
|
|
|
<td colspan="3"> </td>
|
|
|
|
|
<td colspan="3">Zwischensumme</td>
|
|
|
|
|
<td class="alright">{$shoppingcart.shown_price_sum|number_format:"2":",":"."} €</td>
|
|
|
|
|
</tr>
|
|
|
|
|
{foreach $shoppingcart.tax_values as $taxRate => $taxData}
|
|
|
|
|
<tr class="cart_footer_vat">
|
|
|
|
|
<td colspan="3"> </td>
|
|
|
|
|
<td colspan="2">{if $shoppingcartVATUsage}Darin enthaltene MwSt.{else}Zzgl. MwSt.{/if} {$taxRate} %</td>
|
|
|
|
|
<td> </td>
|
|
|
|
|
<td class="alright">{$taxData['vat']|number_format:"2":",":"."} €</td>
|
|
|
|
|
</tr>
|
|
|
|
|
{/foreach}
|
|
|
|
|
<tr class="cart_footer_sum">
|
|
|
|
|
<td colspan="3"> </td>
|
|
|
|
|
<td colspan="3">Gesamtbetrag</td>
|
|
|
|
|
<td class="alright">{$shoppingcart.price_sum_gross|number_format:"2":",":"."} €</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="cart_footer_sum">
|
|
|
|
|
<td colspan="3"> </td>
|
|
|
|
|
<td colspan="4" class="alright" style="font-weight:normal;">{$shoppingcart.price_tax_text|replace:'[tax]%':''}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
{if $system_configuration.shoppingcart_ordertext == 1}
|
|
|
|
|
<div class="cart_note" style="margin-top:24px;">
|
|
|
|
|
<label for="customer_info" style="font-weight:bold;">Anmerkung zu dieser Bestellung <span style="font-weight:normal;color:#777;">(optional)</span></label><br />
|
|
|
|
|
<div style="color:#777;margin:4px 0 6px;">Zum Beispiel Gerätetyp, Farbe oder ein Hinweis für den Versand. Sie können den Text auch in der Kasse noch ändern.</div>
|
|
|
|
|
<textarea id="customer_info" name="customer_info" rows="4" style="width:100%;box-sizing:border-box;border:1px solid #555555;padding:6px;">{if isset($customer_info)}{$customer_info|escape}{/if}</textarea>
|
|
|
|
|
</div>
|
|
|
|
|
{/if}
|
|
|
|
|
|
|
|
|
|
<div class="cart_actions" style="margin-top:24px;overflow:hidden;">
|
|
|
|
|
<div style="float:left;">
|
|
|
|
|
<input type="button" id="update_cart" name="shoppingcart_update" class="button" value="Warenkorb aktualisieren" />
|
|
|
|
|
<div style="color:#959595;margin-top:6px;">Zum Entfernen die Anzahl auf <strong>0</strong> setzen oder × anklicken.</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="float:right;text-align:right;">
|
|
|
|
|
<input id="cashdesk_button" type="button" class="button" value="Zur Kasse" />
|
|
|
|
|
{if isset($express_providers) && $express_providers}
|
|
|
|
|
{foreach from=$express_providers item=xp}
|
|
|
|
|
<div style="margin-top:10px;">
|
|
|
|
|
{if $xp.module == 'paypal_v2'}
|
|
|
|
|
<a href="/Kasse/?payment_express_start={$xp.module}" class="ppbutton express_start" data-module="{$xp.module}" title="Direkt mit PayPal bezahlen – Adresse kommt von PayPal, Sie prüfen die Bestellung danach in der Kasse">
|
|
|
|
|
<img src="https://www.paypalobjects.com/webstatic/de_DE/i/de-pp-logo-100px.png" alt="PayPal">Direkt bezahlen
|
|
|
|
|
</a>
|
|
|
|
|
{else}
|
|
|
|
|
<a href="/Kasse/?payment_express_start={$xp.module}" class="ppbutton express_start" data-module="{$xp.module}">Direkt mit {$xp.label|escape} bezahlen</a>
|
|
|
|
|
{/if}
|
|
|
|
|
</div>
|
|
|
|
|
{/foreach}
|
|
|
|
|
{/if}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
{else}
|
|
|
|
|
<p>Ihr Warenkorb ist leer.</p>
|
|
|
|
|
<p><a href="/" class="button">Weiter einkaufen</a></p>
|
|
|
|
|
{/if}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{literal}
|
|
|
|
|
<style>
|
|
|
|
|
/* Express-Button der Zahlungsanbieter (eigene Klasse, damit nicht .button greift) */
|
|
|
|
|
a.ppbutton, a.ppbutton:visited {
|
|
|
|
|
display: inline-flex; align-items: center; justify-content: center; gap: 8px;
|
|
|
|
|
min-width: 200px; padding: 10px 18px; box-sizing: border-box;
|
|
|
|
|
background: #ffc439; color: #003087; font-weight: 700; font-size: 15px;
|
|
|
|
|
text-decoration: none; border: 0; border-radius: 22px; line-height: 1.2;
|
|
|
|
|
box-shadow: 0 1px 2px rgba(0,0,0,.15); cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
a.ppbutton:hover, a.ppbutton:focus { background: #f2ba36; color: #003087; text-decoration: none; }
|
|
|
|
|
a.ppbutton img { height: 22px; width: auto; vertical-align: middle; }
|
|
|
|
|
.cart_table .cart_item_number { color: #444; }
|
|
|
|
|
</style>
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
$(document).ready(function() {
|
|
|
|
|
// Mengen pruefen (Mindestabnahme, Staffel). true = alles in Ordnung.
|
|
|
|
|
function mengenOk() {
|
|
|
|
|
var ok = true;
|
|
|
|
|
$('.item_container').each(function() {
|
|
|
|
|
var buy_quantity = parseInt($(this).attr('buy_quantity'));
|
|
|
|
|
var min_quantity = parseInt($(this).attr('min_quantity'));
|
|
|
|
|
var quantity = parseInt($('.input_quantity', this).val());
|
|
|
|
|
if (isNaN(quantity) || quantity == 0) { return; }
|
|
|
|
|
if (min_quantity > 1 && quantity < min_quantity) {
|
|
|
|
|
$('.message_min_quantity', this).css({'display': 'block'});
|
|
|
|
|
$('.message_wrong_quantity', this).css({'display': 'none'});
|
|
|
|
|
ok = false;
|
|
|
|
|
} else if (buy_quantity > 1 && (quantity % buy_quantity) != 0) {
|
|
|
|
|
$('.message_min_quantity', this).css({'display': 'none'});
|
|
|
|
|
$('.message_wrong_quantity', this).css({'display': 'block'});
|
|
|
|
|
ok = false;
|
|
|
|
|
} else {
|
|
|
|
|
$('.message_min_quantity', this).css({'display': 'none'});
|
|
|
|
|
$('.message_wrong_quantity', this).css({'display': 'none'});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
return ok;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Ein Weg fuer alles: Formular abschicken, das Modul speichert und leitet weiter.
|
|
|
|
|
function absenden(ziel) {
|
|
|
|
|
if (!mengenOk()) { return; }
|
|
|
|
|
$('#cart_goto').val(ziel);
|
|
|
|
|
$('#cart_form').submit();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$('#update_cart').click(function(e) { e.preventDefault(); absenden(''); });
|
|
|
|
|
$('#cashdesk_button').click(function(e) { e.preventDefault(); absenden('kasse'); });
|
|
|
|
|
$('.express_start').click(function(e) { e.preventDefault(); absenden('express:' + $(this).data('module')); });
|
|
|
|
|
|
|
|
|
|
$('.item_delete').click(function(e) {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
$('.input_quantity', $(this).parents('tr.cart_row')).val(0);
|
|
|
|
|
absenden('');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('.close_message_box').click(function(e) {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
$(this).parent().css({'display': 'none'});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
{/literal}
|
|
|
|
|