Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Wie Preise zu anderen Kundengruppen kopieren?

    HenningK

    • Neu im Forum
    • Beiträge: 17
    Wie Preise zu anderen Kundengruppen kopieren?
    am: 19. Januar 2012, 20:25:27
    Ich möchte den Standardpreis in die Preisfelder von anderen Kundengruppen kopieren. Keine Staffelpreise, sondern nur die normalen Preise. Per Hand ist das aufwändig. Gibt's dazu eine Möglichkeit, evtl. auch per SQL?
    Im SQL finde ich bei "products" nur "products_price". Wo finde ich die Preise für die Kundengruppen und wie kann ich die kopieren?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=18005.0

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.366
    • Geschlecht:
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #1 am: 19. Januar 2012, 20:42:13
    Die kundengruppenspezifischen Preise stehen in den Tabellen "personal_offers_by_customers_status_***".

    Grüße

    Torsten

    HenningK

    • Neu im Forum
    • Beiträge: 17
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #2 am: 19. Januar 2012, 20:48:34
    Vielen Dank für die schnelle Antwort.
    Wie kann ich die Preise von "products_price" in die "personal_offers_by_customers_status_***" kopieren?

    Alfred

    • Experte
    • Beiträge: 2.115
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #3 am: 19. Januar 2012, 20:54:10
    Code: SQL  [Auswählen]
    UPDATE products,personal_offers_by_customers_status_3 SET personal_offers_by_customers_status_3.personal_offer=products.products_price
    WHERE personal_offers_by_customers_status_3.products_id=products.products_id

    Hallo,

    deine Datenbank - deine Sicherung...

    Gruß

    HenningK

    • Neu im Forum
    • Beiträge: 17
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #4 am: 19. Januar 2012, 21:14:06
    Datensicherung habe ich gemacht. Ich probier's sowieso erst an einem Testshop.
    Was passiert, wenn bei einem Artikel Staffelpreise eingetragen sind? Durch den Artikelimport stehen teilweise Staffelpreise drin, die ich bisher ignoriert habe, da die Kundengruppen sowieso keine Staffelpreise bekommen.
    Gibt's irgendwo eine Übersicht von nützlichen SQL-Befehlen (wie Preise kopieren/Staffelpreise löschen usw.)?

    Hab's eben ausprobiert. Hat nicht geklappt. Bei den ersten Artikeln hat's geklappt, aber bei den meisten stehen jetzt die Preise bei den Staffelpreisen drin.
    Vielleicht würde es klappen, wenn ich vorher die Staffelpreise lösche. Aber wie mache ich das?

    Alfred

    • Experte
    • Beiträge: 2.115
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #5 am: 19. Januar 2012, 21:26:50
    Hallo,

    das kann ich dir nicht sagen.
    Ich habe noch nie einen Shop bzw. die Datenbank mit Staffelpreisen "gehabt".

    Gruß

    HenningK

    • Neu im Forum
    • Beiträge: 17
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #6 am: 19. Januar 2012, 21:42:24
    Eigentlich wollte ich die Produkte exportieren im OOcalc bereinigen und dann wieder importieren. Doch der Export bricht vorzeitig ab. Wird ein Timeout sein. Wie kann ich den Timeout erhöhen und wie lösche ich alle Artikel im Shop?

    Alfred

    • Experte
    • Beiträge: 2.115
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #7 am: 19. Januar 2012, 21:54:50
    Hallo,

    theoretisch indem du einfach die Tabelle "products" leerst.
    Praktisch ist das nicht, da Bilder erhalten bleiben, Attribute bleiben gesetzt, ...
    Mach das Stück für Stück im Backend vom Shop.
    Solltest du eine Wawi nutzen musst du das darüber erledigen.
    Sonst stellt die beim Start eventuell wieder alles rein.

    Gruß

    HenningK

    • Neu im Forum
    • Beiträge: 17
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #8 am: 19. Januar 2012, 22:26:01
    Eine Wawi ist nicht dran und über's Backend ist es mit knapp 9.000 Artikeln eine Arbeit von 3 Tagen. Ich habe mir eben den Erweiterten Im/Export2.0 installiert, weil da der Timeout einstellbar ist. Export hat damit geklappt. Muss ich denn überhaupt alle Artikel löschen? Beim erweiterten Im/Export geht doch auch die Option "Update". Was passiert denn mit den Bildern? Das dürfte eigentlich kein Problem sein, da ich die Artikel in gleicher Reihenfolge wieder importiere. Die ArtikelID bleibt doch dann identisch, nur die Felder für die Kundengruppenpreise werden aufgefüllt. Ich probier's einfach mal und schreibe dann mein Ergebnis.
    Wie machen das denn andere, die keine Wawi dran haben und mehrere tausend Produkte im Shop?
    Das kann man doch nicht mehr übers Backend verwalten.

    vr

    • modified Team
    • Beiträge: 2.664
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #9 am: 20. Januar 2012, 01:10:52
    Hallo HenningK,

    [...]
    Hab's eben ausprobiert. Hat nicht geklappt. Bei den ersten Artikeln hat's geklappt, aber bei den meisten stehen jetzt die Preise bei den Staffelpreisen drin.
    Vielleicht würde es klappen, wenn ich vorher die Staffelpreise lösche. Aber wie mache ich das?

    Nein, das spielt bei dem update statement von Alfred keine Rolle. Das Zielfeld wird überschrieben, egal ob es leer war oder nicht. Der Unterschied zwischen Kundengruppenpreisen und Staffelpreisen ist, dass bei letzteren in quantity irgendwas > 1 steht. Kannst Du das mal ausführen bitte und das Ergebnis hier durchgeben:

    Code: SQL  [Auswählen]
    SELECT quantity, COUNT(*) anzahl
    FROM personal_offers_by_customers_status_3
    GROUP BY 1

    Wenn Du als Ergebnis mehr als eine Zeile kriegst, hast Du Staffelpreise, in anzahl steht dann, wie viele.

    [...]
    Gibt's irgendwo eine Übersicht von nützlichen SQL-Befehlen (wie Preise kopieren/Staffelpreise löschen usw.)?
    [...]

    Nein, hauptsächlich in Threads wie dem hier zu einer konkreten Aufgabe. Sobald Du mit SQL schreibend auf die DB losgehst, musst Du überblicken, was Du machst. ZB ist noch nicht klar, ob Du schon Staffelpreise hattest. Dann würde eine Kopieraktion uU anders aussehen.

    Was willst Du denn erreichen? Willst Du wirklich bei 9000 Artikeln einzeln kundengruppenspezifische Preise vergeben? Oder eher ein Rabatt?

    Grüße, Volker

    HenningK

    • Neu im Forum
    • Beiträge: 17
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #10 am: 20. Januar 2012, 02:09:04
    Bei der Abfrage werden mir 25 Zeilen angezeigt.
    Im Shop sind 5 Kundengruppen, 2 davon sollen Staffelpreise haben (sind identisch, da ich getrennte Gruppen für HändlerDE und HändlerAusland angelegt habe)
    Bei den anderen 3 Gruppen (Gast/Kunde/KundeAusland) sollten keine Staffelpreise drin sein, jedoch sind nach dem Import nur der Grundpreis drin und bei den Staffeln für die Kundengruppen stehen ungewollte Zahlen drin. Keine Ahnung wie die da reingekommen sind. Da die 3 Gruppen keine Staffelpreise bekommen, habe ich Staffelpreise bei diesen Kundengruppen deaktiviert und damit auch im Shop nicht sichtbar. Jetzt sind die Artikel alle drin und wurden großteils im Backend mit Texten, Bildern usw. ergänzt. Mich wundert, dass im Export bei den Artikeln keine von den falschen Staffelpreise drin stehen, nur die die für die 2 Händlergruppen auch importiert wurden.
    Wenn es möglich wäre, die Staffelpreise bei den 3 Kundengruppen aus der "personal_offers_by_customers_status_***" zu löschen, könnte ich die Preise so wie Alfred beschrieben hat kopieren. Die per Hand im SQL zu löschen ist wahrscheinlich genauso zeitraubend, wie die fehlenden Preise im Backend einzutragen.

    vr

    • modified Team
    • Beiträge: 2.664
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #11 am: 20. Januar 2012, 02:54:06
    Hallo HenningK,

    alles noch auf der TestDB, stimmts? Dann können wir holzen, Kundengruppen = KG:

    Code: SQL  [Auswählen]
    DELETE FROM personal_offers_by_customers_status_*
    WHERE quantity > 1

    entfernt alle Staffelpreise aus der entsprechenden KG-Tabelle, * natürlich durch Status der KG ersetzen.

    Fürs Verständnis: Pro Artikel kann es in den KG-Tabellen mehr als einen Satz geben. Sätze mit quantity = 1 sind die KG-Preise, Sätze mit quantity > 1 sind Staffelpreise.

    Grüße, Volker

    HenningK

    • Neu im Forum
    • Beiträge: 17
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #12 am: 23. Januar 2012, 15:38:24
    Erstmal vielen Dank euch allen für die Hilfe.
    Ich habe es ausprobiert und kam noch nicht richtig zum Erfolg.

    Mit

    Code: SQL  [Auswählen]
    DELETE FROM personal_offers_by_customers_status_* WHERE quantity > 1

    habe ich die Staffelpreise löschen können. Allerdings habe ich auch in einigen Staffelpreisen unlogisches Zeug drinstehen. Kein Preis, aber in der Staffel steht 0 Stück 0 Euro.
    Ich kann aber nicht alle Preise mit 0 Euro löschen, da es einige Artikel gibt, die mit 0 Euro als Artikel auf Anfrage im Shop sind.
    Wie müssten die Einträge in SQL "bei personal_offers_by_customers_*" richtig aussehen? Bei einigen steht "quantity=0" und "personal_offer=0" bei anderen steht "quantity=1" und "personal_offer=0".
    Wenn kein Preis bzw. Preis=0 drin sein soll, wie müsste es dann drinstehen?
    Ist halt ärgerlich, dass durch die falschen Einträge im Shop der Preis mit "ab xx,xxEuro" angezeigt wird, obwohl die Kundengruppe keine Staffelpreisberechtigung hat.
    Eben habe ich auch festgestellt, dass bei manuellem Anlegen von Artikeln im Backend, nach dem Speichern plötzlich in den Preisstaffeln bei Menge und Preis eine 0 drinsteht.
    Da es eigentlich nur am PHP liegen kann, habe ich eben auf 5.2 umgestellt.
    Somit die nächste Frage: Der Pfad zum php5.33 und 5.2 sind unterschiedlich. Bei der Shopinstallation war 5.33 aktiv. Wird der Pfad zum php irgendwo in den Configs gespeichert oder ist das Umstellen der PHP-Versionen unbedenklich?
    Beim Kopieren der Preise wie Alfred geschrieben hat, meldet SQL "175 Zeile(n) betroffen".
    Das kann nicht sein bei knapp 9000 Artikeln und im Shop sind die Preise auch nicht bei der Kundengruppe angekommen. Gibt's da was anderes? 
    Bis jetzt läuft der Rest perfekt und der eine Shop steht online, der andere folgt, sobald ich das mit den Staffelpreisen im Griff habe.
    Und da fällt mir noch eine Frage zum PHP5.3 ein. Als ich gestern die "xtcPrice.php" für die 0-Euro-Abfrage
    bearbeitet habe, habe ich den Eintrag gesehen:

    Code: PHP  [Auswählen]
    // BOF - Tomcraft - 2009-11-23 - Added flotval for PHP5.3 compatibility

    Nun habe ich Bedenken, dass der Fehler mit den Staffelpreisen vielleicht doch nicht von der 5.33 gekommen ist. Dann müsste ich weitersuchen.
    Gruß Henning

    HenningK

    • Neu im Forum
    • Beiträge: 17
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #13 am: 23. Januar 2012, 18:15:48
    Welche Bedeutung hat die "price_ID" in der "personal_offers_by_customer_status_*" ?

    Mir ist aufgefallen, dass ich >8500 Preise drin habe, aber in den "personal_offers..." nur 1650 Einträge sind.
    Deshalb klappt es auch nicht mit dem kopieren der Preise im phpMyAdmin, denn wo keine Felder, da kein Update. :-(
    Wenn ich die "products" und die "personal_offer_..." aus SQL als CSV exportiere, könnte ich mit Calc einfach die Preisspalte kopieren und dann wieder ins SQL importieren.
    Kann ich als "price_ID" einfach mit "0" bzw. "1" beginnen und hochzählen oder wird die "price_ID" noch woanders benutzt?

    HenningK

    • Neu im Forum
    • Beiträge: 17
    Re: Wie Preise zu anderen Kundengruppen kopieren?
    Antwort #14 am: 23. Januar 2012, 22:33:54
    Problem gelöst. Falls jemand weiss, dass ich etwas übersehen habe, bitte Bescheid sagen.
    "products" und "personal_offers_by_customerstatus_*" als csv exportiert. Die "personal_offers_by..." im phpMyAdmin leeren.
    Beide Dateien in OOCalc geladen und nach der Spalte "products_ID" sortiert. Die Spalte "products_price" aus der "products.csv" nach "personal_offer" der "personal_offers_by...csv" kopiert. Die Spalte "price_ID" mit 1 aufsteigend gefüllt und die Spalte "quantity" mit 1 gefüllt. Datei "personal_offer..." gespeichert und im phpMyAdmin wieder importiert. Da ich identische Preise für KG1,2 und 5 habe, habe ich es 3x wiederholt.
    Ich habe ein paar Stichproben gemacht und es scheint wirklich so zu sein, dass die "price_ID" nur in der "personal_offer..". vorkommt. Im Wiki kommt bei Suche nach "price_ID" nur die "personal_offer...", also gehe ich davon aus, dass "price_ID" nicht in anderen Tabellen genutzt wird.
    5 Antworten
    3039 Aufrufe
    09. Juni 2014, 18:59:27 von Guenter59
    0 Antworten
    1896 Aufrufe
    02. Dezember 2013, 10:58:51 von gottwald
    7 Antworten
    3840 Aufrufe
    27. Mai 2012, 23:07:30 von szolles
    2 Antworten
    2961 Aufrufe
    16. Mai 2012, 15:07:41 von joern42