Kundengruppenrabatt auf Warenkorb mit Zeitintervall

Diskussionen die nicht direkt etwas mit einem Software oder Hardware Problem zu tun haben
Antworten
blackshadow
Beiträge: 93
Registriert: Sa 8. Mai 2010, 15:17
Shop Version: 1.0.8

Kundengruppenrabatt auf Warenkorb mit Zeitintervall

Beitrag von blackshadow »

Hallo zusammen,

möchte mit 1.0.8 folgendes realisieren und bekomme es nur zur hälfte hin:

In den Kundengruppen gibt es die Möglichkeit auf den gesamten Warenkorb einen Rabatt einzustellen. Nun möchte ich das zwischen zwei Datumsangaben schalten können bzw. nur für einen Tag.
Ich brauche das nicht im Backend - mir reicht es wenn ich die notwendigen PHP-Files modifziere und die Anfangs- und Enddatum per include reinhole (zum einfachen ändern später).

habe mich mal an der order_details_cart.php versucht - Rabatt wird nicht berechnet bei Datum innerhalb Interval. - Nur - Mein Problem ist nun:
  • Die Mwst wird falsch berechnet: d.h. sie wird immer vom Rabattierten Preis berechnet. hab nicht gefunden wo man hier auch noch die If-Anweisung plazieren könnte
  • Wir haben eine Kundengruppe die immer 5% Rabatt bekommt. Nun wäre es so, dass wenn das jeweilige Datum nicht innerhalb des Intervalls ist wird hier auch für dies Gruppe der Rabatt nicht berechnet.
Änderungen die ich bis jetzt vorgenommen habe habe ich je zwischen // ------------------------------------------- gesetzt. Ist bei mir ab ca. Zeile 124 in der /includes/modules/order_details_cart.php

Code: Alles auswählen

$total_content = array();
$total = $_SESSION['cart'] -> show_total();

// -------------------------------------------
$from = "26.09.2014";
$to = "26.09.2014";
$now = date("d.m.Y");
//if($from <= $now && $to >= $now) {
// -------------------------------------------

	if ( $_SESSION['customers_status']['customers_status_ot_discount_flag'] == '1'
		 && $_SESSION['customers_status']['customers_status_ot_discount'] != '0.00') {
	
		if ( $_SESSION['customers_status']['customers_status_show_price_tax'] == 0
			 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 1) {
	
				$price = $total-$_SESSION['cart'] -> show_tax(false);
		} else {
			$price = $total;
		}
	
		$discount = $xtPrice -> xtcGetDC($price, $_SESSION['customers_status']['customers_status_ot_discount']);
		$total_content['discount_rate'] = $_SESSION['customers_status']['customers_status_ot_discount'] . '%';
		$total_content['discount_value'] = xtc_format_price($discount, $price_special = 1, $calculate_currencies = false);
	}
// -------------------------------------------
//}
// -------------------------------------------

if ( $_SESSION['customers_status']['customers_status_show_price'] == '1' ) {

// -------------------------------------------
//	if($from <= $now && $to >= $now) {
// -------------------------------------------

		if ( $_SESSION['customers_status']['customers_status_show_price_tax'] == 0
			 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 0 ) {
	
				$total -= $discount;
		}
	
		if ( $_SESSION['customers_status']['customers_status_show_price_tax'] == 0
			 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 1 ) {
	
				$total -= $discount;
		}
	
		if ( $_SESSION['customers_status']['customers_status_show_price_tax'] == 1 ) {
			$total -= $discount;
		}
		

// -------------------------------------------
}
// -------------------------------------------

Kann mir hier jemand weiterhelfen - Evtl. bin ich auch in der falschen PHP-Datei unterwegs.

Danke im Voraus!

Helmut
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Kundengruppenrabatt auf Warenkorb mit Zeitintervall

Beitrag von yogi »

Hi,
  1. Ein Datum in der Deutschen Schreibweise ist nicht mit < oder > zu vergleichen, da der 01.12.2013 dabei kleiner als der 02.01.1970 (es wird von vorne nach hinten zeichenweise verglichen. Sinnvoller ist es das Datum im ISO-Format zu nutzten: YYYY-MM-DD HH:MM:SS, da funktioniert dann auch < und >
  2. Die Berechnung erfolgt noch an diversen anderen Stellen im Code:
    • checkout_process.php
    • includes/classes/shopping_cart.php
    • includes/classes/order.php
Und die Kundengruppe wirst Du ebenfalls in dem "if" mit abfangen müssen...

PS: warum modifizierst Du nicht die Datei includes/write_customers_status.php?
Antworten