Jump to content
Kerm

How to get full product link rewrite with category name in php?

Recommended Posts

This:
 

$url = $this->context->link->getProductLink($product);

Or this: 

$product = new Product((int)$id_product);			
$link = new Link();
$url = $url = $link->getProductLink($product);

Show product link with out category name in url....

 

I need some link like that:

site.com/category-name/22[spam-filter]product-link.html

  • Like 1

Share this post


Link to post
Share on other sites

In product.php, I see that they first fill the 'category' array as well, and add it to the getProductLink function:

 

$row['category'] = Category::getLinkRewrite((int)$row['id_category_default'], (int)$id_lang);
$row['link'] = $context->link->getProductLink((int)$row['id_product'], $row['link_rewrite'], $row['category'], $row['ean13']);
 
 
Maybe this helps?
pascal.
  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

Not sure if this answers your question:

How to get the Product link:

Context::getContext()->link->getProductLink( $id_product );

How to get the Category link:

Context::getContext()->link->getCategoryLink( $id_category );

 

 

Oh, actually I think now I understand what you're asking:

you want to change the URL structure, so you've gotta go to 

Admin Office -> Preferences -> Seo & URLs -> scroll down to SCHEMA OF URLS

I have mine set to {category:/}{id}/{rewrite} so I get exactly what you want I believe

 

 

 

prestashop urls.PNG

Edited by theillo (see edit history)

Share this post


Link to post
Share on other sites

Hello, dont you know why is this code dont working? It wont generate product link 😮 

If product have combination, you can disable "Add to Cart" button on Category page. So i want to have this button linked to the product page.

Presta 1.7

<a href="{$product.url}">Choose combination</a>

Thank you for help.

Share this post


Link to post
Share on other sites

The full code of my productattributes.tpl

<div class="an_productattributes">
<form method="post" class="an_productattributesForm" action="{$cart|escape:'htmlall':'UTF-8'}">
<input name="token" value="{$token|escape:'htmlall':'UTF-8'}" type="hidden">
<input name="id_product" value="{$productId|escape:'htmlall':'UTF-8'}" type="hidden">
{*<input name="id_customization" value="0" placeholder="" type="hidden"> *}
{if $config.display_quantity!='1'}
<input name="qty" type="hidden" value="{$minimal_quantity|escape:'htmlall':'UTF-8'}" min="{$minimal_quantity|escape:'htmlall':'UTF-8'}">
{/if}
  
	{if $config.type_view=='standart'}
	<div class="js-an_productattributes-standart">
		{include file='./product-variants.tpl'}
	</div>
	{/if}
	{if $config.type_view=='select' AND isset($productData) AND count($productData)>0}
	<div class="an_productattributes-select js-an_productattributes-select">
		{include file='./product-select.tpl'}
	</div>
	{/if}
			
	{if $config.display_add_to_cart=='1'}
	<div class="an_productattributes-qty-add clearfix">
		
		{if $config.display_quantity=='1'}
		<div class="an_productattributes-qty-container">
		  <input type="number" name="qty" value="{$minimal_quantity|escape:'htmlall':'UTF-8'}" class="input-group form-control an_productattributes-qty" min="{$minimal_quantity|escape:'htmlall':'UTF-8'}" aria-label="Quantity" style="display: block;">
		</div>
		{/if}
		
		{if $availableForOrder !='0'}
		<div class="an_productattributes-add">
		  <button class="btn an_productattributes-add-to-cart-btn js-an_productattributes-add-to-cart" data-button-action="add-to-cart" type="submit" >
			<i class="material-icons shopping-cart"></i>
			{l s='Add to cart' mod='an_productattributes'}  
		  </button>
		</div>
		{/if}
		
		{if $availableForOrder !='1'}		
		<div class="an_productattributes-add">		
		  <a href="{$product.url}"> 
      <button class="btn an_productattributes-add-to-cart-btn">
			<i class="material-icons calendar_today"></i>
			Vyberte termín (Choose combination) 
		  </button>
		  </a>		  
		</div>		
		{/if}
		  
	</div>
	{/if}
</form>
</div>

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More