摘要
通过 AI 代理在 B&Q 市场上运营你的商店:订单、接受、跟踪和运输、事件、带有价格和库存的报价、导入、消息、退货、发票和交易。该市场在英国销售;使用来自 B&Q 卖家后台的商店 API 密钥登录。
引导式设置
2 分钟将 B&Q Marketplace 连接到 Microsoft Copilot
开始 AnythingMCP Cloud 免费试用,在引导式设置中连接 B&Q Marketplace,再把你的 MCP URL 添加到 Microsoft Copilot。无需代码,也无需自行运行服务器。
无需信用卡 · 7 天试用 · 提供自托管方案
试试这样问
B&Q Marketplace 的示例提示
点击任意提示即可复制,然后粘贴到 Claude、ChatGPT、Cursor、Gemini、Copilot 或 OpenClaw 中,在该连接器上运行。
Claude 是 AI,可能会出错。请核对回答。
💡 不想安装?直接使用 cloud.anythingmcp.com。 登录,点击 Connectors → B&Q Marketplace,粘贴你的凭据,生成一个 MCP API 密钥,完成。无需 Docker,无需
git clone,无需本地服务器。
B&Q 市场 + Microsoft Copilot
通过 AI 代理在 B&Q 市场上运营你的商店:订单、接受、跟踪和运输、事件、带有价格和库存的报价、导入、消息、退货、发票和交易。该市场在英国销售;使用来自 B&Q 卖家后台的商店 API 密钥登录。
前提条件
查看连接器中包含的完整设置说明(在选择连接器时可在应用内商店中查看)。此连接器所需的环境变量为:
B_AND_Q_API_KEY
第一步 — 获取凭据
国家:英国。
谁可以销售:B&Q 通过 Kingfisher Merchant Hub 接受申请;企业必须注册增值税。连接器需要一个 B&Q 已经开通的卖家账户。
B&Q 属于 Kingfisher,这就是卖家平台位于 Kingfisher 地址的原因。
设置大约需要 5 分钟。
- 登录 B&Q 卖家后台:
https://marketplace.kingfisher.com/login。 - 在后台打开你的用户名(右上角)> 我的用户设置 > API 密钥,然后点击 生成新密钥(或复制现有密钥)。将其粘贴到
B_AND_Q_API_KEY中。密钥以原样形式发送在Authorization头中,无需Bearer。生成新密钥会使旧密钥失效,因此使用旧密钥的任何其他工具将停止工作。 - B&Q 的卖家通常设置商店 ID,单个商店也是如此。如果你的用户有多个商店,请将
B_AND_Q_SHOP_ID设置为此连接器应使用的商店的数字 ID(在后台仪表板的 标识符 或 商店 ID 旁边显示,并由b_and_q_get_account返回为shop_id);要在多个商店上工作,每个商店安装一次连接器。没有它将使用你的默认商店。 - 安装并运行
b_and_q_get_account:它返回密钥所属的商店。
从哪里开始:b_and_q_get_account 显示密钥背后的商店(ID、名称、状态、货币和渠道)。日常工作中使用 b_and_q_list_orders,参数为 order_state_codes=WAITING_ACCEPTANCE,使用 b_and_q_list_offers 获取价格和库存,使用 b_and_q_list_threads 获取等待回复的消息。
产品和竞争报价:b_and_q_get_products 通过 EAN 或其他参考在 B&Q 目录中查找产品,并返回市场产品 SKU;b_and_q_list_product_offers 列出给定产品的每个商店的报价,按最佳价格排序,每分钟约 5 次调用。
订单工作流程:新订单在 WAITING_ACCEPTANCE 中等待。b_and_q_accept_order 接受(或拒绝)每一行;在客户扣款后,订单转移到 SHIPPING。然后 b_and_q_update_tracking 存储承运人和跟踪号码(承运人代码来自 b_and_q_list_carriers),b_and_q_ship_order 确认发货(SHIPPED)。后续状态为 TO_COLLECT、RECEIVED、CLOSED、REFUSED 和 CANCELED。使用 b_and_q_list_orders,参数为 order_state_codes=WAITING_ACCEPTANCE,获取日常待办事项,并使用 has_incident=true 获取未解决的事件;b_and_q_resolve_incident 在问题解决后关闭一个订单行上的事件。附加到订单的文档(送货单、标签、客户发票)由 b_and_q_list_order_documents 列出。
写入:先确认。 b_and_q_accept_order、b_and_q_update_tracking、b_and_q_ship_order、b_and_q_resolve_incident、b_and_q_accept_return、b_and_q_receive_return、b_and_q_update_offers、b_and_q_reply_thread、b_and_q_create_order_thread 和 b_and_q_import_products 在实时市场上执行操作。在每次调用之前,向用户展示将要更改的内容(订单 ID 和行、跟踪号码、报价 SKU 及旧价格和新价格、消息文本和收件人),并等待确认。拒绝订单行将永久取消。此处没有工具可以退款、取消订单或转移资金;请在后台处理。b_and_q_import_offers 可以删除报价(REPLACE 模式会删除文件中缺失的每个报价),因此它的安装是关闭的。
更新报价(价格和库存):b_and_q_update_offers(OF24)替换整个报价。你遗漏的每个字段都会重置:缺失的 quantity 变为 0,缺失的 discount 或 description 被删除。始终先读取报价(b_and_q_get_offer 或 b_and_q_list_offers,参数为 sku),然后将其完整发送回去,仅包含预期的更改:shop_sku、product_id 和 product_id_type(来自 product_references)、state_code、price、quantity、leadtime_to_ship、logistic_class(其代码)、min_quantity_alert、description、discount、all_prices、available_started / available_ended(读取为 available_start_date / available_end_date)以及任何 offer_additional_fields。将 update_delete 留空或设置为 update。调用返回一个 import_id;更改是异步应用的,因此在再次读取报价之前,请使用 b_and_q_get_offer_import 检查它。state_code 的条件代码来自 b_and_q_list_offer_conditions,物流类别代码来自 b_and_q_list_logistic_classes。
文件导入:b_and_q_import_products(P41)和 b_and_q_import_offers(OF01)接受 B&Q 要求的 CSV、XLSX 或 XML 文件的 URL;连接器下载并将其上传到 B&Q。使用 b_and_q_list_product_imports / b_and_q_get_product_import 和 b_and_q_list_offer_imports / b_and_q_get_offer_import 跟踪它们。
退货:b_and_q_list_returns(RT11)列出退货请求。在 B&Q 允许商店决定的情况下,b_and_q_accept_return 在 WAITING_ACCEPTANCE 中接受或拒绝请求,b_and_q_receive_return 确认货物已到达。退款留在后台处理。
消息:b_and_q_list_threads 列出与客户和 B&Q 的对话(通过 entity_type=MMP_ORDER 和 entity_id=<order id> 过滤单个订单;没有 entity_type 的 entity_id 将被拒绝),b_and_q_get_thread 读取一个对话及其消息,b_and_q_reply_thread 回复(收件人 CUSTOMER 或 OPERATOR,即 B&Q),b_and_q_create_order_thread 在订单上开启新的对话。主题的原因代码来自 b_and_q_list_reasons;除非你知道市场有该语言,否则将其 locale 留空(非活动语言返回 400)。
资金:b_and_q_list_invoices(IV01)列出 B&Q 向商店发出的会计文件,b_and_q_list_transactions(TL02)列出交易行(销售、佣金、退款、付款)。如果 B&Q 使用增强卖家开票,IV01 不会返回新文件;请使用 b_and_q_list_document_requests(DR11)和交易。
参考列表:b_and_q_list_channels(国家网站)、b_and_q_list_carriers、b_and_q_list_shipping_zones、b_and_q_list_shipping_methods 和 b_and_q_list_logistic_classes 变化很少;每次对话读取一次。
分页:订单、报价、发票和产品导入使用 max(最多 100)和 offset 进行分页。对话、退货、交易、文档请求和报价导入返回一个 next_page_token;将其作为 page_token 传递以获取下一页(所有其他过滤器将被忽略),直到它缺失。
日期采用 ISO 8601 格式,例如 2026-10-01T00:00:00Z;答案为 UTC。
速率限制:每个 API 有自己的限制,B&Q 可以收紧它们。列出报价和订单是为了交互使用,产品和报价导入最多每 15 分钟一次,b_and_q_get_account 和参考列表大约每天调用一次。429 状态携带 Retry-After 头,指示等待的秒数;请勿循环重试。
错误:401 表示密钥错误或已被新密钥替换,403 表示用户缺乏此操作的权限,404 表示该商店不存在该订单、报价或对话,400 表示参数错误或订单处于错误状态(消息会命名,例如 ORDER_INVALID_STATE)。
第二步 — 安装适配器
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
第三步 — 在 Microsoft Copilot 中添加连接器
你的服务器 URL: 在 AnythingMCP 中打开 MCP Servers → 此连接器所在的服务器,复制它的 URL(
https://cloud.anythingmcp.com/mcp/…)。本指南中出现YOUR_SERVER_ID的地方都用它替换。
Microsoft Copilot 通过在 Copilot Studio 中构建的智能体使用 MCP 服务器:把 AnythingMCP 作为工具添加到智能体,然后把智能体发布到 Microsoft 365 Copilot 和 Teams。Copilot Studio 从 Microsoft 的云端通过 Streamable HTTP 连接,AnythingMCP 支持这种方式。
- 在 Copilot Studio 中打开你的智能体(或新建一个),进入 Tools,选择 Add a tool → New tool → Model Context Protocol。
- 填写 Server name(例如
AnythingMCP)、说明连接器用途的 Server description,以及 Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID。Copilot Studio 根据描述决定何时调用该服务器。 - 身份验证选择 API key,把 Type 设为 Header,请求头名称填
X-API-Key,然后选择 Create。 - 在 Add tool 中选择 Create a new connection,粘贴 AnythingMCP 的 MCP API 密钥(MCP Servers → 你的服务器 → API keys),然后选择 Add to agent。
- 在智能体的 Test 窗格中试一试:提出需要用到
B&Q 市场的工具的请求。 - 选择 Publish,然后进入 Channels → Microsoft 365 and Microsoft Teams,保持勾选 Make agent available in Microsoft Copilot,再选择 Add channel。See agent in Teams 会为你安装该智能体;在 Microsoft 365 Copilot 中输入 @ 并选择该智能体。
希望每个用户各自登录?请选择 OAuth 2.0 → Dynamic discovery 代替 API 密钥:每个用户会在智能体首次调用时登录 AnythingMCP。
自托管?请用你实例的公网 HTTPS 地址替换 https://cloud.anythingmcp.com。Copilot Studio 从 Microsoft 的云端连接,因此 localhost 无法使用。
可用工具
| 工具 | 功能 |
|---|---|
b_and_q_get_account | 读取此市场上 API 密钥背后的商店(A01):商店 ID 和名称、状态、渠道、货币、等级和批准率、联系方式… |
b_and_q_list_orders | 列出订单(OR11)及其行、客户、送货地址、价格、状态和事件。按状态过滤(例如 WAITING_ACCEPTANCE… |
b_and_q_list_offers | 列出商店的报价(OF21):SKU、产品、价格和折扣、所有渠道价格、库存数量、状态、交货时间以及是否… |
b_and_q_get_offer | 通过报价 ID(OF22)读取完整的报价:每个价格字段、折扣、数量、状态、物流类别、交货时间和自定义… |
b_and_q_list_offer_conditions | 列出市场接受的报价条件(OF61),例如新或旧,更新报价时放入 state_code 的代码 |
b_and_q_list_offer_imports | 列出报价导入和更新(OF04),来自文件和 b_and_q_update_offers:状态(WAITING、RUNNING、COMPLETE、FAILED)、读取行… |
b_and_q_get_offer_import | 通过其 import_id 读取一个报价导入或报价更新的状态(OF02),由 b_and_q_update_offers 或 b_and_q_import_offers 返回… |
b_and_q_list_product_imports | 列出产品导入(P51)及其状态(WAITING、RUNNING、SENT、COMPLETE、FAILED、CANCELLED)、转换计数和… |
b_and_q_get_product_import | 通过其 import_id 读取一个产品导入的状态(P42):导入状态、原因、转换计数和集成详细信息… |
b_and_q_get_products | 通过其标识符(P31)在市场目录中查找产品,例如 EAN,并获取市场产品 SKU、标题和类别… |
b_and_q_list_product_offers | 列出给定产品的每个商店的报价(P11),按最佳价格排序,以便与竞争对手的价格进行比较。提供 product_ids… |
b_and_q_list_threads | 列出与客户和 B&Q 的消息线程(M11):主题、关联的订单或报价、参与者、最后消息日期以及商店自何时… |
b_and_q_get_thread | 读取一个消息线程(M10),包括所有消息、发送者、收件人、附件以及关联的订单或报价 |
b_and_q_list_returns | 列出退货请求(RT11),包括其状态、退货行、原因、RMA、跟踪和关联的订单。按状态、订单或日期过滤… |
b_and_q_list_reasons | 列出市场的原因代码(RE01):事件、取消、退款和消息原因,及其标签和商店是否可以… |
b_and_q_list_carriers | 列出市场已知的承运人(SH21),包括其代码、标签和跟踪 URL。将代码用作… |
b_and_q_list_invoices | 列出 B&Q 向商店发出的会计文件(IV01):发票和信用单,包含期间、总额(含税和不含税)、佣金… |
b_and_q_list_transactions | 列出商店的交易行(TL02):订单金额、运输、佣金、退款、手动信用和付款,包含金额、类型… |
b_and_q_list_document_requests | 列出会计文档请求(DR11),用于 B&Q 运行增强卖家开票时:发票和信用单,B&Q 或商店… |
b_and_q_list_order_documents | 列出附加到一个或多个订单的文档(OR72):送货单、运输标签、客户发票和其他文件,包含 ID、文件… |
b_and_q_list_channels | 列出市场的销售渠道(CH11),通常每个国家网站一个,包含代码和标签。将代码用作… |
b_and_q_list_shipping_zones | 列出市场的活跃运输区域(SH11),包含代码和标签,例如法国本土或科西嘉。变化很少:每次调用… |
b_and_q_list_shipping_methods | 列出市场的活跃运输方式(SH12),例如标准、快递或自取,包含代码、标签、是否有跟踪号码… |
b_and_q_list_logistic_classes | 列出市场的物流类别(SH31),决定运输价格的大小或重量区间,包含代码和标签。将代码用作… |
b_and_q_accept_order | 接受或拒绝等待接受的订单行(OR21)。订单的每一行必须列出。拒绝一行将永久取消… |
b_and_q_update_tracking | 设置订单的承运人和跟踪号码(OR23)。提供来自 b_and_q_list_carriers 的 carrier_code,或使用承运人名称和承运人 URL… |
b_and_q_ship_order | 确认已发货的订单在 SHIPPING 状态(OR24);它转移到 SHIPPED,客户会收到通知。首先使用… |
b_and_q_update_offers | 创建或更新报价,包括价格和库存(OF24)。完全替换每个报价:遗漏的每个字段都会重置(缺失的… |
b_and_q_reply_thread | 在消息线程中回复客户或 B&Q(M12)。消息会立即发送,无法撤回:向用户展示文本… |
b_and_q_create_order_thread | 在订单上与客户、B&Q 或两者开始新的消息线程(OR43)。消息会立即发送:向用户展示文本… |
b_and_q_resolve_incident | 将一个订单行上的未解决事件标记为已解决(OR64),一旦客户的问题解决。reason_code 必须是 INCIDENT_CLOSE… |
b_and_q_accept_return | 接受或拒绝在 WAITING_ACCEPTANCE 中的退货请求(RT21)。仅当 B&Q 在卖家后台处理退货并保留… |
b_and_q_receive_return | 确认已接受的退货的货物已到达你的仓库(RT25)。退货转移到 RECEIVED。实时市场上执行… |
b_and_q_import_products | 向市场发送产品文件(P41),以创建或丰富其目录中的产品。file_url 是 CSV、XLSX 或 XML 文件的地址… |
b_and_q_import_offers | 导入报价文件(OF01),以批量创建、更新或删除报价。REPLACE 模式会删除文件中缺失的每个报价,且… |
示例提示
- “哪些 B&Q 订单在等待接受,它们的总价值是多少英镑?”
- “将我的花园水管卷盘 SKU HR-30M 的库存设置为 40 在 B&Q。”
- “将订单 7012345-A 的第 2 行事件标记为已解决;客户收到了缺失的螺丝。”
- “我在 B&Q 的哪些报价不活跃,B&Q 给出的原因是什么?”
- “显示 B&Q 本季度向我发出的发票及其佣金总额。”
常见问题
我在哪里可以获得 B&Q API 密钥? 在 B&Q 卖家后台:你的用户名(右上角)、我的用户设置、API 密钥,然后 生成新密钥(或复制现有密钥)。生成新密钥会使旧密钥失效。B&Q 的卖家通常设置商店 ID,单个商店也是如此。如果有多个商店,请将 B_AND_Q_SHOP_ID 设置为此连接器应使用的商店。
谁可以在 B&Q 上销售,覆盖哪些国家? B&Q 通过 Kingfisher Merchant Hub 接受申请;企业必须注册增值税。连接器覆盖英国。B&Q 属于 Kingfisher,这就是卖家平台位于 Kingfisher 地址的原因。
它可以取消订单、退款或删除报价吗? 没有工具可以退款或取消订单;请在 B&Q 后台处理。接受订单时拒绝一行将永久取消,因此 AI 会向你展示每个写入操作并等待确认。b_and_q_import_offers 安装时关闭,因为其 REPLACE 模式会删除文件中缺失的每个报价;仅在 AI 应该使用时在连接器页面上打开它。
这适用于哪个 Copilot? 适用于工作中的 Microsoft 365 Copilot,通过 Copilot Studio 的智能体实现。面向个人账户的 Microsoft Copilot 应用无法添加自己的 MCP 服务器。
我需要什么? 一个可以使用 Copilot Studio 的工作账户(许可证或试用版),用于构建智能体。在 Microsoft 365 Copilot 或 Teams 中使用它的人需要拥有该智能体的访问权限:把它共享给他们,或请管理员为整个组织发布。如果你的组织对 Power Platform 连接器设置了数据策略,这些策略同样适用于 MCP 服务器。
智能体不调用工具。 检查请求头名称是否正好是 X-API-Key,密钥是否属于与 URL 相同的 MCP 服务器,并把 Server description 写得具体:Copilot Studio 根据它决定何时调用服务器。每次修改后重新发布智能体;在已打开的对话中输入 "start over" 即可使用新版本。
下一步
这份指南对你有帮助吗?