PrestaShop桥接
prestashop_bridge_v1
by ansz089
Secure skill pack for operating a PrestaShop 9 Bridge through a stable, signed, asynchronous API contract.
安装
claude skill add --url https://github.com/openclaw/skills文档
PrestaShop Bridge V1
PrestaShop Bridge V1 is a secure operational contract for AI agents and Python handlers that need to interact with a PrestaShop 9 store through a stable interface. It standardizes OAuth2 authentication, HMAC request signing, rate limiting, asynchronous writes, idempotency, and durable job polling.
Operating model
- Reads are synchronous.
- Writes are asynchronous.
- Redis is used only for Messenger transport and temporary HTTP idempotency cache.
- MySQL is the source of truth for job status, business idempotency, and failed jobs.
- A
202 Acceptedresponse means only that a job was accepted for processing. It never means business success.
Capabilities
get_product
- method:
GET - endpoint:
/v1/products/{id} - sync:
true - scope:
bridge:read - params:
idinteger, required
- success:
200
get_order
- method:
GET - endpoint:
/v1/orders/{id} - sync:
true - scope:
bridge:read - params:
idinteger, required
- success:
200
get_job_status
- method:
GET - endpoint:
/v1/jobs/{jobId} - sync:
true - scope:
bridge:read - note: job status is read from MySQL, not from Redis
- success:
200
update_product
- method:
POST - endpoint:
/v1/jobs/products/update - sync:
false - scope:
bridge:write - idempotency:
X-Request-IDrequired - payload:
product_idupdates.price_htupdates.stock_deltaupdates.seooptions.skip_reindex
- success:
202
import_products
- method:
POST - endpoint:
/v1/jobs/products/import - sync:
false - scope:
bridge:write - idempotency: request id required and stable
batch_id - payload:
batch_iditemsoptions
- constraints:
- maximum
50items - maximum payload size
10MB
- maximum
- success:
202
update_order_status
- method:
POST - endpoint:
/v1/jobs/orders/status - sync:
false - scope:
bridge:write - idempotency:
X-Request-IDrequired - payload:
order_idnew_statusnotify_customertracking_number
- success:
202
Security
Required headers on protected routes
Authorization: Bearer {jwt_rs256_token}X-Request-ID: {uuid_v4}X-Timestamp: {unix_seconds}X-Signature: {hmac_sha256_hex}Content-Type: application/jsonAccept: application/json
Compression
- gzip recommended above
1024bytes - gzip required above
32768bytes
OAuth2
- flow:
client_credentials - token endpoint:
/oauth/token - JWT algorithm:
RS256 - TTL:
3600 - scopes:
bridge:readbridge:write
HMAC
String to sign:
METHOD + "\n" + URI + "\n" + TIMESTAMP + "\n" + REQUEST_ID + "\n" + BODY_SHA256
Exact example:
- method:
POST - uri:
/v1/jobs/products/update - timestamp:
1710950400 - request id:
f47ac10b-58cc-4372-a567-0e02b2c3d479 - body sha256:
37abd647733fbd18a3f11fb5a082fe59c62719d9fe833aec96b28ccea36b70ba - signature:
448e251d1c71078b07a10baf4094fd2686bcebef97761c4729a921f71798554c
Response handling
200 OK: synchronous read success or completed idempotent replay.202 Accepted: job accepted only. Always poll/v1/jobs/{jobId}.400 Bad Request: schema validation failed.401 Unauthorized: JWT missing, invalid, or expired.403 Forbidden: invalid HMAC, invalid timestamp window, or insufficient scope.409 Conflict: idempotency conflict or known failed replay.422 Unprocessable Entity: valid JSON but impossible business transition.429 Too Many Requests: wait forRetry-After.500 Internal Server Error: unexpected server failure.503 Service Unavailable: service degraded or Redis unavailable.
Absolute refusal rules
- Never report business success immediately after a
202. - Never modify TTC price directly. Only HT price may be changed.
- Never delete a product that has associated orders.
- Never access the database or filesystem directly.
- Never send payloads larger than
10MB. - Never perform heavy writes synchronously.
- Never reuse an
X-Request-IDfor a different business intention within 24 hours.
Pre-deployment checks
- Verify JWT issuance and validation with RS256 only.
- Verify the exact HMAC example in
examples.http. - Verify schema validation for all request bodies.
- Verify Redis-backed idempotency replay behavior.
- Verify MySQL-backed job polling after Redis restart.
- Verify idempotent handlers under at-least-once delivery.
相关 Skills
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
MCP构建
by anthropics
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
接口测试套件
by alirezarezvani
扫描 Next.js、Express、FastAPI、Django REST 的 API 路由,自动生成覆盖鉴权、参数校验、错误码、分页、上传与限流场景的 Vitest 或 Pytest 测试套件。
✎ 帮你把API与集成测试自动化跑顺,减少回归漏测;能力全面,尤其适合复杂接口场景的QA团队。
相关 MCP 服务
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。