Archiv der Kategorie: WooCommerce

WooCommerce – eine kleine Einführung in die Struktur von Order ID, Order Items ID, Order Meta

WooCommerce (WC) ist ein großartiges E-Commerce-Tool und arbeitet mit WordPress sehr gut zusammen.

Man bekommt mit WC einen WebShop mit dem Look and Feel von WordPress im Backend. Wer also recht firm in WordPress ist, wird mit WooCommerce gleich gut zurecht kommen.

Aber wie schaut’s denn mit der Datenstruktur aus?

Wo werden grundlegende Daten in der Datenbank gespeichert? Hier und jetzt gibt’s ein bisserl Licht in’s Dunkle!

tl;dr

Um an Bestellzeilen-Metas zu kommen gehe ich den Weg:

  1.  Post-ID aus Tabelle Posts holen = order_id
  2. Hole order_item_id von der Zeile line_item aus woocommerce_order_items mit order_id .
  3. Mit order_item_id in woocommerce_order_itemmeta holt man nun das entsprechende Meta

 

Tabellenstruktur / Datenbankschema

Als kurze Übersicht und Einführung zum besseren Verständnis empfiehlt es sich, mal kurz das Datenbankschema von WooCommerce durchzugehen:

 

Die zwei Tabellen, die in dem Artikel hauptsächlich behandelt werden sind so aufgebaut und verknüpft:

Order Items und Order Item-Meta Tabellen

Wie wird eine Bestellung gespeichert?

  • Ganz normal als WordPress-Post in der Tabelle posts
  • Der Post hat einen eigenen Custom Post Type mit Namen shop_order
    • Hier ein Beispiel einer Bestellung mit der Post-ID 1092

 

Wo werden die Bestellzeilen, Produktzeilen, USt-Zeilen usw gespeichert?

  • Dafür legt WooCommerce eine eigene Tabelle mit dem Namen woocommerce_order_items an.
  • Die order_id ist die post_id der Bestellung und verknüpft somit die beiden Tabellen:

Die order_item_id oder : Wie ist ein Produkt mit den Produktmetadaten verknüpft

  • Bestellzeilen-Metas sind in der Tabelle woocommerce_order_itemmeta daheim
  • In der vorhin beschriebenen Tabelle woocommerce_order_items gibt es eine order_item_id für jedes bestellte Produkt.
  • Für alle Produkte kann es Metafelder geben. Die Metafelder sind mit dem Produkt (=dem Order-Item) über die Order-Item-ID verknüpft. In unserem Fall zb die ID 1438.

Daten in der normalen Postmetas/Custom Fields

Da ging es jetzt um die WC eigenen Tabellen. Natürlich werden einige Daten auch in der normalen postmeta-Tabelle gespeichert. An die ranzukommen ist aber eh keien große Kunst:

Bestellungsdaten in der Postmeta-Tabelle von WordPress.