Skip to content

Orders API ​

The Orders API provides comprehensive endpoints for managing orders in FluentCart. This includes creating, reading, updating, and deleting orders, as well as managing order statuses, payments, and related operations.

Base URL ​

https://yoursite.com/wp-json/fluent-cart/v2/orders

Authentication ​

All endpoints require authentication and appropriate permissions:

  • Authentication: WordPress Application Password or Cookie
  • Policy: OrderPolicy
  • Permissions: Various order-related permissions

Endpoints ​

List Orders ​

GET /orders

Retrieve a paginated list of orders with optional filtering and searching.

Parameters ​

ParameterTypeDescriptionDefault
pageintegerPage number1
per_pageintegerItems per page (max 100)10
searchstringSearch query-
filtersobjectFilter options-
order_bystringSort fieldid
order_typestringSort direction (ASC/DESC)DESC

Filter Options ​

json
{
  "status": "completed",
  "payment_status": "paid",
  "customer_id": 123,
  "date_from": "2024-01-01",
  "date_to": "2024-12-31"
}

Response ​

json
{
  "success": true,
  "data": {
    "orders": [
      {
        "id": 1,
        "uuid": "abc123",
        "status": "completed",
        "payment_status": "paid",
        "customer_id": 123,
        "total_amount": 5000,
        "currency": "USD",
        "created_at": "2024-01-01T10:00:00Z",
        "customer": {
          "id": 123,
          "email": "[email protected]",
          "first_name": "John",
          "last_name": "Doe"
        },
        "order_items": [
          {
            "id": 1,
            "product_id": 456,
            "variation_id": 789,
            "quantity": 2,
            "price": 2500
          }
        ]
      }
    ],
    "pagination": {
      "current_page": 1,
      "per_page": 10,
      "total": 100,
      "total_pages": 10
    }
  }
}

Example Request ​

bash
curl -X GET "https://yoursite.com/wp-json/fluent-cart/v1/orders?page=1&per_page=20&search=john" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ="

Create Order ​

POST /orders

Create a new order with items and customer information.

Request Body ​

json
{
  "customer_id": 123,
  "items": [
    {
      "product_id": 456,
      "variation_id": 789,
      "quantity": 2
    }
  ],
  "billing_address": {
    "first_name": "John",
    "last_name": "Doe",
    "email": "[email protected]",
    "address_1": "123 Main St",
    "city": "New York",
    "state": "NY",
    "postcode": "10001",
    "country": "US"
  },
  "shipping_address": {
    "first_name": "John",
    "last_name": "Doe",
    "address_1": "123 Main St",
    "city": "New York",
    "state": "NY",
    "postcode": "10001",
    "country": "US"
  },
  "payment_method": "stripe",
  "note": "Special delivery instructions"
}

Response ​

json
{
  "success": true,
  "data": {
    "order": {
      "id": 1,
      "uuid": "abc123",
      "status": "pending",
      "payment_status": "pending",
      "total_amount": 5000,
      "currency": "USD",
      "created_at": "2024-01-01T10:00:00Z"
    }
  }
}

Example Request ​

bash
curl -X POST "https://yoursite.com/wp-json/fluent-cart/v1/orders" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ=" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": 123,
    "items": [
      {
        "product_id": 456,
        "variation_id": 789,
        "quantity": 2
      }
    ],
    "payment_method": "stripe"
  }'

Get Order Details ​

GET /orders/{id}

Retrieve detailed information about a specific order.

Parameters ​

ParameterTypeDescription
idintegerOrder ID

Response ​

json
{
  "success": true,
  "data": {
    "order": {
      "id": 1,
      "uuid": "abc123",
      "status": "completed",
      "payment_status": "paid",
      "customer_id": 123,
      "total_amount": 5000,
      "currency": "USD",
      "created_at": "2024-01-01T10:00:00Z",
      "customer": {
        "id": 123,
        "email": "[email protected]",
        "first_name": "John",
        "last_name": "Doe"
      },
      "order_items": [
        {
          "id": 1,
          "product_id": 456,
          "variation_id": 789,
          "quantity": 2,
          "price": 2500,
          "product": {
            "id": 456,
            "title": "Sample Product",
            "sku": "SP-001"
          }
        }
      ],
      "transactions": [
        {
          "id": 1,
          "payment_method": "stripe",
          "status": "succeeded",
          "amount": 5000,
          "transaction_id": "txn_123456"
        }
      ]
    }
  }
}

