Fix _addUrlRewrite() ignoring collection store scope. #510
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While
Mage_Catalog_Model_Resource_Product_Collection::addUrlRewrite()
respects any setstoreId
on the collection it's helper that does the actual work is hard-coded to the current active store. So the following will not work as expected when, for example, called from a script:Mage::getSingleton('core/app_emulation')->startEnvironmentEmulation($someStoreId);
could be used to work around the problem, but this looks like a bug to me plus it's fairly annoying to debug if you are not aware.The fix (ab)uses the fact that
Mage::app()->getStore($this->getStoreId())
will fall back to the current active store if there is nostoreId
set on the current collection, so there should be no BC issues. Happy to amend if something less cute is prefered, i.e.: