Actively maintained
12 documented releases, the latest being v6.4.0 on Sep 22, 2026. Every one of them is a free update for existing license holders.
compileSdk from 36 to 37flutter --versionflutter channel stable
flutter upgrade --force
flutter clean
flutter pub getconfigs/env.props file (if not input, the app will crash):



"advanceConfig": {
"versionCheck": {
"enable": true,
"iosId": null,
"iOSAppStoreCountry": null,
"androidId": null,
"androidPlayStoreCountry": null,
+ "forcedUpdate": false,
+ "dialogTitle": null,
+ "dialogText": null,
+ "updateButtonText": null,
+ "dismissButtonText": null,
}
}"versionCheck": {
"enable": true,
"iosId": null,
"iOSAppStoreCountry": null,
"androidId": null,
"androidPlayStoreCountry": null,
"forcedUpdate": false,
"dialogTitle": null,
"dialogText": null,
"updateButtonText": null,
"dismissButtonText": null
}"versionCheck": {
"enable": true,
"iosId": null,
"iOSAppStoreCountry": null,
"androidId": null,
"androidPlayStoreCountry": null,
"forcedUpdate": false,
"dialogTitle": "New version availale",
"dialogText": "Would you like to update it now?",
"updateButtonText": "Update Now",
"dismissButtonText": null
}"versionCheck": {
"enable": true,
"iosId": null,
"iOSAppStoreCountry": null,
"androidId": null,
"androidPlayStoreCountry": null,
"forcedUpdate": true,
"dialogTitle": "App Update Required",
"dialogText": "Please update to continue using the app",
"updateButtonText": "Update",
"dismissButtonText": null
}"searchConfig": {
+ // Required Extended license
+ "imageSearchUrl": "image-search-endpoint",
+ "imageSearchApiKey": null
}id in Firestore chat room users.id with email fallback for backward compatibility.
{
"HorizonLayout": [
{
"layout": "threeColumn",
+ "showSeeAll": false
}
],
"VerticalLayout": {
+ "showSeeAll": false
}
}env.dartfacebookAppId before login"loginSetting": {
"showGoogleLogin": true,
+ "googleWebClientId": "YOUR_GOOGLE_WEB_CLIENT_ID.apps.googleusercontent.com",
}
"productDetail": {
+ /// Show/hide the short description on the product detail page.
+ "showShortDescription": true,
}company field. The unused block address field has been replaced with company, while the apartment field now correctly maps to address2.
"addressFields": [
{
- "type": "block",
+ "type": "company",
"visible": true,
"editable": true,
"position": 11,
"required": false,
"defaultValue": ""
}
]
orderReturnedreadytopickpickingdeliveringdelivereddriverAssigned when delivery assignment is enabled.outForDelivery when delivery assignment is enabled.failedDelivery when delivery assignment is enabled..jpg?table=block&id=3e3cbb07-4f62-8058-a94c-dcb0fc8d9889&cache=v2&spaceId=adfc7c52-309f-45b9-8822-60b33369c98c)

"orderConfig": {
"version": 1, // 1 or 2
+ /// Show delivery-related statuses in Order History filters.
+ /// Includes Driver Assigned, Out For Delivery, and Failed Delivery Attempt.
+ /// Requires a supported delivery-driver status integration.
+ "enableDeliveryStatusFilter": false,
},
"managerConfig": {
"appLogo": "assets/images/app_icon_transparent.png",
"appName": "FluxStore Admin",
/// Enable assigning orders to delivery boys.
/// Requires integration with FluxStore Delivery and FluxStore Manager.
- "enableDeliveryFeature": false,
+ "enableOrderAssignment": false,
}
Framework 'RazorpayStandard' not found / arm64 simulator slice)invalid_plugin)configs/env.props file (if not input, the app will crash):
Supported: All Apps
com.revenuecat.purchases:purchases to the latest version.

Supported: All Apps
"TabBarConfig": {
+ "showMinimize": true
}
Supported: All Apps
"TabBarConfig": {
+ "liquidGlass": true
}
Supported: All Apps
"TabBarConfig": {
+ "floating": true
}
Supported: All Apps
"authConfig": {
"providers": {
"sms": {
+ "otpLength": null // 6 as default
}
}
}
Supported: Woo/Shopify
{
"layout": "videos",
"icon": "assets/icons/tabs/icon-videos.png",
"styleVersions": ["1", "2"],
+ "order": "asc",
+ "orderby": "date"
}Supported: All Apps
"filterConfig": {
"showLayout": true,
"showSort": true,
"showPriceSlider": false,
"showCategory": false,
"showListingLocation": false,
"showBrand": false,
"showTag": false,
"showFeature": false,
"showAttribute": false,
"supportedSortByOptions": ["date", "price"]
}supportedSortByOptions accepts: onSale, featured, date, price, title, popularity, rating, menu_order, rand, relevance.
Supported: All Apps
Supported: All Apps
Supported: All Apps

