SDK Integration
Flutter/Dart and React Native/JavaScript SDK examples with auth, products, cart, and checkout
Last updated: Feb 09, 2026
SDK Integration
Flutter/Dart Example
import 'package:http/http.dart' as http;
import 'dart:convert';
class CartxisApi {
static const String baseUrl = 'https://your-domain/api/v1';
String? _token;
Map<String, String> get _headers => {
'Accept': 'application/json',
'Content-Type': 'application/json',
if (_token != null) 'Authorization': 'Bearer $_token',
};
void setToken(String token) => _token = token;
// Login
Future<Map<String, dynamic>> login(String email, String password) async {
final response = await http.post(
Uri.parse('$baseUrl/auth/login'),
headers: _headers,
body: jsonEncode({'email': email, 'password': password}),
);
final data = jsonDecode(response.body);
if (data['success']) {
setToken(data['data']['token']);
}
return data;
}
// Get Products
Future<List<dynamic>> getProducts({
int page = 1,
int perPage = 20,
String? search,
int? categoryId,
}) async {
final params = {
'page': page.toString(),
'per_page': perPage.toString(),
if (search != null) 'search': search,
if (categoryId != null) 'category_id': categoryId.toString(),
};
final uri = Uri.parse('$baseUrl/products').replace(queryParameters: params);
final response = await http.get(uri, headers: _headers);
final data = jsonDecode(response.body);
return data['data'];
}
// Add to Cart
Future<void> addToCart(int productId, int quantity) async {
await http.post(
Uri.parse('$baseUrl/cart/add'),
headers: _headers,
body: jsonEncode({
'product_id': productId,
'quantity': quantity,
}),
);
}
// Place Order
Future<Map<String, dynamic>> placeOrder({
required String paymentMethod,
Map<String, dynamic>? paymentData,
}) async {
final response = await http.post(
Uri.parse('$baseUrl/checkout/place-order'),
headers: _headers,
body: jsonEncode({
'payment_data': paymentData,
}),
);
return jsonDecode(response.body);
}
}
React Native / JavaScript Example
const API_BASE = 'https://your-domain/api/v1';
class CartxisApi {
constructor() {
this.token = null;
}
setToken(token) {
this.token = token;
}
async request(endpoint, options = {}) {
const response = await fetch(`${API_BASE}${endpoint}`, {
...options,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
...(this.token && { 'Authorization': `Bearer ${this.token}` }),
...options.headers,
},
});
return response.json();
}
// Auth
async login(email, password) {
const result = await this.request('/auth/login', {
method: 'POST',
body: JSON.stringify({ email, password }),
});
if (result.success) {
this.setToken(result.data.token);
}
return result;
}
// Products
async getProducts(params = {}) {
const query = new URLSearchParams(params).toString();
return this.request(`/products?${query}`);
}
// Cart
async addToCart(productId, quantity) {
return this.request('/cart/add', {
method: 'POST',
body: JSON.stringify({ product_id: productId, quantity }),
});
}
}
export default new CartxisApi();