Feature request from IvanChepurnyi, posted on GitHub Mar 04, 2016
It is a proposal for the future pull request, upon product team and dev team approval
1. Scalability Problem
At the moment, Magento database gets unmanageable, when you have URL rewrites for products and categories combined. The problem is in the way how URL rewrite table is build up. Becuase URL rewrite generator creates an entry in a database table for each combination of product and category. So it makes databases with only 3000 of products and 200 categories grow into 600,000 record table for URL rewrites. That limits most of the Magento merchants to create SEO valuable URL structure when they URL rewrites lookup takes more time that it could.
Solution
Use combination algorithm at runtime instead of generating all possible combination of URL. I already had PoC with one of my existing customers on 1.x; I have plans to port to Magento 2.0 if core team would be interested in such performance improvement contribution.
How does combination algorithm work? Let consider we have the following URL:
path1/path2/path3/path4
Then we can chain multiple processors for URL match. In default implementation there will be 2:
Full match processor
Combined processor
Full match processor
Simply lookups the full URL rewrite, if it does not return match, then the next one is used
Combined processor
Splits the given URL in two parts: path1/path2/path3 and path4 . If there is a URL rewrite for the first part and it has the flag, that it is combinable with another record, the processor then makes a request to find URL rewrite target for path4 . By having specific merge algorithms assigned to it (category + product or even more in feature), it will create a virtual rewrite record that will be used to forward the request to a needed target path
How does it affect Canonical Url for a Product?
This algorithm allows to specify canonical category even at runtime, and you don't need to create a separate index for it.
How does it affect Duplicates of URL?
Because path1/path2/path3 and path4 should be unique in the main table, combining them together does not bring any issue, except if there is path1/path2/path3/path4 rewrite exists.
How does it affect Current Installments?
It will use the same tables that exist atm.
2. Internationalization Problem
Because Magento URL generator removes all the characters from non-latin alphabet, it makes impossible to use all the possibilities of allowed URI specification (RFC3986)
Solution
By lifting the logic behind the algorithm of URL generator we can gain much broad SEO possibilities, including ones with different writing schemes (Cyrillic, Chinese, Arabic, etc.). As you can easily use UTF-8 characters in URL path as soon as you escape with rawurlencode when building the rewritten URL, then on the processing convert it back with rawurldecode. SEO experts will love that as it gives better search results rankings in non-latin alphabets.
This approach does make it even possible to generate URL rewrite lookup in much easier faster manner, as you can simply replace all the defined prohibited characters with "-" (dash). So it allows moving URL generation logic to the pure database level.
How does it affect Current Installments?
There are no changes to already translated URLs, it might re-index it a bit differently, but then redirect rewrite history will make auto-redirect.
3. Large Varchar Index Problem
As request path is a string match, when you have a huge database it makes it much slower to lookup the required record.
Solution
There is a simple solution that can help improve performance dramatically on such datasets. As all of us know CRC32 is an integer checksum of 32 bits (perfect for INT column). MySQL has a built-in function for calculating it and PHP has it as well. It is not widely used as it has much higher collision probability than other checksum algorithms. But it is a perfect solution for fast closest match calculation. It can have 5 billion different checksums calculated based on the input. The probability that a 100,000 record in the database will collide is 1 to 50. So there might be the worst scenario 50 records returned for one record lookup, but you can add a single char field to reduce that to only URLs starting with the same letter. Then on PHP side, you only walk over an array of returned result and check the closest match. This option allows managing millions of URL rewrite entries with reasonable lookup time.
How does it affect Current Installments?
It won't change existing table structure as the new table will be introduced, and existing records will be inserted by a simple SQL query during migration. New records will be handled in the URL indexer itself.
... View more
Feature request from MaximKitsenko, posted on GitHub Sep 01, 2016
Previous versions of magento (1.7.x-1.9.x) provides API Method that returns current magento store version. Why did you removed this API in Magento2? Please add this method to API!
I'm developing Magento wrapper for .net ([https://www.nuget.org/packages/MagentoAccess/]) and i need this API to support a lot of Magento's versions.
... View more
Status:
Investigating
Submitted on
08-30-2016
01:12 PM
Submitted by
apiuser
on
08-30-2016
01:12 PM
Feature request from SRaromicon, posted on GitHub Sep 25, 2014
It would be great to get an extra field for attributes, that holds the unit of an numeric / decimal attribute.
Now you have to save every attribute, which has an unit like mm, oz or V, as an attribute of type varchar.
In very large stores with more than 2000 attributes the varchar table becomes very large and the other tables are not used, because you need the unit of meassurement.
... View more
Status:
Investigating
Submitted on
08-30-2016
01:12 PM
Submitted by
apiuser
on
08-30-2016
01:12 PM
Feature request from kassner, posted on GitHub Feb 06, 2015
Hi,
Can you guys think about merging all customer's name-related fields ( prefix , firstname , middlename , lastname and suffix ) into a single name field? I think this makes magento a more international product.
Motivational literature:
http://www.w3.org/International/questions/qa-personal-names
http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
http://blog.jgc.org/2010/06/your-last-name-contains-invalid.html
Thanks!
... View more
Status:
Investigating
Submitted on
08-30-2016
01:12 PM
Submitted by
apiuser
on
08-30-2016
01:12 PM
Feature request from seansan, posted on GitHub Dec 01, 2014
Would it be possible to add a config option per payment method that allows us to set and use the payment option for backend only?
http://magentotoolkit.com/code/magento-admin-only-payment-method/
... View more
Status:
Investigating
Submitted on
08-30-2016
01:11 PM
Submitted by
apiuser
on
08-30-2016
01:11 PM
Feature request from navarr, posted on GitHub Feb 27, 2015
Suggested Labels: feature request, up for grabs
Email highlights allow email providers programmatic knowledge of the contents of email. This is a wonderful user experience, and one that would be beneficial in Magento's default email templates.
These Highlights are currently in a standardization process, however they are already implemented in Gmail as action buttons, Inbox by Gmail (as rich data), and Google Now (as rich data).
The two highlights that Magento would most benefit from are the Order and Parcel Delivery Highlights, linked here:
Order Highlight
Parcel Delivery Highlight
... View more
Status:
Investigating
Submitted on
08-30-2016
01:11 PM
Submitted by
apiuser
on
08-30-2016
01:11 PM
Feature request from chasteIT, posted on GitHub Sep 03, 2015
Problem: Customers use layered navigation to filter to their desired product, but if the user selects a configurable products from the category, they must select the same options again to configure the product before getting the associated simple product.
Solution: Use the options selected in the layered navigation filters to pre-select configurable product options.
Example: A category of Shoes (configurable product) has layered navigation filters for Size, Color, etc. In the category, a user selects filter attributes for Size10 and ColorRed to find the products with Red, Size 10 shoes. As Magento is now, the user clicks on their desired shoe to go to the configurable product page and must then select the attributes again to configure their product. We could skip this step by using the Size10 and ColorRed filtered attributes to pre-select those same attributes on the configurable product page.
This improvement could go hand-in-hand with the issue: Set Configurable Product Default Configuration #1783.
... View more
Status:
Investigating
Submitted on
08-30-2016
01:11 PM
Submitted by
apiuser
on
08-30-2016
01:11 PM
Feature request from CRYX2, posted on GitHub Jul 08, 2015
Hello to all, it think it could be very usefull creating a media library for storing and retreving all uploaded files (for example like the Drupal media module: https://www.drupal.org/project/media).
It's very usefull for the users reusing an uploaded file for a product or for a custom entity (like news or blogs).
... View more
Status:
Investigating
Submitted on
08-30-2016
01:10 PM
Submitted by
apiuser
on
08-30-2016
01:10 PM
Feature request from mage2pro, posted on GitHub Nov 10, 2015
... View more
Status:
Investigating
Submitted on
08-30-2016
01:10 PM
Submitted by
apiuser
on
08-30-2016
01:10 PM
Feature request from mage2pro, posted on GitHub Oct 27, 2015
The decision whether a JavaScript component need be shown could be made when the layout is already built, so the component is unable to add its CSS resources by the standard way ( \Magento\Framework\View\Page\Config::addPageAsset() ).
Is any standard possibility to load stylesheet asynchronously? (like require-css do).
... View more
Status:
Investigating
Submitted on
08-30-2016
01:03 PM
Submitted by
apiuser
on
08-30-2016
01:03 PM
Feature request from tzyganu, posted on GitHub Sep 29, 2014
I don't know if this is on your todo list but I thought It would be good to throw it in here.
The tabs (and maybe all the elements) in the admin dashboard could be generated in a more abstract form.
I mean, the dashboard should be just a list of placeholders that can be filled in by the rest of the modules.
Right now the Magento\Backend\Block\Dashboard\Grids::_prepareLayout contains 4 hardcoded tabs that should be moved in the correct module.
For example Bestsellers and Most Viewed Products could be part of the reports module, New Customers of course in the customer module and so on.
Also a way to add custom tabs could be nice. I know about interceptors, but I'm not exactly sure I can intercept a protected method.
... View more
Status:
Investigating
Submitted on
08-30-2016
01:03 PM
Submitted by
apiuser
on
08-30-2016
01:03 PM
Feature request from gstaniforthsessiondigital, posted on GitHub Oct 10, 2014
Instead of storing cache in a serialised array it would be much faster to store it as a native php file and var_export() the array.
If the file is .php it will get picked up via the opcache and be stored in memory but also precompiled and stored in opcache. This would also remove unserialised logic also.
... View more
Status:
Investigating
Submitted on
08-30-2016
01:03 PM
Submitted by
apiuser
on
08-30-2016
01:03 PM
Feature request from tzyganu, posted on GitHub Oct 14, 2014
Is there any reason why I cannot set a product attribute with type 'Media Image' to be used in product listing?
When I create an attribute from Stores->Attribute->Products and select the Catalog Input Type for Store Owner to be Media Image the Frontend Properties tab disappears completely.
If I create the attribute like that and then change the value for the field used_in_product_listing in the catalog_eav_attribute table for the attribute I just created to 1 it works just fine. I have my attribute loaded in the product listing page.
Sometimes I may need an additional image attribute in the product listing. I cannot do that from the UI and I see no reason for it. A real use case: I want to have a rollover image. When hovering the product image I want to see a different image (with the backside of my product for example).
This problem exists in Magento 1 also. I hope it will be tackled at least in M2.
And while on this...please change the label of the attribute type field. Catalog Input Type for Store Owner sounds scary. Attribute type sounds more friendly.
... View more
Status:
Investigating
Submitted on
08-30-2016
01:00 PM
Submitted by
apiuser
on
08-30-2016
01:00 PM
Feature request from nyov, posted on GitHub Dec 08, 2014
If for some reason the backend broke and the styles/scripts can't be found (in this instance I messed up the base url), there is no fixing things from the backend because settings can't be saved anymore.
It would be nice if Javascript wasn't essential there.
(edit; or, if necessary, inline for this one instance)
... View more
Status:
Investigating
Submitted on
08-30-2016
12:58 PM
Submitted by
apiuser
on
08-30-2016
12:58 PM
Feature request from rtull, posted on GitHub Apr 04, 2016
In the "rules" interfaces in the admin panel (see Customer Segments or Promotions) selected objects show their ID, not a friendly name. This makes it very difficult in the admin to assess what values have been selected in a rules section because the IDs shown are not comprehend-able. Without loading the full selection list / grid interface, an admin user has no idea which specific items they have selected.
For example, selecting a particular category as a filter criteria show the category ID, not the category name. An admin user would have no idea which category this is without loading the category selector - which both time-consuming and non-obvious.
Recommend displaying admin text values instead of IDs to improve human administrator comprehension and admin speed of use.
Example Screenshot: http://files.classyllama.com/c689cb8e/mage2_admin_id.png
... View more
Status:
Investigating
Submitted on
08-30-2016
12:37 PM
Submitted by
apiuser
on
08-30-2016
12:37 PM
Feature request from ihor-sviziev, posted on GitHub Dec 09, 2013
As example for now we should make reindex Products flat for all websites. When we have many products(10000+) and we copied added all products to new website, reindex process is really very slow. Should be great have ability reindex flat data for specific store/website.
... View more
Status:
Investigating
Submitted on
08-30-2016
12:37 PM
Submitted by
apiuser
on
08-30-2016
12:37 PM
Feature request from alexdrupal, posted on GitHub Feb 11, 2014
Hi Folks!
Does magento has plural support for translations?
If no, I think it should be added to the todo list of Magento2 team.
At least, Zend framework having plural support since 1.6
Thanks!
... View more
Status:
Investigating
Submitted on
08-30-2016
12:36 PM
Submitted by
apiuser
on
08-30-2016
12:36 PM
Feature request from erikhansen, posted on GitHub May 16, 2014
Currently, the "template path hint" feature displays the template name and block class name.
Fabrizio Branca's Aoe_TemplateHints module extends the native Magento 1.x template path hint functionality to add much more information to the hints including:
Block name (very useful)
Parent block names
Module
Caching status
Here is a screenshot from his blog post, visualizing what this could look like:
I propose that this functionality be built into Magento 2. If Magento accepts this proposal, I may be willing to build this functionality and then issue a pull request to have it incorporated into Magento 2.
... View more
Status:
Investigating
Submitted on
08-30-2016
12:33 PM
Submitted by
apiuser
on
08-30-2016
12:33 PM
Feature request from johngrogg, posted on GitHub Jul 21, 2015
Are there any plans to add access to Orders when authenticated by a customer? Perhaps on something like GET /V1/orders/mine , similar to GET /V1/carts/mine ?
That seems to be one of the few remaining missing end-points for the purposes of a full shopping experience (you can already manage account info through GET /V1/customers/me , but you can't access order data currently).
... View more
Status:
Investigating
Submitted on
08-30-2016
12:32 PM
Submitted by
apiuser
on
08-30-2016
12:32 PM
Feature request from minhluan259, posted on GitHub Nov 19, 2015
Please make content editor support html5 tags
... View more