Supported: All Apps
Supported: All Apps
showPrice control in product detail settings for flexible price display behavior."productDetail": {
+ "showPrice": true
}
Supported: All Apps
"secureScreenConfig": {
"enable": false,
"screens": []
}enable=true with empty screens to block app-wide.enable=true with screens list to block specific routes only.Supported: WooCommerce
buttonText for external products. If the admin has customized button text for external product, the app will use that value; otherwise, the fallback remains "Buy now".


Supported: WooCommerce, MultiVendor
"advanceConfig": {
+ "EnableWooCheckoutFieldManager": true
}

Supported: WooCommerce, MultiVendor
"advanceConfig": {
/// Enable Delivery Date/Time when doing checkout
/// Ref: https://support.inspireui.com/help-center/articles/35/37/160/delivery-date-picker
"EnableDeliveryDateOnCheckout": false
}

Supported: WooCommerce, MultiVendor, MAX-Multisites
"cashfreeConfig": {
+ "paymentMethodIds": ["cashfree"],
+ "enabled": true
}Supported: WooCommerce, MultiVendor
deliveryOnline option in profile settings."defaultSettings": [
...,
+ "deliveryOnline",
...
]Supported: MultiVendor
"productCard": {
+ "storeStyle": "normal" // normal, style01, hide
},
"cartDetail": {
+ "showStoreName": true
}
salesiq_mobilisten to fix iOS build.configs/env.props file (if not input, the app will crash):Supported: All frameworks
easy_paypal package to replace the old PayPal Data Collector SDK (com.paypal.android.sdk:data-collector) with the policy-compliant Braintree version (com.braintreepayments.api:data-collector:4.31.0). This resolves Google Play rejections caused by the old SDK collecting device location without prominent disclosure.Supported: All frameworks
local_auth_android to a fixed version to resolve a build failure introduced by Android Gradle Plugin 9+ (AGP 9), where local_auth_android was missing compileSdk in its build.gradle.kts. This fixes the NullPointerException crash during Gradle configuration.Supported: All frameworks (Extended source code only)
stripe_android and stripe_ios requiring compileSdk ≥ 36 due to updated androidx dependencies (activity, core-ktx, browser, navigationevent), while the project was still targeting android-35.Supported: WooCommerce, MultiVendor (Dokan/WCFM)



Supported: WooCommerce, MultiVendor (Dokan/WCFM)

Supported: WooCommerce, MultiVendor (Dokan/WCFM)



Supported: MultiVendor (Dokan/WCFM)
lib/env.dart as below."vendorConfig": {
...
+ /// Default Store banner image.
+ "DefaultStoreBanner": "",
+ /// Default Store profile image (avatar).
+ "DefaultStoreProfile": "",
+ "ProfileFit": "cover",
...
}



Supported: MultiVendor (Dokan/WCFM)

Supported: MultiVendor (Dokan)


