├── CHANGELOG
├── Controller
└── Adminhtml
│ ├── Indexer.php
│ └── Indexer
│ ├── MassReindex.php
│ └── Reindex.php
├── LICENSE
├── README.md
├── USER-GUIDE.md
├── UserGuide.pdf
├── composer.json
├── etc
├── acl.xml
├── adminhtml
│ └── routes.xml
└── module.xml
├── i18n
└── en_US.csv
├── registration.php
├── travis.yml
└── view
└── adminhtml
└── layout
└── indexer_indexer_list.xml
/CHANGELOG:
--------------------------------------------------------------------------------
1 | CHANGELOG: https://www.mageplaza.com/releases/backend-reindex
--------------------------------------------------------------------------------
/Controller/Adminhtml/Indexer.php:
--------------------------------------------------------------------------------
1 | indexerRegistry = $indexerRegistry;
54 |
55 | parent::__construct($context);
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/Controller/Adminhtml/Indexer/MassReindex.php:
--------------------------------------------------------------------------------
1 | getRequest()->getParam('indexer_ids');
43 | if (!is_array($indexerIds)) {
44 | $this->messageManager->addErrorMessage(__('Please select indexers.'));
45 | } else {
46 | try {
47 | foreach ($indexerIds as $indexerId) {
48 | /** @var IndexerInterface $indexer */
49 | $indexer = $this->indexerRegistry->get($indexerId);
50 | $indexer->reindexAll();
51 | }
52 | $this->messageManager->addSuccessMessage(__('Total of %1 index(es) have reindexed data.', count($indexerIds)));
53 | } catch (LocalizedException $e) {
54 | $this->messageManager->addErrorMessage($e->getMessage());
55 | } catch (Exception $e) {
56 | $this->messageManager->addExceptionMessage($e, __('Cannot initialize the indexer process.'));
57 | }
58 | }
59 | $this->_redirect('*/*/list');
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/Controller/Adminhtml/Indexer/Reindex.php:
--------------------------------------------------------------------------------
1 | getRequest()->getParam('id');
42 | $indexer = $this->indexerRegistry->get($indexerId);
43 | if ($indexer && $indexer->getId()) {
44 | try {
45 | $indexer->reindexAll();
46 |
47 | $this->messageManager->addSuccessMessage(__('%1 index was rebuilt.', $indexer->getTitle()));
48 | } catch (LocalizedException $e) {
49 | $this->messageManager->addErrorMessage($e->getMessage());
50 | } catch (Exception $e) {
51 | $this->messageManager->addExceptionMessage($e, __('There was a problem with reindexing process.'));
52 | }
53 | } else {
54 | $this->messageManager->addErrorMessage(__('Cannot initialize the indexer process.'));
55 | }
56 | $this->_redirect('*/*/list');
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2016-present Mageplaza Co. Ltd.
2 |
3 | This License is entered by Mageplaza to govern the usage or redistribution of Mageplaza software. This is a legal agreement between you (either an individual or a single entity) and Mageplaza for Mageplaza software product(s) which may include extensions, templates and services.
4 |
5 | By purchasing, installing, or otherwise using Mageplaza products, you acknowledge that you have read this License and agree to be bound by the terms of this Agreement. If you do not agree to the terms of this License, do not install or use Mageplaza products.
6 |
7 | The Agreement becomes effective at the moment when you acquire software from our site or receive it through email or on data medium or by any other means. Mageplaza reserves the right to make reasonable changes to the terms of this license agreement and impose its clauses at any given time.
8 |
9 | 1. GRANT OF LICENSE: By purchasing a product of Mageplaza:
10 |
11 | 1. Customer will receive source code open 100%.
12 |
13 | 2. Customer will obtain a License Certificate which will remain valid until the Customer stops using the Product or until Mageplaza terminates this License because of Customer’s failure to comply with any of its Terms and Conditions. Each License Certificate includes a license serial which is valid for one live Magento installation only and unlimited test Magento installations.
14 |
15 | 3. You are allowed to customize our products to fit with your using purpose.
16 |
17 | 4. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS
18 |
19 | 5. Installation and Use
20 |
21 | 6. For each new Software installation, you are obliged to purchase a separate License. You are not permitted to use any part of the code in whole or part in any other software or product or website. You are legally bound to preserve the copyright information intact including the text/link at bottom.
22 |
23 | 2. Distribution: You are not allowed to distribute Mageplaza software to third parties. Any distribution without our permission, including non commercial distribution is considered as violation of this Agreement and entails liability, according to the current law. You may not place the Software onto a server that allows access to the Software via a public network or the Internet for distribution purposes.
24 |
25 | 3. Rental: You may not give, sell, sub-license, rent, lease or lend any portion of the Software to anyone.
26 |
27 | 4. Compliance with Applicable Laws: You must comply with all applicable laws regarding use of software products. Mageplaza software and a portion of it are protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. Accordingly, customer is required to treat the software like any other copyrighted material. Any activity violating copyright law will be prosecuted according to the current law. We retain the right to revoke the license of any user holding an invalid license.
28 |
29 | 5. TERMINATION: Without prejudice to any other rights, Mageplaza may terminate this License at any time if you fail to comply with the terms and conditions of this License. In such event, it constitutes a breach of the agreement, and your license to use the program is revoked and you must destroy all copies of Mageplaza products in your possession. After being notified of termination of your license, if you continue to use Mageplaza software, you hereby agree to accept an injunction to prevent you from its further use and to pay all costs (including but not limited to reasonable attorney fees) to enforce our revocation of your license and any damages suffered by us because of your misuse of the Software. We are not bound to return you the amount spent for purchase of the Software for the termination of this License.
30 |
31 | 6. LIMITATION OF LIABILITY: In no event shall Mageplaza be liable for any damages (including, without limitation, lost profits, business interruption, or lost information) rising out of ‘Authorized Users’ use of or inability to use the Mageplaza products, even if Mageplaza has been advised of the possibility of such damages. In no event will Mageplaza be liable for prosecution arising from use of the Software against law or for any illegal use.
32 |
33 | The latest License: https://www.mageplaza.com/LICENSE.txt
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Magento 2 Backend Reindex Free
2 |
3 | > **(Update) 2023-03-09**: This project will be marked as a paid item and no longer be maintained as free. For further updates and technical support, please follow [Magento 2 Backend Tools](https://www.mageplaza.com/magento-2-backend-tools/) for more information. We understand that this change might create inconvenience for our users. However, this is to ensure that the module will be updated with more useful features to support Magento 2 stores better. If you have any concerns or ideas about any features you would like to see, don’t hesitate to [contact us](https://www.mageplaza.com/support/) and leave a request.
4 |
5 | Magento 2 [Backend Reindex](https://www.mageplaza.com/magento-2-backend-reindex/) by Mageplaza allows store admins to update individual or all indexes manually right from the admin backend easily instead of running command line.
6 |
7 |
8 | ## 1. Backend Reindex Documentation
9 |
10 | - [Installation guide](https://www.mageplaza.com/install-magento-2-extension/)
11 | - [User guide](https://docs.mageplaza.com/backend-reindex/index.html)
12 | - [Introduction page](http://www.mageplaza.com/magento-2-backend-reindex/)
13 | - [Contribute on Github](https://github.com/mageplaza/magento-2-backend-reindex)
14 | - [Get Support](https://github.com/mageplaza/magento-2-backend-reindex/issues)
15 |
16 | ## 2. Reindex FAQ
17 |
18 | **Q: I got error: Mageplaza_Core has been already defined**
19 |
20 | A: Read solution: https://github.com/mageplaza/module-core/issues/3
21 |
22 | **Q: How can I select some indexers to reindex?**
23 |
24 | A: You just need to click to select each reindex, then click on Submit to reindex them.
25 |
26 | **Q: How can I select all indexers?**
27 |
28 | A: Yes, you can reindex all easily, select Mass Action box, click Select All then click Submit.
29 |
30 | **Q: I am a store owner. Our store has many admins. How can I set access ability to reindex action for specific accounts only?**
31 |
32 | A: Please go to `System > User Roles > Add new role > Select index management`, save then select admin account to allow access.
33 |
34 | ## 3. How to install Backend Reindex extension for Magento 2
35 |
36 | Install via composer (recommend)
37 |
38 | Run the following command in Magento 2 root folder:
39 |
40 | With Marketing Automation (recommend):
41 | ```
42 | composer require mageplaza/module-backend-reindex mageplaza/module-smtp
43 | php bin/magento setup:upgrade
44 | php bin/magento setup:static-content:deploy
45 | ```
46 |
47 |
48 | Without Marketing Automation:
49 | ```
50 | composer require mageplaza/module-backend-reindex
51 | php bin/magento setup:upgrade
52 | php bin/magento setup:static-content:deploy
53 | ```
54 | ## 4. Highlight Features
55 |
56 | ### Reindex data within Magento 2 admin
57 |
58 | **Magento 2 Reindex extension** allows store owners to choose the indexers easily and reindex them when there are any updates on the data from Index Management section from the admin backend easily.
59 |
60 | For example, some typical indexers are:
61 | - Customer Grid: Rebuild Customer grid index
62 | - Category Products: Indexed category/products association
63 | - Product Categories: Indexed product/categories association
64 | - Product Price: Index product prices
65 | - Stock: Index stock
66 |
67 | 
68 |
69 | ### Reindex all in one click
70 |
71 | **Reindex All Data** allows store owners to submit data which needs to be reindexed in just one click. From the admin backend, it is easy to select all or deselect all the indexes and do actions quickly.
72 |
73 | This is time-saving for store owners in case there are updates on all the data of stores. Instead of running command line with unfamiliar codes, any store admins can reindex data easily from the backend.
74 |
75 | 
76 |
77 | ### Reindex notification
78 |
79 | The notification will appear right after any indexers have been updated. The notification will inform store admins to know that the indexer has been rebuilt successfully.
80 |
81 | When the number of indexers which are reindexed is more than one, there will be a notification about the total of successful updates. Store admins can make sure that their actions are done and check the frontend performance for the final result.
82 |
83 | 
84 |
85 |
86 | ### Access restriction
87 |
88 | Store data is extremely important, so store owners may wish that the access to reindex data can be restricted by admin role.
89 | This can be done easily from the setting index management with specific admin role.
90 |
91 | As a result, store owners can control which admin accounts are allowed to access reindex action in the backend.
92 |
93 | 
94 |
95 | ## 5. Full Magento 2 Reindex Features
96 |
97 | - Enable/ Disable backend reindex
98 | - Reindex data from admin in Magento 2 backend
99 | - Partly reindex or reindex all the indexes
100 | - Notification after finishing reindex
101 | - Allow accessing ability by admin role
102 |
103 |
104 | ## 6. Reindex User Guide
105 |
106 | ### 6.1. Configuration Reindex Section
107 |
108 | From the admin backend, go to `System > Index Management`
109 |
110 | 
111 |
112 | #### Reindex one indexer:
113 |
114 | At the **Action** box, click on **Reindex Data** to reindex each indexer separately.
115 |
116 | 
117 |
118 |
119 | #### Reindex some indexers:
120 |
121 | - Click to select the indexers you need to reindex
122 | - Select **Reindex Data**
123 | - Click **Submit**
124 |
125 | 
126 |
127 | #### Reindex all the indexers
128 |
129 | - Click on **Mass Actions** box, choose **Select All**
130 | - Select **Reindex Data**
131 | - Click **Submit**
132 |
133 | 
134 |
135 | ### 6.2. User roles with reindex
136 |
137 | #### Step 1: Go to `Admin > System > User role`
138 |
139 | 
140 |
141 | #### Step 2: Add a new role resource
142 |
143 | Fill in role information at **Role Information** section
144 |
145 | 
146 |
147 | Select index management role at **Role Resources** section, then click on **Save Role**
148 |
149 | 
150 |
151 | #### Step 3: Set role users for admin accounts, then click on Save Role to finish.
152 |
153 | 
154 |
155 | **People also search:**
156 | - reindex magento 2
157 | - magento 2 reindex from admin
158 | - magento 2 reindex
159 | - how to reindex in magento 2
160 | - magento 2 reindex all
161 | - reindex in magento 2
162 | - magento 2 reindex extension
163 | - reindexing in magento 2
164 | - magento 2.3 reindex
165 | - reindex magento 2 from admin
166 |
167 | **Other free extension on Github**
168 | - [Magento 2 SEO Suite](https://github.com/mageplaza/magento-2-seo)
169 | - [M2 Google Maps](https://github.com/mageplaza/magento-2-google-maps)
170 | - [M2 Delete Orders](https://github.com/mageplaza/magento-2-delete-orders)
171 | - [M2 GDPR Free](https://github.com/mageplaza/magento-2-gdpr)
172 | - [M2 login as customer](https://github.com/mageplaza/magento-2-login-as-customer)
173 | - [M2 Same Order Number](https://github.com/mageplaza/magento-2-same-order-number)
174 | - [M2 Ajax Layered Navigation](https://github.com/mageplaza/magento-2-ajax-layered-navigation)
175 | - [M2 security module](https://github.com/mageplaza/magento-2-security)
176 |
177 |
178 | **Get more [Magento 2 extension on Marketplace](https://marketplace.magento.com/partner/Mageplaza):**
179 | - [M2 Configurable Product Preselect](https://marketplace.magento.com/mageplaza-module-configurable-product-grid-view.html)
180 | - [M2 Payment Restriction](https://marketplace.magento.com/mageplaza-module-payment-restriction.html)
181 | - [M2 Frequently Bought Together](https://marketplace.magento.com/mageplaza-module-frequently-bought-together.html)
182 | - [M2 Shipping Rules](https://marketplace.magento.com/mageplaza-module-shipping-rules.html)
183 | - [M2 Abandoned Cart Email](https://marketplace.magento.com/mageplaza-module-abandoned-cart-email.html)
184 | - [M2 SMTP](https://marketplace.magento.com/mageplaza-module-smtp.html)
185 | - [M2 Shipping Restrictions](https://marketplace.magento.com/mageplaza-module-shipping-restriction.html)
186 | - [M2 Multiple Coupons](https://marketplace.magento.com/mageplaza-module-multiple-coupons.html)
187 | - [M2 Order Attributes](https://marketplace.magento.com/mageplaza-module-order-attributes.html)
188 | - [M2 Barcode](https://marketplace.magento.com/mageplaza-module-barcode.html)
189 |
--------------------------------------------------------------------------------
/USER-GUIDE.md:
--------------------------------------------------------------------------------
1 | ## Documentation
2 |
3 | - Installation guide: https://www.mageplaza.com/install-magento-2-extension/#solution-1-ready-to-paste
4 | - Product page: https://www.mageplaza.com/magento-2-better-change-qty/
5 | - FAQs: https://www.mageplaza.com/faqs/
6 | - Get Support: https://www.mageplaza.com/contact.html or support@mageplaza.com
7 | - Changelog: https://www.mageplaza.com/releases/backend-reindex
8 | - License agreement: https://www.mageplaza.com/LICENSE.txt
9 |
10 | ## How to install
11 |
12 | ### Install ready-to-paste package (Recommended)
13 |
14 | - Installation guide: https://www.mageplaza.com/install-magento-2-extension/
15 |
16 | ## How to upgrade
17 |
18 | 1. Backup
19 |
20 | Backup your Magento code, database before upgrading.
21 |
22 | 2. Remove BackendReindex folder
23 |
24 | In case of customization, you should backup the customized files and modify in newer version.
25 | Now you remove `app/code/Mageplaza/BackendReindex` folder. In this step, you can copy override BackendReindex folder but this may cause of compilation issue. That why you should remove it.
26 |
27 | 3. Upload new version
28 | Upload this package to Magento root directory
29 |
30 | 4. Run command line:
31 |
32 | ```
33 | php bin/magento setup:upgrade
34 | php bin/magento setup:static-content:deploy
35 | ```
36 |
37 |
38 | ## FAQs
39 |
40 |
41 | #### Q: I got error: `Mageplaza_Core has been already defined`
42 | A: Read solution: https://github.com/mageplaza/module-core/issues/3
43 |
44 |
45 | #### Q: My site is down
46 | A: Please follow this guide: https://www.mageplaza.com/blog/magento-site-down.html
47 |
48 |
49 | ## Support
50 |
51 | - FAQs: https://www.mageplaza.com/faqs/
52 | - https://mageplaza.com/contact.html
53 | - support@mageplaza.com
54 |
--------------------------------------------------------------------------------
/UserGuide.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mageplaza/magento-2-backend-reindex/8bb1023eb14255dd4bcf70eb6f334f0793150141/UserGuide.pdf
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mageplaza/module-backend-reindex",
3 | "description": "Magento 2 Backend Reindex Extension",
4 | "require": {
5 | "mageplaza/module-core": "^1.4.5"
6 | },
7 | "type": "magento2-module",
8 | "version": "4.0.1",
9 | "license": "proprietary",
10 | "authors": [
11 | {
12 | "name": "Mageplaza",
13 | "email": "support@mageplaza.com",
14 | "homepage": "https://www.mageplaza.com",
15 | "role": "Technical Support"
16 | }
17 | ],
18 | "autoload": {
19 | "files": [
20 | "registration.php"
21 | ],
22 | "psr-4": {
23 | "Mageplaza\\BackendReindex\\": ""
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/etc/acl.xml:
--------------------------------------------------------------------------------
1 |
2 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/etc/adminhtml/routes.xml:
--------------------------------------------------------------------------------
1 |
2 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/etc/module.xml:
--------------------------------------------------------------------------------
1 |
2 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/i18n/en_US.csv:
--------------------------------------------------------------------------------
1 | "Please select indexers.","Please select indexers."
2 | "Total of %1 index(es) have reindexed data.","Total of %1 index(es) have reindexed data."
3 | "Cannot initialize the indexer process.","Cannot initialize the indexer process."
4 | "%1 index was rebuilt.","%1 index was rebuilt."
5 | "There was a problem with reindexing process.","There was a problem with reindexing process."
6 | "Reindex Data","Reindex Data"
7 | Action,Action
8 |
--------------------------------------------------------------------------------
/registration.php:
--------------------------------------------------------------------------------
1 | dev/tests/static/testsuite/Magento/Test/Less/_files/whitelist/common.txt
56 | - echo "vendor/$COMPOSER_MODULE" > dev/tests/static/testsuite/Magento/Test/Php/_files/whitelist/common.txt
57 | - echo "vendor/$COMPOSER_MODULE/**/*.js" > dev/tests/static/testsuite/Magento/Test/Js/_files/whitelist/magento.txt
58 | - bash ./dev/travis/before_script.sh
59 | script:
60 | - test $TEST_SUITE = "static" && TEST_FILTER='--filter "Magento\\Test\\Php\\LiveCodeTest"' || true
61 | - test $TEST_SUITE = "functional" && TEST_FILTER='dev/tests/functional/testsuites/Magento/Mtf/TestSuite/InjectableTests.php' || true
62 | - if [ $TEST_SUITE == "functional" ]; then dev/tests/functional/vendor/phpunit/phpunit/phpunit -c dev/tests/$TEST_SUITE $TEST_FILTER; fi
63 | - if [ $TEST_SUITE != "functional" ] && [ $TEST_SUITE != "js" ]; then phpunit -c dev/tests/$TEST_SUITE $TEST_FILTER; fi
64 | - if [ $TEST_SUITE == "js" ]; then grunt $GRUNT_COMMAND; fi
65 |
66 |
--------------------------------------------------------------------------------
/view/adminhtml/layout/indexer_indexer_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
23 |
24 |
25 |
26 |
27 |
28 | -
29 |
- Reindex Data
30 | - */indexer/massReindex
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | action
39 | Action
40 | 0
41 | 0
42 | indexer_id
43 |
44 | -
45 |
- Reindex Data
46 | -
47 |
- */*/reindex
48 |
49 | - id
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------