When using configurable products based on two or more attributes that make up the simple products, the layered navigation ignores the stock status. This problem allready existed in M1 and remains in M2. Sample: Configurable products has 4 simple products (no backorders allowed, do not display out of stock items): Shirt-Black-S Qty 2 Shirt-Black-M Qty 2 Shirt-Red-S Qty 2 Shirt-Red-M Qty 0 (sold out) When a users filters layered navigation on color Black and Size M they will still get the configurable product even though the Red M is sold out. Would be so nice if the layered navigation index would handle this correctly.
... View more
See more ideas labeled with:
Magento 2.1.3: I've been given the task that when a customer with a certain property registers itself it should get a different e-mail template. What this property is, is not important for the question, but lets say for sake of simplicity I have a Service Contract that can check if the customer qualifies for the different e-mail template or not: $this->customerChecker->hasCertainProperty($customerId); // returns true or false Now this might seem like an easy task right? Just hook into `Magento\Customer\Model\EmailNotification` with a plugin or something, and modify the part where the correct e-mail template is selected. Right? public function newAccount(
CustomerInterface $customer,
$type = self::NEW_ACCOUNT_EMAIL_REGISTERED,
$backUrl = '',
$storeId = 0,
$sendemailStoreId = null
) {
$types = $this->getTemplateTypes();
if (!isset($types[$type])) {
throw new LocalizedException(__('Please correct the transactional account email type.'));
}
if (!$storeId) {
$storeId = $this->getWebsiteStoreId($customer, $sendemailStoreId);
}
$store = $this->storeManager->getStore($customer->getStoreId());
$customerEmailData = $this->getFullCustomerObject($customer);
$this->sendEmailTemplate(
$customer,
$types[$type],
self::XML_PATH_REGISTER_EMAIL_IDENTITY,
['customer' => $customerEmailData, 'back_url' => $backUrl, 'store' => $store],
$storeId
);
} Right... the e-mail template is sent in this method using sendEmailTemplate(). So we can't use a interceptor for this... Well let's just look at the sendEmailTemplate()-method then: private function sendEmailTemplate(
$customer,
$template,
$sender,
$templateParams = [],
$storeId = null,
$email = null
) {
$templateId = $this->scopeConfig->getValue($template, 'store', $storeId);
if ($email === null) {
$email = $customer->getEmail();
}
$transport = $this->transportBuilder->setTemplateIdentifier($templateId)
->setTemplateOptions(['area' => 'frontend', 'store' => $storeId])
->setTemplateVars($templateParams)
->setFrom($this->scopeConfig->getValue($sender, 'store', $storeId))
->addTo($email, $this->customerViewHelper->getCustomerName($customer))
->getTransport();
$transport->sendMessage();
} Darn! The method is private! So an interceptor will definitely not work here. And we also cannot use a rewrite, since private methods are not inherited. The only way to manipulate our desired functionality is by rewriting the EmailNotification and copy/paste everything that is private from this class. Which are a lot of methods and properties. --- I would suggest that the EmailNotification-class gets some refactoring so it makes it's easier for 3rd party modules to extend it's functionality. Or am I missing something here?
... View more
Feature request from craigcarnell, posted on GitHub Jan 09, 2017
Any plans to add 2 factor authentication to the Magento 2 Admin panel?
... View more
Feature request from kanduvisla, posted on GitHub Dec 23, 2016
So I recently 'discovered' that you can set the proper urn's for your IDE with the command bin/magento dev:urn:generate , but if you're running your Magento development environment in a VM (like I am) the paths generated do not match with the path on your development machine.
For example, in my VM, Magento 2 is installed in /var/www/magento , and /var/www is mounted on my local directory /Users/giel/PhpStormProjects/ProjectName .
So when I run bin/magento dev:urn:generate ../misc.xml it generates all mappings to /var/www/magento instead of /Users/giel/PhpStormProjects/ProjectName , rendering this feature useless if you're running it in a VM.
So there are 2 options here:
I can edit misc.xml and find and replace all the paths. Or:
We can add an extra option to the CLI command, --prefix for example.
If we go for option 2, we can do something like:
bin/magento dev:urn:generate --prefix="/Users/giel/PhpStormProjects/ProjectName/" ../misc.xml
Would this be a nice attribution to this function? If so, I wouldn't mind spending some time creating it and sending a PR.
... View more
Right now Shipping Address and Shipping Methods are in the same JavaScript uiComponent. This is fine for the most part, unless you want to add additional sections between them. This would be as easy as adding a new region foreach between the shipping address and shipping method sections of checkout\shipping.html
... View more
See more ideas labeled with:
If your locale is not set to en_US, the PayPal module uses the really old button style: It would be better for an admin to be able to choose the PayPal button flavour inside the payment method, and have the following choices: https://developer.paypal.com/docs/classic/api/buttons/ Also, see Magento\Paypal\Model\Config line 983 (Magento 2.1.3)
... View more
See more ideas labeled with:
I have an suggestion to include some simple sample modules (no documentation, but actual modules) that uses KnockoutJs to "Magento 2 sample module" package.
... View more
See more ideas labeled with:
I'm trying to import 250 tax rates, but it only imports 200 of them and then shows the message: 'One of the countries has invalid code'. It would be better feedback if Magento tells us which country / countries these are.
... View more
See more ideas labeled with:
Hi everyone,
In most of the pages in Magento, we can find the "State/Province" before the "Country" field. Since the "State/Province" depends on the country, that is confusing since the customer has go to next field and select the country, and then go back to the previous field and select the state/province.
This is not correct in the most important page in the storefront, the onepage checkout:
And you can also see the wrong order in some pages of the admin panel:
In other pages, like the shopping cart page, the order is correct:
It would be better if the country can be selected first, then the state/province and finally the ZIP/Postal Code (just like the shopping cart page).
... View more
See more ideas labeled with:
Magento 2, just like Magento 1, uses a WAY too aggressive image compression when product images are uploaded. They look blurry and dirty, and almost unusable - regardless of the quality or the resolution of the uploaded image. It would be great to be able to turn off or adjust the level of compression applied by Magento. Catalogue images need to look crisp, sharp and professional. Thank you!
... View more
See more ideas labeled with:
There should be a book or a collection of tutorials how to use jquery, jquery-ui and knockoutjs together in Mangeto 2 for front-end developement (main focus on checkot page customisation) !
... View more
See more ideas labeled with:
Feature request from bondimedical3, posted on GitHub Jan 04, 2017
Google is making a big push with AMP pages in mobile search results. I am seeing more and more AMP results in SERPS and I believe if Magento would like to keep a competitive edge in the market it will need to begin to look at adding this feature to Magento 2. Google SERPs are constantly changing with new features and they have even added an AMP carousel in mobile results where if there are more than 3 AMP results on the first page a carousel appears on the top where people can scroll through. In the future this will become a necessity for all e-commerce platforms. https://www.ampproject.org
... View more
It is frequently the case that, in a B2B scenario, there is a significant amount of divergence between pricing groups and customers who are / aren't taxable. For example, a supplier who has wholesale customers, some of which are non-profits, may want to put many companies in a single pricing band but then only charge tax to the for-profit companies. Because Magento currently overlaps these concepts completely (customer groups are how you define customer tax class) it is impossible to manage the concept of prices separate from the concept of taxability. This can be worked around by creating a taxable and non-taxable version of each price tier but this is conceptually duplication for the purpose of pricing and can become challenging to manage. Also, depending on the number of price tiers, this can take a scenario that fits into a manageable number of customer groups and cause it to explode (double?) into MANY groups. 25 price tiers isn't so bad. 50 tiers (taxable / non-taxable versions) is a LOT more painful, including from a UI perspective in the admin. Ideally, in my opinion, a customer's taxability status would be something that is set on the customer account independent of their customer group. This is conceptually proper and prevents the pricing group duplication issue. Also, though I'm not the best developer, this seems like a sane way to handle things to me because taxability seems to not need the same level of indexing that pricing does. It's a "figure in real time in the cart" value and therefore (I would think) could just be looked up on the customer record when needed. Thoughts / feedback appreciated but it would be nice to see Magento go this direction, especially with focus on B2B. ++version would be support for taxability as a discrete option on a company record that populates down to children accounts if/when company/child account become a thing
... View more
See more ideas labeled with:
Add the ability to insert a widget in the product description for example the link to a page or other product.
... View more
Currently the translations in Magento 2 will use the original string if there is no translation. For instance: en_US.csv: "My First String","My First Translation" "My Second String","My Second Translation" nl_NL.csv: "My First String","Mijn Eerste Vertaling" if you do the following when language is set to 'en_US': echo __('My First String') . '<br>' . __('My Second String'). '<br>' . __('My Third String'); The output will be: My First Translation My Second Translation My Third String (falls back on original string) if you do this when language is set to 'nl_NL':, the output will be: Mijn eerste vertaling My Second String (falls back on original string) My Third String (falls back on original string) I think it would be really useful for it to fall back on the default language first, so the output would be: Mijn eerste vertaling My Second translation (falls back on en_US translation) My Third String (falls back on original string) Why? Because this would open up the ability to use short placeholder strings in the code, instead of the long translations. For instance, you could do: "ACCOUNT_NOT_CONFIRMED","This account is not confirmed. <a href=""%1"">Click here</a> to resend confirmation email." This also gives the benefit of being able to correct the en_US language files (for instance when having spelling mistakes) without having to worry about translations or the string in the code.
... View more
See more ideas labeled with:
Hi Guys, I would like to request a new improvement for the checkout. Currently users could have trouble finding out about invalid fields which disappear above the screen fold. Scenario: User fills out his address information Scrolls down below to submit the form and go to the next step. Hey! The button is not working. Weird... When the invalid fields are not visible because they are above the fold, the end user is not notified of the problems with his information. In some cases the user may be smart enough to scroll up and see if there are invalid fields, but you may understand that not every user is thinking about doing that. Possible solution Automatically scroll to the first invalid field on the page Notification message below the submit form to inform the user that he has to fill out his invalid forms. I am curious about what you guys think of this user experience issue. Cheers, Clarke
... View more
See more ideas labeled with:
Magento 2 lacks this important feature (Enable Discounts to Subproducts) in Catalog Price Rule that was working in Magento 1.X. I think this is a really important core feature.
... View more
See more ideas labeled with:
The currency symbols choice has a global scope, it should at least have website scope. Stores > Currency > Currency Symbols
... View more
See more ideas labeled with:
Currently it is not possible to have an admin menu link with more than 3 arguments: menu.xml: ... <add
id="Module::module_name-id"
action="module/controller/action/paramFoo/valueBar"
.../> is menu item link is truncated to: 'module/controller/action/' and ignores the 'paramFoo/valueBar' addition. I'd suggest adding another property to the <add tag, something like: actionParams="paramFoo=valueBar¶mLorem=valueIpsum" which would then be added to the $params array in the Magento\Backend\Model\Menu\Item::getUrl() method.
... View more
See more ideas labeled with:
Feature request from tiwarimukesh, posted on GitHub Aug 13, 2016
Following is not a bug it can be considered as an improvement or a feature.
In Magento 1 over long time of use media folder size keep growing and it become too huge.(If there a frequent updates of images).
This happens especially for the website having very large catalog. It becomes difficult to identify the unused images and remove them. As an image can be used for multiple products or on multiple pages.
Is there any road map of any feature which will provide a functionality for optimal handling of images in media folder?
... View more