Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

SEO Header Tags - RELOADED support?


Tsimi

Recommended Posts

You can do it in phpmyadmin, but that defeats the purpose of creating especially crafted titles and descriptions, no?

Yes it certainly does!!! You are right. I'm trying to deliver the best to my customer but doing thorough SEO works on product level is not sth. I got hired for. I guess I have to explain my customer that SEO functionality is ready but writing for SEO is sth extra.

Thank you for the prompt reply :-)

Link to comment
Share on other sites

I would like to add/make visible the category description text on each category page.

I found that Category Description v1.08 contribution is a good approach.

Do you know if there would be certain conflicts with your add on?

 

Thank you.

Link to comment
Share on other sites

Remove the <p> tag from your meta descriptions ?

Do you have any solution for this burt?

Here is an example from my shop's page source

<meta name="[url=""]description[/url]" content="[url=""]<p>
test perigrafh</p>[/url]" />

 

or even have a look at http://smokingpaper.gr/smoking-blue-tree-free-xartaki-striftoy-apo-linari-50-tmx-p-183.html

Link to comment
Share on other sites

This is already included in the reloaded addon. Try exploring the addon in full.

 

That's good to hear Burt and the truth is that after examining your sql code I supposed that your contribution would cover that need as well.

But though I have tried to add

<?php echo $categories_desc['categories_description']; ?>

to the index page I don't see my test description appearing on the relevant category page.

Here is an example http://smokingpaper.gr/smoking-artistic/kukuxumusu-c-33_26.html

 

I did checked the addon and the only extra I found refers to information pages. How this would relate to the category description text showing on category page?

Link to comment
Share on other sites

You don't need to add any new code, you just need to ensure that you have properly installed the addon and then you need to ensure you ahve category descriptions added (admin > categories > add new / edit > insert the text into the box > save).

 

AND DO NOT USE HTML IN THESE BOXES.

Link to comment
Share on other sites

You don't need to add any new code, you just need to ensure that you have properly installed the addon and then you need to ensure you ahve category descriptions added (admin > categories > add new / edit > insert the text into the box > save).

 

AND DO NOT USE HTML IN THESE BOXES.

 

Ok got it. I should edit and save the meta fields with the source code view active. But my major issue is how to display the category description on the front end. I want to add some descriptive text at the beginning/top of the each category index page. Unfortunately I don't have the experience with Osc to add that part of code.

Link to comment
Share on other sites

If they do not automatically show then you have not installed it correctly. Category Descriptions are BUILT IN.

 

I found this solution on a past topic https://github.com/gburton/oscommerce2/blob/3a273e0cc89dab8640c21b929ad1bd0b656ac47f/catalog/index.php#L217-L231

Do you think that this is not valid for my case? I examined my index.php and I'm missing the following part from the code showing.

 

<h1><?php echo $catname; ?></h1>
<?php
if (tep_not_null($image['categories_description'])) {
 ?>
<div class="categoryText"><?php echo $image['categories_description']; ?></div>
<?php
}
?>

Link to comment
Share on other sites

2013 11 12

----------

 

- Removal of Twitter Cards (now included in Core osCommerce)

- Removal of Adwords Conversion (now included in Core osCommerce)

- Removal of ht_product_og_facebook (replaced by ht_product_opengraph)

- Addition of ht_product_opengraph

- Addition of category description output in index.php

- Addition of manufacturer description output in index.php

 

Try reading the readme.txt file. Which also means you have not correctly installed, or you have installed an older version and not kept on top of updates.

Edited by burt
Link to comment
Share on other sites

I found this solution on a past topic https://github.com/gburton/oscommerce2/blob/3a273e0cc89dab8640c21b929ad1bd0b656ac47f/catalog/index.php#L217-L231

Do you think that this is not valid for my case? I examined my index.php and I'm missing the following part from the code showing.

 

<h1><?php echo $catname; ?></h1>
<?php
if (tep_not_null($image['categories_description'])) {
?>
<div class="categoryText"><?php echo $image['categories_description']; ?></div>
<?php
}
?>

 

Ok problem solved Burt. Thank you for your support.

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...

Hi Guys,

Couple of questions:

1. How do I find if I use "normal" or "bootstrap" version of osCommerce. Actually, what is the difference between the two?

(Sites in question are www.hatsfromoz.com.au and www.beltsfromoz.com.au)

 

2. Readme file says that AdWords conversion tracking was removed and is part of core osCommerce. Where is it??? I can not find settings to enable it.

 

Thanks,

Rudolf

Link to comment
Share on other sites

Is anyone interested in google analytics HT module that works with new Universal Analytics? I switched to Universal and had to write new module to support it, If there is an interest, how do I submit/uload it?

 

Thanks,

Rudolf

Link to comment
Share on other sites

(Sites in question are www.hatsfromoz.com.au and www.beltsfromoz.com.au)

 

Neither of these are Bootstrapped, see http://www.oscommerce.com/forums/topic/396152-bootstrap-3-in-2334-responsive-from-the-get-go/

 

