Actively maintained
21 documented releases, the latest being v6.3.0 on Jul 29, 2026. Every one of them is a free update for existing license holders.
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
}Supported: Shopify
Supported: Listing , β οΈ BREAKING CHANGE
"defaultSettings": [
...,
+ "addListing",
...
]addListing or this menu item will be missing.Supported: Listeo
"productDetail": {
+ "expandCalendarView": true
}Supported: Listeo
Supported: Listeo Booking
Supported: Listeo Booking
Supported: Prestashop , β οΈ BREAKING CHANGE
Supported: Vendor
Supported: Manager
Supported: Manager
salesiq_mobilisten to fix iOS build.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):Supported: All frameworks
Supported: All frameworks
Supported: WooCommerce, MultiVendor (Dokan/WCFM), Shopify, Magento, Opencart, Strapi, Prestashop, Notion, BigCommerce, Haravan, MAX-Multisites
lib/env.dart and configure as below:"searchConfig": {
+ "emptyImage": "assets/images/empty_search.png",
+ "boxFit": "contain",
}Supported: WooCommerce, MultiVendor (Dokan/WCFM), Shopify, Magento, Opencart, Strapi, Prestashop, Notion, BigCommerce, Haravan, Serverless (Firebase), MAX-Multisites
lib/env.dart and modify the field cartDetail as below: "cartDetail": {
+ "boxFit": "cover",
+ "emptyImage": "assets/images/leaves.png",
+ "enableSyncCartFromWebsite": false,
+ "enableSyncCartToWebsite": false,
}Supported: WooCommerce, MultiVendor (Dokan/WCFM)
lib/config/config_en.json and config as below.+ {
+ "layout": "brandCarousel",
+ "autoPlay": true,
+ "loop": true,
+ "showName": true,
+ }Supported: All frameworks
imageCompare homepage layout widget for before/after showcase. Perfect for showcasing before/after transformations directly on your Homepage. Makes your app look professional!lib/config/config_en.json and configure as below+ {
+ "layout": "imageCompare",
+ "beforeImage": "...",
+ "afterImage": "...",
+ "trackWidth": 3.0,
+ "borderRadius": 12.0,
+ }Supported: WooCommerce, PrestaShop Apps
Supported: All frameworks
lib/env.dart and configure webViewConfig as below:"webViewConfig": {
+ "handleDynamicLink": true,
}Supported: WooCommerce, MultiVendor (Dokan/WCFM), Shopify, Listing (Listeo/ListingPro/MyListing), Magento, Opencart, Strapi, Prestashop, Notion, BigCommerce, Haravan, GPT, WordPress
lib/env.dart file, in authConfig, set true or false for showContinueAsGuestInLogin as below:"authConfig": {
+ "showContinueAsGuestInLogin": false,
}Supported: WooCommerce, MultiVendor (Dokan/WCFM)
Supported: PrestaShop | β οΈ BREAKING CHANGE
product_feature_values, product_features, product_price_rangeSupported: PrestaShop, WebApp
"dynamicLinkConfig": {
"serviceConfigs": {
"selfhosted": {
"customPaths": {
"product": [
+ "/category_link_rewrite/",
],
},
},
},
}Supported: Vendor Admin (Manager App)
Supported: WooCommerce, MultiVendor (Dokan/WCFM)
"vendorConfig": {
+ "DisableVendorAddAttribute": false,
}Supported: Vendor Admin (Manager App)
Supported: Listing (Listeo/ListingPro App)
lib/env.dart and configure as below: "productDetail": {
+ "expandFAQs": true,
}Supported: Listing (Listeo App)
Supported: Listing (Listeo)
Supported: Listing (Listeo/ListingPro/MyListing App)
Supported: Listing (Listeo App)
Supported: All frameworks | β οΈ BREAKING CHANGE
authConfig structure in the file lib/env.dart to support flexible sign-up fields and modern provider config.+ "authConfig": {
+ "defaultMethod": "emailPassword",
+ "providers": { ... },
+ "registration": {
+ "email": {"show": true, "require": true},
+ "firstName": {"show": true, "require": true},
+ "lastName": {"show": true, "require": true},
+ "phone": {"show": false, "require": false},
+ "username": {"show": true, "require": false},
+ },
+ }Supported: All frameworks
Supported: All frameworks | β οΈ BREAKING CHANGE
advanceConfig in the file lib/env.dartinto dedicated currencyConfig."advanceConfig": {
- "DefaultCurrency": ...,
- "Currencies": ...,
- "EnableWOOCSCurrencySwitcher": true
}
+ "currencyConfig": {
+ "defaultCurrencyCode": "USD",
+ "currencies": [...],
+ "enableWOOCSCurrencySwitcher": true,
+ }MODIFY_AUDIO_SETTINGS).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)
Supported: Listing (Listeo)
Supported: Listing (Listeo/ListingPro/MyListing)
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 loadednull to String when parsing blog post image URL in ShopifyBlogconnectivity_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 --iosSupported: WooCommerce, MultiVendor (Dokan/WCFM)
Pending payment status β a Pay button is shown on the Order Confirmation and Order History screenslib/env.dart:"paymentConfig": {
"EnableWebviewCheckout": false,
"EnableNativeCheckout": true,
+ // Only works when EnableNativeCheckout is true
+ "EnableHybridPayment": true,
},Supported: WooCommerce | Currency: GMD only
lib/env.dart:"modemPayConfig": {
"paymentMethodIds": ["modempay"],
"publicKey": "pk_test_...", // for getCheckoutUrlViaForm
"paymentMethods": ["wallet", "card", "bank"],
"returnUrl": "fluxstore://inspireui.com",
"production": false,
"enabled": true,
},Supported: All frameworks | β οΈ BREAKING CHANGE
dynamicLinkConfig in lib/env.dart:"dynamicLinkConfig": {
"type": "selfhosted",
"serviceConfigs": {
"selfhosted": {
"supportedDomains": ["yourdomain.com"],
"handleHttpsLinks": true,
"handleCustomScheme": true,
"customScheme": "fluxstore",
},
},
},apple-app-site-association (no extension) to https://yourdomain.com/.well-known/apple-app-site-association with Content-Type: application/jsonassetlinks.json to https://yourdomain.com/.well-known/assetlinks.jsonwebsiteUrl and websiteDomain in configs/env.props/product/*, /product-category/*, /collections/*, /brand/*, /product-tag/*, /store/*, /listing/*, /blog/*, /post/*Supported: WooCommerce (WooCommerce Appointments plugin), Serverless (Firebase) | β οΈ BREAKING CHANGE
Supported: Listing (Listeo) | β οΈ BREAKING CHANGE
"booking" to the defaultSettings array in lib/env.dart or lib/config/config_xx.json when upgrading:"defaultSettings": [
...
+ "booking",
...
],Supported: Listing (Listeo, ListingPro, MyListing)
productDetail in lib/env.dart:"productDetail": {
// Only for Listeo
"expandEventsCategories": true,
"expandServicesCategories": true,
"expandRentalsCategories": true,
"expandClassifiedsCategories": true,
// Only for FluxStore Listing (ListingPro/MyListing)
"expandRegions": true,
"expandFeatures": true,
// Not supported for Listeo, MyListing
"expandTags": true,
}Supported: All frameworks
emptyImage and boxFit options to wishListConfig in lib/env.dart to customize the image shown on an empty Wishlist screen"wishListConfig": {
...
+ "emptyImage": "assets/images/empty_wishlist.png",
+ "boxFit": "contain",
},Supported: All frameworks (except GPT, WordPress, Vendor Admin, Delivery, WebApp)
null, the default RTL behavior applies)imageOnLeft option for product layouts using "layout": "listTile" in lib/config/config_xx.json{
"layout": "listTile",
+ "imageOnLeft": false,
}Supported: WooCommerce, MultiVendor (Dokan/WCFM) | β οΈ BREAKING CHANGE (backward-compatible)
walletConfig block in lib/env.dartteraWalletName option: set a custom wallet brand name globally without overriding individual translation strings"advanceConfig": {
- "EnableTeraWalletWithdrawal": false,
},
+"walletConfig": {
+ "enableTeraWallet": false,
+ "enableTeraWalletWithdrawal": false,
+ "teraWalletName": null, // null = use default "TeraWallet" name
+},Note: Oldenv.dartconfigs remain backward-compatible. MultiSite: useconfigurationsper site to enable/disable wallet, instead ofwalletEnabledinmultiSiteConfig.
Supported: FluxStore MAX | β οΈ BREAKING CHANGE
lib/config/config_xx.json β previously it was hardcodedshowSwitcherSite in HorizonLayout > logo:{
"HorizonLayout": [
{
"layout": "logo",
"showMenu": true,
"showSearch": true,
"showLogo": true,
+ "showSwitcherSite": true,
"enableBackground": true
}
]
}multisites_switcher type{
"AppBar": {
"showOnScreens": [
"home"
],
"enable": true,
"snap": true,
"pinned": true,
"floating": true,
"elevation": 0,
"alwaysShowAppBar": true,
"items": [
{
+ "type": "multisites_switcher",
"pos": 400,
"alignment": "center",
"fontFamily": "CupertinoIcons",
"fontWeight": "400",
"icon": "globe",
"iconSize": 24.0,
"radius": 18.0,
"height": 16.0,
"backgroundColor": "0",
"marginLeft": 4.0,
"marginRight": 16.0,
"marginTop": 4.0,
"marginBottom": 4.0,
"paddingLeft": 4.0,
"paddingRight": 4.0,
"paddingTop": 4.0,
"paddingBottom": 4.0
}
]
}
}showAppBarSwitcherSite from multiSiteConfig (in lib/env.dart) β it is no longer usedSupported: Listing (Listeo)
Supported: Listing (Listeo)
EnableReview renamed to EnablePreview in checkout screen config (all 88 translation files updated) β if you override this key in env.dart or config_xx.json, rename it accordinglyshowAppBarSwitcherSite from multiSiteConfig in env.dart; use showSwitcherSite in FluxBuilder config_xx.json LogoConfig instead (see feature #15)EnableTeraWalletWithdrawal from advanceConfig to new walletConfig.enableTeraWalletWithdrawal block (old env.dart remains backward-compatible β see feature #14)flutter_facebook_auth and facebook_app_events to latest versions β requires Xcode 26.x or later to build for iOScategoryMenuShowDepth config missing from some category menu layoutsconfigs/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 websitelib/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:From Android 15, apps targeting SDK 35 will display edge-to-edge by default. Apps targeting SDK 35 should handle insets to make sure that their app displays correctly on Android 15 and later. Investigate this issue and allow time to test edge-to-edge and make the required updates. Alternatively, call enableEdgeToEdge() for Kotlin or EdgeToEdge.enable() for Java for backward compatibility.
Your app uses deprecated APIs or parameters for edge-to-edge:One or more of the APIs you use or parameters that you set for edge-to-edge and window display have been deprecated in Android 15. Your app uses the following deprecated APIs or parameters:android.view.Window.setStatusBarColorandroid.view.Window.setNavigationBarDividerColorandroid.view.Window.setNavigationBarColor
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 set true or false for showPhoneNumber as below "productCard": {
"showPhoneNumber": true,
...
},lib/env.dart, and set true or false for hideAddress as below: "productCard": {
'hideAddress': true/false,
},hideAddress directly for each design layout in lib/configs/con_en.json file as below:{
"HorizonLayout":[
{
"layout":"", ///twoColumn, threeColumn, fourColumn, card, saleOff, listTile, quiltedGridTile, carousel
"hideAddress":true/false,
...
}
],
"VerticalLayout":{
"name": "Vertical Layout",
"layout":"", ///pinterest, menu, card, columns, columnsWithFilter, topProducts, menuWithCustomCategories
"hideAddress":true/false,
...
}
"TabBar": [
{
"layout": "category",
"categoryLayout": "card", ///card, sideMenuWithSub, columns, topMenu, animation, grid, sideMenuWithSub,
///sideMenuWithGroup
"icon": "assets/icons/tabs/icon-category.png"
},
],
...
}lib/env.dart, and configure as below: "productDetail": {
...
"layout": "flatStyle",
...
}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):lib/env.dart as below: "dynamicLinkConfig": {
"type": "selfhosted",
},lib/configs/config_en.json as below:"TabBar": [
{
"layout": "videos",
"styleVersions": [ // Add the versions you want to display here. You can arrange them in any order you prefer. If not set, only version 1 will be used as the default.
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
],
"icon": "assets/icons/tabs/icon-videos.png"
}lib/configs/config_en.json as below:{
"HorizonLayout":[
{
"layout":"", ///twoColumn, threeColumn, fourColumn, card, saleOff, listTile, quiltedGridTile, carousel
"showProductCardCategory":true,
"showListingType":true,
...
}
],
"Vertical Layout":{
"layout":"", ///pinterest, menu, card, columns, columnsWithFilter, topProducts, menuWithCustomCategories
"showProductCardCategory":true,
"showListingType":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"
},
],
...
}lib/env.dart as below: "productCard": {
"defaultImage": 'assets/images/no_product_image.png',
"showProductCardCategory": true,
"showListingType": true,
...
},lib/env.dart as below: "advanceConfig": {
...,
"Currencies": [
...,
{
'symbol': '\ue900',
'decimalDigits': 2,
'symbolBeforeTheNumber': true,
'currency': 'Saudi Riyal',
'currencyCode': 'SAR',
}
]
}lib/env.dart as below: "afterShip": {
+ "enabled": true,
"tracking_url": "https://fluxstore.aftership.com", // Old URL, not using if `custom_tracking_url` is not empty
+ "custom_tracking_url": "https://fluxstore.aftership.com/{slug}/{trackingNumber}", // Default null
},lib/configs/config_en.json as below: {
"time": 5,
"items": [
{
"id": "[#6ade0]",
"image": "https://trello.com/1/cards/685321344e242df4e72be312/attachments/685b60f57568cc0b3a6825c8/download/David_Arizona_2025_-_IG_Reels_Promo_Voice_Actors.jpg",
"video": "https://animewonderfest.com/wp-content/uploads/2025/06/IG-Reel-arizona-Promo-David-Matranga.mp4"
},
{
"id": "[#aa32b]",
+ "time": 15, // default null
"image": "https://trello.com/1/cards/685321344e242df4e72be312/attachments/685b6044be49b99d81f5342b/download/Matthew_Promo_-_Arizona_2025_-_Reels_-_Announcement_Posts.jpg",
"video": "https://animewonderfest.com/wp-content/uploads/2025/06/IG-Announcement-Arizona-Promo-Matthew-Rudd.mp4"
}
],
"limit": 10,
"layout": "instagramStory",
"usePath": false,
"itemWidth": 100,
"marginTop": 10,
"hideAvatar": false,
"itemHeight": 200,
"marginLeft": 15,
"viewLayout": "media",
"hideCaption": false,
"itemSpacing": 16,
"marginRight": 15,
"marginBottom": 10,
"enableBackground": false,
"itemBorderRadius": 10
}lib/env.dart as below: "vendorConfig": {
...
/// Show Register by Owner (Only for Fluxstore Listing)
"OwnerRegister": true/false,
...
}lib/configs/config_en.json as below for: {
"layout": "logo",
"showSearch": true,
"showLogo": true,
"productType": true/false,
...
}, {
"layout": "header_search",
"productType": true/false,
...
}, {
"layout": "header_text",
"productType": true/false,
...
}, {
"layout": "bannerImage",
"title": {
"productType": true/false,
...
},
...
}, "categoryConfig": {
// Enable this option when the store has more than 100 category items
"enableLargeCategories": true,
"deepLevel": 3,
},MultiSiteSwitcherLayout. This layout enables a fully customizable UI for selecting between multiple storefronts within a single mobile app.MultiSiteSwitcherConfig: Defines the layoutβs global settings and style.MultiSiteSwitcherStoreConfig: Handles individual store styling and folder mapping.MultiSiteSwitcherLayout: The main widget that renders the switcher UI based on the config.env.dart:showAppBarSwitcherSite under multiSiteConfigs.lib/env.dart:"multiSiteConfigs": [
{
"configFolder": "us_store",
"showAppBarSwitcherSite": true
}
]
lib/configs/config_en.json as below:{
"layout": "multiSiteSelection",
"backgroundColor": "#FFEAD5",
"borderRadius": 10.0,
"widthButton": 120.0,
"heightButton": 35.0,
"spacing": 10.0,
"stores": [
{
"folder": "us_store",
"image": "https://example.com/us-flag.png",
"imageSelected": "https://example.com/us-flag-selected.png",
"colorSelected": "#3FC1BE"
},
{
"folder": "vi_store",
"image": "https://example.com/vn-flag.png",
"imageSelected": "https://example.com/vn-flag-selected.png",
"colorSelected": "#FF6B6B"
}
]
}multiSiteConfig._updateCurrencyForSite method to handle updating currency and country when a new site configuration is selected.currencyCode, the app will attempt to find a matching currency from the kAdvanceConfig.currencies list.countryCode is also provided in the site config, it will override the country code of the found currency.currencyCode is not found or not provided, the app will fall back to the kAdvanceConfig.defaultCurrency.getPrefConfig method now prioritizes currency and country settings from multiSiteConfig before falling back to kAdvanceConfig.defaultCurrency or persisted settings.changeMultiSite, the currency and country are now updated according to the new site's settings.configs/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...
"advanceConfig": {
...
"OptimizeImage": {
"enable": true,
"plugin": "optimole" // Support "re-generate-image" plugin (old) & "optimole" plugin (new)
},
...
}
...dart file, set enabled: true for loyaltyConfig to enable loyalty feature.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",....
}lib/env.dart file as below:"advanceConfig": {
/// false: show category menu as Text https://tppr.me/v3bLI
/// true: show as Category Image
"categoryImageMenu": true,
}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):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/config/config_en.json as below:{
"HorizonLayout": [
{
"layout": "bannerImage",
"isSlider": true,
...
"indicatorPadding": {
"bottom": 12,
"start": 30
},
"alignmentNumber": {
"value": "topEnd" // topStart, topCenter, topEnd, centerStart, centerCenter, centerEnd, bottomStart, bottomCenter, bottomEnd
}
"indicatorAlignment": {
"value": "topCenter" // topStart, topCenter, topEnd, centerStart, centerCenter, centerEnd, bottomStart, bottomCenter, bottomEnd
},
...
},
...
],
...
}lib/env.dart file and add the phonepeConfig 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
},pointsOfflineStoreConfig in lib/env.dart file:"pointsOfflineStoreConfig": {
"enabled": false,
"usePointRateForOnePoint": 1, // 1 point = 1$
"addPointRateForOnePoint": 100, // 1 point = 100$,
"cardName": "FluxStore Card"
},"EnablePointReward": truelib/config/config_en.json as below:"productCategoryMenuStyle": "tabβconfigs/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):configs/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):flutter --versionflutter channel stable
flutter upgrade --force
flutter clean
flutter pub getconfigs/env.props file (if not input, the app will crash):flutter precache --iosconfigs/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):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):showRating parameter to the Product Details screen π "vendorConfig": {
...
/// Show/Hide store contact info in VendorChat and Vendor detail screen
"HideStoreContactInfo": true/false
}"AutoSelectFirstAttribute"=false and "AlwaysShowBuyButton"=true."productDetail": {
/// Set true by default, the new UX always displays the `Buy now` and `Add
/// to cart` button on the product detail page. In case the product is out
/// of stock or not available, it will still be displayed but will be
/// disabled. If set false, there is only a `Unavailable` or `Out of stock`
/// button on the product detail page as old UX does.
"alwaysShowBuyButton": true,
...
}EnableBottomAddToCart option, it will open the Add To Cart dialog, whereas if Disable it will navigate to the Product details screen.configs/env.props file (if not input, the app will crash): {
"type": "url",
"data": "https://odnaworld.com/price-alert-app/",
"height": 50.0,
"spacing": {
"margin": null,
"padding": null
},
"script": null,
"navigator": null,
"layout": "webEmbed"
}, {
"type": "url",
"data": "https://odnaworld.com/price-alert-app/",
"height": 50.0,
"spacing": {
"margin": null,
"padding": {
"start": 5.0,
"end": 5.0,
"top": 0.0,
"bottom": 0.0
}
},
"navigator": {
"tag": null,
"showSubcategory": false,
"screen": "category"
},
"layout": "webEmbed"
}, {
"type": "url",
"data": "https://odnaworld.com/price-alert-app/",
"height": 50.0,
"spacing": {
"margin": null,
"padding": null
},
"script": "document.documentElement.style.pointerEvents = \"none\";",
"layout": "webEmbed"
}, {
"type": "iframe",
"data": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/yRlwOdCK7Ho\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe>",
"height": 250.0,
"spacing": {
"margin": null,
"padding": null
},
"layout": "webEmbed"
}, {
"type": "html",
"data": "<script src=\"https://unpkg.com/@dotlottie/player-component@latest/dist/dotlottie-player.mjs\" type=\"module\"></script> \n\n <dotlottie-player src=\"https://lottie.host/f8a15007-36dc-415b-9792-60d5bb8def69/Io1SXJKXFU.json\" background=\"transparent\" speed=\"1\" style=\"width: 300px; height: 300px;\" loop autoplay></dotlottie-player>",
"height": 100.0,
"spacing": {
"margin": null,
"padding": null
},
"layout": "webEmbed"
},env.dart file in your FluxStore Multi Vendorβs source code, then edit the enableVendorChat:"configChat": {
"EnableSmartChat": true,
"enableVendorChat": true,
"UseRealtimeChat": false,
"showOnScreens": ["profile"],
"hideOnScreens": [],
"version": "2",
}configs/env.props file (if not input, the app will crash):intl_phone_number_input to the latest version β¬οΈconfigs/env.props file (if not input, the app will crash):