Flutter Shopify集成插件savvy_shopify的使用

Flutter Shopify 集成插件 savvy_shopify 的使用

介绍

Savvient Shopify 是一个 Flutter 包,它作为我们 API(用于 Shopify)与 Flutter 应用程序之间的桥梁。在这里,我们添加了一些方法来获取 Shopify 地点、类别、产品列表和详细信息。你只需要使用这些方法并获取结果,然后将数据设置在你希望的 UI 中。

使用

要将此库在你的代码中使用,请执行以下步骤:

  1. pubspec.yaml 文件中添加依赖项:

    dependencies:
      savvy_shopify: <最新版本>
    
  2. 在顶部导入包:

    import 'package:savvy_shopify/savvy_shopify.dart';
    
  3. 可以使用的所有方法列表:

    Future<Map<String, dynamic>?> locationListAPI()
    Future<Map<String, dynamic>?> shopCategoryListAPI({required String countryCode, required String pageIndex})
    Future<Map<String, dynamic>?> shopProductListAPI({required String countryCode, required String categoryId, required String pageIndex, String searchText = ""})
    Future<Map<String, dynamic>?> shopProductDetailAPI({required String countryCode, required String productId})
    

示例

示例可以在 这里 找到,并且有 Dart 版本的例子可以在 这里 的示例目录中找到。

完整示例代码

以下是一个完整的示例代码,展示了如何使用 savvy_shopify 插件获取和展示 Shopify 地点列表:

import 'package:example/location_res_model.dart';
import 'package:flutter/material.dart';
import 'package:savvy_shopify/savvy_shopify.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // 这个小部件是您的应用的根。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Shopify Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Shopify Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<LocationResModel> _arrLocationResModel = [];

  [@override](/user/override)
  void initState() {
    // 初始化状态
    super.initState();
    getLocationList();
  }

  void getLocationList() {
    // 设置 API 令牌
    SavvyShopify.token = "0";
    // 调用获取地点列表的方法
    SavvyShopify().locationListAPI().then((value) {
      if (value != null) {
        // 将返回值解析为 Map
        Map<String, dynamic> response = value;
        debugPrint('Location Response: ${response.toString()}');
        // 解析响应数据
        final LocationMainResModel resModel = LocationMainResModel.fromJson(response);
        _arrLocationResModel = resModel.data ?? [];
        // 更新 UI
        if (mounted) {
          setState(() {
            _arrLocationResModel = _arrLocationResModel;
          });
        }
      }
    });
  }

  void getShopCategoryList() {
    // 设置 API 令牌
    SavvyShopify.token = "0";
    // 调用获取店铺分类列表的方法
    SavvyShopify()
        .shopCategoryListAPI(countryCode: "AU", pageIndex: "1")
        .then((value) {
      if (value != null) {
        // 将返回值解析为 Map
        Map<String, dynamic> response = value;
        debugPrint('Shop Category Response: ${response.toString()}');
      }
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: ListView.builder(
          itemCount: _arrLocationResModel.length,
          itemBuilder: (BuildContext context, int index) {
            return ListTile(
                title: Text(_arrLocationResModel[index].locationCountryName ?? ''));
          }),
    );
  }
}

更多关于Flutter Shopify集成插件savvy_shopify的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter Shopify集成插件savvy_shopify的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中集成并使用savvy_shopify插件的示例代码。savvy_shopify是一个用于与Shopify商店集成的Flutter插件,它可以帮助你实现客户认证、获取产品信息、处理订单等功能。

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加savvy_shopify依赖:

dependencies:
  flutter:
    sdk: flutter
  savvy_shopify: ^最新版本号  # 请替换为实际的最新版本号

然后运行flutter pub get来安装依赖。

2. 配置Shopify API密钥

在使用savvy_shopify之前,你需要从Shopify后台获取API密钥、密码和商店的URL。确保你已经创建了一个私有的Shopify应用,并获取了这些凭据。

3. 初始化Shopify客户端

在你的Flutter应用中,你需要初始化一个ShopifyClient实例。这通常在你的应用的主入口文件中完成,比如main.dart

import 'package:flutter/material.dart';
import 'package:savvy_shopify/savvy_shopify.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 初始化Shopify客户端
    final shopifyClient = ShopifyClient(
      storeUrl: 'https://your-store-name.myshopify.com', // 替换为你的Shopify商店URL
      accessToken: 'your_access_token', // 替换为你的Shopify访问令牌
    );

    return MaterialApp(
      home: ShopifyPage(shopifyClient: shopifyClient),
    );
  }
}

class ShopifyPage extends StatefulWidget {
  final ShopifyClient shopifyClient;

  ShopifyPage({required this.shopifyClient});

  @override
  _ShopifyPageState createState() => _ShopifyPageState();
}

class _ShopifyPageState extends State<ShopifyPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Shopify Integration'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            // 示例:获取产品列表
            _fetchProducts(widget.shopifyClient);
          },
          child: Text('Fetch Products'),
        ),
      ),
    );
  }

  Future<void> _fetchProducts(ShopifyClient client) async {
    try {
      final products = await client.graphQL.query(
        QueryOptions(
          document: r'''
            query {
              products(first: 10) {
                edges {
                  node {
                    id
                    title
                    handle
                    images(first: 1) {
                      edges {
                        node {
                          originalSrc
                        }
                      }
                    }
                  }
                }
              }
            }
          ''',
        ),
      );

      // 处理获取到的产品数据
      print(products.data!['products']['edges']);
    } catch (e) {
      print('Error fetching products: $e');
    }
  }
}

4. 运行应用

确保你的Shopify凭据正确无误,然后运行你的Flutter应用。点击按钮后,应用将尝试从Shopify商店获取前10个产品的信息,并在控制台中打印出来。

注意事项

  • 错误处理:在实际应用中,你应该添加更多的错误处理逻辑来处理网络问题、认证失败等情况。
  • API速率限制:Shopify对API请求有速率限制,请确保你的应用不会超出这些限制。
  • 用户认证:如果你的应用需要用户登录Shopify账户,你可能需要使用OAuth流程来处理用户认证。

以上示例展示了如何使用savvy_shopify插件在Flutter应用中集成Shopify商店并获取产品信息。根据你的具体需求,你可能需要调整查询语句或添加更多的功能。

回到顶部