1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Produktbeschreibungen via PHP SDK import

Dieses Thema im Forum "WooCommerce" wurde erstellt von Maaax, 11. April 2019.

  1. Maaax

    Maaax Member

    Registriert seit:
    11. April 2019
    Beiträge:
    9
    Zustimmungen:
    0
    Guten Tag liebe Community,

    In letzter Zeit beschäftige ich mich sehr umfangreich mit Wordpress, da ich in Zukunft einen Online Shop für Gamekeys betreiben möchte. Aktuell befinden sich in meiner SQL Datenbank über 4000 Produkte. Für den deutschen Markt habe ich selbstverständlich die Datenbank ziemlich gut gefiltert. Das Ergebnis sind 1920 Produkte, die hier angeboten werden können.

    Nun stehe ich vor der Herausforderung die Produktbeschreibungen bei WooCommerce einzupflegen. Der Großhändler liefert eine relativ unsaubere Datenmenge, somit lassen sich die Produktbeschreibungen weder über eine CSV Datei noch über die API des Warenwirtschaftssystems (Billbee) importieren.

    Deshalb habe ich mich dazu entschlossen die Beschreibungen direkt über die WooCommerce PHP SDK zu importieren.
    -> Führt allerdings auch zu keinem großen Erfolg.

    Bei den meisten Produkten werden die Beschreibungen leider nicht importiert.

    PHP Code
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!

    Hier ist eine Beispielbeschreibung die nicht importiert werden konnte.
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Hat jemand evtl eine gewisse Ahnung oder evtl eine Vermutung weshalb das aktuallisieren der Produktbeschreibungen bei einigen Produkten scheitert ?
     
  2. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.658
    Zustimmungen:
    1.781
    Was gibt Dein Code denn genau aus, wenn ein Eintrag scheitert?

    Und wie genau sehen die Quelldaten aus?

    Manchmal kommt sowas (manches geht, manches nicht) durch falsche UTF-8 Kodierung, wenn Sonderzeichen im Text vorkommen.

    Bei der Beispielbeschreibung fehlt übrigens ganz am Ende das > bei </ul>
     
    Maaax gefällt das.
  3. Maaax

    Maaax Member

    Registriert seit:
    11. April 2019
    Beiträge:
    9
    Zustimmungen:
    0
    In der Konsole erscheint keine Fehlermeldung. Die Beschreibung wird einfach nur nicht aktualisiert bei Woo.

    Die Daten werden direkt aus meiner Datenbank gezogen. Das Attribut dDescription (wo die Produktbeschreibungen gespeichert werden) ist vom Datentypen 'LONGTEXT'.

    Wenn ich die Funktion utf8_encode() mit einbaue im PHP Script führt es zum gleichen Ergebnis.

    Das liegt daran, dass der Großhändler eine sehr unsaubere Datenbank hat. Die habe ich mir über eine API Schnittstelle runtergeladen.
     
  4. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.658
    Zustimmungen:
    1.781
    Dein PHP-Code enthält echo Befehle, also sollte er was ausgeben.

    Tipp: Durch das Hinzufügen von weiteren echo oder print_r Befehlen kann man ggf. noch genauer nachvollziehen, welche Variable wo welchen Wert hat, z.B. ähnlich wie hier (ungetestet!):
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Falsche UTF-8 Kodierung behebt man nicht zwangsläufig durch das Einbauen von utf8_encode().
     
    #4 b3317133, 11. April 2019
    Zuletzt bearbeitet: 11. April 2019
    Maaax gefällt das.
  5. Maaax

    Maaax Member

    Registriert seit:
    11. April 2019
    Beiträge:
    9
    Zustimmungen:
    0
    Fast alle echo Befehle sind auskommentiert.

    Nur zwei davon sollten ausgeführt werden nach dem laden der 'WooProductIds'. In jedem Fall wird folgendes ausgegeben :

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Es gibt keine Fehlermeldungen, da das Script niemals in den "Error Block" rein geht.

    Wie könnte man ansonsten die falschen UTF-8 Kodierungen beheben ?

    Deinen Rat mit print_r($put_result) habe ich mir zu herzen genommen & mal ein Produkt rausgesucht, welches nicht aktualisiert wurde.



    Konsolenausgabe
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!

    Tatsächlich beinhaltet das Produkt keine Produktbeschreibung im PUT Array.

    Hier ist die Produktbeschreibung aus der Datenbank.

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!

    Die Erklärung bei dem Produkt ist natürlich, dass die '<img src=''>' Tags rausgenommen werden sollen vom Script.

    Ein weiterere mögliche Fehlerquelle könnte sein, dass ich die Produktbeschreibung mit mehreren hundert Zeichen versucht habe in die shortDescription bei Woo hochzuladen. Nun funkt es mehr oder weniger wunderbar :)

    Vielen Dank @b3317133
     
  6. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.658
    Zustimmungen:
    1.781
    Das ist das Ergebnis des Put-Aufrufs. Wenn Du wissen willst, was im PUT Array steht, solltest Du $data ausgeben.
     
  7. Maaax

    Maaax Member

    Registriert seit:
    11. April 2019
    Beiträge:
    9
    Zustimmungen:
    0
    Wie ein kleiner Befehl ein Rätsel auflösen kann ist echt unglaublich.

    Noch besser wäre es, wenn ich mir einfach mal den Inhalt aus der Datenbank & $data in einer .txt Datei strukturiert speichern lasse.

    So kann man relativ schnell feststellen, was zum Fehler geführt hat.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden