diff --git a/modules/website_cashdesk.php b/modules/website_cashdesk.php index 68fb9c1..6757418 100644 --- a/modules/website_cashdesk.php +++ b/modules/website_cashdesk.php @@ -345,7 +345,11 @@ class website_cashdesk { $this->manage_errors(); $this->manage_data_persistence(); - // customer info + // customer info -- 18.09.2026: in der Kasse editierbar, ein POST (auch bei + // Fehlern im Formular) aktualisiert die Session, die Bestellung nimmt $_POST (s.u.) + if (isset($_POST['customer_info'])) { + $_SESSION['customer_info'] = trim((string)$_POST['customer_info']); + } if (isset($_SESSION['customer_info']) && $_SESSION['customer_info']) { $this->layout_object->assign('customer_info', $_SESSION['customer_info']); } diff --git a/modules/website_shoppingcart.php b/modules/website_shoppingcart.php index 335df12..55524f5 100644 --- a/modules/website_shoppingcart.php +++ b/modules/website_shoppingcart.php @@ -48,7 +48,21 @@ class website_shoppingcart { private function show_shoppingcart() { if (isset($_POST['customer_info'])) { - $_SESSION['customer_info'] = $_POST['customer_info']; + $_SESSION['customer_info'] = trim((string)$_POST['customer_info']); + } + + // 18.09.2026 -- Warenkorb ist EIN Formular: "Zur Kasse" und die Express-Knoepfe schicken + // es ab (Mengen + Anmerkung werden so mitgespeichert) und das Ziel steht in cart_goto. + if (isset($_POST['cart_goto']) && $_POST['cart_goto'] !== '') { + $goto = (string)$_POST['cart_goto']; + if ($goto === 'kasse') { + header('Location: /Kasse/'); + exit; + } + if (preg_match('/^express:([a-z0-9_]{1,40})$/', $goto, $m)) { + header('Location: /Kasse/?payment_express_start='.$m[1]); + exit; + } } if (isset($_SESSION['customer_info']) && $_SESSION['customer_info']) { diff --git a/themes/easyshop_advanced/templates/content_cash_desk/customer_info.tpl b/themes/easyshop_advanced/templates/content_cash_desk/customer_info.tpl index e39d8af..f0ba307 100644 --- a/themes/easyshop_advanced/templates/content_cash_desk/customer_info.tpl +++ b/themes/easyshop_advanced/templates/content_cash_desk/customer_info.tpl @@ -1,14 +1,12 @@ - -
+ +
-

Anmerkung zu dieser Bestellung

+

Anmerkung zu dieser Bestellung (optional)

- -
- Sie haben folgenden Nachrichtentext an uns zu dieser Bestellung hinzufügt.
- ACHTUNG: Der Text kann nur im Warenkorb bearbeitet werden!!!.
- -
+
+
Zum Beispiel Gerätetyp, Farbe oder ein Hinweis für den Versand.
+ +
diff --git a/web/intelectra_shop/themes/theme2/templates/content_shoppingcart.tpl b/web/intelectra_shop/themes/theme2/templates/content_shoppingcart.tpl index d9c0fee..e89d4df 100644 --- a/web/intelectra_shop/themes/theme2/templates/content_shoppingcart.tpl +++ b/web/intelectra_shop/themes/theme2/templates/content_shoppingcart.tpl @@ -1,271 +1,230 @@ -{if $system_configuration.shoppingcart_quickbuy == 1} -
-
-
-

Schnelleinkauf

-
-
- -
-
- Suche Sie hier nach Artikel und legen diese direkt in den Warenkorb.
- -
-
-
-
-{/if} - -
-
-
-

Warenkorb

-
-
- -
-
- {if $shoppingcart.items} -
- - - - - - - - - - - - {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} - - - - - - - - - - {/foreach} - - - - - - - - - - {foreach $shoppingcart.tax_values as $taxRate => $taxData} - - - - - - - - - - {/foreach} - - - - - - - - - - - - - - - -
Pos.BildBeschreibungStückpreisAnzahl*löschenGesamtpreis
{$smarty.foreach.items_loop.iteration} - {$item->name}
- {if $item->variant_1 || $item->variant_2} - {$item->variant_1} {$item->variant_2}
- {/if} - {if ($item->variant_1 || $item->variant_2) && $item->item_number} - Art.-Nr. {$item->item_number} - {else} - {if $item->attribute_7 && $item->number != $item->attribute_7} - Art.-Nr. {$item->attribute_7}   ({$template_text.item_details.old_item_number_title} {$item->number}) - {else} - Art.-Nr. {$item->number} - {/if} - - {/if} -
{$item->calculatedPrices.shownPrice|number_format:"2":",":"."} € -
-
-
x
-
Mindestabnahmemenge von {$item->min_quantity} Stück nicht erreicht!
-
-
-
x
-
Sie haben eine ungültige Stückzahl eingegeben! Die Abnahmestückzahl ist in {$item->buy_quantity}er Schritten gestaffelt!
-
- -
-
- x - - {($item->calculatedPrices.shownPrice * $item->quantity)|number_format:"2":",":"."} € -
-

- -
- - -
- *Um Artikel zu entfernen, Anzahl 0 eingeben -
-
-
- - {if isset($express_providers) && $express_providers} - {foreach from=$express_providers item=xp} - {if $xp.module == 'paypal_v2'} - - {else} - - {/if} - {/foreach} - {/if} -
- -
-
- {else} - Es befinden sich keine Artikel in Ihrem Warenkorb - {/if} -
-
-
- -{if $shoppingcart.items && $system_configuration.shoppingcart_ordertext == 1} -

-
-
-
-

Anmerkung zu dieser Bestellung

-
-
- -
-
-
- Sie können hier einen Nachrichtentext an uns zu dieser Bestellung hinzufügen.
- - -
-
-
-
-{/if} - -{literal} - - -{/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[], customer_info, + cart_goto ('' | 'kasse' | 'express:'). 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} +
+
+
+

Schnelleinkauf

+
+
+
+
+ Artikelnummer oder Bezeichnung eingeben und den Artikel direkt in den Warenkorb legen.
+ +
+
+
+
+{/if} + +
+
+
+

Warenkorb

+
+
+ +
+
+ {if $shoppingcart.items} +
+ + + + + + + + + + + + + + {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} + + + + + + + + + + {/foreach} + + + + + + + {foreach $shoppingcart.tax_values as $taxRate => $taxData} + + + + + + + {/foreach} + + + + + + + + + +
Pos.BildArtikelEinzelpreisAnzahlEntfernenGesamt
{$smarty.foreach.items_loop.iteration} + {$item->name|escape} + + {$item->name}
+ {if $item->variant_1 || $item->variant_2} + {$item->variant_1} {$item->variant_2}
+ {/if} + {if ($item->variant_1 || $item->variant_2) && $item->item_number} + Art.-Nr. {$item->item_number} + {elseif $item->attribute_7 && $item->number != $item->attribute_7} + Art.-Nr. {$item->attribute_7} + ({$template_text.item_details.old_item_number_title} {$item->number}) + {else} + Art.-Nr. {$item->number} + {/if} +
{$item->calculatedPrices.shownPrice|number_format:"2":",":"."} € +
+
+
x
+
Mindestabnahme: {$item->min_quantity} Stück.
+
+
+
x
+
Dieser Artikel ist nur in {$item->buy_quantity}er Schritten bestellbar.
+
+ +
+
+ × + + {($item->calculatedPrices.shownPrice * $item->quantity)|number_format:"2":",":"."} € +
+ + {if $system_configuration.shoppingcart_ordertext == 1} +
+
+
Zum Beispiel Gerätetyp, Farbe oder ein Hinweis für den Versand. Sie können den Text auch in der Kasse noch ändern.
+ +
+ {/if} + +
+
+ +
Zum Entfernen die Anzahl auf 0 setzen oder × anklicken.
+
+
+ + {if isset($express_providers) && $express_providers} + {foreach from=$express_providers item=xp} +
+ {if $xp.module == 'paypal_v2'} + + PayPalDirekt bezahlen + + {else} + Direkt mit {$xp.label|escape} bezahlen + {/if} +
+ {/foreach} + {/if} +
+
+
+ {else} +

Ihr Warenkorb ist leer.

+

Weiter einkaufen

+ {/if} +
+
+
+ +{literal} + + +{/literal}