Shopware 6子店铺插件配置:如何获取指定销售渠道的配置值?
Shopware 6 获取特定销售渠道的插件配置值
默认情况下,SystemConfigService::get()方法如果只传配置键,会返回「所有销售渠道」的配置值。要获取特定销售渠道的配置,只需要在调用时传入第二个参数——销售渠道的ID或者销售渠道实体对象即可。
具体用法:
传入销售渠道ID:
如果已经持有目标销售渠道的ID字符串,直接将其作为第二个参数传入:$salesChannelId = 'xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; // 替换为实际的销售渠道ID $enable = $this->systemConfigService->get('pluginName.config.enable', $salesChannelId);传入销售渠道实体对象:
如果你已经获取到SalesChannelEntity实例,也可以直接传入该对象:/** @var \Shopware\Core\System\SalesChannel\SalesChannelEntity $salesChannel */ $enable = $this->systemConfigService->get('pluginName.config.enable', $salesChannel);
常见场景示例:
在前端控制器中,可以通过SalesChannelContext获取当前请求对应的销售渠道,进而获取配置:
use Shopware\Core\System\SalesChannel\SalesChannelContext; public function yourAction(SalesChannelContext $context) { // 获取当前销售渠道的配置值 $pluginEnabled = $this->systemConfigService->get( 'pluginName.config.enable', $context->getSalesChannel()->getId() ); // 后续逻辑处理 }
注意事项:
如果目标销售渠道没有单独配置该项参数,系统会自动 fallback 到「所有销售渠道」的配置值,这是Shopware的默认优先级逻辑。
内容的提问来源于stack exchange,提问作者Raj Rami
相关产品推荐
相关产品推荐