Example Request ​

bash
curl -X GET "https://yoursite.com/wp-json/fluent-cart/v1/orders/1" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ="

Update Order ​

PUT /orders/{id}

Update an existing order's information.

Parameters ​

ParameterTypeDescription
idintegerOrder ID

Request Body ​

json
{
  "status": "processing",
  "note": "Updated order note",
  "billing_address": {
    "first_name": "John",
    "last_name": "Doe",
    "email": "[email protected]"
  }
}

Response ​

json
{
  "success": true,
  "data": {
    "order": {
      "id": 1,
      "status": "processing",
      "note": "Updated order note",
      "updated_at": "2024-01-01T11:00:00Z"
    }
  }
}

Example Request ​

bash
curl -X PUT "https://yoursite.com/wp-json/fluent-cart/v1/orders/1" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ=" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "processing",
    "note": "Updated order note"
  }'

Delete Order ​

DELETE /orders/{id}

Delete an order (soft delete).

Parameters ​

ParameterTypeDescription
idintegerOrder ID

Response ​

json
{
  "success": true,
  "message": "Order deleted successfully"
}

Example Request ​

bash
curl -X DELETE "https://yoursite.com/wp-json/fluent-cart/v1/orders/1" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ="

Mark Order as Paid ​

POST /orders/{id}/mark-as-paid

Mark an order as paid manually.

Parameters ​

ParameterTypeDescription
idintegerOrder ID

Request Body ​

json
{
  "payment_method": "manual",
  "transaction_id": "manual_123",
  "note": "Manual payment confirmation"
}

Response ​

json
{
  "success": true,
  "data": {
    "order": {
      "id": 1,
      "payment_status": "paid",
      "updated_at": "2024-01-01T11:00:00Z"
    }
  }
}

Example Request ​

bash
curl -X POST "https://yoursite.com/wp-json/fluent-cart/v1/orders/1/mark-as-paid" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ=" \
  -H "Content-Type: application/json" \
  -d '{
    "payment_method": "manual",
    "transaction_id": "manual_123"
  }'

Refund Order ​

POST /orders/{id}/refund

Process a refund for an order.

Parameters ​

ParameterTypeDescription
idintegerOrder ID

Request Body ​

json
{
  "amount": 2500,
  "reason": "Customer requested refund",
  "refund_method": "original_payment_method"
}

Response ​

json
{
  "success": true,
  "data": {
    "refund": {
      "id": 1,
      "order_id": 1,
      "amount": 2500,
      "status": "completed",
      "refund_id": "ref_123456",
      "created_at": "2024-01-01T11:00:00Z"
    }
  }
}

Example Request ​

bash
curl -X POST "https://yoursite.com/wp-json/fluent-cart/v1/orders/1/refund" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ=" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 2500,
    "reason": "Customer requested refund"
  }'

Update Order Statuses ​

PUT /orders/{id}/statuses

Update order statuses (payment status, shipping status, order status).

Parameters ​

ParameterTypeDescription
idintegerOrder ID

Request Body ​

json
{
  "payment_status": "paid",
  "shipping_status": "shipped",
  "order_status": "processing"
}

Response ​

json
{
  "success": true,
  "data": {
    "order": {
      "id": 1,
      "payment_status": "paid",
      "shipping_status": "shipped",
      "order_status": "processing",
      "updated_at": "2024-01-01T11:00:00Z"
    }
  }
}

Example Request ​

bash
curl -X PUT "https://yoursite.com/wp-json/fluent-cart/v1/orders/1/statuses" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ=" \
  -H "Content-Type: application/json" \
  -d '{
    "payment_status": "paid",
    "shipping_status": "shipped"
  }'

Change Order Customer ​

POST /orders/{id}/change-customer

Change the customer associated with an order.

Parameters ​

ParameterTypeDescription
idintegerOrder ID

Request Body ​

json
{
  "customer_id": 456
}

Response ​

json
{
  "success": true,
  "data": {
    "order": {
      "id": 1,
      "customer_id": 456,
      "updated_at": "2024-01-01T11:00:00Z"
    }
  }
}

Example Request ​

bash
curl -X POST "https://yoursite.com/wp-json/fluent-cart/v1/orders/1/change-customer" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ=" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": 456
  }'

Create and Change Customer ​

POST /orders/{id}/create-and-change-customer

Create a new customer and associate them with the order.

Parameters ​

ParameterTypeDescription
idintegerOrder ID

