Api Documentation

API Documentation

Complete reference for all available API endpoints

POST /wp-json/rubies/v1/orders
v1.0 AUTH REQUIRED

Create Dropship Order

Create a dropship order for shipping.

🔒 Authentication

This endpoint requires authentication using Basic.

📤 Request Body

Content-Type: application/json
{
    "customer": {
        "first_name": "Sarah",
        "last_name": "Johnson",
        "email": "sarah.johnson@test.com",
        "phone": "+61387654321"
    },
    "shipping_address": {
        "first_name": "Sarah",
        "last_name": "Johnson",
        "address_1": "42 Elizabeth Street",
        "address_2": "Level 5",
        "city": "Melbourne",
        "state": "VIC",
        "postcode": "3000",
        "country": "AU"
    },
    "line_items": [
        {
            "sku": "8998",
            "quantity": 5
        }
    ],
    "order_number": "DROPSHIP-ORDER-001",
    "customer_note": "School play order - delivery needed by Friday",
    "metadata": {
        "source": "school_portal",
        "event": "annual_play",
        "delivery_date": "2024-03-15",
        "contact_person": "Sarah Johnson",
        "school": "Melbourne Primary"
    }
}

📥 Response Body

{
    "success": true,
    "data": {
        "order_id": 34994,
        "order_number": "WEB14957",
        "status": "processing",
        "total": "106.19",
        "currency": "AUD",
        "date_created": "2025-07-08T01:29:18+00:00",
        "created_by": {
            "user_id": 836,
            "username": "TEST",
            "display_name": "test test"
        },
        "customer_po": "DROPSHIP-ORDER-001",
        "customer_note": "School play order - delivery needed by Friday"
    },
    "timestamp": "2025-07-08T12:29:18+11:00",
    "api_version": "1.0",
    "status_code": 201
}
POST /wp-json/rubies/v1/shipping-quote/dropship
v1.0 AUTH REQUIRED

Dropship Shipping Quote

🔒 Authentication

This endpoint requires authentication using Basic.

📤 Request Body

Content-Type: application/json
{
    "order_total": 1500,
    "country": "AU"
}

📥 Response Body

{
    "success": true,
    "data": {
        "shipping_cost": 235.86,
        "shipping_label": "Dropship Order",
        "shipping_type": "dropship",
        "calculation_breakdown": {
            "base_cost": 10.86,
            "percentage_fee": 225,
            "percentage_rate": 15,
            "total": 235.86
        },
        "country": "AU",
        "order_total": 1500,
        "currency": "AUD",
        "currency_symbol": "$"
    },
    "timestamp": "2025-07-08T13:16:05+11:00",
    "api_version": "1.0",
    "status_code": 200
}
GET /wp-json/rubies/v1/invoices
v1.0 AUTH REQUIRED

Get All Invoices (Default pagination)

🔒 Authentication

This endpoint requires authentication using Basic.

📥 Response Body

{
    "success": true,
    "data": {
        "invoices": [
            {
                "id": 2,
                "invoice_no": "SI411533",
                "date": "2024-10-18T00:00:00+00:00",
                "customer_code": "TEST",
                "customer_name": "TEST",
                "trading_ref": "181022",
                "sales_order": "181022",
                "tracking_number": "Z2DZ00028346",
                "customer_po": null,
                "discount": "0.00",
                "subtotal_ex_gst": "950.10",
                "gst": "95.01",
                "total_inc_gst": "1045.11",
                "carrier": "StarTrack",
                "payment_id": null,
                "status": null,
                "line_items_included": false
            },
            {
                "id": 1,
                "invoice_no": "SI400357",
                "date": "2024-10-15T00:00:00+00:00",
                "customer_code": "TEST",
                "customer_name": "TEST",
                "trading_ref": "240822",
                "sales_order": "240822",
                "tracking_number": "8889200049516",
                "customer_po": null,
                "discount": "0.00",
                "subtotal_ex_gst": "587.95",
                "gst": "58.80",
                "total_inc_gst": "646.75",
                "carrier": "TollRoadExpress",
                "payment_id": null,
                "status": null,
                "line_items_included": false
            }
        ],
        "customer_code": "TEST",
        "pagination": {
            "total": 5,
            "page": 1,
            "per_page": 10,
            "total_pages": 1,
            "has_next": false,
            "has_previous": false
        },
        "user": {
            "id": 836,
            "username": "TEST",
            "display_name": "test test"
        }
    },
    "timestamp": "2025-07-08T12:31:50+11:00",
    "api_version": "1.0",
    "status_code": 200
}
GET /wp-json/rubies/v1/health
v1.0 AUTH REQUIRED

Health

Health Check - Verify API is working

🔒 Authentication

This endpoint requires authentication using Basic.

📥 Response Body

