Flutter WooCommerce集成插件monahawk_woocommerce的使用
Flutter WooCommerce集成插件monahawk_woocommerce的使用
woocommerce
Woocommerce SDK for Flutter.
Getting Started
在pubspec.yaml
文件中添加包并导入。
import 'package:monahawk_woocommerce/woocommerce.dart';
为您的项目创建一个WooCommerce
实例。
示例:
WooCommerce woocommerce = WooCommerce(
baseUrl: yourBaseUrl,
consumerKey: yourConsumerKey,
consumerSecret: consumerSecret);
参数 [baseUrl]
是您站点的基础URL。例如:http://me.com
, https://me.com
或 http://my.me.com
。
参数 [consumerKey]
是由WooCommerce提供的消费者密钥,例如:ck_12abc34n56j
。
参数 [consumerSecret]
是由WooCommerce提供的消费者密钥,例如:cs_1uab8h3s3op
。
可选参数 [apiPath]
是从baseUrl
到WooCommerce端点的直接URL。例如:"/wp-json/wc/v3/"
。如果您更改了默认的WordPress WooCommerce路径,则此参数非常有用,否则默认值适用。
可选参数 [isDebug]
告诉库是否应打印调试日志。这在调试或开发时非常有用。
WooCommerce SDK的目标是使使用Flutter和WooCommerce构建出色的电子商务应用尽可能简单,希望它能改善您的工作流程。
Features
- 用户认证。
- 客户管理。
- 购物车管理。
- 订单管理。
- 产品管理。
- 分类。
- 标签。
- 变体。
- 支持对返回列表的方法进行过滤。
- 支持自定义端点。
- 物流、物流方法、物流地点。
- 支付。
- 税收、税类。
- 等等更多功能。
Notes
安装 Jwt Token 插件,以便能够登录。
Examples
将您的凭据放入示例应用程序以快速演示。
。
Auth
// 登录 - 成功后返回访问令牌。
final token = woocommerce.authenticateViaJWT(username: username, password: password);
// 登录 - 登录用户并返回已登录用户的详细信息(WooUser对象)。
final customer = woocommerce.loginCustomer(username: username, password: password);
// 检查用户是否已登录。
bool isLoggedIn = await woocommerce.isCustomerLoggedIn();
// 获取已登录用户ID。
int id = await fetchLoggedInUserId();
// 注销用户。
await logUserOut();
// 创建一个新的WooCommerce客户并返回WooCustomer对象。
WooCustomer user = WooCustomer(username: username, password: password, email: email);
final result = woocommerce.createCustomer();
Products
说明: 查看SDK参考以获取过滤选项。
SDK参考
// 获取所有产品 - 返回产品对象列表,默认每页10个。
final myProducts = await woocommerce.getProducts();
// 获取所有特色产品 - 返回特色产品的列表,查看API参考以获取更多过滤选项。
final myFeaturedProducts = await woocommerce.getProducts(featured: true);
// 获取标记为类别ID '22'的所有产品。
final mySpecificProduct = await getProducts(category: '22');
Cart
// 添加到购物车! - 返回添加的购物车项对象(接受数量、产品ID和产品变体的ID列表)。
final myCart = await woocommerce.addToMyCart(quantity: 2, id: 17);
// 创建订单。 - 返回创建的订单对象(接受OrderPayload对象)。
OrderPayload orderPayload = OrderPayload(customerId: customerId, setPaid=true);
final order = await woocommerce.CreateOrder(orderPayload);
Custom Requests - 自定义请求
// 发送自定义认证请求到WooCommerce API。
final response = await woocommerce.put(endpoint, data);
final anotherResponse = await woocommerce.get(endpoint);
Updates
- ✅ 添加文档。
- ✅ 添加Token持久化。
- ❌ 添加更多的搜索过滤能力。
- ❌ 多个示例。
WooCommerce SDK Documentation Reference
WooCommerce API Documentation Reference
Issues and Feedback
如果您觉得这个插件有用,请点击⭐。
您可以随时创建GitHub问题。欢迎提交代码和文档的拉取请求。
您也可以发送邮件至:ray@flutterengineer.com。
有关如何开始使用Flutter的帮助,请查看
在线文档,它提供了教程、示例、移动开发指南和完整的API参考。
示例代码
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:monahawk_woocommerce/woocommerce.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// 这是你的应用的根组件。
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'WooCommerce Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: "Woo Commerce Demo"),
);
}
}
String baseUrl = ""; // 填写您的BaseUrl
String consumerKey = ""; // 填写您的Consumer Key
String consumerSecret = ""; // 填写您的Consumer Secret
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key, this.title}) : super(key: key);
final String? title;
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
List<WooProduct> products = [];
List<WooProduct> featuredProducts = [];
WooCommerce wooCommerce = WooCommerce(
baseUrl: baseUrl,
consumerKey: consumerKey,
consumerSecret: consumerSecret,
isDebug: true,
);
getProducts() async {
products = await wooCommerce.getProducts();
setState(() {});
print(products.toString());
}
[@override](/user/override)
void initState() {
super.initState();
// 您可以使用Feature Builder来替代。
getProducts();
}
[@override](/user/override)
Widget build(BuildContext context) {
var size = MediaQuery.of(context).size;
final double itemHeight = (size.height - kToolbarHeight - 24) / 2;
final double itemWidth = size.width / 2;
return Scaffold(
body: SafeArea(
child: CustomScrollView(
slivers: <Widget>[
SliverToBoxAdapter(
child: Container(
margin: EdgeInsets.all(10),
child: Text(
'My Awesome Shop',
style: Theme.of(context)
.textTheme
.headline5!
.apply(color: Colors.blueGrey),
),
),
),
SliverGrid(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: (itemWidth / itemHeight),
mainAxisSpacing: 2,
crossAxisSpacing: 1,
),
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
final product = products[index];
return Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Container(
height: 230,
width: 200,
margin: EdgeInsets.all(10),
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage(
product.images[0].src!,
),
fit: BoxFit.cover),
color: Colors.pinkAccent,
borderRadius: BorderRadius.all(Radius.circular(10)),
),
// child: Image.network(product.images[0].src, fit: BoxFit.cover,),
),
Text(
product.name ?? 'Loading...',
style: Theme.of(context)
.textTheme
.headline6!
.apply(color: Colors.blueGrey),
),
Text(
'\$' + (product.price ?? ''),
style: Theme.of(context).textTheme.subtitle2,
)
],
);
},
childCount: products.length,
),
)
],
),
),
);
}
}
更多关于Flutter WooCommerce集成插件monahawk_woocommerce的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
monahawk_woocommerce
是一个用于 Flutter 的 WooCommerce 插件,它允许你在 Flutter 应用中与 WooCommerce 商店进行交互。通过这个插件,你可以轻松地获取产品、订单、客户等信息,并执行各种 WooCommerce API 操作。
以下是如何在 Flutter 项目中使用 monahawk_woocommerce
插件的基本步骤:
1. 安装插件
首先,你需要在 pubspec.yaml
文件中添加 monahawk_woocommerce
插件的依赖。
dependencies:
flutter:
sdk: flutter
monahawk_woocommerce: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化 WooCommerce 客户端
在使用插件之前,你需要初始化 WooCommerce 客户端。通常,你需要在应用的 main.dart
文件中进行初始化。
import 'package:monahawk_woocommerce/monahawk_woocommerce.dart';
void main() {
WooCommerce.init(
baseUrl: 'https://your-woocommerce-store.com', // 你的 WooCommerce 商店的 URL
consumerKey: 'ck_your_consumer_key', // 你的 WooCommerce 消费者密钥
consumerSecret: 'cs_your_consumer_secret', // 你的 WooCommerce 消费者密钥
);
runApp(MyApp());
}
3. 获取产品列表
你可以使用 WooCommerce
实例来获取产品列表。以下是一个简单的示例:
import 'package:flutter/material.dart';
import 'package:monahawk_woocommerce/monahawk_woocommerce.dart';
class ProductListScreen extends StatefulWidget {
@override
_ProductListScreenState createState() => _ProductListScreenState();
}
class _ProductListScreenState extends State<ProductListScreen> {
List<Product> products = [];
@override
void initState() {
super.initState();
fetchProducts();
}
Future<void> fetchProducts() async {
try {
final fetchedProducts = await WooCommerce.instance.getProducts();
setState(() {
products = fetchedProducts;
});
} catch (e) {
print('Error fetching products: $e');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Products'),
),
body: ListView.builder(
itemCount: products.length,
itemBuilder: (context, index) {
final product = products[index];
return ListTile(
title: Text(product.name),
subtitle: Text(product.price),
);
},
),
);
}
}
4. 创建订单
你还可以使用 WooCommerce
实例来创建订单。以下是一个简单的示例:
import 'package:monahawk_woocommerce/monahawk_woocommerce.dart';
Future<void> createOrder() async {
final order = Order(
customerId: 1,
paymentMethod: 'bacs',
paymentMethodTitle: 'Direct Bank Transfer',
status: 'pending',
lineItems: [
OrderLineItem(
productId: 93,
quantity: 2,
),
],
);
try {
final createdOrder = await WooCommerce.instance.createOrder(order);
print('Order created: ${createdOrder.id}');
} catch (e) {
print('Error creating order: $e');
}
}