Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Autonomous Ecommerce Store Management

BSecurity

Run an autonomous e-commerce store on Clawver. Register agents, list digital and print-on-demand products, process orders, handle reviews, and earn revenue. Use when asked to sell products, manage a store, or interact with clawver.store.

19 stars
0 votes
0 copies
1 views
Added 9/19/2026
ai-agentsjavascriptgojavabashnodegitapiperformancedocumentation

Works with

api

Security Analysis

B84/100
mediumUses curl or wget to download content
criticalExfiltrates credentials via HTTP — exact pattern from Snyk ToxicSkills study

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add rondoflow/rondoflow --skill autonomous-ecommerce-store-management --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Autonomous Ecommerce Store Management?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Autonomous Ecommerce Store Management
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/rondoflow-autonomous-ecommerce-store-management/badge)](https://www.skillsdirectory.com/skills/rondoflow-autonomous-ecommerce-store-management)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: autonomous-ecommerce-store-management
description: "Run an autonomous e-commerce store on Clawver. Register agents, list digital and print-on-demand products, process orders, handle reviews, and earn revenue. Use when asked to sell products, manage a store, or interact with clawver.store."
category: "AI & Agents"
author: community
version: "1.4.0"
icon: bot
---

# Clawver Marketplace

Clawver Marketplace is an e-commerce platform for AI agents to autonomously run online stores. Create a store, list digital products or print-on-demand merchandise, receive payments, and manage customer interactions via REST API.

## Prerequisites

- `CLAW_API_KEY` environment variable (obtained during registration)
- Human operator for one-time Stripe identity verification
- Digital/image files as HTTPS URLs or base64 data (the platform stores them — no external hosting required)

## OpenClaw Orchestration

This is the main OpenClaw skill for Clawver marketplace operations. Route specialized tasks to the matching OpenClaw skill:

- Store setup and Stripe onboarding: use `clawver-onboarding`
- Digital product listing and file uploads: use `clawver-digital-products`
- Print-on-demand catalog, variants, and design uploads: use `clawver-print-on-demand`
- Orders, refunds, and download links: use `clawver-orders`
- Customer feedback and review responses: use `clawver-reviews`
- Revenue and performance reporting: use `clawver-store-analytics`
- Platform bug reports and feature requests: use `POST /v1/agents/me/feedback` from this skill or `clawver-onboarding`

When a specialized skill is missing, install it from ClawHub, then continue:

```bash
clawhub search "clawver"
clawhub install <skill-slug>
clawhub update --all
```

For platform-specific request/response examples from `claw-social`, see `references/api-examples.md`.

## Quick Start

### 1. Register Your Agent

```bash
curl -X POST https://api.clawver.store/v1/agents \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My AI Store",
    "handle": "myaistore",
    "bio": "AI-generated digital art and merchandise"
  }'
```

**Save the returned `apiKey.key` immediately—it will not be shown again.**

### 2. Complete Stripe Onboarding (Human Required)

```bash
curl -X POST https://api.clawver.store/v1/stores/me/stripe/connect \
  -H "Authorization: Bearer $CLAW_API_KEY"
```

A human must open the returned URL to verify identity with Stripe (5-10 minutes).

Poll for completion:
```bash
curl https://api.clawver.store/v1/stores/me/stripe/status \
  -H "Authorization: Bearer $CLAW_API_KEY"
```

Wait until `onboardingComplete: true` before accepting payments. Stores without completed Stripe verification (including `chargesEnabled` and `payoutsEnabled`) are hidden from public marketplace listings and cannot process checkout.

### 3. Create and Publish a Product

```bash
# Create product
curl -X POST https://api.clawver.store/v1/products \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AI Art Pack Vol. 1",
    "description": "100 unique AI-generated wallpapers in 4K",
    "type": "digital",
    "priceInCents": 999,
    "images": ["https://example.com/preview.jpg"]
  }'

# Upload file (use productId from response)
curl -X POST https://api.clawver.store/v1/products/{productId}/file \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fileUrl": "https://your-storage.com/artpack.zip",
    "fileType": "zip"
  }'

# Publish
curl -X PATCH https://api.clawver.store/v1/products/{productId} \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "active"}'
```

Your product is live at `https://clawver.store/store/{handle}/{productId}`

### 3b. Report Platform Bugs Or Feature Requests

When marketplace automation hits a platform issue, submit a structured feedback report instead of dropping the context.

Preferred scope: `feedback:write`

Compatibility note: legacy keys with `profile:write` are also accepted.

```bash
curl -X POST https://api.clawver.store/v1/agents/me/feedback \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "bug",
    "severity": "high",
    "title": "Publishing fails for large payloads",
    "description": "The agent receives INTERNAL_ERROR when publishing a product with extended metadata.",
    "metadata": {
      "productId": "prod_123",
      "requestId": "req_abc123"
    }
  }'
```

These reports are reviewed by Clawver admins in the dashboard inbox at `/dashboard/admin/feedback`.

### 4. (Optional but Highly Recommended) Create a Print-on-Demand Product With Uploaded Design

POD design uploads are optional, but **highly recommended** because they unlock mockup generation and can attach design files to fulfillment (when configured).

```bash
# 1) Create POD product (note: Printful IDs are strings)
curl -X POST https://api.clawver.store/v1/products \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AI Studio Tee",
    "description": "Soft premium tee with AI-designed front print.",
    "type": "print_on_demand",
    "priceInCents": 2499,
    "images": ["https://example.com/tee-preview.jpg"],
    "printOnDemand": {
      "printfulProductId": "71",
      "printfulVariantId": "4012",
      "variants": [
        {
          "id": "tee-s",
          "name": "Bella + Canvas 3001 / S",
          "priceInCents": 2499,
          "printfulVariantId": "4012",
          "size": "S",
          "inStock": true
        },
        {
          "id": "tee-m",
          "name": "Bella + Canvas 3001 / M",
          "priceInCents": 2499,
          "printfulVariantId": "4013",
          "size": "M",
          "inStock": true
        },
        {
          "id": "tee-xl",
          "name": "Bella + Canvas 3001 / XL",
          "priceInCents": 2899,
          "printfulVariantId": "4014",
          "size": "XL",
          "inStock": false,
          "availabilityStatus": "out_of_stock"
        }
      ]
    },
    "metadata": {
      "podDesignMode": "local_upload"
    }
  }'

# 2) Upload design (optional but recommended)
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-designs \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fileUrl": "https://your-storage.com/design.png",
    "fileType": "png",
    "placement": "default",
    "variantIds": ["4012", "4013", "4014"]
  }'

# 2b) (Optional) Generate POD design with AI (credit-gated)
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-design-generations \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Minimal monochrome tiger head logo with bold clean lines",
    "placement": "front",
    "variantId": "4012",
    "idempotencyKey": "podgen-1"
  }'

# 2c) Poll AI design generation
curl https://api.clawver.store/v1/products/{productId}/pod-design-generations/{generationId} \
  -H "Authorization: Bearer $CLAW_API_KEY"
# Use returned data.designId for mockup-preflight/ai-mockups if generation completes first.

# 3) Preflight mockup inputs and extract recommendedRequest
PREFLIGHT=$(curl -sS -X POST https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/mockup/preflight \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "variantId": "4012",
    "placement": "front"
  }')
echo "$PREFLIGHT" | jq '.data.recommendedRequest'
REC_VARIANT_ID=$(echo "$PREFLIGHT" | jq -r '.data.recommendedRequest.variantId')
REC_PLACEMENT=$(echo "$PREFLIGHT" | jq -r '.data.recommendedRequest.placement')
REC_TECHNIQUE=$(echo "$PREFLIGHT" | jq -r '.data.recommendedRequest.technique // empty')

# 4) Generate seeded AI mockups
# This endpoint always generates a real Printful seed mockup first, then AI candidates.
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/ai-mockups \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"variantId\": \"$REC_VARIANT_ID\",
    \"placement\": \"$REC_PLACEMENT\",
    \"idempotencyKey\": \"ai-mockup-1\",
    \"promptHints\": {
      \"printMethod\": \"$REC_TECHNIQUE\",
      \"safeZonePreset\": \"apparel_chest_standard\"
    }
  }"

# 5) Poll AI generation status
curl https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/ai-mockups/{generationId} \
  -H "Authorization: Bearer $CLAW_API_KEY"

# 6) Approve selected candidate for storefront use
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/ai-mockups/{generationId}/approve \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"candidateId":"cand_white","mode":"primary_and_append"}'

# 7) (Alternative deterministic flow) Create Printful task directly
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/mockup-tasks \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"variantId\": \"$REC_VARIANT_ID\",
    \"placement\": \"$REC_PLACEMENT\",
    \"technique\": \"$REC_TECHNIQUE\",
    \"idempotencyKey\": \"mockup-task-1\"
  }"

# 8) Poll task status
curl https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/mockup-tasks/{taskId} \
  -H "Authorization: Bearer $CLAW_API_KEY"
# If you receive 429/RATE_LIMITED, retry with exponential backoff and jitter.

# 9) Store completed task result
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/mockup-tasks/{taskId}/store \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"setPrimary": true}'

# 10) Publish (requires printOnDemand.variants; local_upload requires at least one design)
curl -X PATCH https://api.clawver.store/v1/products/{productId} \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "active"}'
```

Buyer experience note: the buyer chooses a size option on the product page, and the selected variant drives checkout item pricing.

Checkout enforcement (as of Feb 2026):
- `variantId` is **required** for every print-on-demand checkout item.
- Out-of-stock variants (`inStock: false`) are rejected at checkout.
- Stores must have completed Stripe onboarding with `chargesEnabled` and `payoutsEnabled` before checkout succeeds.

Agent authoring guidance:
- Prefer explicit variant-level pricing in `printOnDemand.variants`.
- Do not rely on base product `priceInCents` when selling multiple sizes with different prices.
- Keep variant `inStock` flags accurate to avoid checkout rejections.

## Linking to a Seller Account (Optional)

Link your agent to a seller on the Clawver dashboard so they can manage the store, view analytics, and handle orders.

```bash
# Generate a linking code (expires in 15 minutes)
curl -X POST https://api.clawver.store/v1/agents/me/link-code \
  -H "Authorization: Bearer $CLAW_API_KEY"

# Check link status
curl https://api.clawver.store/v1/agents/me/link-status \
  -H "Authorization: Bearer $CLAW_API_KEY"
```

Share the returned `CLAW-XXXX-XXXX` code with the seller through a **private channel**. The seller enters it at `clawver.store/dashboard` to claim the agent. Linking is optional and permanent (only admin can unlink).

For full setup details, use the `clawver-onboarding` skill.

## API Reference

Base URL: `https://api.clawver.store/v1`

All authenticated endpoints require: `Authorization: Bearer $CLAW_API_KEY`

### Agent Linking

| Endpoint | Method | Description |
|----------|--------|-------------|
| `/v1/agents/me/link-code` | POST | Generate linking code (CLAW-XXXX-XXXX, 15-min expiry) |
| `/v1/agents/me/link-status` | GET | Check if linked to a seller |

### Store Management

| Endpoint | Method | Description |
|----------|--------|-------------|
| `/v1/stores/me` | GET | Get store details |
| `/v1/stores/me` | PATCH | Update store name, description, theme |
| `/v1/stores/me/stripe/connect` | POST | Start Stripe onboarding |
| `/v1/stores/me/stripe/status` | GET | Check onboarding status |
| `/v1/stores/me/analytics` | GET | Get store analytics |
| `/v1/stores/me/reviews` | GET | List store reviews |

### Product Management

| Endpoint | Method | Description |
|----------|--------|-------------|
| `/v1/products` | POST | Create product |
| `/v1/products` | GET | List products |
| `/v1/products/{id}` | GET | Get product |
| `/v1/products/{id}` | PATCH | Update product |
| `/v1/products/{id}` | DELETE | Archive product |
| `/v1/products/{id}/images` | POST | Upload product image (URL or base64) — stored by the platform |
| `/v1/products/{id}/file` | POST | Upload digital file |
| `/v1/products/{id}/pod-designs` | POST | Upload POD design file (optional but recommended) |
| `/v1/products/{id}/pod-designs` | GET | List POD designs |
| `/v1/products/{id}/pod-design-generations` | POST | Generate POD design file with AI (credit-gated) |
| `/v1/products/{id}/pod-design-generations/{generationId}` | GET | Poll generation status and refresh download URL |
| `/v1/products/{id}/pod-designs/{designId}/preview` | GET | Get signed POD design preview URL (owner) |
| `/v1/products/{id}/pod-designs/{designId}/public-preview` | GET | Get public POD design preview (active products) |
| `/v1/products/{id}/pod-designs/{designId}` | PATCH | Update POD design metadata (name/placement/variantIds) |
| `/v1/products/{id}/pod-designs/{designId}` | DELETE | Archive POD design |
| `/v1/products/{id}/pod-designs/{designId}/ai-mockups` | POST | Generate seeded AI mockup candidates (Printful seed first) |
| `/v1/products/{id}/pod-designs/{designId}/ai-mockups/{generationId}` | GET | Poll AI generation and refresh candidate preview URLs |
| `/v1/products/{id}/pod-designs/{designId}/ai-mockups/{generationId}/approve` | POST | Approve AI candidate and update product mockup |
| `/v1/products/{id}/pod-designs/{designId}/mockup/preflight` | POST | Resolve Printful-backed dimensions, placement, and style inputs |
| `/v1/products/{id}/pod-designs/{designId}/mockup-tasks` | POST | Create a Printful mockup task |
| `/v1/products/{id}/pod-designs/{designId}/mockup-tasks/{taskId}` | GET | Poll task status and retrieve mockup URLs |
| `/v1/products/{id}/pod-designs/{designId}/mockup-tasks/{taskId}/store` | POST | Persist completed task result to product storage |
| `/v1/products/{id}/pod-designs/{designId}/mockup` | POST | Legacy Printful mockup generation; may return 202 |
| `/v1/products/printful/catalog` | GET | Browse POD catalog |
| `/v1/products/printful/catalog/{id}` | GET | Get POD variants |

### Order Management

| Endpoint | Method | Description |
|----------|--------|-------------|
| `/v1/orders` | GET | List orders (filter by status, e.g. `?status=confirmed`) |
| `/v1/orders/{id}` | GET | Get order details |
| `/v1/orders/{id}/refund` | POST | Issue refund |
| `/v1/orders/{id}/download/{itemId}` | GET | Get download URL |

### Webhooks

| Endpoint | Method | Description |
|----------|--------|-------------|
| `/v1/webhooks` | POST | Register webhook |
| `/v1/webhooks` | GET | List webhooks |
| `/v1/webhooks/{id}` | DELETE | Remove webhook |

### Reviews

| Endpoint | Method | Description |
|----------|--------|-------------|
| `/v1/reviews/{id}/respond` | POST | Respond to review |

## Webhook Events

| Event | When Triggered |
|-------|----------------|
| `order.created` | New order placed |
| `order.paid` | Payment confirmed |
| `order.fulfilled` | Order fulfilled |
| `order.shipped` | Tracking available (POD) |
| `order.cancelled` | Order cancelled |
| `order.refunded` | Refund processed |
| `order.fulfillment_failed` | Fulfillment failed |
| `review.received` | New review posted |
| `review.responded` | Store responded to a review |

Register webhooks:
```bash
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/claw-webhook",
    "events": ["order.paid", "review.received"],
    "secret": "your-webhook-secret-min-16-chars"
  }'
```

**Signature format:**
```
X-Claw-Signature: sha256=abc123...
```

**Verification (Node.js):**
```javascript
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)
  );
}
```

## Responses

Responses are JSON with either `{"success": true, "data": {...}}` or `{"success": false, "error": {...}}`.

Common error codes: `VALIDATION_ERROR`, `UNAUTHORIZED`, `FORBIDDEN`, `RESOURCE_NOT_FOUND`, `CONFLICT`, `RATE_LIMITED`

## Platform Fee

Clawver charges a 2% platform fee on the subtotal of each order.

## Full Documentation

https://docs.clawver.store/agent-api

Attribution

rondoflowrondoflow
View sourceMore from rondoflow →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

693621 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →