在 vtex 平台中,产品数据不按工作区(workspace)隔离,所有工作区共享同一套商品目录;因此,在开发工作区创建的产品会自动出现在主工作区(master),这是平台默认行为,而非配置错误。
VTEX 的 Catalog(商品目录)服务采用全局数据模型设计:产品(Product)、SKU、Category、Brand 等核心实体均属于账户(Account)级别资源,与工作区无关。这意味着无论您登录 dev.myaccount.vtexcommercestable.com 还是 master.myaccount.vtexcommercestable.com,后台调用的都是同一套 Catalog API(如 /api/catalog/pvt/product),数据写入后即对全工作区可见。
✅ 正确理解:
⚠️ 常见误区与风险:
? 安全实践建议:
严格使用 QA 账户进行目录测试
VTEX 推荐为非生产环境单独配置一个独立的 QA Account(如 qa-mybrand.vte

开发阶段避免手动创建真实商品
自动化流程中显式管控环境
若需通过脚本管理商品,务必结合 Account + Workspace 鉴权,并优先使用只读接口(如 GET /catalog/system/pvt/product/{id})做验证;写操作前强制校验当前 Account 是否为预设的测试账户:
# 示例:仅允许在 QA 账户执行创建(需提前配置 VTEX_AUTH_TOKEN)
ACCOUNT="qa-mybrand"
WORKSPACE="dev"
if [[ "$ACCOUNT" == "qa-mybrand" ]]; then
vtex api POST /catalog/pvt/product \
-H "Content-Type: application/json" \
-d '{"productName":"[QA] Sample Product", "items":[{"sku":"QA-SKU-001"}]}'
else
echo "❌ Refused: Product creation is disabled for non-QA accounts."
exit 1
fi? 总结:VTEX 的工作区机制不提供 Catalog 数据隔离能力。解决“dev 产品泄露至 master”的根本方式,不是寻找隐藏开关,而是转变工作流——将目录变更严格约束在专用 QA 账户中,或完全脱离真实 Catalog 进行前端/逻辑层模拟验证。这是保障多环境稳定性的最佳实践。
来电咨询