Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#16273: [Backport] Fix bug in method getUrlInStore() of product model #16310

Conversation

vasilii-b
Copy link

@vasilii-b vasilii-b commented Jun 21, 2018

Original PR

#16468

Description

This PR reference changes how/what is returned when product model method getUrlInStore() is called $product->getUrlInStore().
Problem is in how the current store is checked and what is returned based on it.

Fixed Issues

  1. Method $product->getUrlInStore() returning extremely long URLs, could be a bug #16273
  2. Having set Add store code to URLs in Admin Configuration to NO, store code is still shown in the product URL.

Manual testing scenarios

For issue 1 - please see the issue description.
For issue 2:

  1. Go to Admin -> Stores -> Configuration -> Catalog -> Web -> Url Options -> Add Store Code to Urls and set it to NO.
  2. In some .phtml file, list.phtml for example, call method getUrlInStore() for a product.

Expected Result

Store code is not added into product url

https://www.domain.com/my-product.html

Actual Result

Store code is added into product url

https://www.domain.com/my-product.html?___store=default

Contribution checklist

  • Pull request has a meaningful description of its purpose
  • All commits are accompanied by meaningful commit messages
  • All new or changed code is covered with unit/integration tests (if applicable)
  • All automated tests passed successfully (all builds on Travis CI are green)

# Method $product->getUrlInStore() returning extremely long URLs, could be a bug
@sidolov
Copy link
Contributor

sidolov commented Aug 2, 2018

Hi @vasilii-b , please, take a look at failed unit tests

Vasilii Burlacu added 4 commits August 10, 2018 19:46
…tore-wrong-link_mage21' into 16273-product-geturlinstore-wrong-link_mage21

# Conflicts:
#	app/code/Magento/Store/Test/Unit/Url/Plugin/RouteParamsResolverTest.php
@vasilii-b
Copy link
Author

Hi @sidolov, can you please help with failed test ? Is it possible to re-run them ? Thrown issues are not related to the current PR.
Thank you!

@sidolov
Copy link
Contributor

sidolov commented Aug 13, 2018

Hi @vasilii-b , jobs restarted

@vasilii-b
Copy link
Author

@sidolov please have a look on the tests again. It was failed again (only 1) with no-related PR issues. Thank you!

@magento-engcom-team
Copy link
Contributor

Hi @vasilii-b. Thank you for your contribution.
We will aim to release these changes as part of 2.1.16.
Please check the release notes for final confirmation.

@vasilii-b vasilii-b deleted the #16273-product-geturlinstore-wrong-link_mage21 branch August 17, 2018 16:01
@apedicdev
Copy link
Contributor

apedicdev commented Oct 17, 2018

sorry but I'm confused about this functionality.
As per:

/**
     * Returns whether url forming scheme prepends url path with store view code
     *
     * @return boolean
     */
    public function isUseStoreInUrl()
    {
        return !($this->hasDisableStoreInUrl() && $this->getDisableStoreInUrl())
            && $this->getConfig(self::XML_PATH_STORE_IN_URL);
    }

and:

if (!$this->isUseStoreInUrl()) {
            $storeParsedQuery['___store'] = $this->getCode();
        }

when Use store in url is off then ___store should be appended. Vice versa, if is on, then the store_code will be used as store_prefix.
So, if I'm not wrong, the fix released in 2.2.6 is not correct.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugfix Component: Store Partner: Atwix Pull Request is created by partner Atwix partners-contribution Pull Request is created by Magento Partner Progress: accept Release Line: 2.1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants