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 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 kandrejevs, posted on GitHub Jul 05, 2016
We have developed store with 3 languages- sk_SK, hu_HU, cs_CZ. Problem is that i18n:collect-phrases from root collects over 8000 strings including ones from adminhtml. We want only to translate frontend strings and leave backend in en_US locale. This can be achieved by creating csv file for every single module running command only on view/frontend directory. But that is time consuming.
Proposition: Add option to i18n:collect-phrases command, to exclude view/adminhtml directories and xml files that contains translatable strings for backend.
Here I played around a bit and made a small script that scans through app/code, theme and vendor folders, searches for base or frontend directory in view directory, translates it and in the end creates 2 csv files for comparison. in my case only frontend phrases are 770 vs 10 000 all phrases.
https://gist.github.com/kandrejevs/72dcc1cfd9841e3a646ffe1c23c73801
... View more
Feature request from tkn98, posted on GitHub Jul 06, 2016
Steps to reproduce
Install Magento from develop branch.
After all Modules are installed, a message is shown in green letters on the last line. Read that message.
The message says:
Please re-run Magento compile command
It can be greatly improved by removing the inaccuracy as there is no such command named " compile ". The command name is " setup:di:compile ".
This should be trivial to fix.
... 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
Feature request from SamTay, posted on GitHub Apr 13, 2016
Product::isInStock is misleading. This does not check if product is in stock, but just checks if enabled.
Product::getQty does not look for qty key in the correct place. Perhaps in some parts of the app, qty is set on the Product::_data array directly, but my screenshot shows that this is not the case in the product/price/amount/default.phtml template. Because this is the implementation of the SaleableInterface, this is a problem for abstraction.
... View more
Feature request from leoquijano, posted on GitHub May 18, 2016
While implementing a custom theme using Magento 2, I found out that there's currently no support for easy customization of Add to Cart message texts.
In the Magento\Checkout\Controller\Cart\Add class, the following method is called to add a product to the cart:
/**
* Add product to shopping cart action
*
* @return \Magento\Framework\Controller\Result\Redirect
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public function execute()
{
if (!$this->_formKeyValidator->validate($this->getRequest())) {
return $this->resultRedirectFactory->create()->setPath('*/*/');
}
$params = $this->getRequest()->getParams();
try {
if (isset($params['qty'])) {
$filter = new \Zend_Filter_LocalizedToNormalized(
['locale' => $this->_objectManager->get('Magento\Framework\Locale\ResolverInterface')->getLocale()]
);
$params['qty'] = $filter->filter($params['qty']);
}
$product = $this->_initProduct();
$related = $this->getRequest()->getParam('related_product');
/**
* Check product availability
*/
if (!$product) {
return $this->goBack();
}
$this->cart->addProduct($product, $params);
if (!empty($related)) {
$this->cart->addProductsByIds(explode(',', $related));
}
$this->cart->save();
/**
* @todo remove wishlist observer \Magento\Wishlist\Observer\AddToCart
*/
$this->_eventManager->dispatch(
'checkout_cart_add_product_complete',
['product' => $product, 'request' => $this->getRequest(), 'response' => $this->getResponse()]
);
if (!$this->_checkoutSession->getNoCartRedirect(true)) {
if (!$this->cart->getQuote()->getHasError()) {
$message = __(
'You added %1 to your shopping cart.',
$product->getName()
);
$this->messageManager->addSuccessMessage($message);
}
return $this->goBack(null, $product);
}
} catch (\Magento\Framework\Exception\LocalizedException $e) {
if ($this->_checkoutSession->getUseNotice(true)) {
$this->messageManager->addNotice(
$this->_objectManager->get('Magento\Framework\Escaper')->escapeHtml($e->getMessage())
);
} else {
$messages = array_unique(explode("\n", $e->getMessage()));
foreach ($messages as $message) {
$this->messageManager->addError(
$this->_objectManager->get('Magento\Framework\Escaper')->escapeHtml($message)
);
}
}
$url = $this->_checkoutSession->getRedirectUrl(true);
if (!$url) {
$cartUrl = $this->_objectManager->get('Magento\Checkout\Helper\Cart')->getCartUrl();
$url = $this->_redirect->getRedirectUrl($cartUrl);
}
return $this->goBack($url);
} catch (\Exception $e) {
$this->messageManager->addException($e, __('We can\'t add this item to your shopping cart right now.'));
$this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
return $this->goBack();
}
}
It can be seen here two particular places where messages are hardwired. The first one is the success message:
$message = __(
'You added %1 to your shopping cart.',
$product->getName()
);
$this->messageManager->addSuccessMessage($message);
The second one is the error message:
} catch (\Exception $e) {
$this->messageManager->addException($e, __('We can\'t add this item to your shopping cart right now.'));
$this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
return $this->goBack();
}
Some websites require different copy for the Add to Cart behavior (both for success and error messages), so ideally theme developers should be able to customize that behavior. While the optimal approach would be to configure this in layout or template files, I think that a relatively simple solution is refactoring the Controller code, like this:
if (!$this->cart->getQuote()->getHasError()) {
$message = $this->getSuccessMessage($product);
$this->messageManager->addSuccessMessage($message);
}
} catch (\Exception $e) {
$this->messageManager->addException($e, $this->getErrorMessage());
$this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
return $this->goBack();
}
/**
* Gets the message used when a product is successfully added to the cart.
* @param $product
* @return \Magento\Framework\Phrase
*/
protected function getSuccessMessage($product)
{
return __(
'You added %1 to your shopping cart.',
$product->getName()
);
}
/**
* Gets the message used when there's a problem adding an item to the cart.
* @return \Magento\Framework\Phrase
*/
protected function getErrorMessage()
{
return __('We can\'t add this item to your shopping cart right now.');
}
This would allow theme developers to override this controller without overriding the main execute method, which can be risky and has a higher maintenance cost.
... View more
Feature request from devishreebalasubramanian, posted on GitHub Jun 01, 2016
Now i have created custom theme in magento2.Every time i wrote css it doesn't reflect immediately.I have changed mode to "developer".And also disable cache in backend.I have given the following commands to reflect my custom css.
*rm -f var/ -R**
rm -f pub/static -R
php bin/magento setup:static-content:deploy
chmod 0777 var -R
chmod 0777 pub/static -R
It takes too much time to do my design work.So please anyone help on this.
... View more
Feature request from flancer64, posted on GitHub Jun 07, 2016
Hello,
I discovered DB structure and found that there is extra field named "website_id" in "cataloginventory_stock_item".
Each stock item is related to "cataloginventory_stock" (foreign key: stock_id). Stock record in "cataloginventory_stock" has field "website_id" is related to "store_website". So, each record in "cataloginventory_stock_item" is related to record in "cataloginventory_stock" and is related to record in "store_website".
Field "website_id" in "cataloginventory_stock_item" (without references/foreign key to "store_website") can contain any value - not only different from the "website_id" in related "cataloginventory_stock" record, but really any smallint(5) UNSIGNED value.
I suppose, field "cataloginventory_stock_item.website_id" is extra field and should be removed.
Thanks.
... View more
Feature request from epadmin, posted on GitHub Jul 09, 2016
Steps to reproduce
While working on adding categories in the admin panel, Magento times out without notification or giving ability to extend. When saving new categories after adding all the information, the login page comes up and none of the information is saved.
Expected result
Expect a notification prior to timing out while updating/adding information. If you are logged in and try to save, there should be a way to restore the information you entered if you have to log in again, whether it is a setting allowing the information to be cached so you can go back after logging in or temporarily saving it while you re-authenticate and then committing the change. At the very least there should be a reminder that says you are about to be logged out.
Actual result
Try to save information after entering the required info to setup a new category is resulting in the information being lost because it goes to a login page instead of saving the data. Presumably this is a timeout issue
... View more
Feature request from RG-1, posted on GitHub Jul 10, 2016
Steps to reproduce
Magento 2.1.0
Make a backup of db: bin/magento setup:backup --db
Import a lot of data or generate it: bin/magento setup:performance:generate-fixtures <your Magento install dir>/setup/performance-toolkit/profiles/ce/large.xml
Restore the backup: bin/magento setup:rollback --db-file <your backup name>_db.sql
Expected result
Backup restoring should be pretty quick.
The process should use full CPU speed.
Actual result
Backup restoring takes a lot of time.
The process uses just 10% of CPU.
... View more
Feature request from thdoan, posted on GitHub Jul 15, 2016
Steps to reproduce
Install Magento from develop branch.
Go to /caesar-warm-up-pant.html
Expected result
The current article (gray in this case) should be pre-selected on initial page load.
Actual result
None of the color swatches is selected by default.
... View more
Feature request from acidreian666, posted on GitHub Jul 15, 2016
Steps to reproduce
Install Magento 2.1.zip from magento.com
Add Click Add Simple Product.
Click Advanced Pricing.
Expected result
Display a Textbox for MSRP.
Special Price
Special Price From
Cost
Tier Price
--
Actual result
--
Special Price
Special Price From
Cost
Tier Price
Missing MSRP input Textbox.
changing location of MSRP under Default Attribute set from Advanced Pricing to something else End result nothing still not showing up under any Group within "Add New Product"
Sorry if this is a duplicate I searched but i feel I'm the only person experiencing this.
... View more
Feature request from qmarlats, posted on GitHub Jul 17, 2016
For some elements in admin, it's (really) difficult to find what we search for. For example, in list of countries like "Top Destinations" (see picture), we have to look for one country at a time and select what we want slowly and without any error (otherwise we have to begin again). Even more horrible is time zones: the first time I searched for Paris I've spent about 3 minutes.
So I think it would be a great usability improvement to use something like that!
... View more
Feature request from maderlock, posted on GitHub Jul 21, 2016
Steps to reproduce
Install 2.1.0
Set discount to be applied to inclusive total and customer tax to be calculated after discount
Set invoice, order display settings to display all as exclusive of VAT
Place an order with a discount
View invoice
Expected result
Subtotal + shipping - discount = grand total (excl tax)
Actual result
Subtotal + shipping - discount = slightly less than excl grand total as discount includes amount applied to inclusive subtotal
I would suggest there is a similar option to display discount incl/excl of VAT. The latter would add back the discount_tax_compensation amount so that the totals add up.
See example for why this currently is rather unintuitive:
... View more
Feature request from navarr, posted on GitHub Jul 21, 2016
Steps to reproduce
Install Magento from develop branch.
Begin writing code that interacts with an API that takes, for example, JSON as the body request
Investigate the \Magento\Framework\HTTP\ClientInterface to see how to send this body within the Magento framework
Expected result
post method, or another method allows the sending of raw json or other raw data to the server
Actual result
No such functionality exists, making it impossible to send raw data over the HTTP ClientInterface
As a potential fix, I've opened Pull Request #5407. This enables the post method to send raw data as well as the previously accepted array of data.
... View more
Feature request from MrSena, posted on GitHub Jul 21, 2016
Hi! I am develop integration with ERP. But have many problem with import large product catalog to Magento (2.1 from composer metapackage.)
REST API Product create very slow - import one thousand products more 15 min.
(post request to /rest/V1/products).
Internal csv import work fast, but I can't start him remote. Also this way, there is no way to create the attributes and attribute_sets.
Solve the problem with the speed REST API, please
... View more
Feature request from maderlock, posted on GitHub Jul 22, 2016
Surprisingly, given the proliferation of files in the checkout's frontend interface, it's hard to insert new blocks. Taking the shipping step as an example, the only options are points already specified within the single shipping template that outputs the shipping address form, shipping method form and the next button. Therefore while you can insert content within the shipping method block (as that's where the insert points are), there's no way of adding an extra block before shipping, between shipping and shipping method or between the methods and the buttons.
This is very limiting for anyone wanting to customise the checkout. My recommendation for improvement would be to split this current template into three - shipping address, shipping method, and buttons. Then layout can be used to insert extra content without having to override a single large template.
... View more
Feature request from ADDISON74, posted on GitHub Jul 22, 2016
1) The number of columns is pretty big. You can get rid off Visibility, Product, SKU columns
2) If you still want keeping those columns, there is an issue with special characters in Product column. ™ appears incorrect &trade
... View more