MageCart

This project is inspired from troublediehard/magento-react-native. MageCart is an e-commerce app for Magento 2.1 onwards. It consumes Magento 2 REST API to display catalog, products, add products to cart and let you place order. Checkout getting started section for installation.

Getting Started

Follow these instructions to build and run the project

Magento Admin
  1. System > User Roles > Add New role
  2. Enter role name (Ex. Mobile) in 'Role Info' tab
  3. Select Resource Access to 'All' under 'Role Resource' tab
  4. Save Role
  5. System > All users > Add New User
  6. Enter username, password and other details in 'User Info' tab
  7. Select newely created user role(Ex. mobile) in 'User Role' tab
  8. Save User
React Native Project setup
  1. Clone this repository.
  2. Run npm install
  3. Set Magento base url to url param in src/config/magento.js
  4. Replace username and password in magento.js with above created username and password
  5. react-native run-ios (for iOS) and react-native run-android (for Android)
Home screen setup
  1. Go to Magento Admin
  2. Content > Blocks > Add New Block
  3. Put your config inside Content section (config sample)
  4. save your block and put it's ID in src/config/magento.js to home_cms_block_id param

Prerequisites

Basic knowledge of React Native, Redux, React Navigation along with Redux-Sagas. App is architect using Atomic Architecture and React hooks are used to write functional component. There is tons of functionality to implement, checkout Roadmap section. We follow Git flow for branch management.

Contributing

Code

If you are a developer and you wish to contribute to the app please fork the project
and submit a pull request on the develop branch.

Issues

You can trace the status of known issues here,
also feel free to file a new issue (helpful description, screenshots and logcat are appreciated)

Translations

If you are able to contribute with a new translation of a missing language or if you want to improve an existing one, we greatly appreciate any suggestion!

Suggestion/Ideas

If you have a feature request or idea which will enhance the user experience of app or have better UI design, you can send it via mail or create an issue with heading SUGGESTION.

Roadmap

  • [x] FEATURE: Display categories and products
  • [x] FEATURE: Add to cart for simple and configurable product
  • [x] FEATURE: Login and Signup Screen
  • [x] FEATURE: Show Prices in featured list on Home Screen.
  • [x] ISSUE: Price not getting shown for end products in Category list
  • [ ] FEATURE: Show and update price for configurable product in Product detail screen.
  • [x] FEATURE: Billing Address screen
  • [x] FEATURE: Payment screen and checkout process
  • [ ] FEATURE: Display description and other details in Product detail screen.
  • [ ] FEATURE: Show Reviews screen for a product
  • [ ] FEATURE: Add New Review screen
  • [x] FEATURE: My orders screen
  • [ ] FEATURE: Add to wishlist functionality and whislist screen
  • [ ] FEATURE: Show applicable filter in Category List screen
  • [ ] FEATURE: Forgot password screen
  • [ ] FEATURE: Screen to show bundle products
  • [ ] FEATURE: Add to cart option for downloadable/virtual and bundle products
  • [ ] ISSUE: Navigation drawer rerendering multiple times, without any state change

GitHub