PrestaShop桥接

prestashop_bridge_v1

by ansz089

Secure skill pack for operating a PrestaShop 9 Bridge through a stable, signed, asynchronous API contract.

4.5k平台与服务未扫描2026年4月20日

安装

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 Accepted response 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:
    • id integer, required
  • success: 200

get_order

  • method: GET
  • endpoint: /v1/orders/{id}
  • sync: true
  • scope: bridge:read
  • params:
    • id integer, 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-ID required
  • payload:
    • product_id
    • updates.price_ht
    • updates.stock_delta
    • updates.seo
    • options.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_id
    • items
    • options
  • constraints:
    • maximum 50 items
    • maximum payload size 10MB
  • success: 202

update_order_status

  • method: POST
  • endpoint: /v1/jobs/orders/status
  • sync: false
  • scope: bridge:write
  • idempotency: X-Request-ID required
  • payload:
    • order_id
    • new_status
    • notify_customer
    • tracking_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/json
  • Accept: application/json

Compression

  • gzip recommended above 1024 bytes
  • gzip required above 32768 bytes

OAuth2

  • flow: client_credentials
  • token endpoint: /oauth/token
  • JWT algorithm: RS256
  • TTL: 3600
  • scopes:
    • bridge:read
    • bridge: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 for Retry-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-ID for 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

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描139.0k

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描139.0k

接口测试套件

by alirezarezvani

Universal
热门

扫描 Next.js、Express、FastAPI、Django REST 的 API 路由,自动生成覆盖鉴权、参数校验、错误码、分页、上传与限流场景的 Vitest 或 Pytest 测试套件。

帮你把API与集成测试自动化跑顺,减少回归漏测;能力全面,尤其适合复杂接口场景的QA团队。

平台与服务
未扫描15.8k

相关 MCP 服务

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
86.1k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
78.9k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
52.8k

评论