2. Readme file says that AdWords conversion tracking was removed and is part of core osCommerce. Where is it??? I can not find settings to enable it.

 

admin > modules > header tags > install

 

 

Link to comment
Share on other sites

Is anyone interested in google analytics HT module that works with new Universal Analytics? I switched to Universal and had to write new module to support it, If there is an interest, how do I submit/uload it?

 

Thanks,

Rudolf

 

addons.oscommerce.com

Link to comment
Share on other sites

I have encountered an issue which i can't resolve by my own.

I installed the add-on Master Products, that Add-on contains already the function to add a small/short description in the slave product listing. In short it's like a product listing inside the product_info.php file. This is the code used to show the description

 

osc_trunc_string(strip_tags($listing['products_description']), MASTER_LIST_DESCRIPTION_LENGTH)

 

The downside is i can't use HTML tags like < br / > or < p > inside it. It just shows the description connected as it were a sentence and not a list.

 

So i thought why not use the product mini description which comes with the SEO Header Tags - Reloaded add-on. ($listing['products_mini_description']) I can nicely add HTML code to it and it shows correctly, well in English at least.

The problem shows up when i choose German or French. (see attached images)

When switching to another language besides English the model number and the mini description of the second product and below are displayed in "bold". This happens with German and French but not with English.

First i thought i forgot to close a < b > or < strong > tag somewhere but if so then English would show the bold text too, right? I'm really puzzled by this because using the striptags solution from the Master Products Add-on don't cause something like that.

What could be the reason for something like this? Where should i look?

 

images: (from left to right)

 

SEO mini descr. in english / SEO mini descr. in german / Master striptags descr.

Edited by Tsimi
Link to comment
Share on other sites

Hi @@burt

 

Here is the link to the shop page

 

http://wanokaze.jp/dev1/musashi-p-32.html

 

Change to german to see the difference.

English = OK

German/French = not OK

I thought too I might have forgoten to close a < b > or < strong > tag but then why does the bold font

starts at with the "model number"?

 

Here are the description text for all three languages I'm currently using.

 

Length: 21 cm (approx. 8.3 inches)<br />

Material: Red sandalwood<br />

Coating: Urushi (Tip only)<br />

Color: red brown<br />

<span style="color:#FF0000"><strong>Not Dishwasher proof!</strong></span>

 

Länge: 21 cm<br />

Material: Rotes Sandelholz<br />

Beschichtung: Urushi (nur die Spitze)<br />

Farbe: rot braun<br />

<span style="color:#FF0000"><strong>Nicht Spülmaschinenfest!</strong></span>

 

Longueur: 21 cm<br />

Matériel: bois de santal rouge<br />

Revêtement: Urushi (seulement la pointe)<br />

Couleur: brun rouge<br />

<span style="color:#FF0000"><strong>Pas au lave-vaisselle!</strong></span>

 

and here is the piece of code for the listing

 


