Hallo,
es gibt schon Foren-Beiträge zu diesem Thema. Leider keines mit einer wirklichen Lösung.
Ziel ist es eine Kategorie zu haben in welcher alle reduzierten Artikel Automatisch vorhanden sind. Ein reduzierter Artikel ist wenn UVP > PREIS.
Idee ist eine Kategorie mit individuellem Template basierend auf list.tpl anzupassen so dass alle Artikel angezeigt werden und dies dann über eine Abfrage UVP > PREIS zu filtern.
Hat jemand so etwas schon umgesetzt? Unser Problem beginnt dass wir nicht alle Artikel angezeigt bekommen da in dieser Kategorie keine Artikel zugeordnet sind. Diese Zuordnung zur Kategorie soll auch nicht per Backend passieren. Es handelt sich um sehr viele Artikel und häufige Preisänderungen. Daher muss dies automatisch passieren.
Vielleicht hat jdm einen Tipp.
Danke und Gruß
kann man über ein kleines Script machen, das manuell oder auch über cronjob zB einmal am Tag aufgerufen wird. Das Script zieht dann alle Artikel ‘Preis < UVP’ in die Kategorie ‘Sale’ und im Gegenzug ggf. Artikel wieder raus. Die Kategorie wird ganz normal im Admin gepflegt. Wäre auch erweiterbar mit Unterkategorien ‘Sale 10%’ - ‘Sale 20%’ etc.
das script kann im ersten Schritt so aussehen:
<?php
// Hier muss der Titel der Kategorie 'Sale' rein:
$sCatTitle = 'Angebote';
// auf false setzen um Daten in die DB zu schreiben!
$testen = true;
// *******************************************************
// keine Änderungen ab hier erforderlich
$myConfig = new myconfig;
$myConfig->init();
// load db
$mydb = @mysql_connect($myConfig->dbHost, $myConfig->dbUser, $myConfig->dbPwd);
mysql_select_db($myConfig->dbName, $mydb);
// find category
$sql = "select OXID, OXTITLE from oxcategories ";
$sql .= "where OXTITLE = '$sCatTitle' limit 1";
$result = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result) == 0) {
echo "Kategorie '$sCatTitle' nicht gefunden!";
die();
}
$sCatID = $row['OXID'];
// find articles
$sql = "select OXID, OXTITLE from oxarticles ";
$sql .= "where oxactive = 1 ";
$sql .= "and OXTPRICE > OXPRICE";
$result = mysql_query($sql) or die(mysql_error());
?>
<html>
<head>
</head>
<body>
<?php
while ($row = mysql_fetch_assoc($result)) {
$sql = "select OXID from oxobject2category ";
$sql .= "where OXCATNID = '$sCatID' ";
$sql .= "and OXOBJECTID = '" . $row['OXID'] . "'";
$resultcat = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($resultcat) == 0) {
// not yet in category
echo $row['OXTITLE'] . ' -> ' . $sCatTitle . "<br />
";
if (!$testen) {
$sql = "insert into oxobject2category set ";
$sql .= "OXCATNID = '$sCatID', ";
$sql .= "OXOBJECTID = '" . $row['OXID'] . "'";
mysql_query($sql);
}
}
}
?>
</body>
</html>
<?php
class myconfig {
function init() {
include 'config.inc.php';
}
}
In das Root-Verzeichnis des Shops laden zB mit dem Namen sale2category.php und testen.
PS mein Enkel bräuchte noch einen neuen Fahrradhelm