Files
docs/content/wordpress/woocommerce.md
2026-07-28 07:20:32 -05:00

182 lines
6.4 KiB
Markdown

---
title: "Setting Up WooCommerce on Arcline"
description: "Install and configure WooCommerce on your Arcline VPS or shared hosting plan."
section: wordpress
order: 5
---
# Setting Up WooCommerce on Arcline
WooCommerce is the most popular e-commerce platform for WordPress. This guide covers installing it on Arcline shared hosting or a VPS and optimizing it for performance without a CDN.
---
## Prerequisites
- WordPress installed and running (see [Install WordPress](/wordpress/install-shared/) for shared hosting or [Install WordPress on a VPS](/wordpress/install-vps/) for VPS)
- A domain pointed to your Arcline server
- SSL certificate installed (Let's Encrypt via cPanel or Certbot)
- PHP memory limit of at least 256 MB (512 MB recommended for VPS)
---
## Step 1 — Install WooCommerce
### Via the WordPress admin
1. Log in to your WordPress admin dashboard at `https://yourdomain.com/wp-admin`
2. Go to **Plugins → Add New**
3. Search for "WooCommerce"
4. Click **Install Now****Activate**
WooCommerce will launch the setup wizard on activation.
### Via WP-CLI (faster, especially on a VPS)
```bash
# Install and activate WooCommerce
wp plugin install woocommerce --activate
# Install a recommended theme (e.g., Storefront)
# wp theme install storefront --activate
```
---
## Step 2 — Run the setup wizard
The WooCommerce setup wizard will walk you through:
1. **Store location**: Set your business address, currency (USD), and selling location
2. **Industry**: What types of products you sell (physical, digital, membership, etc.)
3. **Product types**: Simple products, variable products, external/affiliate products
4. **Business details**: Whether you're already selling elsewhere
5. **Payment methods**: WooPayments, PayPal, Stripe, or offline payments
6. **Shipping**: Set up shipping zones and rates
7. **Tax**: Configure basic tax settings
8. **Personalize**: Choose a theme and install free extensions
You can skip any step and configure it later.
---
## Step 3 — Choose payment methods
### WooPayments (built-in, recommended)
WooPayments is Stripe-based and included with WooCommerce. It accepts credit cards, Apple Pay, and Google Pay. No additional plugin is needed.
To set it up:
1. Go to **WooCommerce → Settings → Payments**
2. Click **Set up** next to WooPayments
3. Follow the prompts to connect your Stripe account
### PayPal
1. Go to **WooCommerce → Settings → Payments**
2. Toggle **PayPal** on
3. Click **Set up** and enter your PayPal email address
### Stripe (standalone plugin)
If you prefer the standalone Stripe plugin instead of WooPayments:
```bash
wp plugin install woocommerce-gateway-stripe --activate
```
Then configure it in **WooCommerce → Settings → Payments → Stripe**.
---
## Step 4 — Configure shipping
1. Go to **WooCommerce → Settings → Shipping**
2. Click **Add shipping zone**
3. Name the zone (e.g., "United States")
4. Select the zone regions (countries, states, or postcode ranges)
5. Click **Add shipping method**:
- **Flat rate** — Single rate per order (e.g., $5.99)
- **Free shipping** — Free shipping with a minimum order amount
- **Local pickup** — Customer picks up at your location
---
## Step 5 — Performance optimization for WooCommerce
WooCommerce adds database queries and page weight. Optimize it carefully:
### Essential caching
1. Install a caching plugin. See [W3 Total Cache Configuration](/wordpress/w3-total-cache/) for detailed setup.
2. **Important**: In W3 Total Cache, do NOT enable page caching for the cart, checkout, and my-account pages. Add these to the **Never cache the following pages** list: `/cart/*`, `/checkout/*`, `/my-account/*`, `/wc-api/*`
### Disable unused features
Go to **WooCommerce → Settings → Advanced → Features** and disable:
- Coupons (if you don't use them)
- If digital only, disable shipping and tax
### Enable native cart fragments (if needed)
Cart fragments (the little cart icon that updates via AJAX) are expensive on shared hosting. If your theme doesn't need real-time cart updates, disable it:
```bash
wp option set woocommerce_cart_fragments_enabled no
```
Customers will see a non-JS fallback link to the cart page.
### Image optimization
- Product images should be no larger than 1200px on the longest side
- Use WebP format for product images (convert with `cwebp`)
- Install a plugin like **Smush** or **Imagify** for automatic compression
- Set WooCommerce image sizes appropriately: **WooCommerce → Settings → Products → Display**
---
## Step 6 — Essential WooCommerce plugins
| Plugin | Purpose |
|--------|---------|
| [WooCommerce](https://wordpress.org/plugins/woocommerce/) | Core e-commerce platform |
| [Akismet Anti-Spam](https://wordpress.org/plugins/akismet/) | Block spam product reviews |
| [W3 Total Cache](https://wordpress.org/plugins/w3-total-cache/) | Page cache, DB cache, object cache |
| [UpdraftPlus](https://wordpress.org/plugins/updraftplus/) | Scheduled backups of your store |
| [WooCommerce Stripe](https://wordpress.org/plugins/woocommerce-gateway-stripe/) | Stripe credit card payments |
---
## Step 7 — SSL and security
- **WooCommerce forces SSL on checkout** automatically. Ensure your SSL certificate is valid.
- **Force HTTPS for the entire site** in W3 Total Cache → General Settings → Page Cache → Enable HTTP(S) support
- **Disable file editing** in WordPress admin by adding to `wp-config.php`:
```php
define('DISALLOW_FILE_EDIT', true);
```
- **Set up fail2ban**: See [Set Up Fail2ban](/vps/fail2ban/) for SSH brute-force protection
- **Regular backups**: Use UpdraftPlus or [Automated Backups with Restic](/vps/automated-backups/) to back up your database and uploads
---
## Troubleshooting
**Cart and checkout pages not working with caching**: Make sure cart, checkout, and my-account URLs are excluded from the page cache.
**500 error after installing WooCommerce**: Increase PHP memory limit to 512 MB. WooCommerce is memory-intensive.
**SSL not working on checkout**: Go to **WooCommerce → Settings → Advanced → Pages** and verify all pages are set. Then **Settings → General → WordPress Address URL and Site Address URL** must start with `https://`.
**PayPal IPN not working**: In PayPal, set the IPN URL to `https://yourdomain.com/wc-api/ipn-handler/`.
---
## What's next
- [WordPress security hardening](/wordpress/security/)
- [W3 Total Cache configuration](/wordpress/w3-total-cache/)
- [Self-hosting without a CDN: performance tips](/privacy/self-hosting-performance/)