{
    "success": true,
    "data": {
        "status": "healthy",
        "timestamp": "2025-07-08T11:46:56+11:00",
        "version": "1.0",
        "authenticated_user": "test test",
        "user_id": 836,
        "user_roles": [
            "auac"
        ],
        "authentication_method": "application_password",
        "dependencies": {
            "wordpress": {
                "name": "WordPress",
                "status": "ok",
                "message": "Compatible version"
            },
            "woocommerce": {
                "name": "WooCommerce",
                "required": true,
                "active": true,
                "status": "ok",
                "message": "Active and compatible"
            },
            "application_passwords": {
                "name": "Application Passwords",
                "required": true,
                "available": true,
                "status": "ok",
                "message": "Available and enabled"
            },
            "database": {
                "name": "Database Connection",
                "status": "ok",
                "message": "Connected successfully"
            },
            "logger_table": {
                "name": "API Logger Table",
                "status": "ok",
                "message": "Table exists and accessible"
            },
            "php_extensions": {
                "curl": {
                    "name": "curl",
                    "required": true,
                    "loaded": true,
                    "status": "ok",
                    "message": "Loaded"
                },
                "json": {
                    "name": "json",
                    "required": true,
                    "loaded": true,
                    "status": "ok",
                    "message": "Loaded"
                },
                "mbstring": {
                    "name": "mbstring",
                    "required": true,
                    "loaded": true,
                    "status": "ok",
                    "message": "Loaded"
                },
                "openssl": {
                    "name": "openssl",
                    "required": true,
                    "loaded": true,
                    "status": "ok",
                    "message": "Loaded"
                }
            }
        }
    },
    "timestamp": "2025-07-08T11:46:56+11:00",
    "api_version": "1.0",
    "status_code": 200
}
GET /wp-json/rubies/v1/my-orders
v1.0 AUTH REQUIRED

My Orders

Gets pending customer orders in an array.

🔒 Authentication

This endpoint requires authentication using Basic.

📥 Response Body

{
    "success": true,
    "data": {
        "orders": [
            {
                "order_id": 34993,
                "customer_id": 836,
                "customer_po_field": "1873",
                "order_number": "WEB14956",
                "status": "processing",
                "status_label": "Processing",
                "total_amount_inc_gst": "126.18",
                "total_tax_gst": "11.47",
                "shipping_total": "24.41",
                "shipping_tax_total": "2.44",
                "subtotal_ex_gst": "114.71",
                "currency": "AUD",
                "currency_symbol": "$",
                "line_items": [
                    {
                        "sku": "0158",
                        "product_name": "MINION FEMALE COSTUME, CHILD - 3-5 YRS",
                        "quantity": 1,
                        "line_total": "19.80",
                        "line_subtotal": "19.80",
                        "unit_price": "19.80"
                    },
                    {
                        "sku": "0430D",
                        "product_name": "ELSA FROZEN CLASSIC COSTUME, CHILD - 4-6 YRS",
                        "quantity": 1,
                        "line_total": "21.80",
                        "line_subtotal": "21.80",
                        "unit_price": "21.80"
                    },
                    {
                        "sku": "0458",
                        "product_name": "DARTH VADER DELUXE COSTUME, CHILD - 3-5 YRS",
                        "quantity": 1,
                        "line_total": "28.90",
                        "line_subtotal": "28.90",
                        "unit_price": "28.90"
                    },
                    {
                        "sku": "0459",
                        "product_name": "DARTH VADER DELUXE COSTUME, CHILD - 3-5 YRS",
                        "quantity": 1,
                        "line_total": "28.90",
                        "line_subtotal": "28.90",
                        "unit_price": "28.90"
                    },
                    {
                        "sku": "0460",
                        "product_name": "DARTH VADER DELUXE COSTUME, CHILD - 3-5 YRS",
                        "quantity": 1,
                        "line_total": "28.90",
                        "line_subtotal": "28.90",
                        "unit_price": "28.90"
                    },
                    {
                        "sku": "701104T",
                        "product_name": "LITTLE KITTY TUTU COSTUME, CHILD - TODDLER",
                        "quantity": 1,
                        "line_total": "19.80",
                        "line_subtotal": "19.80",
                        "unit_price": "19.80"
                    }
                ],
                "item_count": 6,
                "total_quantity": 6
            },
            {
                "order_id": 34992,
                "customer_id": 836,
                "customer_po_field": "1872",
                "order_number": "WEB14955",
                "status": "processing",
                "status_label": "Processing",
                "total_amount_inc_gst": "162.23",
                "total_tax_gst": "14.75",
                "shipping_total": "28.68",
                "shipping_tax_total": "2.87",
                "subtotal_ex_gst": "147.48",
                "currency": "AUD",
                "currency_symbol": "$",
                "line_items": [
                    {
                        "sku": "580714XXL",
                        "product_name": "WALKING TEDDY BEAR BIG DOGS PET COSTUME - XXL",
                        "quantity": 2,
                        "line_total": "39.60",
                        "line_subtotal": "39.60",
                        "unit_price": "19.80"
                    },
                    {
                        "sku": "580714XXXL",
                        "product_name": "WALKING TEDDY BEAR BIG DOGS PET COSTUME - XXL",
                        "quantity": 2,
                        "line_total": "39.60",
                        "line_subtotal": "39.60",
                        "unit_price": "19.80"
                    },
                    {
                        "sku": "7116",
                        "product_name": "PADDINGTON BEAR COSTUME, CHILD - TODDLER",
                        "quantity": 4,
                        "line_total": "79.20",
                        "line_subtotal": "79.20",
                        "unit_price": "19.80"
                    },
                    {
                        "sku": "7117",
                        "product_name": "PADDINGTON BEAR COSTUME, CHILD - TODDLER",
                        "quantity": 4,
                        "line_total": "79.20",
                        "line_subtotal": "79.20",
                        "unit_price": "19.80"
                    }
                ],
                "item_count": 4,
                "total_quantity": 12
            }
        ]
    }
}
POST /wp-json/rubies/v1/shipping-quote/store
v1.0 AUTH REQUIRED