Request Body ​

json
{
  "email": "[email protected]",
  "first_name": "Jane",
  "last_name": "Smith"
}

Response ​

json
{
  "success": true,
  "data": {
    "order": {
      "id": 1,
      "customer_id": 789,
      "updated_at": "2024-01-01T11:00:00Z"
    },
    "customer": {
      "id": 789,
      "email": "[email protected]",
      "first_name": "Jane",
      "last_name": "Smith"
    }
  }
}

Example Request ​

bash
curl -X POST "https://yoursite.com/wp-json/fluent-cart/v1/orders/1/create-and-change-customer" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ=" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "first_name": "Jane",
    "last_name": "Smith"
  }'

Bulk Actions ​

POST /orders/do-bulk-action

Perform bulk actions on multiple orders.

Request Body ​

json
{
  "action": "update_status",
  "order_ids": [1, 2, 3],
  "data": {
    "status": "completed"
  }
}

Available Actions ​

  • update_status - Update status of multiple orders
  • delete - Delete multiple orders
  • export - Export multiple orders

Response ​

json
{
  "success": true,
  "data": {
    "processed": 3,
    "failed": 0,
    "results": [
      {
        "order_id": 1,
        "success": true
      },
      {
        "order_id": 2,
        "success": true
      },
      {
        "order_id": 3,
        "success": true
      }
    ]
  }
}

Example Request ​

bash
curl -X POST "https://yoursite.com/wp-json/fluent-cart/v1/orders/do-bulk-action" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ=" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "update_status",
    "order_ids": [1, 2, 3],
    "data": {
      "status": "completed"
    }
  }'

Calculate Shipping ​

POST /orders/calculate-shipping

Calculate shipping costs for an order.

Request Body ​

json
{
  "items": [
    {
      "product_id": 456,
      "variation_id": 789,
      "quantity": 2
    }
  ],
  "shipping_address": {
    "country": "US",
    "state": "NY",
    "postcode": "10001"
  }
}

Response ​

json
{
  "success": true,
  "data": {
    "shipping_methods": [
      {
        "id": "standard",
        "name": "Standard Shipping",
        "cost": 500,
        "estimated_days": "3-5"
      },
      {
        "id": "express",
        "name": "Express Shipping",
        "cost": 1000,
        "estimated_days": "1-2"
      }
    ]
  }
}

Example Request ​

bash
curl -X POST "https://yoursite.com/wp-json/fluent-cart/v1/orders/calculate-shipping" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ=" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "product_id": 456,
        "variation_id": 789,
        "quantity": 2
      }
    ],
    "shipping_address": {
      "country": "US",
      "state": "NY",
      "postcode": "10001"
    }
  }'

Get Shipping Methods ​

GET /orders/shipping_methods

Get available shipping methods.

Response ​

json
{
  "success": true,
  "data": {
    "shipping_methods": [
      {
        "id": "standard",
        "name": "Standard Shipping",
        "description": "Standard ground shipping",
        "cost": 500,
        "estimated_days": "3-5"
      },
      {
        "id": "express",
        "name": "Express Shipping",
        "description": "Express shipping",
        "cost": 1000,
        "estimated_days": "1-2"
      }
    ]
  }
}

Example Request ​

bash
curl -X GET "https://yoursite.com/wp-json/fluent-cart/v1/orders/shipping_methods" \
  -H "Authorization: Basic dXNlcm5hbWU6YXBwbGljYXRpb25fcGFzc3dvcmQ="

Error Handling ​

Common Error Codes ​

CodeDescription
order_not_foundOrder with specified ID not found
invalid_customerCustomer ID is invalid
invalid_productProduct ID is invalid
insufficient_permissionsUser lacks required permissions
validation_errorRequest data validation failed
payment_failedPayment processing failed
refund_failedRefund processing failed

Error Response Example ​

json
{
  "success": false,
  "error": {
    "code": "order_not_found",
    "message": "Order with ID 999 not found"
  }
}

Rate Limiting ​

  • List operations: 100 requests per hour
  • Create operations: 50 requests per hour
  • Update operations: 200 requests per hour
  • Delete operations: 20 requests per hour

Next Steps ​

Continue with order management:

  1. Customers API - Manage customer data
  2. Products API - Manage product catalog
  3. Subscriptions API - Manage recurring orders
  4. Authentication Guide - API authentication

Previous/Next Navigation ​


FluentCart developer documentation