Skip to content

Commit 2954e6d

Browse files
authored
Always add sku to product url format params (#876)
1 parent af43e1d commit 2954e6d

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

bundles/core/src/main/java/com/adobe/cq/commerce/core/components/internal/services/UrlProviderImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,7 @@ public String toProductUrl(SlingHttpServletRequest request, Page page, String pr
255255
ProductInterface product = retriever.fetchProduct();
256256
if (product != null) {
257257
params = new ProductUrlFormat.Params(product);
258+
params.setSku(productIdentifier);
258259
} else {
259260
LOGGER.debug("Could not generate product page URL for {}.", productIdentifier);
260261
}

bundles/core/src/test/java/com/adobe/cq/commerce/core/components/internal/services/UrlProviderImplTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import com.adobe.cq.commerce.core.components.internal.services.urlformats.CategoryPageWithUrlKey;
4545
import com.adobe.cq.commerce.core.components.internal.services.urlformats.ProductPageWithCategoryAndUrlKey;
4646
import com.adobe.cq.commerce.core.components.internal.services.urlformats.ProductPageWithSku;
47+
import com.adobe.cq.commerce.core.components.internal.services.urlformats.ProductPageWithSkuAndUrlKey;
4748
import com.adobe.cq.commerce.core.components.internal.services.urlformats.ProductPageWithUrlPath;
4849
import com.adobe.cq.commerce.core.components.services.ComponentsConfiguration;
4950
import com.adobe.cq.commerce.core.components.services.urls.CategoryUrlFormat;
@@ -93,6 +94,8 @@ public void setup() throws Exception {
9394

9495
Utils.setupHttpResponse("graphql/magento-graphql-product-result.json", httpClient, HttpStatus.SC_OK,
9596
"{products(filter:{sku:{eq:\"MJ01\"}}");
97+
Utils.setupHttpResponse("graphql/magento-graphql-product-result-url-parameters.json", httpClient, HttpStatus.SC_OK,
98+
"{products(filter:{sku:{eq:\"MJ03\"}}");
9699
Utils.setupHttpResponse("graphql/magento-graphql-product-not-found-result.json", httpClient, HttpStatus.SC_OK,
97100
"{products(filter:{sku:{eq:\"MJ02\"}}");
98101
Utils.setupHttpResponse("graphql/magento-graphql-product-sku.json", httpClient, HttpStatus.SC_OK,
@@ -224,6 +227,21 @@ public void testProductUrlOnlySKU() {
224227
verify(graphqlClient, never()).execute(any(), any(), any(), any());
225228
}
226229

230+
@Test
231+
public void testProductUrlWithSKUProductNotFound() {
232+
Page page = context.currentPage("/content/product-page");
233+
MockOsgi.deactivate(urlProvider, context.bundleContext());
234+
MockOsgi.activate(urlProvider, context.bundleContext(), "productPageUrlFormat", ProductPageWithSkuAndUrlKey.PATTERN);
235+
236+
// Not found, sku set
237+
String url = urlProvider.toProductUrl(request, page, "MJ02");
238+
assertEquals("/content/product-page.html/MJ02.html", url);
239+
240+
// found, parameters queried without sku set
241+
url = urlProvider.toProductUrl(request, page, "MJ03");
242+
assertEquals("/content/product-page.html/MJ03/test-url-key.html", url);
243+
}
244+
227245
@Test
228246
public void testProductPageWithinAnotherProductPagesContext() {
229247
Page page = context.currentPage("/content/product-page");
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"data": {
3+
"products": {
4+
"items": [
5+
{
6+
"__typename": "ConfigurableProduct",
7+
"url_key": "test-url-key",
8+
"url_rewrites": [{
9+
"url": "test-url-key"
10+
}]
11+
}
12+
]
13+
}
14+
}
15+
}

0 commit comments

Comments
 (0)