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

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close