xtcModified Staffelpreis von Einheit Stück auf VPE ändern

Bei der Ausgabe der Staffelpreise in xtcModified (Version 1.05) sind seitens des Core keine verschiedenen Verpackungseinheiten realisiert. Hier eine eigene Erweiterung des Cores. Benutzung auf eigene Gefahr und immer an eine Datensicherung denken.

 

Damit Staffelpreise mit den entsprechenden Verpackungseinheiten dargestellt werden, kann man die folgenden zwei Dateien geringfügig anpassen:

In der Datei ‘includes/classes/product.php’ definieren wir in der Funktion getGraduated() die neue Variable:

$get_real_vpe_name = xtc_get_vpe_name($this->data[‘products_vpe’]);

Anschließend wird diese neue Variable unter dem Schlüssel ‘VPEREAL’ in das array ‘$staffel_data[]’ geschrieben:

$staffel_data[$i] = array (‘VPEREAL’ => $get_real_vpe_name, …bla bla andere einträge…);

Auf diese Variable kann man jetzt in ‘templates/xtc5/module/graduated_price.html’ mit ‘{$module_data.VPEREAL}’ zugreifen und ‘{#unit#}’ kann damit ausgetauscht werden. Es werden also keine neuen Datenfelder oder dergleichen benötigt. Die hinterlegte Bezeichnung der VPE für jeden Artikel wird bereits im Core ausgelesen, leider wurde bis heute dieser Wert nicht zur weiteren Nutzung einer Variablen zugeordnet.

Folgende zwei Dateien werden angepasst. Die Änderungen sind dokumentiert:

Änderung 1: includes/classes/produkt.php – function getGraduated()

function getGraduated() {
    global $xtPrice;
    $discount = $xtPrice->xtcCheckDiscount($this->pID);	// Hetfield - 2010-03-15 - BUGFIX show VPE with discount for graduated prices
    $staffel_query = xtDBquery("SELECT quantity, personal_offer
                                       FROM ".TABLE_PERSONAL_OFFERS_BY.(int) $_SESSION['customers_status']['customers_status_id']."
		                                     WHERE products_id = '".$this->pID."'
				                                     ORDER BY quantity ASC");
	$staffel = array ();
    while ($staffel_values = xtc_db_fetch_array($staffel_query, true)) {
        $staffel[] = array ('stk' => $staffel_values['quantity'], 'price' => $staffel_values['personal_offer']);
    }

    $staffel_data = array ();
    for ($i = 0, $n = sizeof($staffel); $i < $n; $i ++) {
        //BOF - web28 - 2010-07-13 - BUGFIX display same quantity only once for graduated prices / FIX max value info for graduated prices
        /*
        if ($staffel[$i]['stk'] == 1) {
        $quantity = $staffel[$i]['stk'];
        if ($staffel[$i +1]['stk'] != '')
           $quantity = $staffel[$i]['stk'].'-'. ($staffel[$i +1]['stk'] - 1);
        } else {
               $quantity = ' > '.$staffel[$i]['stk'];
               if ($staffel[$i +1]['stk'] != '')
					$quantity = $staffel[$i]['stk'].'-'. ($staffel[$i +1]['stk'] - 1);
               }
        */
        if ($staffel[$i]['stk'] == 1 || $staffel[$i +1]['stk'] != ''){
            $quantity = $staffel[$i]['stk'];
            if ($staffel[$i +1]['stk'] != '' && $staffel[$i +1]['stk'] != $staffel[$i]['stk'] + 1) $quantity .= ' - '. ($staffel[$i +1]['stk'] - 1);
        }
        else {
            $quantity = GRADUATED_PRICE_MAX_VALUE.' '.$staffel[$i]['stk'];
        }
        //EOF - web28 - 2010-07-13 - BUGFIX display same quantity only once for graduated prices	/FIX max value info for graduated prices
        $vpe = '';
        // BOF - Hetfield - 2009-08-24 - BUGFIX show VPE for graduated prices
        if ($this->data['products_vpe_status'] == 1 && $this->data['products_vpe_value'] != 0.0 && $staffel[$i]['price'] > 0) {
            $vpe = $staffel[$i]['price'] - $staffel[$i]['price'] / 100 * $discount;
            $vpe = $vpe * (1 / $this->data['products_vpe_value']);

/*Modified by Enders - 2011-07-27: additional entry 'VPEREAL' in array '$staffel_data[]'*/
            //Einfügen 1
            $get_real_vpe_name = xtc_get_vpe_name($this->data['products_vpe']);
            //Einfügen 1 Ende

            //Löschen 1
            //$vpe = BASICPRICE_VPE_TEXT.$xtPrice->xtcFormat($vpe, true, $this->data['products_tax_class_id']).TXT_PER.xtc_get_vpe_name($this->data['products_vpe']);
            //Löschen 1 Ende

            //Einfügen 2
            $vpe = BASICPRICE_VPE_TEXT.$xtPrice->xtcFormat($vpe, true, $this->data['products_tax_class_id']).TXT_PER.$get_real_vpe_name;
            //Einfügen 2 Ende
        }
        // EOF - Hetfield - 2009-08-24 - BUGFIX show VPE for graduated prices
        //Löschen 2
        //$staffel_data[$i] = array ('QUANTITY' => $quantity, 'VPE' => $vpe, 'PRICE' => $xtPrice->xtcFormat($staffel[$i]['price'] - $staffel[$i]['price'] / 100 * $discount, true, $this->data['products_tax_class_id']));
        //Löschen 2 Ende

        //Einfügen 2
        $staffel_data[$i] = array ('VPEREAL' => $get_real_vpe_name, 'QUANTITY' => $quantity, 'VPE' => $vpe, 'PRICE' => $xtPrice->xtcFormat($staffel[$i]['price'] - $staffel[$i]['price'] / 100 * $discount, true, $this->data['products_tax_class_id']));
        //Einfügen 2 Ende
/*Modified by Enders - 2011-07-27 Ende*/
    }
    return $staffel_data;
 }

Änderung 2: templates/xtc5/module – graduated_price.html

Den Platzhalter:

{$module_data.QUANTITY} {#unit#}

durch Variable:

{$module_data.QUANTITY} {$module_data.VPEREAL}

austauschen.

Veröffentlicht unter Shop Systeme
2 comments on “xtcModified Staffelpreis von Einheit Stück auf VPE ändern
  1. ITSD sagt:

    In xtcModified befindet sich die Template-Datei für die Darstellung der Staffelpreise in ‘templates/xtc5/module/graduated_price.html’. Falls ähnliches in Veyton geändert werden soll findet man die Datei unter: ‘templates/xt_default/xtCore/pages/price/graduated_table.html’

  2. chef sagt:

    Die Variable {$module_data.VPEREAL} kann natürlich auch an anderen Stellen Verwendung finden. So zum Beispiel auf der Artikeldetailseite zwischen dem Eingabefelf für die Artikelanzahl und dem Button zum Speichern im Warenkorb.

Hinterlasse eine Antwort

Diese Website nutzt Cookies, um unseren Besuchern die bestmögliche Funktionalität bieten zu können. Durch die weitere Nutzung unserer Seiten erklären Sie sich mit dem Einsatz von Cookies einverstanden. Erfahren Sie mehr zum Einsatz von Cookies und dem Umgang mit Ihren persönlichen Daten in unserer: Datenschutzerklärung

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen", um Ihnen das beste Surferlebnis möglich zu geben. Wenn Sie diese Website ohne Änderung Ihrer Cookie-Einstellungen zu verwenden fortzufahren, oder klicken Sie auf "Akzeptieren" unten, dann erklären Sie sich mit diesen.

Schließen