WooClot - Complete Flutter E-Commerce App
WooClot is a production-ready Flutter e-commerce application with full WooCommerce integration. Built with clean architecture and modern design patterns, it offers a complete shopping experience with 12+ payment gateways, AI shopping assistant, push notifications, and dynamic theming.
The app seamlessly connects to any WooCommerce-powered WordPress website, allowing you to manage products, orders, and customers from your existing WooCommerce admin panel while providing your customers with a beautiful native mobile shopping experience.
What's Included: Flutter mobile app (Android & iOS), WooClot WordPress plugin for payment gateways, complete documentation, and lifetime updates.
Features
E-Commerce Core Features
Product Catalog
Browse products with categories, filters, search, and sorting options. Support for simple products, product variations, and detailed product views with image galleries.
Shopping Cart & Wishlist
Full-featured shopping cart with quantity management, product variations selection, and persistent wishlist functionality for saving favorite products.
Order Management
Complete order placement system with order history, status tracking, order details, and re-order capability. View past orders and track current ones.
User Authentication
Secure user login and registration system integrated with WooCommerce customer accounts. Support for guest checkout and account management.
User Profile
Full profile management including personal information, shipping addresses, billing information, and password change functionality.
Coupon System
Apply discount coupons and vouchers during checkout. Validate coupon codes and display discount amounts before payment.
Payment Gateways (12 Total)
Stripe
International credit/debit card payments with 3D Secure support
Razorpay
India - UPI, cards, netbanking, and wallet payments
PayPal
Global payment processing with buyer protection
MercadoPago
Latin America - Argentina, Brazil, Mexico, and more
MyFatoorah
Middle East - Kuwait, Saudi Arabia, UAE
PhonePe
India - UPI and wallet payments
Flutterwave
Africa - Multiple payment methods
Paystack
Africa - Cards and bank transfers
Midtrans
Indonesia - Local payment methods
Mollie
Europe - iDEAL, SEPA, and more
Xendit
Southeast Asia - Indonesia, Philippines
Offline Payments
Cash on delivery and bank transfer
All payment gateways are configured through the included WooClot WordPress plugin.
Advanced Features
🤖 AI Shopping Assistant
Google Gemini AI-powered chat assistant that helps customers find products, answer questions, and provide intelligent recommendations based on your product catalog.
🔔 Push Notifications
Firebase Cloud Messaging (FCM) and OneSignal integration for order updates, promotional notifications, and custom messages with deep linking support.
🎨 Dynamic Theming
Backend-controlled color scheme via API. Change your app's primary and secondary colors from WordPress admin without rebuilding the app.
📱 Multiple Home Layouts
Choose from Basic, Simple, or Advanced home screen layouts. Configure from backend to match your brand style.
💾 Offline Support
Caching for products, categories, and user data ensuring smooth experience even with poor connectivity.
🌐 Multi-language Ready
Built with internationalization support, easy to add multiple languages and RTL layout support.
Technical Excellence
Architecture & Development Practices
Clean Architecture
Organized codebase following Flutter best practices with proper separation of concerns - features, network, common utilities.
Provider State Management
Efficient state management using Provider pattern for predictable and scalable state handling across the app.
Dio HTTP Client
Robust networking layer with Dio for reliable API communication, error handling, and request/response interceptors.
Error Handling
Comprehensive error handling throughout the app with user-friendly error messages and graceful fallbacks.
Performance Optimized
Optimized for smooth 60fps performance with lazy loading, image caching, and efficient memory management.
Production Ready
Zero debug logs, proper security measures, obfuscation support, and ready for Play Store and App Store submission.
Core Technologies
Flutter SDK 3.30.0+
Built with the latest Flutter framework for cross-platform native performance on iOS and Android.
WooCommerce REST API
Full integration with WooCommerce REST API v3 for seamless e-commerce functionality.
Firebase Integration
Firebase Core, Cloud Messaging for real-time push notifications and analytics.
Flutter Packages
Icons & UI Essentials
cupertino_icons: ^1.0.8 >> iOS-style icons
flutter_svg: ^2.2.3 >> SVG rendering
font_awesome_flutter: ^10.12.0 >> Font Awesome icons
UI / Layout / Animations
carousel_slider: ^5.1.1 >> Image/content carousels
flutter_staggered_grid_view: ^0.7.0 >> Masonry / staggered grids
shimmer: ^3.0.0 >> Shimmer loading placeholders
lottie: ^3.3.2 >> Lottie animations
Forms / Inputs / Sharing
pinput: ^6.0.1 >> PIN/OTP input fields
share_plus: ^12.0.1 >> Share text/links/files
speech_to_text: ^7.3.0 >> Voice input and speech recognition
Networking & Data
dio: ^5.9.0 >> HTTP client
html: ^0.15.6 >> HTML parsing
logger: ^2.6.2 >> Logging utility
State Management
provider: ^6.1.5+1 >> State management
equatable: ^2.0.7 >> Value equality for Dart objects
Local Storage & Utilities
shared_preferences: ^2.5.4 >> Simple key-value storage
path_provider: ^2.1.5 >> Access to commonly used file system locations
intl: ^0.20.2 >> Internationalization & formatting
device_info_plus: ^12.3.0 >> Get device information
Media & File Handling
image_picker: ^1.2.1 >> Pick images from gallery/camera
cached_network_image: ^3.4.1 >> Cached network images
flutter_cache_manager: ^3.4.1 >> Cache manager for downloaded files
open_filex: ^4.7.0 >> Open files with default system apps
WebView
webview_flutter: ^4.13.0 >> WebView for mobile apps
Links & URL Launching
url_launcher: ^6.3.2 >> Open URLs, dialer, mail, etc.
Payments / Gateways
flutter_stripe: ^12.1.1 >> Stripe payments
razorpay_flutter: ^1.4.0 >> Razorpay payments
Notifications & Push
firebase_core: ^4.3.0 >> Required core for Firebase
firebase_messaging: ^16.1.0 >> FCM push notifications
flutter_local_notifications: ^19.5.0 >> Local notifications
onesignal_flutter: ^5.3.4 >> OneSignal push notifications
Folder Structure
The app follows a clean architecture with feature-based organization. All app logic and UI code is in the lib/ folder.
lib/ ├── app/ # App initialization & configuration │ ├── app/ # Main app widget │ ├── app_colors_provider/ # Dynamic color management │ ├── app_config/ # App configuration │ ├── app_theme/ # Theme configuration │ ├── assets_path/ # Assets path constants │ ├── routes/ # Navigation routes │ └── urls/ # API URLs ├── common/ # Shared resources │ ├── utils/ # Helper functions │ ├── widgets/ # Reusable UI components │ └── services/ # Common services ├── features/ # Feature modules │ ├── auth/ # Authentication │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ ├── screens/ │ │ └── widgets/ │ ├── products/ # Product catalog │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ ├── screens/ │ │ └── widgets/ │ ├── cart/ # Shopping cart │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ ├── screens/ │ │ └── widgets/ │ ├── wishlist/ # Wishlist/Favorites │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ └── screens/ │ ├── order/ # Orders & checkout │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ ├── screens/ │ │ └── widgets/ │ ├── payments/ # Payment processing │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ └── widgets/ │ ├── profile/ # User profile │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ └── screens/ │ ├── categories/ # Product categories │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ └── screens/ │ ├── home/ # Home screen (Advanced layout) │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ ├── screens/ │ │ └── widgets/ │ ├── home_basic/ # Home screen (Basic layout) │ ├── home_simple/ # Home screen (Simple layout) │ ├── address/ # Shipping addresses │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ └── widgets/ │ ├── notifications/ # Push notifications │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ └── screens/ │ ├── ai_chat/ # AI Shopping Assistant │ │ ├── data/ │ │ │ └── models/ │ │ ├── providers/ │ │ └── ui/ │ │ └── screens/ │ └── chat/ # Support chat │ ├── data/ │ │ └── models/ │ ├── providers/ │ └── ui/ │ └── screens/ ├── network/ # API layer │ ├── dio_client/ # HTTP client setup │ ├── api_exception/ # Error handling │ ├── api_urls/ # API endpoints │ ├── auth_network/ # Auth API calls │ ├── products_network/ # Products API │ ├── cart_network/ # Cart API │ ├── order_network/ # Orders API │ ├── payment_gateways_network/ # Payment gateway network │ └── pgw/ # Payment gateway services │ ├── stripe_service/ # Stripe integration │ ├── razorpay_service/ # Razorpay integration │ ├── paypal_service/ # PayPal integration │ ├── mercadopago_service/ # MercadoPago integration │ ├── myfatoorah_service/ # MyFatoorah integration │ ├── phonepe_service/ # PhonePe integration │ ├── flutterwave_service/ # Flutterwave integration │ ├── paystack_service/ # Paystack integration │ ├── midtrans_service/ # Midtrans integration │ ├── mollie_service/ # Mollie integration │ └── xendit_service/ # Xendit integration └── main/ # App entry point
Architecture Pattern
Each feature module follows this structure:
- data/ - Models and data classes
- providers/ - State management (Provider)
- ui/screens/ - Screen widgets
- ui/widgets/ - Feature-specific widgets
This clean separation makes the codebase easy to understand, maintain, and extend.
App Screens
WooClot includes all essential screens for a complete e-commerce experience.
Authentication
- Splash Screen - App loading and initialization
- Onboarding Screens - First-time user introduction
- Login Screen - User authentication
- Register Screen - New user registration
- Forgot Password - Password recovery
Home & Navigation
- Home Screen - Main dashboard (3 layout variants: Basic, Simple, Advanced)
- Bottom Navigation - Home, Categories, Cart, Profile tabs
- Search Screen - Product search with filters
Products
- Categories Screen - Browse product categories
- Products List Screen - Product grid/list view with filters
- Product Details Screen - Detailed product information with image gallery
- Product Variations Screen - Select size, color, etc.
Shopping
- Cart Screen - Shopping cart with quantity management
- Wishlist Screen - Saved/favorite products
- Checkout Screen - Order review and payment
- Payment Method Screen - Select payment gateway
- Order Success Screen - Order confirmation
Orders
- Orders Screen - Order history list
- Order Details Screen - Detailed order information
- Order Tracking Screen - Track order status
User Profile
- Profile Screen - User account dashboard
- Edit Profile Screen - Update personal information
- Addresses Screen - Manage shipping addresses
- Add/Edit Address Screen - Address form
- Change Password Screen - Update password
Additional Features
- Notifications Screen - Push notification history
- AI Chat Screen - AI Shopping Assistant
- Support Chat Screen - Customer support
- Settings Screen - App preferences
- About Screen - App information
Requirements
Download and install Any one from these IDE(Android studio, Vs Code) on your computer.
- Source Android Studio: https://developer.android.com/studio
- Source Android Studio: https://code.visualstudio.com/download
Setup Flutter and Dart SDK in your computer if you want to modify the source code
- Source Android Studio: https://docs.flutter.dev/get-started/install
Must installed Flutter and dart plugin on your IDE
Install Flutter on Windows
Install Flutter on Mac
Installation
After downloading file from Codester you will get a zip file. Extracting the zip file you will get Documentation Folder and ... installable.zip included in there:
- Unzip the source code and open it in your IDE.
- On your IDE find for pubspecs.yaml file then click on pub get on top right side your IDE.
- Please make sure you are using Flutter version minimum 3.30.0
- Open an emulator or connect a real device and then click on Run Button for compile the project.
WooCommerce Setup & Plugin Configuration
WooClot requires a complete WordPress + WooCommerce setup along with 3 custom plugins that extend functionality for the mobile app. Follow these steps carefully to ensure everything works correctly.
Step 1: WordPress & WooCommerce Installation
Before using WooClot, you need a WordPress site with WooCommerce installed:
- Install WordPress on your hosting (Recommended: PHP 7.4+, MySQL 5.7+)
- Install and activate the WooCommerce plugin from WordPress.org
- Complete the WooCommerce setup wizard (store location, currency, payment methods, shipping zones)
- Add your products with proper titles, descriptions, images, prices, and stock
- Create product categories and tags for better organization
- Configure tax settings and shipping methods as per your business needs
Step 2: Generate WooCommerce API Keys
WooClot mobile app uses WooCommerce REST API to communicate with your store. You need to generate API credentials:
- Go to WooCommerce → Settings → Advanced → REST API
- Click Add Key button
- Set Description:
WooClot Mobile App - Set User: Select your admin user account
- Set Permissions: Read/Write (Required for full functionality)
- Click Generate API Key
- Copy your Consumer Key (starts with ck_) and Consumer Secret (starts with cs_)
- Save these credentials securely - you'll need them in the Flutter app configuration
⚠️ Security Important:
- Keep your Consumer Key and Consumer Secret secure
- Never share them publicly or commit to version control
- Use different keys for development and production
- Regenerate keys immediately if compromised
Step 3: Configure SSL Certificate (HTTPS)
WooCommerce REST API requires HTTPS for secure communication. This is mandatory:
- Ensure your WordPress site has a valid SSL certificate installed
- Your site URL should start with
https://nothttp:// - Most hosting providers offer free SSL through Let's Encrypt (Auto SSL)
- Go to Settings → General and ensure both WordPress Address and Site Address use HTTPS
- Test your SSL: Visit SSL Labs to verify certificate
💡 SSL Setup Help:
- cPanel Hosting: Use AutoSSL feature (free)
- Custom Setup: Install Certbot for Let's Encrypt
- Cloudflare Users: Use Flexible or Full SSL mode
Step 4: Install Required WordPress Plugins
WooClot requires 3 custom WordPress plugins included in your download package. Each plugin adds essential functionality for the mobile app:
🔌 Plugin 1: WooClot (Main Plugin)
File: wooclot.zip
Version: 2.0.0
Purpose: Core plugin that provides complete mobile app backend functionality
Key Features:
- AI Shopping Assistant: Google Gemini AI integration for intelligent product recommendations and customer support
- App Controls: Manage app themes, colors, home screen banners, and layout settings from WordPress admin
- Payment Gateway Integration: Configure 12+ payment gateways (Stripe, Razorpay, PayPal, MercadoPago, MyFatoorah, PhonePe, Flutterwave, Paystack, Midtrans, Mollie, Xendit, Cash on Delivery)
- JWT Authentication: Secure token-based authentication for mobile app users
- Wishlist API: Backend support for wishlist/favorites functionality
- Avatar Manager: Custom user profile pictures with upload and management
- Custom REST API Endpoints: Extended WooCommerce APIs for mobile-specific features
- Dynamic Theme Control: Change app colors and themes without rebuilding the app
💬 Plugin 2: Clot Chat (Support Chat System)
File: clot-chat.zip
Version: 1.0.4
Purpose: Real-time admin-user chat system for customer support within the mobile app
Key Features:
- Live Chat Support: Users can message admins directly from the mobile app
- Admin Chat Panel: WordPress admin interface to view and reply to customer messages
- Conversation Management: Track all conversations with read/unread status
- Message History: Complete chat history with timestamps
- REST API Endpoints: Secure APIs for sending/receiving messages with JWT authentication
- Database Tables: Custom tables for messages and conversations
- Multi-Admin Support: Multiple admins can handle customer queries
- Real-time Updates: Instant message delivery and notifications
🔔 Plugin 3: Clot Notifications (Push Notifications)
File: clot-notifications.zip
Version: 1.0.1
Purpose: Firebase Cloud Messaging (FCM) integration for automated push notifications
Key Features:
- Firebase Integration: Upload Firebase service account JSON for OAuth 2.0 authentication
- Order Notifications: Automatic push notifications when orders are placed or status changes
- Status Updates: Notify users about order processing, shipped, delivered, cancelled, refunded statuses
- FCM Token Management: Store and manage device tokens for Android and iOS
- Multiple Devices: Support for users with multiple devices
- Custom Messages: Configure notification titles and body text
- REST API: Endpoints for token registration and deletion from mobile app
- Admin Dashboard: View all registered tokens, test notifications, monitor delivery
- WooCommerce Integration: Automatic triggers on order events
- HPOS Compatible: Supports WooCommerce High-Performance Order Storage
Step 5: Install All Three Plugins
Install each plugin one by one following these steps:
A. Install WooClot Plugin (Main)
- Go to WordPress Admin → Plugins → Add New
- Click Upload Plugin button at the top
- Choose
wooclot.zipfrom your download package - Click Install Now and wait for installation to complete
- Click Activate Plugin
- You'll see a new WooClot menu in the admin sidebar
B. Install Clot Chat Plugin
- Go to Plugins → Add New → Upload Plugin
- Choose
clot-chat.zip - Click Install Now then Activate
- Plugin will automatically create required database tables
- Access from Clot Chat menu in admin sidebar
C. Install Clot Notifications Plugin
- Go to Plugins → Add New → Upload Plugin
- Choose
clot-notifications.zip - Click Install Now then Activate
- Plugin creates FCM token storage table automatically
- Access from Clot Notifications menu in admin sidebar
⚠️ Installation Notes:
- WooClot plugin is the main plugin - install it first
- All three plugins require WooCommerce to be active
- Database tables are created automatically on activation
- If you see any errors, check PHP error logs and ensure sufficient database permissions
- Required PHP version: 7.4 or higher
Step 6: Configure WooClot Plugin
After installing WooClot, configure its modules:
App Controls Configuration
- Go to WooClot → App Controls in WordPress admin
- App Theme: Set primary and secondary colors for your app (HEX color codes)
- Home Layout: Choose from Basic, Simple, or Advanced layout for home screen
- Banners: Upload promotional banners for the home screen with links
- JWT Secret: Generate a secure JWT secret key for authentication (save it for app config)
- Click Save Settings
AI Shopping Assistant Configuration
- Go to WooClot → AI Assistant
- Get your Google Gemini API key from Google AI Studio
- Enter the Gemini API key in the settings
- Configure AI assistant behavior and responses
- Enable/disable the AI chat feature
- Save settings
Payment Gateway Configuration
- Go to WooClot → Payment Gateways
- Enable the payment gateways you want to use
- For each gateway, enter the required API credentials:
- Stripe: Publishable Key, Secret Key
- Razorpay: Key ID, Key Secret
- PayPal: Client ID, Client Secret
- MercadoPago: Public Key, Access Token
- And so on for other gateways...
- Enable Test/Sandbox mode for testing
- Save each gateway configuration
💡 Payment Gateway Setup: Refer to the Payment Gateways section below for detailed configuration steps for each gateway.
Step 7: Configure Clot Chat
- Go to Clot Chat → Settings
- Configure chat settings (enable/disable, message limits, etc.)
- Add admin users who can respond to customer messages
- Test the chat system from the admin panel
- Go to Clot Chat → Conversations to view and manage all user chats
Step 8: Configure Clot Notifications (Firebase)
Get Firebase Service Account JSON
- Go to Firebase Console
- Select your project (or create new one)
- Click on Project Settings (⚙️ gear icon)
- Navigate to Service Accounts tab
- Click Generate New Private Key
- Confirm and download the JSON file
- Keep this file secure - it contains sensitive credentials
Upload JSON to WordPress
- Go to Clot Notifications → Settings in WordPress admin
- Click Upload Firebase JSON button
- Select the downloaded service account JSON file
- Plugin will validate and store the credentials securely
- Enable notification types:
- ✅ Order Placed Notifications
- ✅ Order Status Update Notifications
- Customize notification messages (title, body text)
- Save settings
Test Push Notifications
- Install the mobile app on a test device
- Login to the app with a test user account
- The app will automatically register FCM token
- Go to Clot Notifications → FCM Tokens to see registered devices
- Place a test order from the app
- You should receive a push notification instantly
- Change order status from WooCommerce admin to test status notifications
📱 Notification Troubleshooting:
- Ensure Firebase Cloud Messaging API is enabled in Firebase Console
- Verify the service account JSON has correct permissions
- Check app has notification permissions on device
- For iOS, ensure APNs authentication key is configured in Firebase
- Check WordPress debug.log for any FCM errors
Step 9: Verify Plugin Installation
After installing all three plugins, verify everything is working:
✅ Checklist
- ☑️ WordPress site has valid SSL certificate (HTTPS)
- ☑️ WooCommerce is active with products added
- ☑️ WooCommerce REST API keys generated (Read/Write permissions)
- ☑️ WooClot plugin installed and activated
- ☑️ Clot Chat plugin installed and activated
- ☑️ Clot Notifications plugin installed and activated
- ☑️ App theme colors configured in App Controls
- ☑️ At least one payment gateway configured
- ☑️ Firebase service account JSON uploaded
- ☑️ JWT secret key generated and saved
⚠️ Common Issues:
- Plugin activation error: Check PHP version (requires 7.4+) and WooCommerce is active
- Database table creation failed: Ensure MySQL user has CREATE TABLE permissions
- API endpoints not working: Go to Settings → Permalinks and click Save to flush rewrite rules
- Payment gateways not showing: Verify credentials are correct and gateway is enabled
- Notifications not sending: Check Firebase JSON is valid and Cloud Messaging API is enabled
App Configuration
After setting up WordPress plugins, configure the Flutter app to connect with your WooCommerce store. There are 2 main configuration files you need to update.
File 1: WooCommerce API Credentials
Location: lib/app/app_config.dart
This file contains your WooCommerce REST API authentication credentials (Consumer Key and Consumer Secret) that you generated earlier.
Configuration Steps:
- Open the file
lib/app/app_config.dartin your IDE - Replace the
defaultValueinwooConsumerKeywith your actual Consumer Key - Replace the
defaultValueinwooConsumerSecretwith your actual Consumer Secret - Save the file
class AppConfig {
/// WooCommerce REST API Consumer Key
/// Get this from: WooCommerce > Settings > Advanced > REST API
/// Format: 'ck_' followed by 40 characters
static const String wooConsumerKey = String.fromEnvironment(
'WOO_KEY',
defaultValue: 'ck_YOUR_CONSUMER_KEY_HERE', // ⬅️ Replace this
);
/// WooCommerce REST API Consumer Secret
/// Get this from: WooCommerce > Settings > Advanced > REST API
/// Format: 'cs_' followed by 40 characters
static const String wooConsumerSecret = String.fromEnvironment(
'WOO_SECRET',
defaultValue: 'cs_YOUR_CONSUMER_SECRET_HERE', // ⬅️ Replace this
);
}
📝 Important Notes:
- Consumer Key starts with
ck_followed by 40 alphanumeric characters - Consumer Secret starts with
cs_followed by 40 alphanumeric characters - These credentials authenticate your app with WooCommerce REST API
- Make sure you copied the complete key and secret without any spaces
- Permissions must be set to Read/Write in WooCommerce
🔒 Security Best Practices:
- Never share these credentials publicly or commit to public repositories
- Use different keys for development and production environments
- For production builds, use environment variables instead of hardcoded values
- Build with environment variables:
flutter build apk --dart-define=WOO_KEY=ck_your_key --dart-define=WOO_SECRET=cs_your_secret - Regenerate keys immediately if they are ever exposed
File 2: Store URL Configuration
Location: lib/app/urls.dart
This file contains your WordPress store URL. You only need to change ONE line - the base URL. All API endpoints are automatically configured based on this URL.
Configuration Steps:
- Open the file
lib/app/urls.dartin your IDE - Find the
baseconstant (around line 10) - Replace
'https://wooclot.site'with your WordPress store URL - Make sure to use
https://(not http://) - Do not include trailing slash (/) at the end
- Save the file - that's it! 🎉
class ApiUrls {
ApiUrls._();
/// Base URL of your WordPress/WooCommerce store
/// ⬇️ ONLY CHANGE THIS LINE ⬇️
static const String base = 'https://yourstore.com'; // ⬅️ Change this to your URL
// ✅ All other API endpoints are automatically configured
// ✅ No need to modify anything else in this file
}
✅ URL Configuration Guidelines:
- Must use HTTPS:
https://yourstore.com✅ - No trailing slash:
https://yourstore.com✅ (nothttps://yourstore.com/❌) - No subdirectories: If WordPress is in subdirectory, include it:
https://yourstore.com/shop - Custom domain: Works with any domain as long as WordPress is accessible
- Test the URL: Visit
https://yourstore.com/wp-jsonin browser - should show WordPress REST API info
⚠️ Common URL Mistakes:
- ❌ Using
http://instead ofhttps://- WooCommerce API requires SSL - ❌ Including trailing slash
/at the end - causes endpoint errors - ❌ Wrong domain or subdirectory path - verify WordPress is accessible at this URL
- ❌ Using localhost or 127.0.0.1 - won't work on real devices, use ngrok for local testing
Verify Configuration
After updating both files, verify your configuration is correct:
- Check URLs: Visit your store URL in a browser - should load your WordPress site
- Test REST API: Visit
https://yourstore.com/wp-json- should show JSON response - Verify SSL: Check that your URL uses HTTPS and has a valid certificate
- Test WooCommerce API: Visit
https://yourstore.com/wp-json/wc/v3- should show WooCommerce API info - Run the app: Execute
flutter runand try logging in - Check logs: If errors occur, check console logs for API connection issues
🧪 Testing Configuration:
After configuration, test these features to ensure everything works:
- ✅ User login and registration
- ✅ Products loading on home screen
- ✅ Product details and images displaying
- ✅ Add to cart functionality
- ✅ Checkout and order placement
If any feature fails, double-check your Consumer Key, Consumer Secret, and base URL.
Additional Configuration (Optional)
App Name & Package
1. Update App Name in pubspec.yaml
name: wooclot # Change to your app name (lowercase, no spaces)
description: Your WooCommerce Flutter App
2. Update Package Name (Android)
Edit android/app/build.gradle:
android {
defaultConfig {
applicationId "com.yourcompany.yourapp" // Change this
}
}
3. Update Bundle ID (iOS)
Open ios/Runner.xcodeproj in Xcode and update Bundle Identifier in Project Settings to match your app.
App Colors & Theme
WooClot supports dynamic theming from WordPress backend, but you can also set default colors in code:
Open lib/app/app_theme/app_colors.dart:
class AppColors {
static const Color primary = Color(0xFFFE3C00); // Your brand color
static const Color secondary = Color(0xFF2C3E50); // Secondary color
static const Color accent = Color(0xFF00C853); // Accent color
// ... other colors
}
Note: Theme colors can be changed dynamically from WooClot → App Controls in WordPress admin without rebuilding the app.
Payment Gateway Configuration
WooClot supports 12 payment gateways. Configure them through the WooClot WordPress plugin.
WordPress Plugin Configuration
In WordPress Admin, go to WooClot → Payment Gateways:
- Select the payment gateway you want to enable
- Toggle the status to Active
- Enable Test Mode for testing (if supported)
- Enter your API credentials from the payment provider
- Save the configuration
Supported Payment Gateways
1. Stripe
- Get API keys from Stripe Dashboard
- Required: Publishable Key and Secret Key
- Supports Test Mode with test API keys
- Accepts: Credit/Debit Cards, Apple Pay, Google Pay
2. Razorpay
- Get keys from Razorpay Dashboard
- Required: Key ID and Key Secret
- Popular in India, supports UPI, Net Banking, Cards
3. PayPal
- Get credentials from PayPal Developer
- Required: Client ID and Client Secret
- Sandbox mode available for testing
4. MercadoPago
- Popular in Latin America
- Required: Public Key and Access Token
5. MyFatoorah
- Popular in Middle East
- Required: API Key
- Supports multiple currencies (KWD, SAR, AED, etc.)
6. PhonePe
- Indian UPI payment gateway
- Required: Merchant ID and Salt Key
7. Flutterwave
- Popular in Africa
- Required: Public Key and Secret Key
- Supports Mobile Money, Cards, Bank Transfer
8. Paystack
- Nigerian payment gateway
- Required: Public Key and Secret Key
9. Midtrans
- Indonesian payment gateway
- Required: Client Key and Server Key
10. Mollie
- European payment gateway
- Required: API Key
- Supports iDEAL, Bancontact, and more
11. Xendit
- Southeast Asian payment gateway
- Required: Public Key and Secret Key
12. Offline Payment (Cash on Delivery)
- No API keys required
- Users pay upon delivery
- Orders marked as "Pending Payment"
⚠️ Testing: Always test payments in Sandbox/Test mode before going live. Use test cards provided by payment providers.
Firebase & Push Notifications Setup
WooClot uses Firebase Cloud Messaging (FCM) and OneSignal for push notifications.
Firebase Setup
Step 1: Create Firebase Project
- Go to Firebase Console
- Click Add Project
- Enter project name and click Continue
- Disable Google Analytics (optional) and click Create Project
Step 2: Add Android App
- Click the Android icon to add Android app
- Enter your Android package name (e.g.,
com.yourcompany.wooclot) - Download
google-services.json - Copy
google-services.jsontoandroid/app/folder
Step 3: Add iOS App
- Click the iOS icon to add iOS app
- Enter your iOS Bundle ID (same as Xcode project)
- Download
GoogleService-Info.plist - Open
ios/Runner.xcworkspacein Xcode - Drag
GoogleService-Info.plistinto Runner folder
Step 4: Enable Cloud Messaging
- In Firebase Console, go to Project Settings → Cloud Messaging
- Copy your Server Key for use in WordPress plugin
OneSignal Setup
Step 1: Create OneSignal Account
- Go to OneSignal
- Sign up for a free account
- Click New App/Website
- Select Mobile App platform
Step 2: Configure Android
- Select Google Android (FCM)
- Enter your Firebase Server Key and Sender ID
- Click Save & Continue
Step 3: Configure iOS (Apple)
- Select Apple iOS
- Upload your iOS Push Certificate (.p12 file)
- Enter your certificate password
Step 4: Get OneSignal App ID
- Go to Settings → Keys & IDs
- Copy your OneSignal App ID
- Update in
lib/main.dart:
class AppConfig {
static const String oneSignalAppId = 'YOUR_ONESIGNAL_APP_ID_HERE';
}
💡 Tip: You can use both FCM and OneSignal, or choose one. FCM is free forever, OneSignal offers more advanced features in paid plans.
App Customization
Customize WooClot to match your brand identity. You can change the app logo, placeholder images, splash screen, app name, and fallback theme colors.
1. App Logo & Placeholder Images
WooClot uses two main image assets that define your app's visual identity:
A. Replace App Logo (Fallback)
Location: assets/core/logo.svg
Type: API-Driven with Local Fallback
🔄 How App Logo Works:
- Primary Source: Logo is fetched from WordPress backend via WooClot → App Controls
- Fallback: If API fails or is loading, uses
assets/core/logo.svg - Recommended: Always replace the fallback logo with your brand logo
- Dynamic: You can update logo from WordPress admin without rebuilding app
Steps to Replace Fallback Logo:
- Prepare your logo in SVG format for best quality (recommended)
- Replace the file
assets/core/logo.svgwith your logo - Keep the filename as
logo.svg- the app references this exact name - Recommended size: 200x60 pixels or similar aspect ratio
- Ensure the SVG is optimized for mobile (remove unnecessary elements)
- This fallback ensures logo displays even if API fails
💡 Logo Usage: This logo appears on:
- App splash/loading screen
- Login and registration screens
- Top navigation header (some layouts)
- About screen
⚠️ Best Practice:
Even though logo is API-driven, always replace the fallback logo in assets/core/logo.svg with your brand logo. This ensures:
- ✅ Logo displays during initial app load before API response
- ✅ Logo works offline or if API fails
- ✅ Professional appearance in all scenarios
- ✅ Consistent branding from first app launch
B. Replace Placeholder Image (Local Only)
Location: assets/core/placeholder.png
Type: Local Asset (No API)
📦 Placeholder is Fully Local:
- Placeholder image is NOT fetched from API
- It's a core local asset stored in the app
- To customize, you must replace the file and rebuild
- No backend configuration available for placeholder
Steps to Replace Placeholder:
- Create a placeholder image in PNG format (supports transparency)
- Replace the file
assets/core/placeholder.pngwith your image - Keep the filename as
placeholder.png - Recommended size: 500x500 pixels (square format)
- Use a neutral design that works with any product type
- Rebuild the app to apply changes
💡 Placeholder Usage: This image appears when:
- Product images are loading
- Product has no image available
- Network error prevents image loading
- User profile has no avatar
- Any image load failure throughout the app
⚠️ Important Notes:
- Do NOT rename these files - the app looks for exact filenames
- All files are in
assets/core/directory - After changing files, run
flutter cleanthenflutter pub get - Rebuild the app to see changes
2. App Icon & Splash Screen
Configure app launcher icon and splash screen using Flutter packages.
A. App Launcher Icon
The icon that appears on device home screen and app drawer.
- Create an app icon image (1024x1024px PNG, with transparent background)
- Place it in
assets/launcher/icon.png - For Android adaptive icon, also place background:
assets/launcher/bg.png - Open
pubspec.yamland verifyflutter_launcher_iconsconfiguration:flutter_launcher_icons: android: true ios: true image_path: "assets/launcher/icon.png" adaptive_icon_background: "assets/launcher/bg.png" adaptive_icon_foreground: "assets/launcher/icon.png" - Run command:
flutter pub get - Run command:
flutter pub run flutter_launcher_icons - This will generate all required icon sizes for Android and iOS
B. Splash Screen
The screen shown while app is loading. WooClot has a beautiful built-in splash screen that you can customize.
Splash Screen Features:
- Automatically displays your logo from
assets/core/logo.svg - Dynamic background using primary brand color from WordPress
- Animated logo entrance with pulsing glow effect
- Bottom "Powered by" tagline (customizable)
- Displays for approximately 1.8 seconds while app initializes
Change "Powered by" Text:
Location: lib/features/auth/ui/screens/splash_screen.dart
- Open the file
lib/features/auth/ui/screens/splash_screen.dart - Scroll to around line 250 (bottom of the file)
- Find the Text widget with
'Powered by WooClot' - Change it to your desired text, for example:
'Powered by YourCompany''Made with ❤️ by YourBrand'- Or remove it completely by deleting the entire Align widget section
- Save the file and rebuild the app
// Around line 218 - Bottom "Powered by" section
Align(
alignment: Alignment.bottomCenter,
child: SafeArea(
top: false,
child: Padding(
padding: const EdgeInsets.only(bottom: 24),
child: FadeTransition(
opacity: CurvedAnimation(
parent: _controller,
curve: const Interval(0.35, 1.0, curve: Curves.easeOut),
),
child: SlideTransition(
position: Tween(
begin: const Offset(0, 0.25),
end: Offset.zero,
).animate(
CurvedAnimation(
parent: _controller,
curve: const Interval(0.35, 1.0, curve: Curves.easeOutCubic),
),
),
child: const Text(
'Powered by WooClot', // ⬅️ Change this text
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: 0.3,
),
),
),
),
),
),
),
💡 Text Style Options:
You can also customize the text appearance by modifying the TextStyle properties:
fontSize- Change text size (default: 14)fontWeight- Change weight (e.g., FontWeight.w400, FontWeight.w700)letterSpacing- Adjust spacing between letterscolor- Always white to contrast with brand color background
⚠️ To Remove Completely:
If you want to remove the "Powered by" text entirely, delete the entire Align widget (from Align( to its closing ), bracket). This will give a cleaner splash screen with just the logo.
3. App Name
Change the app name displayed on device home screen and app stores.
For Android:
Edit android/app/src/main/AndroidManifest.xml:
<application
android:label="Your App Name"
...>
For iOS:
Edit ios/Runner/Info.plist:
<key>CFBundleName</key>
<string>Your App Name</string>
4. Fallback Theme Colors
WooClot uses dynamic theming - colors are fetched from WordPress backend (WooClot → App Controls). However, you can set fallback colors that are used during initial app load or if API fails.
Location: lib/app/app_colors_provider.dart
class AppColorsProvider extends ChangeNotifier {
// Fallback colors (used only during loading or API failure)
Color get primaryColor => _remotePrimary ?? const Color(0xFFff6600); // ⬅️ Change this
Color get secondaryColor => _remoteSecondary ?? const Color(0xFF03DAC6); // ⬅️ Change this
// Colors are normally loaded from WordPress API
// These fallbacks are rarely seen by users
}
🎨 How Theme Colors Work:
- Primary Source: Colors come from WooClot → App Controls in WordPress admin
- Cached: Once fetched, colors are cached on device for offline use
- Fallback: If cache is empty and API fails, these hardcoded colors are used
- Dynamic: You can change colors from WordPress admin without rebuilding app
💡 Best Practice:
Set fallback colors to match your brand, but manage actual colors from WordPress admin panel for easy updates. Users will see backend colors 99% of the time.
5. Custom Fonts (Optional)
WooClot uses CircularStd font by default. To change fonts:
- Add font files to
assets/fonts/ - Update
pubspec.yaml:fonts: - family: YourFont fonts: - asset: assets/fonts/YourFont-Regular.ttf - asset: assets/fonts/YourFont-Bold.ttf weight: 700 - Update
lib/app/app_theme.dart- changefontFamily: 'CircularStd'to your font - Run
flutter cleanand rebuild
Summary: Files to Customize
Essential Customization
- 📁
assets/core/logo.svg- Your app logo - 📁
assets/core/placeholder.png- Image placeholder - 📁
assets/launcher/icon.png- App launcher icon (1024x1024px) - 📁
assets/launcher/bg.png- Android adaptive icon background - ⚙️ AndroidManifest.xml - App name (Android)
- ⚙️ Info.plist - App name (iOS)
Optional Customization
- 🎨
lib/app/app_colors_provider.dart- Fallback theme colors - 🔤
assets/fonts/- Custom fonts - ⚙️
lib/app/app_theme.dart- Font family reference
Build & Run
Run in Debug Mode
Android:
flutter run
iOS:
flutter run
Or press F5 in VS Code / Android Studio
Build Release APK (Android)
Generate Keystore (first time only):
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
Configure Signing:
Create android/key.properties:
storePassword=your-keystore-password
keyPassword=your-key-password
keyAlias=upload
storeFile=C:/path/to/upload-keystore.jks
Build APK:
flutter build apk --release --obfuscate --split-debug-info=build/app/outputs/symbols
Build App Bundle (recommended for Play Store):
flutter build appbundle --release --obfuscate --split-debug-info=build/app/outputs/symbols
Output locations:
- APK:
build/app/outputs/flutter-apk/app-release.apk - Bundle:
build/app/outputs/bundle/release/app-release.aab
Build iOS App
Prerequisites:
- Mac computer with Xcode installed
- Apple Developer account ($99/year)
- Valid provisioning profile and certificates
Build Steps:
- Open
ios/Runner.xcworkspacein Xcode - Select your team in Signing & Capabilities
- Update Bundle Identifier if needed
- Select Generic iOS Device or your connected device
- Go to Product → Archive
- Once archived, click Distribute App
- Choose distribution method (App Store, Ad Hoc, Enterprise)
Or build from command line:
flutter build ios --release --obfuscate --split-debug-info=build/ios/outputs/symbols
Troubleshooting
Common Issues
1. "Unable to load asset" Error
Solution:
- Run
flutter clean - Run
flutter pub get - Restart the app
2. Firebase/OneSignal Not Working
Solution:
- Verify
google-services.jsonis inandroid/app/ - Verify
GoogleService-Info.plistis added to Xcode project - Check OneSignal App ID is correct in
app_config.dart - Rebuild the app completely
3. Payment Gateway Not Showing
Solution:
- Ensure gateway is enabled in WordPress plugin
- Check API credentials are correct
- Verify internet connection
- Check app logs for API errors
4. API Connection Failed
Solution:
- Verify
baseUrlinapi_config.dartis correct - Ensure your WordPress site has valid SSL (HTTPS)
- Check WooCommerce API keys are active
- Test API endpoints in Postman/browser
5. Build Failed on iOS
Solution:
- Run
cd ios && pod install && cd .. - Run
flutter cleanand rebuild - Update CocoaPods:
sudo gem install cocoapods - Check Xcode is up to date
6. Products Not Loading
Solution:
- Ensure you have products published in WooCommerce
- Check product visibility is set to "Catalog & Search"
- Verify WooCommerce API permissions are Read/Write
- Clear app cache and restart
Support
If you need help with WooClot, we're here to assist you!
Before Requesting Support
- Check the documentation thoroughly
- Review the Troubleshooting section
- Verify your Flutter and Dart SDK versions
- Ensure all setup steps were completed correctly
How to Get Support
1. Email Support
- Email us at: support@clotcode.site
- Include detailed information about your issue
- Attach screenshots or error logs if applicable
2. Codester Support Tab
- Go to your Codester downloads
- Find WooClot and click on the Support tab
- Submit your question with detailed information
3. What to Include in Support Requests
- Detailed description of the issue
- Steps to reproduce the problem
- Screenshots or screen recordings
- Error messages or logs
- Flutter doctor output (
flutter doctor -v) - Your development environment (OS, IDE, versions)
⚠️ Support Scope:
- ✅ Bugs and technical issues
- ✅ Setup and configuration help
- ✅ Questions about existing features
- ❌ Customization requests (available as paid service)
- ❌ Third-party plugin/service support
- ❌ Hosting or server setup
Response Time
We typically respond within 24-48 hours on business days. Please be patient, especially during weekends and holidays.
Updates
WooClot receives regular updates with bug fixes and new features. Keep your app updated for the best experience!
Changelog
Version 1.0.0 (Initial Release)
Release Date: [Your Release Date]
- 🎉 Initial release of WooClot
- ✨ Complete WooCommerce integration
- 💳 12 payment gateways supported
- 🤖 AI Shopping Assistant with Google Gemini
- 🔔 Firebase & OneSignal push notifications
- 🎨 3 home screen layout variants
- 🛒 Full e-commerce features (Cart, Wishlist, Orders)
- 👤 User authentication and profile management
- 🌍 Address management for shipping
- 🎨 Dynamic theming support
- 📱 Responsive design for all screen sizes
- 🏗️ Clean architecture with feature-based modules