Installing WooCommerce takes five minutes. Getting to your first real order takes a bit more: products need real inventory data, payments need a live gateway (not just "Cash on delivery"), and shipping needs rates that match what you actually charge. This walks through each step in order, so you land on a store that's actually ready to sell.
If you're setting this up on an existing WordPress site rather than a fresh install, the same steps apply, skip the parts you've already done.
Install WooCommerce
From wp-admin, go to Plugins → Add New, search "WooCommerce," and install and activate it. The setup wizard launches automatically and asks for your store address, industry, and whether you want sample products. Answer honestly, you can change all of it later in WooCommerce → Settings.
WooCommerce needs a few permalink and page settings to work right. The wizard creates a Shop, Cart, Checkout, and My Account page automatically, don't delete these or checkout will break. If your permalinks ever look wrong (product pages 404, for example), go to Settings → Permalinks and click Save once to flush the rewrite rules.
Your store runs on the same caching stack every Flashcloud WordPress install gets: LiteSpeed Web Server with LSCache, and Redis object caching for database-heavy queries like product lookups. Cart and checkout pages are excluded from page caching automatically, so you don't need to configure exceptions yourself. The details are in Running a WooCommerce store, worth a read before you go live.
Add your first products
Go to Products → Add new. For each product you need at minimum:
- A title and description.
- A product image (and gallery images if you have them). Product photos are usually the heaviest assets on a store's pages, keep them reasonably sized before uploading.
- A price, and a sale price if you're running a discount.
- A SKU, if you track inventory by code.
- Stock status: track quantity, or only mark in stock / out of stock.
- Product type: simple, variable (size/color options), grouped, or external/affiliate.
For a variable product (say, a T-shirt in three sizes and two colors), set up Attributes first (Size, Color), check "used for variations," then go to the Variations tab to set price and stock per combination.
Organize products into Categories as you go. It's much easier than reorganizing fifty products later, and it drives your shop page navigation.
Connect a payment gateway
This is the step that turns a product catalog into a store. Go to WooCommerce → Settings → Payments. WooCommerce ships with a few options built in, and both of the common ones follow the same basic pattern:
- Stripe (via the official WooCommerce Stripe Gateway plugin): install the plugin, then connect your Stripe account by API key or one-click OAuth from the Payments settings screen. You'll need a live Stripe account with your bank details added before you can accept real charges.
- PayPal (via WooCommerce PayPal Payments): similar flow, install the plugin, connect your PayPal business account, enable it under Payments.
Both let customers pay by card without leaving your site, and both handle card data themselves; you never see or store raw card numbers, which is the practical PCI compliance answer for most small stores. Your job is keeping WordPress, WooCommerce, and the gateway plugin updated, not handling card data directly. See Updating WordPress safely for a process that won't break checkout mid-update.
Test mode matters here. Both Stripe and PayPal gateways have a sandbox/test mode toggle in their settings, use it while you're setting up so you can run fake transactions without touching real money, then switch to live keys when you're ready to launch.
Don't leave "Direct bank transfer" or "Check payments" as your only enabled method unless that's genuinely how you want to get paid. They're enabled by default and confuse customers who expect to pay by card immediately.
Set up shipping
Go to WooCommerce → Settings → Shipping. Shipping is organized into zones, geographic regions with their own rates. Create a zone (e.g., "United States"), then add one or more shipping methods to it:
- Flat rate: one price regardless of cart contents. Simplest option, good starting point.
- Free shipping: usually conditional on a minimum order amount, set that in the method's options.
- Local pickup: if you offer it.
If you sell internationally, add a separate zone per region or country with its own rates, since a flat domestic rate rarely makes sense for international orders. For physical products, set weight and dimensions on each product under the Shipping tab, this matters if you later switch to a live-rate carrier plugin (USPS, UPS, etc.) that calculates cost by package size.
Place a test order
Before you announce the store, walk through checkout yourself, ideally on a staging copy so a test order doesn't create a fake entry in your live order history and inventory counts. See Using WordPress staging for how to spin one up.
Run through the full flow:
- Add a product to the cart, adjust quantity, confirm the cart total is right.
- Go to checkout, fill in a real shipping address, confirm the correct shipping zone and rate apply.
- Pay with a test card (Stripe's test mode has published test card numbers for this) or a PayPal sandbox account.
- Confirm you land on an order confirmation page and receive an order confirmation email.
- Check WooCommerce → Orders to confirm the order appears with the right details.
If email confirmations don't arrive, check your site's outgoing mail setup, WordPress's default mail function is unreliable for transactional email at volume, and most stores benefit from an SMTP plugin routing through a dedicated mail service.
Once a real order lands, back it up. Store databases change with every order, so recent restore points actually matter here, not just as a formality. Your account has daily automatic backups with 30-day retention already running; see Backing up your WordPress site for how to add more granular, application-aware backups on top of that.
When to contact support
If checkout won't complete, a gateway won't connect, or you're seeing errors you can't trace to a plugin conflict, open a ticket from the portal under Support → New ticket, or use live chat. You'll reach a real person, not a bot, and they can look at server-level logs you don't have access to from wp-admin.