Nein, nur im Artikel. Habe mir aber schon ein fertiges Skript programmieren lassen, was das macht. Ebenso kann ich Artikel jetzt an einer hochgeladenen CSV gesondert rabattiert updaten. Funktioniert alles bestens und ich muss wöchentlich keine 1500 Artikel manuell updaten.
Hallo Zusammen, da man ja per CSV nicht die Artikelanzahl der "Zusatzoptionen" bearbeiten kann, Frage ich euch ob jemand evtl. einen SQL-Befehl dafür gibt!? Ich möchte den Bestand der Zusatzoptionen bei allen Artikeln auf eine Anzahl ändern. Danke vorab! LG Bernd LÖSUNG: UPDATE products_attributes SET attributes_stock = 99; (Ersetze den Wert 99 mit dem von dir gewünschten Wert.)
Der Lagerbestand von Zusatzoptionen wird in der Spalte attributes_stock in der Tabelle products_attributes gespeichert. Folgender SQL-Befehl listet z.B. alle Produkte auf, bei denen die Summe von den zwei zugewiesenen Options-Lagerbeständen nicht mit dem Haupt-Lagerbestand übereinstimmt: PHP: SELECT p.products_id, pd.products_name AS Bezeichnung, products_quantity AS Lagerbestand, (SELECT attributes_stock FROM products_attributes AS pa WHERE p.products_id = pa.products_id AND pa.options_id = 4 AND pa.options_values_id = 25) AS Lagerbestand_Option_25, (SELECT attributes_stock FROM products_attributes AS pa WHERE p.products_id = pa.products_id AND pa.options_id = 4 AND pa.options_values_id = 26) AS Lagerbestand_Option_26FROM products AS p INNER JOIN products_description AS pd ON p.products_id = pd.products_idWHERE pd.language_id = 2 AND p.products_id IN (SELECT DISTINCT products_id FROM products_attributes) AND products_quantity <> (SELECT attributes_stock FROM products_attributes AS pa WHERE p.products_id = pa.products_id AND pa.options_id = 4 AND pa.options_values_id = 25) + (SELECT attributes_stock FROM products_attributes AS pa WHERE p.products_id = pa.products_id AND pa.options_id = 4 AND pa.options_values_id = 26) Der zugehörige Optionsname steht in der Spalte products_options_values_name in der Tabelle products_options_values. Weiß jemand, wie ich diesen Wert (also z.B. PHP: SELECT products_options_values_nameproducts_attributes FROM products_options_values where products_options_values_id=25 als Spaltennamen setzen kann? Also so was wie CONCAT('Lagerbestand ',SELECT products_options_values_nameproducts_attributes FROM products_options_values where products_options_values_id=25), aber eben nach dem AS. Der Bestand von Varianten steht in der Spalte combi_quantity in der Tabelle products_properties_combis.
An anderer Stelle wurde nach einer Möglichkeit gefragt, wie man an die Umsätze mit einem bestimmten Rabatt Coupon kommen kann. https://www.gambio.de/forum/threads/gutscheincode-auswerten.46804/ -- Edit: Der nachfolgende Abschnitt wurde überarbeitet (2024-Jan-15 00:11); Erklärung siehe unten. Die SQL-Abfrage liefert zu einem (per id) angegebenen Rabatt Coupon zu allen Aufträgen, bei welchen der Coupon eingelöst worden ist, alle gespeicherten Werte für den jeweiligen Auftrag aus der Summentabelle orders_total. Darin stehen auftragsbezogen die einzelnen Werte für die jeweiligen Module, wie sie zur Zeit des Bestelleingangs unter Modulcenter > Zusammenfassung: Zusammenfassung eingestellt waren und bei der Gesamtsummenbildung des Auftrags berücksichtigt wurden. Die Werte der Spalte Summentyp entsprechen dabei den Modulnamen. So steht z.B. ot_subtotal für Warenwert und ot_total für Summe. Der jeweilige Rabatt Coupon wird in der Abfrage durch seine Id angegeben, die ist eindeutig. Ihr findet Sie, wenn ihr einen Rabatt Code im Backend zum Bearbeiten ausgewählt habt, in der grauen Spalte rechts oben vor dem Namen des Coupons in eckigen Klammern stehend. Das Abfrageergebnis beinhaltet die Spalten mit Kundennummer, Bestellnummer, Einlösedatum, Summentyp und Wert (value), wobei letztere mit '.' als Dezimaltrennzeichen und 4 Nachkommastellen kommt (ist so in der DB abgelegt). Außerdem noch die mit Kundennamen, Erläuterungen (title) des Summentyps, sowie den formatierten Summenwerten (text). In der nachfolgenden Beispielabfrage werden alle Werte für jeden Auftrag ausgegeben, in welchem der Rabatt Coupon mit Id 3 verwendet wurde. Ihr müsst für Eure Abfrage also den Wert für v.coupon_id entsprechend anpassen. Code: SELECT v.customer_id AS "Kunde Nr.", v.order_id AS "Bestellung Nr.", v.redeem_date AS "Einlösedatum", ot.value, ot.class AS "Summentyp", o.customers_name AS "Kunde Name", ot.title, ot.text FROM coupon_redeem_track v INNER JOIN orders o ON v.order_id = o.orders_id INNER JOIN orders_total ot ON v.order_id = ot.orders_id WHERE v.coupon_id = 3 -- <-- hier Id des Rabatt Coupons angeben ; Als Variante davon gibt es die folgende Abfrage, bei der direkt die Summe aller Werte zurückgegeben wird (mit 2 Dezimalstellen). Welche Werte dabei aufsummiert werden sollen, muss hierbei in der Abfrage angegeben werden. In der nachfolgenden Beispielabfrage werden die Werte des Summentyps "ot_subtotal" (was für den Warenwert steht) für alle Aufträge, in welchem der Rabatt Coupon mit Id 3 verwendet wurde, aufsummiert. Code: SELECT FORMAT(SUM(ot.value), 2) FROM coupon_redeem_track v INNER JOIN orders o ON v.order_id = o.orders_id INNER JOIN orders_total ot ON v.order_id = ot.orders_id WHERE v.coupon_id = 3 AND -- <-- hier Id des Rabatt Coupons angeben ot.class = "ot_subtotal" -- <-- hier Summentyp (class) angeben ; Die Abfragen wurden in Toolbox > SQL im phpMiniAdmin erfolgreich ausgeführt unter v4.8.0.2. Fragen, Anmerkungen, Verbesserungen und Ergänzungen dazu sind erwünscht. -- Der nach der "Edit-Markierung" oben folgende Teil dieses Posting wurde grundlegend überarbeitet. Die bisherige Version war zu spezifisch und hatte für den Fragenden nicht funktioniert. Zusammen haben wir dann eine Lösung entwickelt, die ich jetzt hier beschrieben habe. Ich wollte in diesem Thread kein neues Posting mit einer überarbeiteten Version machen, da ich den Thread rein als Sammlung hilfreicher funtionierender SQL-Abfragen betrachte und hier keinen diskutierten Weg der Lösungsfindung dokumentieren möchte.
Hallo, ein Königreich für einen SQL Befehl, mit dem ich in bestimmten Kategorien die VPE auf "Liter" (oder "l") setzen kann und die Mengeneinheit auf "ml". Wir verkaufen eine Menge Farben und aus unerfindlichen Gründen war nach dem Update alles auf 100ml statt Liter gesetzt und die Mengeneinheit leer.
Hallo, die folgende SQL Anweisung gibt mir zwei unterschiedliche Ergebnisse aus. Code: SELECT products.products_id, products.products_model, products_description.products_name, products_item_codes.brand_name, products.products_quantity, products_item_codes.google_export_availability_id FROM products INNER JOIN products_item_codes ON products_item_codes.products_id = products.products_id INNER JOIN products_description ON products_description.products_id = products.products_id WHERE products.products_quantity = 0 AND products_item_codes.google_export_availability_id = 1; Ich bekomme die zwei Resultate geliefert, möchte aber nur eins: Array ( [products_id] => 436 [products_model] => 00355 [products_name] => [brand_name] => Bijou Brigitte [products_quantity] => 0.0000 [google_export_availability_id] => 1 ) Array ( [products_id] => 436 [products_model] => 00355 [products_name] => Drahtkette Viereck gewellt 45cm [brand_name] => Bijou Brigitte [products_quantity] => 0.0000 [google_export_availability_id] => 1 ) Beim ersten Ergebnis ist [products_model] => leer Das zweite Ergebnis ist das Resultat, was ich gerne hätte. Kann mir da jemand unter die Arme greifen? Vielen Dank
Hallo Zusammen, ich bin auf der Suche nach einem SQL Befehl um alle "Zusatzbegriffe für Suche" zu löschen. Jemand eine Idee? Danke im Vorraus!
Damit sollte es gehen: Code: UPDATE products_description SET products_description.products_keywords = ""; Vorher Daten sichern!
Gibt es eine Möglichkeit per SQL das Feld "Marke" mit dem Inhalt des Felds "Hersteller" zu besetzen? Ich habe leider immer nur den Hersteller erfasst, Google greift aber auf die Marke zu, Das ist bei mir das Selbe, daher würde ich das gerne von Hersteller in Marke kopieren. Marke ist brand_name in products_item_codes
das sollte gehen...was steht in feld marke wenn man manuell einen setzt? ziemlich sicher hersteller id aus gambio. bitte in phpmyadmin checken. kann dann einen befehl erarbeiten der die felder setzt.
Da steht Text drin, keine ID. Man müsste also für jeden Artikel den Text aus dem Herstellerfeld nehmen, und diesen in das Feld Marke kopieren.
der hersteller hat aber im feld eine id, keinen text. id muss man klartext hersteller aus anderer tabelle ziehen. kann man alles entwickeln. da das aber den thread hier nicht weiterbringt am besten direkte anfrage an ff-webdesigner.com
Hallo, ich mache eine SQL Abfrage. ... AND products_description LIKE '%<p>Das ist Text%'; Der Text "<p>Das ist Text" steht aber unterschiedlich in der DatenBank. Nämlich so: "<p> Das ist Text" "<p> Das ist Text" "<p> Das ist Text" Man könnte dann so Abfragen: SELECT... AND products_description LIKE '%<p>_Das ist Text%'; SELECT... AND products_description LIKE '%<p>__Das ist Text%'; SELECT... AND products_description LIKE '%<p>___Das ist Text%'; Also mit ein, zwei oder drei Platzhaltern, das wären dann drei Abfragen. Gibt es nicht die Möglichkeit, mit einer Abfrage alle drei Möglichkeiten abzudecken. Das heißt, mit einer Abfrage alle Leerzeichen abzufangen, egal, wie viele es sind? Viele Grüße Bernd
Code: SELECT * FROM `products_description` WHERE `products_description` REGEXP '.*<p> *Das ist Text.*';
Sollte mit Code: UPDATE `products` SET `gm_price_status`='2' funktionieren. Datenbank vorher sichern, Benutzung auf eigene Gefahr.