am: 10. Februar 2018, 11:44:52
Guten Tag geschätzte Gemeinde,
bin gerade dabei bei einigen Artikeln Staffelpreise anzulegen und möchte das "Ab" auch vor der Preisanzeige haben. Aber eben nur bei den Staffelpreisen, aber nicht bei den Artikeln mit Attributen.
Dafür habe ich wie im Handbuch beschrieben folgende Änderungen vorgenommen:
Alternative #1:
Es gibt bei Staffelpreisen aber auch die Möglichkeit, die SELECT-Abfrage in der Datei „includes/
classes/xtcPrice.php“ zu erweitern. Die Datenbank-Abfrage wurde um die Bedingung „Preis der
Option größer 0" erweitert. Nur wenn es unterschiedliche Preise gibt, wird noch ein “ab“ angezeigt.
die Zeile:
$products_attributes_query = "select count(*) as total from ".TABLE_PRODUCTS_OPTIONS." popt,
".TABLE_PRODUCTS_ATTRIBUTES." patrib where patrib.products_id='".$pID."' and patrib.options_id
= popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."' ";
gegen diese Zeile ersetzen:
$products_attributes_query = "select count(*) as total from ".TABLE_PRODUCTS_OPTIONS." popt,
".TABLE_PRODUCTS_ATTRIBUTES." patrib where patrib.products_id='".$pID."' and patrib.options_id
= popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."'
and patrib.options_values_price> 0";
Und Alternative #2:
Sollte es bei einigen Artikeln aber doch zu einer Preisänderung kommen (Staffelpreise, Attributtaufpreis
usw.), kann das “Ab” unter Umständen wieder erscheinen. Hierzu ändert man in der Datei includes/
classes/xtc_Price.php die Zeile:
function checkAttributes
($pID) {if (!$this->showFrom_Attributes) return;if ($pID == 0)return;$products_attributes_query = "select count(*) as total from ".TABLE_PRODUCTS_OPTIONS
." popt,
".TABLE_PRODUCTS_ATTRIBUTES
." patrib where patrib.products_id='".$pID."' and patrib.options_id
= popt.products_options_id and popt.language_id = '".(int
) $_SESSION['languages_id']."' and patrib.
options_values_price> 0";$products_attributes = xtDBquery
($products_attributes_query);$products_attributes = xtc_db_fetch_array
($products_attributes, true);if ($products_attributes['total']> 0)return ' '.strtolower(FROM
).' ';} ändern in:
function checkAttributes($pID) {
if (!$this->showFrom_Attributes) return;
if ($pID == 0) return;
$products_attributes_query = "select patrib.options_values_price as atrib_price from
".TABLE_PRODUCTS_ATTRIBUTES." patrib, ".TABLE_PRODUCTS_OPTIONS." popt where patrib.
products_id='".$pID."' and patrib.options_id = popt.products_options_id and popt.language_id =
'".(int) $_SESSION['languages_id']."'";
$products_attributes_query = xtDBquery($products_attributes_query);
$price_from_valid = false;
while ($atrib_prices = xtc_db_fetch_array($products_attributes_query, true)) {
if ($atrib_prices['atrib_price']!=0) {
$price_from_valid = true;
break;
}
}
if ($price_from_valid) {
return ' '.FROM.' ';
}
else {
return;
}
}
Das funktioniert perfekt, das "Ab" wird beim Artikel mit Staffelpreisen angezeigt, aber beim Artikel mit Attributen eben nicht,
so soll es sein.
Nur in der Artikelübersicht, also wenn ich eine Kategorie anklicke und alle Artikel werden neben- und untereinander angezeigt, ist das "Ab" noch vor dem Preis zu sehen.
Wie kann ich das verhindern, was muss ich ändern / anpassen damit das "Ab" in der Artikelübersicht nicht bei Attributsartikeln erscheint?
Hier mal ein Artikel:
https://www.maggysstore.de/maggysstore-aromen/nach-hersteller/k-boom/k-boom-aroma-hard-man.htmlUnd hier mal die Artikelübersicht:
https://www.maggysstore.de/maggysstore-aromen/nach-hersteller/k-boom/Herr_Bert
Linkback: https://www.modified-shop.org/forum/index.php?topic=38590.0