Shopware 6/5应用开发:如何获取应用安装用户与店铺信息?
Shopware 6 & 5 获取应用安装者信息与店铺名称方案
Shopware 6 实现方案
核心思路
在应用安装的confirm阶段,通过申请API权限,调用Shopware官方接口获取店铺名称和安装用户信息,云市场与自托管环境流程一致。
具体步骤
在应用manifest.xml中添加必要权限
需要申请读取销售渠道(店铺)和后台用户的权限,在manifest中加入:<permissions> <permission>read_sales_channel</permission> <permission>read_user</permission> </permissions>从confirm请求中提取关键凭证
处理confirm请求时,你已经能拿到shopId(对应SalesChannel ID)、accessToken和店铺URL,这些是后续API调用的核心凭证。调用API获取店铺名称
以accessToken作为Bearer Token,向Shopware API发送GET请求:GET {店铺URL}/api/sales-channel/{shopId} Headers: Authorization: Bearer {accessToken}响应体中的
name字段即为店铺名称。调用API获取安装用户信息
同样使用accessToken,调用用户信息接口获取触发安装的后台管理员:GET {店铺URL}/api/user/me Headers: Authorization: Bearer {accessToken}响应体包含用户的邮箱、姓名等核心信息,可直接用于发送注册邮件。
补充说明
- 若需要更实时的触发,可监听Shopware的
app.installedWebhook事件,事件payload中会包含安装用户的ID,再通过/api/user/{userId}接口获取详细信息。 - 云市场安装的应用,API调用逻辑与自托管完全一致,无需额外适配。
Shopware 5 实现方案
店铺名称获取
利用Shopware 5自带的shops API接口,在安装流程中拿到店铺ID后,调用:
GET {店铺URL}/api/v1/shops/{shopId} Headers: Authorization: Bearer {accessToken}
响应体中的name字段即为店铺名称。
安装用户信息获取
- 若应用是通过Shopware Connect安装,可在
confirm回调请求中检查是否携带userId参数(部分版本会直接传递)。 - 若未直接传递,可申请
read_users权限后,调用/api/v1/users接口,结合安装上下文(如当前会话关联的用户)筛选出安装者;或通过监听插件安装的PostInstallEvent事件,在事件中直接获取触发安装的用户实例(仅适用于自托管环境下的本地插件安装)。
内容的提问来源于stack exchange,提问作者Kryštof Řeháček
相关产品推荐
相关产品推荐