easy_paypal SDK — replaces com.paypal.android.sdk:data-collector with com.braintreepayments.api:data-collector:4.31.0 to comply with Google Play's User Data and Prominent Disclosure policylocal_auth_android to a compatible version to fix build failures with Android Gradle Plugin 9+.stripe_android and stripe_ios required compileSdk ≥ 36 due to updated androidx dependenciesenabled field was removed from Dokan Store API)https://domain/product/slug and https://domain/product/slug/ are now supportedconfigs/env.props file (if not input, the app will crash):
configs/env.props file (if not input, the app will crash):
selectedId was still null after payment methods loadedconnectivity_plus packageconfigs/env.props file (if not input, the app will crash):
configs/env.props file (if not input, the app will crash):
flutter --versionflutter channel stable
flutter upgrade --force
flutter clean
flutter pub getconfigs/env.props file (if not input, the app will crash):
flutter precache --ioslib/env.dart file as below "searchConfig": {
/// Enable Ajax Search using either AjaxSearchPro or FiboSearch plugin
/// ref: https://support.inspireui.com/help-center/articles/35/37/196/ajax-search-pro
"ajaxSearch": {
"enable": true,
"plugin": "fiboSearch" //fiboSearch, ajaxSearchPro
},
/// Enable search by SKU in search screen
"enableSkuSearch": true
}
lib/env.dart file as below{
"whatsAppOrderConfig": {
"phoneNumber": "12124567890",
"message": "Hello, I would like to place an order. Here are the details:\n\n{order_details}\n\nTotal Amount: {total_amount}\n\nThank you!",
"paymentMethodIds": [
"lwc-whatsapp-order"
],
"autoOpenWhatsAppAfterOrder": false
}
}{billing_name}, {billing_email}, {billing_phone}, {billing_address}, {shipping_name}, {shipping_email}, {shipping_phone}, {shipping_address}, {order_id}, {order_details}, {total_amount}lib/env.dart file as below: "splashScreen": {
"enable": true,
/// duration in milliseconds, used for all types except "rive", "flare" and "video"
"duration": 2000,
/// Type should be: 'fade-in', 'zoom-in', 'zoom-out', 'top-down', 'rive',
/// 'flare', 'static', 'video'
"type": "video",
"image": "assets/videos/splashscreen.mp4", // https://demo.mstore.io/wp-content/uploads/2025/09/splashscreen.mp4
/// AnimationName's is used for 'rive' and 'flare' type
"animationName": "fluxstore",
"boxFit": "contain",
"backgroundColor": "#ffffff",
"paddingTop": 0,
"paddingBottom": 0,
"paddingLeft": 0,
"paddingRight": 0,
},lib/env.dart file as below:"EnableRentalProductsWoo": true,
lib/env.dart file as below: "loginSetting": {
"showAppleLogin": true,
"showFacebook": false,
"showSMSLogin": true,
"showGoogleLogin": true,
+ "showSocialInRegistration": false,
}
lib/env.dart file as below: "onBoardingConfig": {
'enableOnBoarding': true,
'version': 1,
'autoCropImageByDesign': true,
'isOnlyShowOnFirstTime': true,
'showLanguage': true,
'showLanguagePopup': false,
+ // Currently, only available for version 1
+ 'showSignInSignUp': true,
},
lib/env.dart file "productCard": {
"defaultImage": 'assets/images/no_product_image.png',
'showShortDescription': true,
...
},lib/config/config_en.json file, for example:{
"HorizonLayout":[
{
"layout":"", ///twoColumn, threeColumn, fourColumn, card, saleOff, listTile, quiltedGridTile, carousel
"showShortDescription":true,
...
}
],
"VerticalLayout":{
"layout":"", ///pinterest, menu, card, columns, columnsWithFilter, topProducts, menuWithCustomCategories
"showShortDescription":true,
...
}
"TabBar": [
{
"layout": "category",
"categoryLayout": "card", ///card, sideMenuWithSub, columns, topMenu, animation, grid, sideMenuWithSub,
///sideMenuWithGroup, ///multi-level, ///fancy-scroll
"icon": "assets/icons/tabs/icon-category.png"
},
],
...
}serverEndpointdokanStripeConnectpaymentMethodIds matches the Stripe Connect payment method ID configured on your websitedokanPayPalMarketplacepaymentMethodId matches the PayPal Marketplace gateway ID on your website
lib/config/config_en.json as below: {
"name": "Brands",
"layout": "brand",
...
"imageBoxFit": "contain",
"topBrand": [] // ID of brands
},OneSignalNotificationServiceExtension to adapt with Xcode 26configs/env.props file (if not input, the app will crash):
configs/env.props file (if not input, the app will crash):
flutter --versionflutter channel stable
flutter upgrade --force
flutter clean
flutter pub getconfigs/env.props file (if not input, the app will crash):
flutter precache --ioscompileSdkVersion 35 to compileSdkVersion 36ndkVersion "25.1.8937393" to ndkVersion "28.1.13356709"Edge-to-edge may not display for all users:
Your app uses deprecated APIs or parameters for edge-to-edge:


lib/env.dart as belowMap<String, dynamic> environment = {
...
"offlineModeConfig": {
"enable": true,
}
...
};


lib/env.dart in the source code and configure as below: "configChat": {
"wcfmLiveChatConfig": {
"enable": false,
"adminName": "InspireUI",
},
},
"smartChat": [
{
"app": "wcfmLiveChat",
"imageData":
"https://trello.com/1/cards/611a38c89ebde41ec7cf10e2/attachments/611a392cceb1b534aa92a83e/previews/611a392dceb1b534aa92a84d/download",
"description": "WCFM Live Chat",
},
],



