base on This open-source mobile ecommerce app seamlessly transforms your Bagisto store into a powerful mobile platform, providing real-time synchronization of products and categories. <p align="center"> <a href="http://www.bagisto.com"><img src="https://bagisto.com/wp-content/themes/bagisto/images/logo.png" alt="Total Downloads"></a> </p> <p align="center"> <a href="https://twitter.com/intent/follow?screen_name=bagistoshop"><img src="https://img.shields.io/twitter/follow/bagistoshop?style=social"></a> <a href="https://www.youtube.com/channel/UCbrfqnhyiDv-bb9QuZtonYQ"><img src="https://img.shields.io/youtube/channel/subscribers/UCbrfqnhyiDv-bb9QuZtonYQ?style=social"></a> <a href="https://deepwiki.com/bagisto/opensource-ecommerce-mobile-app"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a> </p> # Open Source eCommerce Mobile App [Bagisto](https://bagisto.com/en/) revolutionizes the world of mobile commerce with its open-source eCommerce mobile app solution. This open-source mobile ecommerce app seamlessly transforms your Bagisto store into a powerful mobile platform, providing real-time synchronization of products and categories. With a user-friendly interface, managing orders becomes a breeze, making it an essential tool for tech-savvy individuals and those new to eCommerce. This mobile app, built on the foundation of the Bagisto eCommerce framework and leveraging the robust Laravel stack, offers many features for a comprehensive and efficient mobile shopping experience. The app ensures easy product information management and accelerates time-to-market for your products, all while giving you complete control over your store. # Live Demo Android: <https://play.google.com/store/apps/details?id=com.webkul.bagisto.mobikul> iOS: <https://apps.apple.com/us/app/mobikul-bagisto-laravel-app/id6447519140> # Features The open-source ecommerce mobile app comes with an array of features to improve your customers' shopping experience. ## Interactive Home Page and Search ![enter image description here](https://raw.githubusercontent.com/bagisto/temp-media/master/interactive-homepage-and-search.png) ## All Type Product Supported ![enter image description here](https://raw.githubusercontent.com/bagisto/temp-media/master/product-details.png) ## Dark Mode and Push Notification ![enter image description here](https://raw.githubusercontent.com/bagisto/temp-media/master/dark-theme-and-push-notifications.png) ## Discount Coupons and Guest Checkout ![enter image description here](https://raw.githubusercontent.com/bagisto/temp-media/master/coupon-and-guest-checkout.png) ## Wishlist and Product Category ![enter image description here](https://raw.githubusercontent.com/bagisto/temp-media/master/category%3Dpage-and-wishlist.png) ## Order Details and Product Reviews ![enter image description here](https://raw.githubusercontent.com/bagisto/temp-media/master/order-details-and-product-reviews.png) ## Installation Guide Before beginning with the installation, you will need the following with the mentioned versions - Bagisto Version - v2.3.6 - Android Studio Meerkat | 2024.3.1 Patch 2 - Flutter Version - 3.32.5 - Dart - 3.8.1 - Xcode - 16.3 - Swift - 6.1 Make sure you have installed the [API module](https://github.com/bagisto/headless-ecommerce/) and set this up properly on your bagisto. > NOTE: It is recommended that you run a simple Hello World program in Flutter first before proceeding further so that you are sure that the environment is properly set up. ## Installation Steps ### Clone the repository - Open your terminal or command prompt - Navigate to the directory where you want to save the project - Use the git clone command followed by the repository URL ```sh git clone https://github.com/bagisto/opensource-ecommerce-mobile-app.git ``` ### Install dependencies - Navigate to the project's directory ```sh cd <repository-name> ``` - Run the following command to install the required packages ```sh flutter pub get ``` ### Generate Required files - Navigate to the project's directory ```sh cd <repository-name> ``` - Run the following command to generate the required files ```sh flutter pub run build_runner build --delete-conflicting-outputs ``` ### Connect a device or emulator - Physical Device 1. Enable USB debugging on your device 2. Connect it to your computer using a USB cable. - Emulator 1. Start an Android or iOS emulator using your preferred IDE or tools. ### Run the Project - Use the following command to build and run the project ```sh flutter run ``` ## Minimum Versions - Android: 22 - iOS: 16 ## Configurations Steps ### For Setup Change the baseDomain as per your store **Path:** lib/utils/server_configuration.dart ```sh static const String baseDomain = ‘....’; ``` > Note: Add the value of the complete URL ending with the GraphQL API endpoint. E.g - <https://example.com/graphql> ### For Theme Change the Theme for your app **Path:** lib/utils/mobikul_theme.dart ```sh static const Color primaryColor = Color(***********); static const Color accentColor = Color(***********); ``` ### For Push Notification Service - Android Replace "google-services.json". - iOS Replace "GoogleService-Info.plist". > Helpful Articles > Android → <https://mobikul.com/knowledgebase/generating-google-service-file-enable-fcm-firebase-cloud-messaging-android-application/> > iOS → <https://mobikul.com/knowledgebase/generating-new-googleservice-info-plist-file-fcm-based-project-ios-app/> ### For Application Title - Android 1. **Path:** android/app/src/main/AndroidManifest.xml 2. **Change app name:** android:label="***********" - iOS 1. Go to the general tab and identity change the display name to your app name > For Homepage Header Title - Go to ‘assets/language/en.json’ > (Note: Here, “en” in en.json refers to the languages that would be supported within the application) ### For Splash Screen - For adding Lottie as Splash Screen 1. **Path:** assets/lottie/splash_screen.json 2. After updating the Lottie file, update the ‘splashLottie’ in lib/utils/assets_constants. ```sh static const String splashLottie = "assets/lottie/splash_screen.json"; ``` - For adding an Image as a Splash Screen 1. **Path:** assets/images/splash.png 2. After updating the Image file, update the ‘splashImage’ in lib/utils/assets_constants. ```sh static const String splashImage = "assets/images/splash.png"; ``` ### For App Icon - **Android:** Open the android folder in Android Studio and then right click app > new > Image Asset set Image. - **iOS:** Replace the icons over the path > ios/Runner/Assets.xcassets/AppIcon.appiconset ## Installation Video [![Watch the video](https://i.ibb.co/c6qd31t/thumbnail-1.jpg)](https://www.youtube.com/watch?v=tvm2NUZP9ks) ## API Documentation For the API Documentation, please go through - <https://github.com/bagisto/headless-ecommerce/> ## Usage For detailed usage instructions, refer to the official documentation ## Contributing Contributions are welcome! Follow the contribution guidelines to get started. ## License Bagisto is open-sourced software licensed under the MIT license. ", Assign "at most 3 tags" to the expected json: {"id":"9479","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"