🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Clawver Orders

by @nwang783

Manage Clawver orders. List orders, track status, process refunds, generate download links. Use when asked about customer orders, fulfillment, refunds, or order history.

Versionv1.0.3
Downloads2,065
Installs3
TERMINAL
clawhub install clawver-orders

πŸ“– About This Skill


name: clawver-orders description: Manage Clawver orders. List orders, track status, process refunds, generate download links. Use when asked about customer orders, fulfillment, refunds, or order history. version: 1.3.0 homepage: https://clawver.store metadata: {"openclaw":{"emoji":"πŸ“¦","homepage":"https://clawver.store","requires":{"env":["CLAW_API_KEY"]},"primaryEnv":"CLAW_API_KEY"}}

Clawver Orders

Manage orders on your Clawver storeβ€”view order history, track fulfillment, process refunds, and generate download links.

Prerequisites

  • CLAW_API_KEY environment variable
  • Active store with orders
  • For platform-specific good and bad API patterns from claw-social, use references/api-examples.md.

    List Orders

    Get All Orders

    curl https://api.clawver.store/v1/orders \
      -H "Authorization: Bearer $CLAW_API_KEY"
    

    Filter by Status

    # Confirmed (paid) orders
    curl "https://api.clawver.store/v1/orders?status=confirmed" \
      -H "Authorization: Bearer $CLAW_API_KEY"

    In-progress POD orders

    curl "https://api.clawver.store/v1/orders?status=processing" \ -H "Authorization: Bearer $CLAW_API_KEY"

    Shipped orders

    curl "https://api.clawver.store/v1/orders?status=shipped" \ -H "Authorization: Bearer $CLAW_API_KEY"

    Delivered orders

    curl "https://api.clawver.store/v1/orders?status=delivered" \ -H "Authorization: Bearer $CLAW_API_KEY"

    Order statuses:

    | Status | Description | |--------|-------------| | pending | Order created, payment pending | | confirmed | Payment confirmed | | processing | Being fulfilled | | shipped | In transit (POD only) | | delivered | Completed | | cancelled | Cancelled |

    paymentStatus is reported separately and can be pending, paid, failed, partially_refunded, or refunded.

    Pagination

    curl "https://api.clawver.store/v1/orders?limit=20" \
      -H "Authorization: Bearer $CLAW_API_KEY"
    

    limit is supported. Cursor-based pagination is not currently exposed on this endpoint.

    Get Order Details

    curl https://api.clawver.store/v1/orders/{orderId} \
      -H "Authorization: Bearer $CLAW_API_KEY"
    

    For print-on-demand items, order payloads include:

  • variantId (required β€” fulfillment variant identifier, must match a product variant)
  • variantName (human-readable selected size/variant label)
  • Note: variantId is required for all POD checkout items as of Feb 2026. Out-of-stock variants are rejected.

    Generate Download Links

    Owner Download Link (Digital Items)

    curl "https://api.clawver.store/v1/orders/{orderId}/download/{itemId}" \
      -H "Authorization: Bearer $CLAW_API_KEY"
    

    Use this when customers report download issues or request a new link.

    Customer Download Link (Digital Items)

    curl "https://api.clawver.store/v1/orders/{orderId}/download/{itemId}/public?token={downloadToken}"
    

    Download tokens are issued per order item and can be returned in the checkout receipt (GET /v1/checkout/{checkoutId}/receipt).

    Customer Order Status (Public)

    curl "https://api.clawver.store/v1/orders/{orderId}/public?token={orderStatusToken}"
    

    Checkout Receipt (Success Page / Support)

    curl "https://api.clawver.store/v1/checkout/{checkoutId}/receipt"
    

    Process Refunds

    Full Refund

    curl -X POST https://api.clawver.store/v1/orders/{orderId}/refund \
      -H "Authorization: Bearer $CLAW_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "amountInCents": 2499,
        "reason": "Customer requested refund"
      }'
    

    Partial Refund

    curl -X POST https://api.clawver.store/v1/orders/{orderId}/refund \
      -H "Authorization: Bearer $CLAW_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "amountInCents": 500,
        "reason": "Partial refund for missing item"
      }'
    

    Notes:

  • amountInCents is required and must be a positive integer
  • reason is required
  • amountInCents cannot exceed remaining refundable amount
  • Refunds process through Stripe (1-5 business days to customer)
  • Order must have paymentStatus of paid or partially_refunded
  • POD Order Tracking

    For print-on-demand orders, tracking info becomes available after shipping:

    curl https://api.clawver.store/v1/orders/{orderId} \
      -H "Authorization: Bearer $CLAW_API_KEY"
    

    Check trackingUrl, trackingNumber, and carrier fields in response.

    Webhook for Shipping Updates

    curl -X POST https://api.clawver.store/v1/webhooks \
      -H "Authorization: Bearer $CLAW_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "url": "https://your-server.com/webhook",
        "events": ["order.shipped", "order.fulfilled"],
        "secret": "your-secret-min-16-chars"
      }'
    

    Order Webhooks

    Receive real-time notifications:

    curl -X POST https://api.clawver.store/v1/webhooks \
      -H "Authorization: Bearer $CLAW_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "url": "https://your-server.com/webhook",
        "events": ["order.created", "order.paid", "order.refunded"],
        "secret": "your-webhook-secret-16chars"
      }'
    

    Signature format:

    X-Claw-Signature: sha256=abc123...
    

    Verification (Node.js):

    const crypto = require('crypto');

    function verifyWebhook(body, signature, secret) { const expected = 'sha256=' + crypto .createHmac('sha256', secret) .update(body) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(expected) ); }

    Common Workflows

    Daily Order Check

    # Get newly paid/confirmed orders
    response = api.get("/v1/orders?status=confirmed")
    orders = response["data"]["orders"]
    print(f"New orders: {len(orders)}")

    for order in orders: print(f" - {order['id']}: ${order['totalInCents']/100:.2f}")

    Handle Refund Request

    def process_refund(order_id, amount_cents, reason):
        # Get order details
        response = api.get(f"/v1/orders/{order_id}")
        order = response["data"]["order"]
        
        # Check if refundable
        if order["paymentStatus"] not in ["paid", "partially_refunded"]:
            return "Order cannot be refunded"
        
        # Process refund
        result = api.post(f"/v1/orders/{order_id}/refund", {
            "amountInCents": amount_cents,
            "reason": reason
        })
        
        return f"Refunded ${amount_cents/100:.2f}"
    

    Wrong Size Support Playbook

    def handle_wrong_size(order_id):
        response = api.get(f"/v1/orders/{order_id}")
        order = response["data"]["order"]

    for item in order["items"]: if item.get("productType") == "print_on_demand": print("Variant ID:", item.get("variantId")) print("Variant Name:", item.get("variantName"))

    # Confirm selected variant before issuing a refund/replacement workflow.

    Resend Download Link

    def resend_download(order_id, item_id):
        # Generate new download link
        response = api.get(f"/v1/orders/{order_id}/download/{item_id}")
        
        return response["data"]["downloadUrl"]
    

    Order Lifecycle

    pending β†’ confirmed β†’ processing β†’ shipped β†’ delivered
                   ↓
          cancelled / refunded (paymentStatus)
    

    Digital products: confirmed β†’ delivered (instant fulfillment) POD products: confirmed β†’ processing β†’ shipped β†’ delivered

    βš™οΈ Configuration

  • CLAW_API_KEY environment variable
  • Active store with orders
  • For platform-specific good and bad API patterns from claw-social, use references/api-examples.md.