ich habe 10 Produkte mit je 20 Varianten und der Versand wird über das Gewicht berechnet.
Bis jetzt sehe ich nur die Option in jede Variante das Gewicht einzugeben, kan man das besser lösen denn da klicke ich ewig rum
Moin Power,
eine (mässig) komfortable Möglichkeit wäre SQL…
update oxarticles set oxweight = ‘deingewicht’ where oxweight = ‘0’
So mach ich das zur Zeit bei vielen Varianten in der Hoffnung, das es irgendwann einmal ein komfortableres Backend gibt
Wobei du die Bedingung logischerweise noch modifizieren kannst (oxparentid etc…)
Beste Grüsse
Thomas
danke für den Tipp, werd sie wohl einmal manuell ins Backend reinschreiben
€dit:
möchte doch nicht den ganzen Tag Daten reinklopfen hab eben gesehen das es doch sehr aufwändig wäre und habs nun mal eben probiert, das Problem ist aber das nicht alle Artikel das selbe Gewicht haben, jeder dritte Artikel hat ein anderes Gewicht.
Am besten geklappt hat diese Zeilen zu markieren und das Gewicht zu ändern, habe aber gesehen das das Gewicht in 4 Datensätzrn immer in der gleichen Struktur hinterlegt ist:
oxarticles
oxv_oxarticles
oxv_oxarticles_de
oxv_oxarticles_en
Muss das überall geändert werden, was passiert wenn ich z.b. in oxarticels einen anderen Wert hätte wie z.B. in oxv_oxarticles_en
Moin Power,
alles, was mit oxv_ anfängt sind Views die ab und zu neu generiert werden!
Dort sind Änderungen sinnlos da sie beim nächsten “Views updaten” überschrieben werden.
Beste Grüsse
Thomas
PS: Wenn deine Varianten unterschiedliche Gewichte haben, hilft dir auch keine Gewichtsübernahme. Dann musst du sie ja sowieso alle einmal “anfassen”.
das ist mir dann auch aufgefallen, hab dann alles ins Backend reingeschrieben zum Glück hatte ich Hilfe war ne sehr einschläfernde Arbeit
Ich suche nach einer Lösung dieses mit ca. 1000 Stammartiklen und den dazugehörigen 6000 Varianten zu automatisieren. Jeder Stammartikel hat natürlich unterschiedliche Gewichtsangaben. Die Varianten sollen diese quasi von ihrem Vaterartikel erben.
Gibt es da eine SQL Möglichkeit? Zur Not würde mir auch ein Hack in Core-Dateien genügen, wo quasi mittels SQL Abfrage der Gewichtswert vom Vaterartikel benutzt wird.
besteht das Problem noch?
Ja das Problem besteht noch! Bin über Hilfe sehr dankbar.
Bin gerade dabei ein Datenbank Script zu schreiben, dass die Varianten durchgeht und falls OXWEIGHT = 0 ist, dieses vom Vaterartikel übernimmt, daich leider kein PHP/MySQL Fachmann bin, wird das Try and Error Verfahren angewendet
Also wenn schon eine Lösung vorhanden ist, gerne her damit.
Sollte ich was brauchbares haben, poste ich es natürlich!
Ich hätte ein Modul mit dem man das Gewicht zu den Feldern hinzufügen kann, die immer vererbt werden, dann steht das Gewicht zwar nicht in der DB bei der Variante, aber sie verhält sich so als hätte sie das Gewicht des Vaterartikels.
Hallo ich habe was Brauchbares gebastelt:
<?php
mysql_connect(“domain.de”,
“mysqluser”,“passwort”) or die
(“Keine Verbindung moeglich”);
mysql_select_db(“mysqldbname”) or die
(“Die Datenbank existiert nicht”);
mysql_query(“SET NAMES ‘utf8’ COLLATE ‘utf8_general_ci’”) or die(mysql_error());
function getweight($oxid) {
$get = mysql_query(“SELECT oxweight FROM oxarticles WHERE oxid=’$oxid’”) or die (mysql_error());
if ( mysql_num_rows($get) == 0 ) {
return 0;
} else {
$row = mysql_fetch_assoc($get);
return $row[‘oxweight’];
}
}
$check = mysql_query(“SELECT oxid, oxparentid, oxweight FROM oxarticles WHERE oxparentid!=’’ AND oxweight=0 LIMIT 0,30”) or die (mysql_error());
while($row = mysql_fetch_assoc($check)) {
mysql_query(“UPDATE oxarticles SET oxweight=’”.getweight($row[“oxparentid”])."’ WHERE oxid=’".$row[“oxid”]."’") or die (mysql_error());
echo “OXID: “.$row[“oxid”].” wurde von ParentID: “.$row[“oxparentid”].” mit dem Gewicht: “.getweight($row[“oxparentid”]).” aktualisiert!”."<br>";
}
?>
Das ganze ist noch durch “LIMIT 0,30” auf 30 Artikel beschränkt, um zu testen. Kann man dann natürlich später mittels Schleife auf alle Artikel anwenden.
Werde die DB mal sichern und das Script drüberlaufen lassen. Feedback folgt dann, ob es geklappt hat. Anmerkungen und Verbesserungen sind gerne willkommen!
[B]Wichtig!!! Zuvor eine Sicherung der Datenbank durchführen!!! Benutzung auf eigene Gefahr[/B]
[QUOTE=morfer;93307]Hallo ich habe was Brauchbares gebastelt:
<?php
mysql_connect(“domain.de”,
“mysqluser”,“passwort”) or die
(“Keine Verbindung moeglich”);
mysql_select_db(“mysqldbname”) or die
(“Die Datenbank existiert nicht”);
mysql_query(“SET NAMES ‘utf8’ COLLATE ‘utf8_general_ci’”) or die(mysql_error());
function getweight($oxid) {
$get = mysql_query(“SELECT oxweight FROM oxarticles WHERE oxid=’$oxid’”) or die (mysql_error());
if ( mysql_num_rows($get) == 0 ) {
return 0;
} else {
$row = mysql_fetch_assoc($get);
return $row[‘oxweight’];
}
}
$check = mysql_query(“SELECT oxid, oxparentid, oxweight FROM oxarticles WHERE oxparentid!=’’ AND oxweight=0 LIMIT 0,30”) or die (mysql_error());
while($row = mysql_fetch_assoc($check)) {
mysql_query(“UPDATE oxarticles SET oxweight=’”.getweight($row[“oxparentid”])."’ WHERE oxid=’".$row[“oxid”]."’") or die (mysql_error());
echo “OXID: “.$row[“oxid”].” wurde von ParentID: “.$row[“oxparentid”].” mit dem Gewicht: “.getweight($row[“oxparentid”]).” aktualisiert!”."<br>";
}
?>
Das ganze ist noch durch “LIMIT 0,30” auf 30 Artikel beschränkt, um zu testen. Kann man dann natürlich später mittels Schleife auf alle Artikel anwenden.
Werde die DB mal sichern und das Script drüberlaufen lassen. Feedback folgt dann, ob es geklappt hat. Anmerkungen und Verbesserungen sind gerne willkommen!
[B]Wichtig!!! Zuvor eine Sicherung der Datenbank durchführen!!! Benutzung auf eigene Gefahr[/B][/QUOTE]
Hi morfer,
du wolltest doch Feedback geben…:rolleyes:
Hatte ich vergessen, Sorry
Es hat bei mir super funktioniert!
Aber wie gesagt unbedingt die DB vorher sichern!!!
gibt es mittlerweile vielleicht eine andere Lösung ?? Modul oder ähnliches?