Feature request from mage2pro, posted on GitHub Nov 20, 2015
As I understand, the preference should be avoided, and in 99% cases a usage of preference is an extension's developer fault (a lack of skill with plugins, observers, and other techniques) and in the remain 1% cases it is Magento 2 core fault (for example, if the problem core method is static or protected and there is no other way to change the system behaviour, see https://github.com/magento/magento2/issues/2265#issuecomment-154351312 and https://github.com/magento/magento2/issues/2202#issuecomment-151599087).
Anyway, I think, the system should warn the administrator that the installation could break other extensions.
... View more
Feature request from markoshust, posted on GitHub Dec 09, 2015
Current action:
I can click Submit Order without selecting a shipping method.
Desired action:
I should not be able to click Submit Order until a shipping method is selected.
Additional Notes:
If a shipping method is selected, I do receive an error after the form submission that a shipping method wasn't selected. However, this is undesired as it requires a full page refresh and resubmission.
v2.0.0
... View more
Feature request from vesan-83, posted on GitHub Jan 13, 2016
Actually this problem is actual for Magento 1 but I see it's still not fixed for Magento 2.
Refresh index is based on queue which is filled by triggers which adds entities to the queue even if entity values were not updated.
Lot of projects have custom modules like product import and other modules which do something with product attributes, for example, disable products without images so that SQL query match many rows but change only few of them so that triggers can generate queue faster than refresh index manage it.
It can be fixed easily by adding to the triggers "IF !(NEW.value <=> OLD.value)" condition.
... View more
Feature request from mc388, posted on GitHub Mar 14, 2016
Steps to reproduce
Install Magento v2.0.2
Create a new API method
Change method phpdoc from @return \Magento\Sales\Api\Data\OrderInterface Order interface to @return OrderInterface Order interface and add a use statement for Magento\Sales\Api\Data\OrderInterface
Call the new API method
Expected result
API should return an OrderInterface object
Actual result
Class OrderInterface does not exists
I think the issue is in Magento\Framework\Reflection\TypeProcessor->getGetterReturnType . You just read the @return flag but ignore the use statement.
... View more
Feature request from zhiyicai, posted on GitHub Jul 21, 2016
The JPG compression on Magento 2.1 is very strong, so that the quality of product images get really bad in Catalog and Product view. How can I change the Image compression for JPG's in Magento 2.1 ?
... View more
Feature request from ihor-sviziev, posted on GitHub Aug 23, 2016
I have CORS requests issue with fonts when I using CDN. In order to fix it I'm changing my .htaccess. During deployment I do composer install. After that my changes were reverted.
Preconditions
Magento 2.1.0 installed via composer
Base Static URL is CDN domain (CloudFront in my case)
Steps to reproduce
Install Magento 2 via composer
Change your file pub/static/.htaccess (as example add Header set Access-Control-Allow-Origin "*" )
Remove vendor directory
Do composer install
Expected result
My pub/static/.htaccess file should not be overridden.
Actual result
My pub/static/.htaccess file is overridden and my changes were reverted.
Possible solutions:
Do not add this file to map listing in composer.json of magento2-base package, move it to magento/product-community-edition package
Add ability to override htaccess
... View more
Feature request from vesan-83, posted on GitHub Aug 18, 2016
"composer install" command overwrite modifications in mapped files (files from composer.json -> extra.map node of magento/magento2-base module).
Preconditions
Magento 2.1.0
Steps to reproduce
Clone the project where any of mapped file is customized e.g. pub/index.php or dev/tools/grunt/configs/themes.js
Run "composer install"
Expected result
Customized file will stay customized so that "composer install" will not touch existing files.
Actual result
Customized file is replaced by default one
... View more
Feature request from colinmollenhour, posted on GitHub Sep 08, 2013
It seems that with all of the module components being moved into the app/code directories that the name "code" for this directory is far too specific and "modules" would be more appropriate.
... View more
Feature request from CodeMonkey90, posted on GitHub Aug 04, 2014
Some time ago, I've written a module that generates a "category" page (product list) for each manufacturer. Naturally, our client wanted to be able to add CMS blocks to certain manufacturer pages, so I made my extension generate layout handles and took a look at the Widget Instance editor to figure out how to extend the "Layout Updates" chooser properly to allow users to select certain manufacturers like you can already select products and categories. After looking at the code for some hours (especially the JavaScript code), I eventually gave up and added another grid to the backend which allows users to associate manufacturers with CMS Blocks.
The solution I ended up with is not very flexible and kind of defeats the purpose of the "Widget Instance" admin page. It would be great if that could actually be a centralized point where users could add Widgets to arbitrary pages, like it's supposed to be. But so far, there doesn't seem to be a way to extend it properly for modules which generate layout handles dynamically. It would be great for both module developers and admin users if this possibility could be added.
... View more
Feature request from fooman, posted on GitHub Jan 02, 2015
It would be great if all the xml schemas (referenced via xsi:noNamespaceSchemaLocation) could be hosted online and versioned. Until developer RC this could be named draft.
... View more
Feature request from colinmollenhour, posted on GitHub Aug 19, 2014
MySQL decimal storage uses a minimum of 4 byes and can store 9 digits in these 4 bytes. Going up to 6 bytes you can store 13 digits.
In most cases decimal(9,3) is sufficient and it would save 2 bytes per row/column. The maximum value would be 999,999.999 (1 million) instead of 99,999,999.9999 (100 million). Unless you are selling original artwork in Iranian Rial this should be sufficient. Also according to the ISO list of currencies there are no currencies which use 4 decimal places (but plenty that use 3, so 2 is not acceptable).
For aggregation tables the better storage type would be decimal (13,3) since still 4 decimals are not needed and 13 takes the same storage space as 12. So for the same storage you can store numbers 100 times larger.
It may seem like a minor optimization but in Magento 1 my sales_ tables currently have over 500 decimal(12,4) columns (some are third-party). 2 bytes 500 columns * 1 million rows is almost 1GB of storage, not to mention the indexed columns. Not huge, but quite significant.
While you're at it, the report_event_types.event_type_id and report_event.event_type_id and report_event.subtype should be tinyint instead of smallint. Maybe these were removed or already changed in M2.. There are probably other columns that could be optimized as well. I think there is even a strong case to be made for changing store_id to "tinyint unsigned" throughout since operating over 256 stores is an edge case.
I realize the DBMS abstraction may be an impediment to this change but considering only MySQL is actually supported I think that is far less important than a database that isn't wasteful of resources.
Lastly, for anyone who is an edge case and decimal(9,3) is not sufficient it should be quite easy to install Magento, dump the database, use sed or a text editor to do a simple replacement and then re-import.
... View more
Feature request from HirokazuNishi, posted on GitHub May 06, 2015
Magento1.x has serious issues of discarding decimals for some currencies (e.g. JPY, KRW, VND...).
These currencies don't use under decimal numbers for currency.
If merchants that hope to use these currencies, they have to use 3rd party extensions.
Is it possible to add some configurations for handling under decimal numbers of currency?
... View more
Feature request from dbsdsun, posted on GitHub May 18, 2015
Problem:
One block may template files. The Module Name is used to determine the template file location.
MoudleB_BlockB can extend ModuleA_BlockA by specification in di.xml as following:
In this case, the MoudleB_BlockB should use ModuleA as its module name, rather than MoudleB.
Solution:
Set target module name when generating a block as follwing. And this is last chance to set target module name.
in file lib/internal/Magento/Framework/View/Layout/Generator/Block.php, after line 157, add one line
line155. $block = $this->createBlock($className, $elementName, [
line156. 'data' => $this->evaluateArguments($data['arguments'])
line157. ]);
new line. $block->setModuleName($block->extractModuleName($className));
line158. if (!empty($attributes['template'])) {
line159. $block->setTemplate($attributes['template']);
line160. }
... View more
Feature request from SKovbel, posted on GitHub Jun 07, 2015
Small question, could you add column 'Attribute Id' to grid "Product Attributes" in backend?
Column very useful for production site, its support and developing
when you want to sort attributes by last created or separate by new and system, sync,.
Alphabetic sorting by code not the same.
Sometimes also lacks Attribute Set Id from "Product Templates" :)
... View more
Feature request from nevvermind, posted on GitHub Jun 18, 2015
As Composer packages get used more and more, if not careful, some of their extra configuration may clash at some point in the future.
Not only that, but having an en-gross extra object, it won't be easy to figure out which config belongs to what package.
It would be great if Magento 2 would spearhead good practice (in my opinion at least) and use namespaced configs. We already have the best candidate for this: the package vendor + name combo - magento/magento2ce :
"extra": {
"magento": {
"magento2ce": {
"component_paths": {
"package-specific": "stuff"
}
}
}
}
If not good practice, at least M2 will shield itself from possible conflicts with other package configs.
This seems like a small change anyway. But with lots of benefits from where I'm standing.
... View more
Feature request from danslo, posted on GitHub Aug 15, 2015
There are things like Magento\Customer\Block\Adminhtml\Edit\BackButton which don't contain any customer specific functionality, preferably they should be moved to a more generic place ( Magento\Framework\View or Magento\Ui ?) so other modules can make use of them without having dependency on Magento_Customer .
... View more
Feature request from mage2pro, posted on GitHub Sep 30, 2015
The issue is similar to (but not the same as) https://github.com/magento/magento2/issues/1909 and https://github.com/magento/magento2/issues/1980
My fix with plugins: https://mage2.pro/t/96
Surely the possibility to translate product attributes should be in the core.
... View more