woocommerce

SKILL.md

WooCommerce

Overview

WooCommerce is the most popular e-commerce platform — powers ~40% of all online stores. It's a free WordPress plugin with extensions for payments, shipping, subscriptions, and multi-currency. Fully customizable with PHP hooks and REST API.

Instructions

Step 1: REST API Integration

// lib/woo.ts — WooCommerce REST API client
import WooCommerceRestApi from '@woocommerce/woocommerce-rest-api'

const woo = new WooCommerceRestApi({
  url: 'https://store.example.com',
  consumerKey: process.env.WOO_KEY!,
  consumerSecret: process.env.WOO_SECRET!,
  version: 'wc/v3',
})

// List products
const { data: products } = await woo.get('products', { per_page: 20, status: 'publish' })

// Create product
await woo.post('products', {
  name: 'Premium T-Shirt',
  type: 'simple',
  regular_price: '29.99',
  description: 'High-quality cotton t-shirt',
  categories: [{ id: 15 }],
  images: [{ src: 'https://example.com/tshirt.jpg' }],
})

// Get orders
const { data: orders } = await woo.get('orders', { status: 'processing' })

// Update order status
await woo.put(`orders/${orderId}`, { status: 'completed' })

Step 2: Custom Hooks (PHP)

// functions.php — WooCommerce customization hooks

// Add custom field to checkout
add_action('woocommerce_after_order_notes', function($checkout) {
    woocommerce_form_field('delivery_notes', [
        'type' => 'textarea',
        'label' => 'Delivery Notes',
        'placeholder' => 'Special instructions for delivery',
    ], $checkout->get_value('delivery_notes'));
});

// Custom discount logic
add_action('woocommerce_cart_calculate_fees', function($cart) {
    if ($cart->get_subtotal() > 100) {
        $cart->add_fee('Bulk discount', -10);    // $10 off orders over $100
    }
});

Step 3: Webhooks

// api/woo/webhook.ts — Handle WooCommerce events
export async function POST(req: Request) {
  const event = req.headers.get('x-wc-webhook-topic')
  const data = await req.json()

  switch (event) {
    case 'order.created':
      await notifySlack(`New order #${data.id}: $${data.total} from ${data.billing.email}`)
      break
    case 'order.completed':
      await sendThankYouEmail(data.billing.email, data)
      break
  }
  return new Response('OK')
}

Guidelines

  • WooCommerce is free; costs come from hosting and premium extensions.
  • Use REST API for headless commerce — build custom frontends with Next.js/React.
  • Performance: WooCommerce on shared hosting struggles past ~500 products. Use dedicated hosting or consider Medusa for headless.
  • Extensions marketplace has 800+ plugins for payments, shipping, subscriptions, etc.
Weekly Installs
1
GitHub Stars
15
First Seen
3 days ago
Installed on
amp1
cline1
augment1
opencode1
cursor1
kimi-cli1