Feature request from mage2pro, posted on GitHub Nov 16, 2015
https://mage2.pro/t/topic/209
... View more
Feature request from augsteyer, posted on GitHub Feb 03, 2016
I believe this is a bug where I am trying to pass a JSON object like this
{
"action":"get_setting",
"settings":
[
{
"name": "t",
"value": "p"
}
]
}
Where the interface looks like this
/**
* @param string $action
* @param array[][] $settings - the type here is the problem area
*
* @return string
*/
public function setSettings($action, $settings);
I have currently tried many variations of string[][], array[], string[], mixed[], Array[], etc, without any way of passing settings without getting an error thrown at the lib/internal/Magento/Framework/Webapi/ServiceInputProcessor.php::process() function.
The root cause of the problem is that in lib/internal/Magento/Framework/Webapi/ServiceInputProcessor.php::convertValue() it has no way of parsing array of arrays. If it's something like "string[][]" it will consider it a simple type and will try to match it to !settype(array(...), string), which results into an error. If it's something unknown like array[][]. It will consider it complex, and try to initialize it as a class, where it will figure out that 'array' is not a class.
A way of solving, would be to make array a simple type, however I do not know the implications of such change, hence why it's not a pull request. The change would also allow this case to be accepted whether it's array[][] or array[] or array, so most likely not a good solution.
lib/internal/Magento/Framework/Reflection/TypeProcessor.php::isTypeSimple()
...
return in_array(
$type,
[
self::NORMALIZED_STRING_TYPE,
self::NORMALIZED_INT_TYPE,
self::NORMALIZED_FLOAT_TYPE,
self::NORMALIZED_DOUBLE_TYPE,
self::NORMALIZED_BOOLEAN_TYPE,
self::NORMALIZED_ARRAY_TYPE //'array' <------
]
);
... View more
Feature request from ajpevers, posted on GitHub Feb 12, 2016
It would be helpful if pending entries in cron_schedule are deleted when changing a cron job's config:
I've changed the config from 09:50:00 to 09:55:00 and then to Enabled: No.
In between changing the config settings i ran: magento cache:clean config && magento cron:run .
The result was this:
At the moment that the cron is turned off by config it will still run based on the cron_schedule entry:
Here the config was off, but the cron job will still run.
AOE_Scheduler has a nice fix for this and it reschedules the job at the moment you change the configuration. It would be nice if Magento itself would at least remove the pending schedules on config change.
... View more
Feature request from avoking100, posted on GitHub Feb 05, 2016
Hello guys. New to Github, New to M2, New to bugs.
When I add a new "Configurable product" I need to choose "weight". Now, since I dont have weight for this product, I choose "Weight" = No.
When I create configurations for this product, i see it generates VIRTUAL products instead of SIMPLE products. The problem is I want SIMPLE products, even I do not have a weight (!).
After I load the product again I See "Weight" =" yes", I try to save it as "NO" but it always keep showing "yes".
Now, the problem with Virtual products that are generated, is: when I go to checkout selection these products it does not offer me to enter shipping address. So this issue is critical for me. I can not make SIMPLE products using a "Configurable product" because I do not have a weight?
I hope anyone can help me and confirm it is a bug.
Thank you!
... View more
Feature request from miguelbalparda, posted on GitHub Feb 15, 2016
While trying to use the new performance tool on a Magento 2.0.2 with Sample data I can only get a couple of admin requests and the test ends. Below is the command I'm using and the output and logs.
michael@michael-HP-Pavilion-15-Notebook-PC:~/Downloads/apache-jmeter-2.13$ ./bin/jmeter -n -t bench.jmx -Jhost=xxxx.net -Jbase_path=/ -Jramp_period=3000 -Jreport_save_path=./ -Jguest_checkout_percent=4 -Jview_catalog_percent=62 -Jview_product_add_to_cart_percent=10 -Jorders=2000 -Jadmin_path=admin_41207x -Jadmin_user=admin -Jadmin_password=admin123 -Jloops=10
Creating summariser
Created the tree successfully using bench.jmx
Starting the test @ Mon Feb 15 09:52:54 ART 2016 (1455540774295)
Waiting for possible shutdown message on port 4445
summary + 4 in 6s = 0.7/s Avg: 1457 Min: 8 Max: 3027 Err: 0 (0.00%) Active: 1 Started: 1 Finished: 0
summary + 3 in 8.3s = 0.4/s Avg: 2698 Min: 2205 Max: 2983 Err: 1 (33.33%) Active: 0 Started: 0 Finished: 0
summary = 7 in 14.2s = 0.5/s Avg: 1989 Min: 8 Max: 3027 Err: 1 (14.29%)
Tidying up ... @ Mon Feb 15 09:53:08 ART 2016 (1455540788693)
... end of run
... View more
Feature request from stefandoorn, posted on GitHub Feb 12, 2016
The way the ErrorHandler is loaded in Framework\App\Bootstrap probably prevents interception on the ErrorHandler class. Reason I would like to use this, is to adjust the ErrorHandler in a more developer friendly version (Whoops).
It makes sense, as the error handler needs to be registered before the object manager will be loaded. But, it would be great if there is a method to register another error_handler after that is done.
So basically it would be:
Register default Magento error handler
Load object manager
Register default Magento error handler again using object manager
The second moment would allow for interception I believe. Or, am I overseeing a method to register a different error_handler?
... View more
Feature request from mikebranderhorst, posted on GitHub Feb 22, 2016
In .gitignore:
/vendor
!/vendor/.htaccess
Should be:
/vendor/*
!/vendor/.htaccess
This way /vendor/.htaccess is added to (private) repository (and with deployment the folder is created).
Maybe also add the third line (to make adding commercial packages possible by artifact)
https://getcomposer.org/doc/05-repositories.md#artifact
/vendor/*
!/vendor/.htaccess
!/vendor/artifacts/.htaccess
# uncomment when using a private repository and want to
# add artifact (commercial) packages to the repository
#!/vendor/artifacts/
Combined with an addition in composer.json
(composer config repositories.artifacts artifact vendor/artifacts)
"repositories": {
"artifacts": {
"type": "artifact",
"url": "vendor/artifacts"
}
},
And to keep the folder adding the file /vendor/artifacts/.htaccess
... View more
Feature request from Yonn-Trimoreau, posted on GitHub Feb 17, 2016
When I observe page_block_html_topmenu_gethtml_before event, just like Magento\Catalog\ObserverAddCatalogToTopmenuItemsObserver does, and add some items to the top.menu , I can't order the items I add (whether it should be displayed before or after category listing, for example).
I think it should be possible, since the "top menu" must be one of the first and most modified element on any website.
Maybe by adding a special \Magento\Framework\DataObject attribute "order" which will be used inside or before Magento\Theme\Block\Html 's _getHtml method, in a way to reorder the \Magento\Framework\Data\Tree\Node before rendering it ?
Or even clearer : adding a $_position property to the Node class, and a non-mandatory variable to the Node class constructor, which could be used in a similar way I expressed before ?
Simple, non-breaking, no performance issue, really useful. Right ?
I can try to make a pull request if you accept this issue.
... View more
Feature request from damien-synolia, posted on GitHub Feb 24, 2016
Hello all,
I just launched the standard PHPUnit test (without the dev:tests:run command) :
php <magentodir>/vendor/phpunit/phpunit/phpunit --debug
I am in <magentodir>/dev/tests/unit directory.
There is a fatal error on Magento\DownloadableImportExport\Model\Import\Product\Type\Downloadable file. On function fillDataLink , there is a fillExistOptions call where $existingOptions is null. It should be an array. It's the same in fillDataTitleLink method.
I just add an ugly fix with a is_null check for $existingOptions and set it to an empty array and it works.
I think the best way should be to change the fetchAll method to always return an empty array, if no data is retrieved in database.
Is there something I did wrong ?
Damien.
... View more
Feature request from wojtekn, posted on GitHub Feb 24, 2016
I created module using "vendor/foobar" name in composer.json and used Vendor_FooBar namespace. The I run static tests and I get following error:
For the module 'Vendor_FooBar', the expected package name is 'vendor/foobar'
This error message is confusing because it says it expects package name I already used. As far as I understand it should say following:
For the module 'Vendor_FooBar', the expected package name is 'vendor/module-foo-bar'
If my assumption is correct, value of $this->convertModuleToPackageName($moduleName) should be used instead of $packageName in message returned in \Magento\Test\Integrity\ComposerTest::assertConsistentModuleName method.
I can do PR if it's helpful.
... View more
Feature request from ravbetsky, posted on GitHub Mar 01, 2016
Each change in requirers-config.js of our module doesn't take any effect. After we had removed pub/static/_requirejs/frontend/Magento/luma/en_US/requirejs-config.js our changes applied.
... View more
Feature request from pantaoran, posted on GitHub Mar 23, 2016
I observe that in app/code/Magento/Store/Model/ScopeInterface.php there are 5 different scope type constants which are ambiguous and probably should be unified.
interface ScopeInterface
{
/**#@+
* Scope types
*/
const SCOPE_STORES = 'stores';
const SCOPE_WEBSITES = 'websites';
const SCOPE_STORE = 'store';
const SCOPE_GROUP = 'group';
const SCOPE_WEBSITE = 'website';
/**#@-*/
}
Both "store/stores" and "website/websites" exist once in singular and once in plural. It is not clear to the developer in any way which one should be used.
We ran into this problem today in our team, where I wrote code to set some config values, and another team member wrote code to read them, but I used the plural constants and he used the singular ones. We didn't notice the problem for weeks because we always tested with the default config values and didn't bother to set storeview-specific ones, and even when we did, I guess they must use a fall-back to default scope values when the store specific ones are not found.
I searched through the core code for use, and both versions seem to be used, although the singular versions are used much more often. Can we please simplify this important interface to only use one spelling per type?
Or is there a compelling reason to keep both singular and plural for these that I'm not understanding? I feel strange for bringing this up here because I can't possibly be the first person to notice this...
... View more
Feature request from wojtekn, posted on GitHub Mar 03, 2016
This isn't something big, but I think it may be worth to improve both phpunit.xml.dist files to make them working in similar way by default. For now the biggest difference is that integration tests don't include whole app/code but limit code coverage only to Magento code:
<directory suffix=".php">../../../app/code/Magento</directory>
Unit tests enable everything from app/code by default:
<directory suffix=".php">../../../app/code/*</directory>
Another improvements may include adding logging configuration example in integration tests and adjusting nodes order.
... View more
Feature request from davidverholen, posted on GitHub Mar 20, 2016
this is more of a minor design issue. I recently needed a method to normalize a file system path.
Looking at the core, I found the method(s) for this, but implemented directly in the classes where they are used:
https://github.com/magento/magento2/blob/2d82d19010a2deee42ab67e62627b84169f0ab8a/lib/internal/Magento/Framework/View/FileSystem.php#L169
https://github.com/magento/magento2/blob/2d82d19010a2deee42ab67e62627b84169f0ab8a/lib/internal/Magento/Framework/Setup/SampleData/FixtureManager.php#L62
As I did not really need any of the classes, I implemented this method (a third time) in my own class.
A good place would be maybe the Frameworks File System Class: https://github.com/magento/magento2/blob/2d82d19010a2deee42ab67e62627b84169f0ab8a/lib/internal/Magento/Framework/Filesystem.php
What do you think about it? I could start a small pull request for that
... View more
Feature request from erikhansen, posted on GitHub Mar 08, 2016
I'm using Capistrano to deploy Magento 2 to production and stage environments. As a part of the deployment process, I'm running the bin/magento setup:static-content:deploy command. However since Capistrano streams all output to screen, I see this:
So I've resorted to passing in the -q flag to silence all output: bin/magento setup:static-content:deploy -q . However this doesn't allow me to see progress as each theme is compiled. I'd like to see a flag added like --no-progress that would result in output like this:
php -f bin/magento -- setup:static-content:deploy --no-progress
Requested languages: en_US
=== frontend -> Magento/blank -> en_US ===
=== frontend -> Magento/luma -> en_US ===
=== frontend -> Customvendor/customtheme -> en_US ===
... View more
Feature request from 11mb, posted on GitHub Jun 30, 2016
Steps to reproduce
Install Magento 2.1
Login to admin
Goto Content >> Pages
Click Edit button for homepage
Edit content
Select text and click insert link
Click browse
Expected result
A list of links to cms pages, categories and products
Actual result
The mediabrowser opens
... View more
Feature request from katesuykovskaya, posted on GitHub Mar 26, 2016
Steps to reproduce
M 2.0.2
go to admin panel -> Products -> Catalog -> edit product
open Images and Videos tab, click on image - dialog is shown
open source of page
Actual result
each time, when modal dialog is created, the old one isn't removed from DOM => when I choose images a lot of time, I got this
which makes using current / active dialog inconvenient using JS.
Expected Result
I should get one dialog, or at least one dialog per chosen image - it should not be duplicated.
... View more
Feature request from bartek9007, posted on GitHub Jul 01, 2016
Steps to reproduce
Install Magento from develop branch.
Adding products programatically
Trying to edit added product and save it.
One of required attribute is null
Expected result
If I try to save product with required attribute Magento should abort it and point out which attribute is empty.
If it is not visible on menu it should automatically scroll down to its group.
Actual result
Button 'save' freezes out.
Attribute is pointed out with red triangle but if its group is out of current scope of view Magento doesn't scroll down to its group.
I have to scroll down in search of the group and attribute with error.
So it's quite uncomfortable and not intuituive if there is an error in very low sort order group becauce button 'save' just freeze and in the begining you don't know why it's not saving results.
... View more
Feature request from omdeshpande, posted on GitHub Jul 03, 2016
AOP implemented by the Plugins in Magento2 a good framework feature.
Currently, these AOP overrides work on the basis of one class at a time. What could be a great addition to this, is to have Spring (Java) like 'Pointcut patterns'. Pointcut patterns will make it possible to inject 'before', 'after' and 'around' to multiple functions and classes through a single statement. It will make plugin definitions more powerful and efficient. Would be great for something like logging.
Sample - http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html
If this makes sense to you guys, I'm open to contributing. Will be great to hear your thoughts!
... View more
Feature request from rkhoury82, posted on GitHub Mar 31, 2016
Steps to reproduce
Install Magento 2.0.3
Migrate or create a Configurable Product with 300 variations, save.
Go back into that product, press the "add products manually"
Expected result
With products with smaller variation sets the functionality works
I have increased the LimitRequestLine to work around 414 (Request-URI Too Large) error (per issue #3495)
I have not been able determine the size limit yet.
Actual result
Error Message Pops: Attention Something went wrong.
No browser messages in console.
Error in Apache Logs:
[Thu Mar 31 18:34:14.139835 2016] [proxy_fcgi:warn] [pid 4968] [client 60.225.85.XXX:37893] AH02536: couldn't encode envvar 'QUERY_STRING' in 16384 bytes, referer: http://EXAMPLE/admin/catalog/product/edit/id/3/key/81f78988e9908f8d89115a62f01eacdd8611886ce257a56bd9ec6c22d83930e6/
[Thu Mar 31 18:34:14.139840 2016] [proxy_fcgi:warn] [pid 4968] [client 60.225.85.XXX:37893] AH02536: couldn't encode envvar 'REQUEST_URI' in 16384 bytes, referer: http://EXAMPLE/admin/catalog/product/edit/id/3/key/81f78988e9908f8d89115a62f01eacdd8611886ce257a56bd9ec6c22d83930e6/
Environment
PHP 7.0.4 run as FPM not MOD_PHP (unable to test with 7.0.2 or 7.0.3 to see if it is a PHP error)
Apache 2.4.18
MYSQL 5.6
... View more