What WooCommerce Actually Is

WordPress E-Commerce with WooCommerce

Chapter 1 · What WooCommerce Actually Is

WordPress Intermediate/Advanced's own capstone closed with an honest scope note: no WooCommerce, no e-commerce — a genuine, deliberate gap left open for exactly this course to fill. This chapter assumes both WordPress Fundamentals and WordPress Intermediate/Advanced are already familiar territory, and starts from the single idea everything else in this course builds on: WooCommerce is not a separate platform bolted onto WordPress. It's a plugin.

Still Just a Plugin — Nothing New to Install Around It

Every mechanism WordPress Fundamentals already taught for installing and running plugins applies to WooCommerce unchanged: it's found through Plugins → Add New, it activates the same way, it lives in the same wp-content/plugins/ directory, and it can conflict with other plugins or themes exactly the way WordPress Fundamentals 6's own plugin-vetting chapter warned about. There is no separate login, no separate database, no separate hosting requirement.

Ordinary WordPressWordPress + WooCommerce, activated
Same wp-admin dashboardThe identical dashboard — WooCommerce adds new menu items to it, it doesn't replace it
Same theme systemThe same active theme still renders every page — WooCommerce supplies templates the theme can override, not a competing theme engine
Same user roles from WordPress Fundamentals 8WooCommerce adds a Customer and Shop Manager role on top of the existing five — the same capability system underneath
Same MySQL databaseStore data lives in the same database — mostly the same core tables, plus a small number of WooCommerce-specific ones (see below)
Why this framing matters for the rest of the course
Because WooCommerce is "just" a plugin running on ordinary WordPress, almost everything this course covers is really WordPress Intermediate/Advanced's own material — custom post types, hooks, the REST API, security hardening — applied to one specific, very well-documented real-world case. This course teaches relatively little that's conceptually brand new; it teaches how a familiar toolkit gets used for a genuinely high-stakes purpose.

What WooCommerce Actually Adds: A Custom Post Type Called product

WordPress Intermediate/Advanced 4 covered register_post_type() as the mechanism behind custom content types. WooCommerce doesn't invent a new concept here — it calls that exact same function, once, to register its own product post type, conceptually equivalent to this:

<?php // conceptually what WooCommerce does on activation — not code you need to write yourself register_post_type( 'product', array( 'label' => 'Products', 'public' => true, 'has_archive' => 'shop', 'supports' => array( 'title', 'editor', 'thumbnail' ), ) ); ?>

Every product is, underneath, a row in the same wp_posts table every page and post already lives in — with post_type = 'product' instead of 'post' or 'page'. Product-specific data — price, SKU, stock quantity — is stored as post meta in wp_postmeta, the identical mechanism WordPress Intermediate/Advanced 4 already covered for custom fields on any post type.

A genuine, evolving exception worth naming precisely: order data
Older WooCommerce versions stored every order the same way — as a post, with post_type = 'shop_order'. Since WooCommerce 8.2 (2023), stores can opt into High-Performance Order Storage (HPOS), which moves order data out of wp_posts/wp_postmeta entirely and into dedicated tables (wp_wc_orders and related tables), purpose-built for the query patterns a busy store's order history actually needs. As of WooCommerce 8.5+, HPOS is the default for new stores. This is the one deliberate, documented exception to "it's all just posts and postmeta" — worth knowing precisely rather than assumed away, since it directly affects Chapter 4's own order-flow material and any custom code Chapter 8 writes that queries orders directly.

Installing WooCommerce & the Setup Wizard

Installation itself is unremarkable — Plugins → Add New → search "WooCommerce" → Install Now → Activate, exactly the flow WordPress Fundamentals 6 already covered. Activating it launches a guided setup wizard that this course will return to, piece by piece, rather than rushing through now:

Setup wizard stepCovered in depth in
Store details (address, currency, industry)This chapter — one-time configuration, no further depth needed
Product types you plan to sellChapter 2 — Products, Variations & Inventory
Theme / storefront appearanceChapter 3 — Store Design
Payment methodsChapter 5 — Payment Gateways
Shipping & taxChapter 6 — Shipping & Tax Configuration
The wizard's defaults are a starting point, not a finished store
Every setting the wizard asks for can be changed later under WooCommerce → Settings — nothing chosen during setup is permanent. Treat the wizard as a fast path to a working test store, not a decision that locks anything in.

What This Course Covers

Products and inventory, store design, the cart/checkout flow, payment gateways, shipping and tax, security specific to e-commerce, extending WooCommerce with hooks, and performance at scale — closing with a capstone that builds and hardens one complete store end to end. Chapter 7's own security chapter is where this course pays off the exact gap WordPress Intermediate/Advanced's capstone named explicitly: nonces, escaping, and $wpdb->prepare() applied specifically to checkout and account forms, where the stakes are real money and real customer data rather than a defaced blog post.

Hands-On Exercises

Exercise 1

A colleague claims WooCommerce "isn't really WordPress anymore" once it's installed, since the site now looks and behaves so differently. Using this chapter's own material, explain precisely what is and isn't actually different underneath.

📄 View solution
Exercise 2

Explain where a WooCommerce product's title and description are stored versus where its price and SKU are stored, and name the two underlying WordPress database tables involved, referencing WordPress Intermediate/Advanced 4's own material on custom post types.

📄 View solution
Exercise 3

Explain what High-Performance Order Storage (HPOS) changes about where order data lives, and why this chapter calls it "the one deliberate, documented exception" to WooCommerce's usual posts/postmeta storage model.

📄 View solution

Chapter 1 Quick Reference

  • WooCommerce is a plugin, not a separate platform — same dashboard, same theme system, same role/capability system, same underlying database
  • WooCommerce registers a product custom post type via the same register_post_type() mechanism from WordPress Intermediate/Advanced 4
  • Product data lives in wp_posts (title/description) and wp_postmeta (price, SKU, stock) — the same tables any custom post type uses
  • High-Performance Order Storage (HPOS) — since WooCommerce 8.2, orders can live in dedicated tables instead of wp_posts; default for new stores since 8.5+
  • Installation is the standard plugin flow from WordPress Fundamentals 6; the setup wizard's choices are all editable later under WooCommerce → Settings
  • Next chapter: Products, Variations & Inventory