if ($listing_split->number_of_rows > 0) {
$rows = 0;
$slave_id = (isset($HTTP_GET_VARS['slave_id']) ? $HTTP_GET_VARS['slave_id'] : '');

$master_query = tep_db_query($listing_split->sql_query);
$list_box_contents .= ' <div class="masterListOuter">' .
					 '<div class="clear"></div>';
while ($listing = tep_db_fetch_array($master_query)) {
 $rows++;

 $list_box_contents .= '<div class="masterListInner">';
 for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
 switch ($column_list[$col]) {
	 case 'MASTER_LIST_MODEL':
	 $list_box_contents .= '';
	 break;
	 case 'MASTER_LIST_NAME':
	 if (isset($HTTP_GET_VARS['manufacturers_id'])) {
		 $list_box_contents .= '<div class="slaveNameOuter"><div class="slaveName' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a></div><div class="slaveDescr"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $listing['products_mini_description'] . '</div></div></div>';
	 } elseif (tep_not_null($listing['products_model'])) {
		 $list_box_contents .= '<div class="slaveNameOuter"><div class="slaveName"' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a></div><span class="smallText">[' . $listing['products_model'] . ']</span><div class="slaveDescr"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $listing['products_mini_description'] . '</div></div></div>';
} else {
 $list_box_contents .= '<div class="slaveNameOuter"><div class="slaveName"' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a></div><div class="slaveDescr"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $listing['products_mini_description'] . '</div></div></div>';
}
	 break;
	 case 'MASTER_LIST_DESCRIPTION':
	 $list_box_contents .= '';
	 break;		
	 case 'MASTER_LIST_MANUFACTURER':
	 $list_box_contents .= '<div class="slaveManu"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing['manufacturers_id']) . '">' . $listing['manufacturers_name'] . '</a></div></div>';
	 break;
	 case 'MASTER_LIST_PRICE':
	 if (tep_not_null($listing['specials_new_products_price'])) {
		 $list_box_contents .= '<div class="slavePriceSpecial"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<s>' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</s><br /><span class="productSpecialPrice">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span></div></div>';
	 } else {
		 $list_box_contents .= '<div class="slavePrice"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</div></div>';
	 }
	 break;
	 case 'MASTER_LIST_QUANTITY':
	 $list_box_contents .= '<div class="slaveQty"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $listing['products_quantity'] . '</div></div>';
	 break;
	 case 'MASTER_LIST_WEIGHT':
	 $list_box_contents .= '<div class="slaveQty"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . $listing['products_weight'] . '</div></div>';
	 break;
	 case 'MASTER_LIST_IMAGE':
	 if (isset($HTTP_GET_VARS['manufacturers_id'])) {
		 $list_box_contents .= '<div class="slaveImage"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SLAVE_IMAGE_WIDTH, SLAVE_IMAGE_HEIGHT) . '</a></div></div>';
	 } else {
		 $list_box_contents .= '<div class="slaveImage"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>') . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SLAVE_IMAGE_WIDTH, SLAVE_IMAGE_HEIGHT) . '</a></div></div>';
	 }
	 break;

	 case 'MASTER_LIST_BUY_NOW':
	 $list_box_contents .= '<div class="slaveBuy"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>');

	 if ((STOCK_CHECK == 'true')&&(tep_get_products_stock($listing['products_id']) < 1)) {

	 $list_box_contents .= TEXT_STOCK;

	 } elseif ((STOCK_CHECK == 'false')&&(tep_get_products_stock($listing['products_id']) < 1)) {

		 $qty_array = array();
		 for ($i=0; $ns = 10, $i <= $ns; $i++) {
	 $qty_array[] = array('id' => $i,
								 'text' => $i);
		 }

//		 $list_box_contents .= tep_draw_input_field('Qty_ProdId_' . $listing['products_id'], '0', 'size="4"');			
 $list_box_contents .= tep_draw_pull_down_menu4('Qty_ProdId_' . $listing['products_id'], $qty_array);

	 } else {

		 $quantity = tep_get_products_stock($listing['products_id']);
		 $qty_array = array();
		 for ($i=0; $ns = (($quantity < 10) ? $quantity : 10), $i <= $ns; $i++) {
	 $qty_array[] = array('id' => $i,
								 'text' => $i);
		 }
//		 $list_box_contents .= tep_draw_input_field('Qty_ProdId_' . $listing['products_id'], '0', 'size="4"');			
 $list_box_contents .= tep_draw_pull_down_menu4('Qty_ProdId_' . $listing['products_id'], $qty_array);
	 }

	 $list_box_contents .= '</div></div>';

	 break;
	 case 'MASTER_LIST_OPTIONS':
		 if (tep_has_product_attributes($listing['products_id'])) {
	 $list_box_contents .= '<div class="slaveOption">' . MASTER_OPTIONS_TEXT . '<div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>');
 } else {
 $list_box_contents .= '<div class="slaveOption"><div' . (($slave_id == $listing['products_id']) ? ' class="slave">' : '>');
 }
	 ///////////////////////////////////////////////////////////////////////////
	 // BOF: attribute options
	 $opt_count=0;
 $products_options_name = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . $listing['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . $languages_id . "' ORDER by products_options_id");
 while ($products_options_name_values = tep_db_fetch_array($products_options_name)) {
		 $opt_count++;
		 $products_options_array = array();
		 $list_box_contents .= '<b>' . $products_options_name_values['products_options_name'] . '</b><br />' . "\n";
		 $products_options = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$listing['products_id'] . "' and pa.options_id = '" . (int)$products_options_name_values['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");
		 while ($products_options_values = tep_db_fetch_array($products_options)) {
		 $products_options_array[] = array('id' => $products_options_values['products_options_values_id'], 'text' => $products_options_values['products_options_values_name'], 'style' => '');
		 if ($products_options_values['options_values_price'] != '0') {
			 $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options_values['price_prefix'] . $currencies->display_price($products_options_values['options_values_price'], tep_get_tax_rate($listing['products_tax_class_id'])) .') ';
		 }
		 }
		 $list_box_contents .= tep_draw_pull_down_menu('id_'.$listing['products_id'].'[' . $products_options_name_values['products_options_id'] . ']', $products_options_array);
		 $list_box_contents .= '<br />';
	 }
	 if($opt_count==0) {
		 $list_box_contents .= MASTER_TEXT_NONE;
	 }
			 $list_box_contents .= '</div></div>';
	 // EOF: attribute options
	 //////////////////////////////////////////////////////////////////////////
break;
 }
 }
 $list_box_contents .= '</div>'; // EOF masterListInner
}
$list_box_contents .= ' </div>' ; // EOF masterListOuter
					 // '</div>'; // EOF infoBoxContainer
   echo $list_box_contents;
 } else {
?>

   <p><?php echo TEXT_NO_PRODUCTS; ?></p>

<?php
 }

 if ( ($listing_split->number_of_rows > 0) && ((MASTER_PREV_NEXT_BAR_LOCATION == '2') || (MASTER_PREV_NEXT_BAR_LOCATION == '3')) ) {
?>

Edited by Tsimi
Link to comment
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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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...