prestashop_bridge_v1

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

3,891 stars

Best use case

prestashop_bridge_v1 is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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

Teams using prestashop_bridge_v1 should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/prestashop-bridge-v1/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/ansz089/prestashop-bridge-v1/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/prestashop-bridge-v1/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How prestashop_bridge_v1 Compares

Feature / Agentprestashop_bridge_v1Standard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# 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.

Related Skills

deBridge MCP Skill

3891
from openclaw/skills

Enable AI agents to execute non-custodial cross-chain cryptocurrency swaps and transfers via the deBridge protocol.

devops-bridge

3891
from openclaw/skills

Unified developer operations bridge connecting GitHub, CI/CD (GitHub Actions), Slack, Discord, and issue trackers (Linear, Jira, GitHub Issues) into cross-tool automated workflows. Sends context-rich CI failure notifications to Slack with failing test details, tracks PR review lifecycle with escalating reminders, generates daily dev standup summaries, syncs issue status when PRs are merged, detects flaky tests, and monitors repository health. Use this skill for: PR review reminders, CI build alerts, "what happened in my repos", "any failing builds", "who needs a review", dev team standup summary, deploy notifications, repository monitoring, connecting GitHub to Slack, linking PRs to Jira/Linear tickets, code review tracking, merge conflict alerts, or any request to bridge development tools together. If the user mentions GitHub AND Slack (or any two dev tools) together, this skill connects them.

cli-agent-bridge

3891
from openclaw/skills

Public ClawHub text release for a Windows companion skill that bridges local AI CLIs and controlled workspace file operations. This release documents the capability and setup path, but does not include the local PowerShell execution layer.

toybridge

3891
from openclaw/skills

Control any BLE toy that has been reverse-engineered and connected via the ToyBridge server. Calls a local HTTP API to send vibrate/stop commands. Requires the ToyBridge server running on the same machine.

api-bridge

3891
from openclaw/skills

Curated free public APIs for AI agents — geocoding, weather, forex, validation, facts, finance, and test data. Use when an agent needs real-world data without paid API keys.

feishu-bridge

3891
from openclaw/skills

Connect a Feishu (Lark) bot to Clawdbot via WebSocket long-connection. No public server, domain, or ngrok required. Use when setting up Feishu/Lark as a messaging channel, troubleshooting the Feishu bridge, or managing the bridge service (start/stop/logs). Covers bot creation on Feishu Open Platform, credential setup, bridge startup, macOS launchd auto-restart, and group chat behavior tuning.

cross-disciplinary-bridge-finder

3891
from openclaw/skills

Use when identifying collaboration opportunities across fields, finding experts in complementary disciplines, translating methodologies between scientific domains, or building interdisciplinary research teams. Identifies synergies between scientific disciplines, matches researchers with complementary expertise, and facilitates cross-domain collaborations. Supports interdisciplinary grant applications and innovative research team formation.

quantum-bridge

3891
from openclaw/skills

Transpile quantum circuits between Qiskit (OpenQASM) and OriginIR, run IBC multi-agent consensus, validate OriginIR, and submit circuits to real quantum hardware (Wukong 72Q chip) via the Quantum Bridge API. Use when a user asks to convert quantum circuits, run quantum consensus, submit to quantum hardware, check quantum backends, or work with OriginIR/OpenQASM formats.

codex-bridge

3891
from openclaw/skills

Dispatch coding tasks to the local OpenAI Codex CLI with background execution, status polling, and answerable clarifying questions. Use when OpenClaw should delegate script building, code edits, refactors, or multi-step coding work to Codex from the command line.

nerve_bridge

3891
from openclaw/skills

Bi-directional control of Trae via macOS AppleScript with built-in feedback mechanism. Use when needing to execute code/commands in Trae IDE and wait for completion confirmation.

cloud-local-bridge

3891
from openclaw/skills

实现云端 OpenClaw 与本地 OpenClaw 之间的双向通信桥接。支持自然语言配对、命令执行、文件同步。

win_bridge_control

3891
from openclaw/skills

Bridge: Cross-OS UI automation for Windows Host