BoxFit for cart items for more consistent visuals.lib/env.dart as below: "cartDetail": {
"minAllowTotalCartValue": 0,
"maxAllowQuantity": 10,
/// Cart Style: normal, style01
"style": "style01",
+ /// Product Image Box Fit. Default: cover
+ "boxFit": "cover",
},

lib/configs/config_en.json and add “video” for “Background” as below: "Background": {
"height": 1,
"color": "#026DCD",
"image": "https://trello.com/1/cards/5dc3b80702a7994eec2ea5d0/attachments/5dc3b80802a7994eec2ea5d1/download/woman.jpg",
+ "video": "https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerMeltdowns.mp4",
+ "fit": null, // For Image only
"isScrollable": false
},lib/configs/config_en.json and set “isScrollable” as below: "Background": {
"height": 0.35,
"color": "#026DCD",
"image": "https://trello.com/1/cards/5dc3b80702a7994eec2ea5d0/attachments/5dc3b80802a7994eec2ea5d1/download/woman.jpg",
+ "isScrollable": true
},lib/env.dart and set “showVendor” as below: "productDetail": {
"height": 0.6,
"marginTop": 0,
"safeArea": false,
"showBrand": true,
+ "showVendor": true,
}
lib/env.dart, and then configure as below: {
"type": "image",
"wrap": true,
"horizontalItem": false,
"columns": 4,
"layout": "category",
"marginLeft": 15.0,
"marginRight": 15.0,
"marginTop": 10.0,
"marginBottom": 10.0,
"separateWidth": 24.0,
"shadow": null,
"gradientStyle": false,
"items": [
{
"originalColor": false,
"backgroundColor": null,
"title": null,
"name": null,
"keepDefaultTitle": false,
"colors": [
"ff3cc2bf",
"ff3cc2bf"
]
},
"productCategoryMenuStyle": "tab",
"categoryMenuShowDepth": true
}categoryMenuShowDepth : only support productCategoryMenuStyle that is "tab"lib/env.dart as below: "advanceConfig": {
+ /// systemDefault, exitImmediately, requireConfirmPopup, requireDoubleTap
+ "exitAppType": "requireConfirmPopup",
},

lib/env.dart, and then configure as below:"paymentConfig": {
/// List of possible slugs for the successful checkout page on the website.
/// It will be used to determine when the order is placed successfully and
/// closes the webview checkout screen, trigger the cart deletion action.
/// Also displays the native thank you page.
+ "CheckoutSuccessPageSlug": [
+ "objednavka-prijata",
+ "thank-toan-thanh-cong",
+ "thank-toan/thanh-cong",
+ "/xac-nhan-don-hang",
+ ],
}lib/env.dart, and set as below:{
"productCard": {
+ "typeShouldOpenInWebview": [],
"boxFit": "cover",
"boxShadow": null,
"defaultImage": "assets/images/no_product_image.png"
},
} "typeShouldOpenInWebview": [
"grouped",
"auction",
"external",
"subscription",
"appointment",
]lib/env.dart and configure as below: "advanceConfig": {
- /// Disable inAppWebView to use webview_flutter
- /// so webview can navigate to external app.
- /// Useful for webview checkout which need to handle payment in another app.
- "inAppWebView": false,
- 'AlwaysClearWebViewCache': false,
- 'AlwaysClearWebViewCookie': false,
- "WebViewScript": "",
},
+ "webViewConfig": {
+ "webViewMode": "webViewFlutter", // `inAppWebView` or `webViewFlutter`
+ "alwaysClearWebViewCache": false,
+ "alwaysClearWebViewCookie": false,
+ "webViewScript": "",
+ /// List of domains that should open the external app instead of the webview.
+ /// Just add the domain name only, do not add full URL. For example: "example.com"
+ /// If not set, we will use our default list from [kExternalDomains]
+ "externalDomains": [],
+ /// List of domains that should be loaded in the webview.
+ /// If the list is empty, all domains will be opened in the webview if it is
+ /// not in [externalDomains]. Otherwise, if the domain is not in this list, it
+ /// will be opened in the external browser.
+ /// Just add the domain name only, do not add full URL. For example: "example.com"
+ "internalDomains": [],
+ },const kExternalDomains = [
'wa.me', // Whatsapp
'wa.link', // Whatsapp
'api.whatsapp.com', // Whatsapp
'm.me', // Messenger
'messenger.com', // Messenger
'www.messenger.com', // Messenger
'ig.me', // Instagram
'instagram.com', // Instagram
'www.instagram.com', // Instagram
'x.com', // X
'facebook.com', // Facebook
'www.facebook.com', // Facebook
'youtube.com', // Youbute
'www.youtube.com', // Youbute
'youtu.be', // Youbute
't.me', // Telegram
'telegram.org', // Telegram
'play.google.com', // Google play
'apps.apple.com', // App store
'zalo.me', // Zalo
];

productListItemHeight config in Animation Category LayoutlineHeight in ProductTitletextarea for WooCommerce product addonsconfigs/env.props file (if not input, the app will crash):
configs/env.props file (if not input, the app will crash):
flutter --versionflutter channel stable
flutter upgrade --force
flutter clean
flutter pub getconfigs/env.props file (if not input, the app will crash):
flutter precache --ios.jpg?table=block&id=200cbb07-4f62-8069-b378-d182266053de&cache=v2&spaceId=adfc7c52-309f-45b9-8822-60b33369c98c)
.jpg?table=block&id=200cbb07-4f62-80b4-a5ee-da8ce3b0fcc7&cache=v2&spaceId=adfc7c52-309f-45b9-8822-60b33369c98c)
.jpg?table=block&id=200cbb07-4f62-8065-a232-c56322ad4b8e&cache=v2&spaceId=adfc7c52-309f-45b9-8822-60b33369c98c)
.jpg?table=block&id=200cbb07-4f62-8048-8894-d2bf8f2f0bc4&cache=v2&spaceId=adfc7c52-309f-45b9-8822-60b33369c98c)
dart file, set enabled: true for loyaltyConfig to enable loyalty feature.
lib/env.dart file...
"advanceConfig": {
...
"OptimizeImage": {
"enable": true,
"plugin": "optimole" // Support "re-generate-image" plugin (old) & "optimole" plugin (new)
},
...
}
...showIndicator config — now fully customizable.
lib/config/config_en.json, add showIndicator into banner config{
"showIndicator": false
} lib/config/config_en.json"SmartEngagementBanner": {
"popup": {
"allowTapOutsideToClose": true, // Default: false
"iconSize": 36,
},
}lib/config/config_en.json "productDetail": {
/// Video config
"showVideo": true,
"isSoundOn": false,
"autoPlayVideo": false,
"enableTimeIndicator": true,
"doubleTapToFullScreen": true,
}
productDetail config in the lib/env.dart file as below: "productDetail": {
// Allow share product data. Default: true
"allowShareProductData": false,
}

