How to Create an E-Commerce Website with WordPress
Build a working online store with WordPress and WooCommerce — including JazzCash, EasyPaisa, bank transfer and cash on delivery, which most tutorials leave out.
WordPress with WooCommerce is the most common way to build an online store, and you do not need to write any code. What you do need is about a day, roughly Rs 12,000 to start, and the patience to work through the settings properly.
This guide covers the whole thing — including the part most tutorials skip: taking payments in Pakistan, where PayPal and Stripe are not options.
What it costs to start
| Item | Cost | Needed? |
|---|---|---|
| Domain name | Rs 3,000 / year | Yes |
| Hosting | Rs 800–2,500 / month | Yes |
| WordPress + WooCommerce | Free | Yes |
| SSL certificate | Free | Yes |
| Theme | Free, or Rs 15,000 once | Free is fine |
| Payment plugin | Free, or Rs 8,000 once | Depends |
You can genuinely start for the price of a domain and one month of hosting. Spend on a paid theme later, once the store is actually selling.
Step 1: Plan before you install anything
Ten minutes here saves hours later. Write down:
- What you sell — physical goods, digital files, or both. Digital changes the shipping and tax settings completely.
- Your categories — three to six is right at the start. More than that and nobody can find anything.
- How customers will pay you — see Step 6. Decide now, because it affects which plugins you install.
- How orders reach people — your own delivery, a courier like TCS or Leopards, or downloads.
Step 2: Domain and hosting
Pick a short domain that people can spell after hearing it once. .com if you can get it, .pk if you sell only inside Pakistan.
For hosting, WooCommerce is heavier than a blog. The cheapest shared plans will feel slow once you have a few hundred products. Look for:
- At least 2 GB RAM, or a plan that says "WooCommerce optimised"
- PHP 8.1 or newer
- Free SSL included
- Daily backups — the day you need one, you will need it badly
More detail in what actually matters in cheap web hosting.
Step 3: Install WordPress
Almost every host has a one-click WordPress installer in cPanel — look for Softaculous or WordPress Toolkit. Give it your domain, an admin username that is not "admin", and a strong password.
Then do these three things immediately, before you forget:
- Settings → General — set both addresses to
https:// - Settings → Permalinks — choose Post name
- Delete the sample content — the Hello World post and the sample page
If your host did not install SSL, follow how to install a free SSL certificate on a WordPress site. Nobody types their card details into a site showing "Not secure".
Step 4: Install WooCommerce
Go to Plugins → Add New, search for WooCommerce, install and activate. A setup wizard starts on its own.
Work through it honestly — your country, currency (PKR), what you sell, and whether you ship physically. The wizard creates the Shop, Cart, Checkout and My Account pages for you.
Skip the plugin suggestions it offers. It will try to install marketing extras. Say no. You can always add them later, and a fresh store does not need five plugins on day one.
Step 5: Choose a theme
The theme controls how the store looks. It must be WooCommerce compatible — not every theme is.
Good free options are Storefront (made by WooCommerce, plain but reliable), Astra (fast and flexible) and Kadence (good-looking defaults).
Judge a theme on three things and ignore everything else:
- Does it look right on a phone? Most of your customers are on one.
- Does it load fast? Test a demo on PageSpeed Insights.
- Was it updated in the last six months?
Step 6: Payments — the part that matters in Pakistan
This is where generic tutorials fail. They tell you to enable PayPal and Stripe. Neither is properly available in Pakistan, so here is what actually works.
| Method | How it works | Worth knowing |
|---|---|---|
| Cash on Delivery | Built into WooCommerce. Turn it on and you are done. | Still the most trusted option locally. Expect some refused deliveries. |
| Bank transfer | Built in as "Direct bank transfer". Show your IBAN, confirm manually. | Free, works today. You verify each payment by hand. |
| JazzCash | Official merchant account plus a WooCommerce plugin. | Needs business registration. Automatic confirmation. |
| EasyPaisa | Same idea, through Telenor Microfinance Bank. | Also needs registration. Very wide reach. |
| Raast | State Bank instant transfer, by ID or IBAN. | No fees. Usually handled as a manual transfer. |
A practical order of work: launch with Cash on Delivery and bank transfer, both of which are free and take ten minutes. Apply for JazzCash or EasyPaisa once you have real orders and can justify the paperwork.
Set them up under WooCommerce → Settings → Payments.
Step 7: Shipping
Go to WooCommerce → Settings → Shipping. Create a zone for Pakistan and add a rate.
Three approaches that work:
- Flat rate — one price nationwide, for example Rs 250. Simplest, and customers understand it.
- Free over an amount — free above Rs 3,000. Reliably increases order size.
- Two zones — cheaper inside your own city, higher elsewhere.
Courier plugins exist for TCS and Leopards if you want live rates, but do not bother on day one. A flat rate is easier to explain and easier to fix.
Step 8: Add your products
Products → Add New. For each one:
- Title — what someone would actually search for, not a clever name.
- Description — the full story: what it is, size, material, what is included.
- Short description — the two or three lines that appear next to the price.
- Price — and a "regular price" above it if you want to show a discount.
- Images — at least three angles. Square, around 1000×1000, on a plain background.
- Category — one per product. Resist the urge to tick five.
- Stock — turn on stock management so you cannot oversell.
Compress your images before uploading. A phone photo is often 4 MB. At that size, ten products will make your store painfully slow on mobile data. Run them through Squoosh or install a WebP plugin.
Step 9: Set up the front page and menu
By default WordPress shows a blog. For a store you want products first.
Go to Settings → Reading, choose A static page, and set your homepage. Then under Appearance → Menus build a simple menu: Home, Shop, your main categories, About, Contact.
Keep it to six items or fewer. Long menus get ignored.
Step 10: SEO so people can find the store
Install one SEO plugin — RankMath or Yoast. One, not both; they fight each other.
Then, for every product:
- Write a title that includes what it is and where you sell it, for example "Leather office chair in Lahore"
- Write a real meta description, not the auto-generated one
- Fill in the alt text on every image
Setup walkthroughs: Yoast or All in One SEO. For the wider picture, see how to increase your website ranking.
Step 11: Make it fast
WooCommerce is slow out of the box, and a slow store loses sales. Three things fix most of it:
- Caching — W3 Total Cache or LiteSpeed Cache if your host supports it
- Image compression — convert to WebP
- A CDN — Cloudflare free tier is enough
Full walkthrough: how to make WordPress faster with W3 Total Cache and Cloudflare.
Launch checklist
Before you tell anyone the site exists, place a real order yourself, end to end:
- Buy something, with each payment method you enabled
- Confirm the order email actually arrives — check spam
- Open the store on a phone and complete a purchase there
- Check the total: product + shipping + any tax
- Try a refund from the admin side so you know how
- Confirm the padlock shows on the checkout page
- Make sure your contact details and return policy are visible
Most abandoned carts come from something on this list being broken, not from the price.
Common problems
The checkout page is blank
Usually a plugin conflict. Switch temporarily to the Storefront theme; if checkout works, the theme is the problem. If not, disable plugins one at a time.
Order emails never arrive
Very common on shared hosting, because the PHP mail function is often blocked. Install an SMTP plugin and send through a real mail account. See how to send emails without landing in spam.
The store is slow
Check image sizes first — it is images nine times out of ten. Then caching. Then the number of plugins.
"Add to cart" does nothing
A JavaScript error, usually from a caching plugin minifying scripts too aggressively. Turn off JS minification and test again.
Is WordPress the right choice at all?
Honestly, not always.
WooCommerce suits you if you want to manage everything yourself through a familiar admin screen, and you are happy to keep WordPress and its plugins updated.
It suits you less if you have only a handful of products and want a fast, light site — WordPress carries a lot of weight you will never use. A small custom PHP store loads faster and has far less to maintain.
Both are valid. Pick the one you will actually keep running.