Ship to Store Shipping Quote

🔒 Authentication

This endpoint requires authentication using Basic.

📤 Request Body

Content-Type: application/json
{
    "postcode": "5000",
    "order_total": 100
}

📥 Response Body

{
    "success": true,
    "data": {
        "shipping_cost": 13.2,
        "shipping_label": "SA-M2",
        "shipping_type": "store",
        "postcode": "5000",
        "order_total": 100,
        "currency": "AUD",
        "currency_symbol": "$"
    },
    "timestamp": "2025-07-08T13:16:23+11:00",
    "api_version": "1.0",
    "status_code": 200
}
GET /wp-json/rubies/v1/stock
v1.0 AUTH REQUIRED

Stock Feed

🔒 Authentication

This endpoint requires authentication using Basic.

📥 Response Body

{
    "success": true,
    "data": {
        "stock_items": [
            {
                "id": 13386,
                "sku": "0135",
                "stock_level": 48,
                "product_type": "variation",
                "price": "34.90",
                "woo_product_id": 15764,
                "woo_variant_id": 15765,
                "in_stock": true,
                "availability_status": "in_stock"
            },
            {
                "id": 12652,
                "sku": "0133",
                "stock_level": 0,
                "product_type": "simple",
                "price": "28.90",
                "woo_product_id": 15764,
                "woo_variant_id": null,
                "in_stock": false,
                "availability_status": "out_of_stock"
            },
            {
                "id": 10035,
                "sku": "0453",
                "stock_level": 2,
                "product_type": "variation",
                "price": "17.50",
                "woo_product_id": 15785,
                "woo_variant_id": 15786,
                "in_stock": true,
                "availability_status": "low_stock"
            }
        ],
        "pagination": {
            "total": 3,
            "page": 1,
            "per_page": 50,
            "total_pages": 1,
            "has_next": false,
            "has_previous": false
        },
        "filters_applied": {
            "sku": null,
            "product_type": null,
            "min_stock": null,
            "max_stock": null,
            "min_price": null,
            "max_price": null,
            "in_stock_only": false,
            "orderby": "sku",
            "order": "asc"
        },
        "summary": {
            "total_products": 3,
            "in_stock_count": 2,
            "out_of_stock_count": 1,
            "low_stock_count": 1,
            "total_stock_units": 50,
            "avg_stock_level": 16.67,
            "min_price": "17.50",
            "max_price": "34.90",
            "avg_price": "27.10"
        },
        "user": {
            "id": 123,
            "username": "test"
        }
    },
    "timestamp": "2025-07-08T13:52:09+11:00",
    "api_version": "1.0",
    "status_code": 200
}
GET /wp-json/rubies/v1/tracking
v1.0 AUTH REQUIRED

Tracking

Get All User's Tracking Information

🔒 Authentication

This endpoint requires authentication using Basic.

📥 Response Body

{
    "success": true,
    "data": {
        "user": {
            "id": 836,
            "username": "TEST",
            "display_name": "test test"
        },
        "tracking_items": [
            {
                "tracking_number": "123213123",
                "carrier": "Australia Post",
                "customer_id": 836,
                "customer_po": "81743834",
                "rubies_web_order": "WEB14948",
                "tracking_url": null
            }
        ],
        "total_items": 1,
        "filter_applied": null
    },
    "timestamp": "2025-07-08T13:56:37+11:00",
    "api_version": "1.0",
    "status_code": 200
}