lib/env.dart file "orderConfig": {
"version": 2,
"enableReorder": false,
},deepview parameter support for better navigation.

lib/env.dart "paymentConfig": {
...
/// Show download button in order history detail for Digital/Downloadable Product
"ShowDownloadButton": true/false,
}

lib/config/config_en.json file, after set true for requiredLogin, add the corresponding role as below:{
"requiredLogin": true,
"roles": [] //"customer", "administrator", "vendor",....
}




discountAllocations is a list in CartLineShopify modelalwaysShowTabBar/alwaysShowAppBarconfigs/env.props file (if not input, the app will crash):
configs/env.props file (if not input, the app will crash):

lib/env.dart file, then adjust the config as below: "bankTransferConfig": {
"paymentMethodIds": ["bacs", "bank_transfer_1", "bank_transfer_2"],
},
"cashOnDeliveryConfig": {
"paymentMethodIds": ["cod", "cashondelivery"],
},lib/env.dart file, then add config as below: "phonepeConfig": {
'paymentMethodIds': ['phonepe'],
'merchantId': 'GANGSTARPGUAT',
'saltKey': '7eb940c6-b785-42e2-98ca-0419ebf5a219',
'saltKeyIndex': '1',
"androidPackageName": "com.inspireui.fluxstore",
"iOSBundleId": "com.inspireui.mstore.flutter",
'production': false,
'enabled': true
},
lib/env.dart file, then add config as below: "TabBar": [
...
{
"pos": 200,
"layout": "vendor-list", // New screen layout
"icon": "rectangle_grid_1x2",
"fontFamily": "CupertinoIcons",
"categoryLayout": "card",
"vendorLayout": "grid",
"key": "hwu0rkrizt"
},
...
]AnimatedConfigPercentSizedBox support nullable valueconfigs/env.props file (if not input, the app will crash):
configs/env.props file (if not input, the app will crash):






requireUsernameWhenRegister option in Digits Mobileconfigs/env.props file (if not input, the app will crash):
configs/env.props file (if not input, the app will crash):
13 more releases shipped before v4.3.0. They are part of the same lifetime-update license.