Jump to content
xt:Commerce Community Forum

Attribut Präfix "=", statt "+" und "-"


xtc.sanchez

Recommended Posts

  • 3 weeks later...

das ganze geht wie folgt:

in "/admin/includes/modules/new_attributes_functions.php"

füge ein in funktion "checkAttribute":

global $attribute_value_price,$sortorder, $attribute_value_weight, $attribute_value_weight_prefix, $attribute_value_prefix, 
$attribute_value_model, $attribute_value_stock, $posCheck, $negCheck,[/PHP]

diese Variable:

[PHP], $isCheck[/PHP]

ersetze:

[PHP]if ($attribute_value_prefix == '+') {
$posCheck = ' SELECTED';
$negCheck = '';
} else {
$posCheck = '';
$negCheck = ' SELECTED';
}
if ($attribute_value_weight_prefix == '+') {
$posCheck_weight = ' SELECTED';
$negCheck_weight = '';
} else {
$posCheck_weight = '';
$negCheck_weight = ' SELECTED';
}[/PHP]

mit:

[PHP]if ($attribute_value_prefix == '+') {
$posCheck = ' SELECTED';
$negCheck = '';
$isCheck = '';
} elseif($attribute_value_prefix == '-') {
$posCheck = '';
$negCheck = ' SELECTED';
$isCheck = '';
} elseif ($attribute_value_prefix == '=') {
$posCheck = '';
$negCheck = '';
$isCheck = ' SELECTED';
}[/PHP]

füge ein am ende von:

[PHP]} else {
$attribute_value_price = '';
$sortorder = '';
$attribute_value_weight = '';
$attribute_value_prefix = '';
$attribute_value_weight_prefix = ''; $attribute_value_model = '';
$attribute_value_stock = '';
$posCheck = '';
$negCheck = '';[/PHP]

[PHP]$isCheck = '';[/PHP]

in "/admin/includes/modules/new_attributes_include.php"

Zeile 112 ändern in:

[PHP]echo "<TD class=\"main\" align=\"left\"><SELECT name=\"" . $current_value_id . "_prefix\"> <OPTION value=\"+\"" . $posCheck .
">+<OPTION value=\"-\"" . $negCheck . ">-<OPTION value=\"=\"" . $isCheck . ">=</SELECT></TD>";[/PHP]

ändern in "/includes/classes/xtcPrice.php"

in funktion "xtcGetOptionPrice"

dies:

[PHP]if ($attribute_price_data['weight_prefix'] != '+')
$attribute_price_data['options_values_weight'] *= -1;
if ($attribute_price_data['price_prefix'] == '+') {
$price = $price - $price / 100 * $discount;
} else {
$price *= -1;
}[/PHP]

in folgendes:

[PHP]if ($attribute_price_data['price_prefix'] == '+') {
$price = $price - $price / 100 * $discount;
}
if ($attribute_price_data['price_prefix'] == '-') {
$price *= -1;
}
if ($attribute_price_data['price_prefix'] == '=') {
if($this->xtcCheckSpecial($pID)) {
$price_special = $this->xtcFormat($this->xtcCheckSpecial($pID), false, $attribute_price_data['products_tax_class_id']);
$price = ($price_special*-1) + $price;
} else {
// products_price Abfrage
$product_query = xtc_db_query("select products_id, products_price, products_discount_allowed, products_tax_class_id, products_weight from ".TABLE_PRODUCTS." where products_id='".$pID."'");
if ($product = xtc_db_fetch_array($product_query)) {
$products_price = $this->xtcGetPrice($product['products_id'], $format = false, $qty, $product['products_tax_class_id'], $product['products_price']);
$price = ($products_price*-1) + $price;
}
}

}
[/PHP]

Ich hoffe das ist alles so richtig.

Link to comment
Share on other sites

Hallo

Ich habe die Zeilen ausgetauscht, es funktioniert alles wunderbar, leider wird der Attributpreis nicht Rabattiert, wenn ein Rabatt vorhanden ist.

Ich habe mir die Formel angesehen, da ist auch keine $discount Variable drin ??

$price = ($products_price*-1) + $price;

habe versucht diesen dort zu integrieren, leider kam nur Kauderwelsch raus.

Für eine kleine Abänderung incl. Rabatt wäre ich dankbar.

M.f.G. Harald

Link to comment
Share on other sites

so, die Logik von der Function xtcGetOptionPrice habe ich jetzt verstanden, sie liefert den Aufschlag zurück.

dieser wird in der "=" variante aus (Hauptpreis*-1) + Attributpreis berechnet

bei der "+" variante wird mit der Formel

$price = $price - $price / 100 * $discount[/PHP]

;

der Aufschlag incl. Rabatt berechnet

Dementsprechend müßte bei der "=" Variante die Formel

[PHP]$price = ($products_price*-1 + $price) -(($products_price*-1 + $price) /100 * $discount);[/PHP]

lauten um den Aufschlag mit Rabatt zu berechnen..

aber leider funktioniert es nicht so richtig

damit der rabattie Attributpreis auf der Artikelseite angezeigt wird habe ich in includes/modules/product_attributes.php

den code um folgendes erweitert

[code] if ($_SESSION['customers_status']['customers_status_discount_attributes'] == 1 && $products_options['price_prefix'] == '=') $price -= $price / 100 * $discount ; $attr_price=$price; [/code]

das funktioniert wunderbar, aber leider wird der Warenkorb nicht richtig berechnet.

Hat jemand einen Verbesserungsvorschlag ?

Gruss Harald

Link to comment
Share on other sites

Wenn ich den Normalen Preis angebe dann steht wie es eigentlich auch sein soll Ab xx€ drin. Wenn man aber auf Kasse geht zählt er einfach den Ab Preis zu den Päfix = Kosten dazu.

D.h. Ab 10,00€

Päfix 1000 = 100€

Die KAsse gibt 110.-€ aus. Diese soll aber nur den Präfixpreis nehmen also die 100€.

Hoffe jemand kann mir helfen. Ich verzeifel hier bald gleich mit dem Shop!!!!

Danke!

Link to comment
Share on other sites

Zu dem Warenkorb problem kann ich jetzt leider auch nichts sagen. Dafür müsste ich mir den Code etwas näher im Detail anschauen.

Das Addieren des Artikelpreis mit dem Präfix-Preis ist seltsam, da es bei dem Shop für den ich entwickelt habe das ganze funktioniert hat.

Vielleicht ein kleiner Fehler eingeschlichen beim einsetzen der PHP-Code änderungen?

Wie gesagt. Kann auch sein das ich mich an einer kleinen Stelle vertan habe.

Link to comment
Share on other sites

  • 7 months later...

Genau dies ist auch mein Problem gewesen.

Hier die Lösung

Ersetzt einfach den Code

{if $item_data.PRICE}{$item_data.PREFIX}{$item_data.PRICE}{/if}
durch den folgenden.
{if $item_data.PRICE}{*$item_data.PREFIX*}{$item_data.FULL_PRICE}{/if}[/code]

in templates/DEIN_TEMPLATE/module/product_options/

Dankt nicht mir, sondern Walter ;)

Gruß Blue Thunder

Link to comment
Share on other sites

  • 4 months later...

Hallo

Ich hatte die änderungen wie auf der 1 seite beschrieben befolgt. Das '=' wird auch angezeigt und kann es auch auswählen. Leider zeigt er bei den Produkoptionen nicht den Preis an den ich bei der Attributverwaltung eingegeben habe sondern subtrahiert ihn vom Artikel. Kann mir da jmd weiterhelfen?

Danke im Voraus

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...