You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP Laravel中验证Shopify App Blocks的支持?

Laravel中验证Shopify App Blocks支持的实现方案

App Blocks仅兼容Shopify Online Store 2.0 主题,以下是两种在Laravel项目中验证支持状态的方法:

方法1:检查主主题的App Blocks支持性

通过Shopify Theme API获取店铺主主题的信息,直接查看supports_app_blocks字段:

use Osiset\ShopifyApp\Facades\ShopifyApp;

// 获取当前授权的店铺实例
$shop = ShopifyApp::shop();

// 请求Shopify Theme API,指定返回所需字段
$apiResponse = ShopifyApp::api()->rest(
    'GET',
    '/admin/api/2024-01/themes.json',
    ['fields' => 'id,title,role,supports_app_blocks']
);

// 筛选出当前使用的主主题
$mainTheme = collect($apiResponse['body']['themes'])->firstWhere('role', 'main');

// 判断是否支持App Blocks
$supportsAppBlocks = $mainTheme && $mainTheme['supports_app_blocks'] === true;

// 根据结果执行对应逻辑
if ($supportsAppBlocks) {
    // 支持App Blocks,加载相关功能
} else {
    // 不支持,提示用户切换到Online Store 2.0主题
}

方法2:验证店铺是否启用Online Store 2.0功能

先通过Shop API确认店铺已开启Online Store 2.0支持,再进一步验证主题:

use Osiset\ShopifyApp\Facades\ShopifyApp;

$shop = ShopifyApp::shop();

// 请求Shop API获取店铺功能列表
$shopResponse = ShopifyApp::api()->rest(
    'GET',
    '/admin/api/2024-01/shop.json',
    ['fields' => 'features']
);

$shopFeatures = $shopResponse['body']['shop']['features'] ?? [];

// 检查店铺是否支持Online Store 2.0
$supportsOnlineStore20 = in_array('online_store_2.0', $shopFeatures);

if ($supportsOnlineStore20) {
    // 店铺支持2.0,再执行方法1中的主题检查逻辑
} else {
    // 店铺未启用Online Store 2.0,无法使用App Blocks
}

关键注意点

  • 确保使用的Shopify API版本≥2021-01(该版本开始支持supports_app_blocks字段)
  • 仅店铺支持Online Store 2.0还不够,必须主主题也支持App Blocks才能正常使用该功能
  • 建议在应用的功能入口处添加验证逻辑,向用户明确提示不支持时的解决方案

内容的提问来源于stack exchange,提问作者Srinath Mahe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 07:15:51