Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

SEO Header Tags - RELOADED support?


Tsimi

Recommended Posts

@@burt, hey Gary... I'm in the end stages of going live with my BS store and in the process have switched from Header Tags SEO to Header Tags - Reloaded....

 

I have made a script to move all my tables over... but I'm having trouble with (what I'm sure is VERY basic) moving;

 

manufacturers_htc_title_tag from manufactuers_into

 

TO;

 

manufacturers_seo_title in manufactures

 

I have being playing with insert into but no luck....

INSERT INTO `manufacturers` (`manufacturers_htc_title_tag`) SELECT `manufacturers_seo_title` FROM `manufacturers_info`;

Any assistance would be greatly appreciated.

 

I'm happy to share the entire script ... but it's your call (your addon).

 

 

Link to comment
Share on other sites

 

UPDATE `manufacturers`, `manufacturers_info`
SET  `manufacturers`.`manufacturers_seo_title` = `manufacturers_info`.`manufacturers_htc_title_tag`
WHERE `manufacturers`.`manufacturers_id` = `manufacturers_info`.`manufacturers_id`
AND `manufacturers_info`.`languages_id` = (
SELECT  `languages_id`
FROM  `languages`
WHERE `code` = (SELECT `configuration_value`
FROM `configuration`
WHERE `configuration_key` = 'DEFAULT_LANGUAGE')
ORDER BY `sort_order` LIMIT 1);
Link to comment
Share on other sites

  • 4 weeks later...

@@burt I hope all is well... I've been struggling with a microdata issue for some time and was hoping for a little assistance.... I'm not sure if this is the best place to aske for it...

 

I have installed SEO headertags reloaded in my new live 2.3.4 BS GOLD store and everything is going very well....

 

However (this is not a new issue) I use Quantity Price Breaks on a number of items and this causes issues

 

I've implement it like;

$products_price = '<span itemprop="price">' . $pf->getPriceString(). '</span>';

which works fine - as long as there is no special price or price break... Is there any advise you can offer in implementing this directly into the priceformatter class so to use;

itemtype="http://schema.org/AggregateOffer

so 1) it picks up the price range with itemprop="lowPrice" and itemprop="highPrice" in addition to specials?

 

It looks something like;

      $lc_text = '<div id="pftable">
              <table  class="table table-responsive table-bordered table-condensed table-striped table-wrapping">' . "\n";
	$lc_text .= '<thead>';	  
      $lc_text .= '<tr>' . "\n";
      $lc_text .= '<th>' . TEXT_ENTER_QUANTITY .'</th>' . "\n";
      if ($this->price_breaks[0]['products_qty'] > $this->products_min_order_qty) {
        $lc_text .= '<th>' . $this->products_min_order_qty;
        if (($this->price_breaks[0]['products_qty'] - $this->products_min_order_qty) > $qtyBlocks) {
          $lc_text .= '-' . ($this->price_breaks[0]['products_qty'] - $qtyBlocks);
        }
        $lc_text .= '</th>' . "\n";
      } // end if ($this->price_breaks[0]['products_qty'] > $this->products_min_order_qty)
      
      foreach($this->price_breaks as $key => $price_break) {
          $lc_text .= '<th>'
            . $price_break['products_qty'];
          if ($key == $no_of_price_breaks -1) {
            $lc_text .= '+ </th>' . "\n";
          } else {
            if (($this->price_breaks[$key + 1]['products_qty'] - $this->price_breaks[$key]['products_qty']) > $qtyBlocks) {
            $lc_text .= '-' . ($this->price_breaks[$key+1]['products_qty'] - $qtyBlocks) . '</td>' . "\n";
            }
          } 
      } // end foreach($this->price_breaks as $key => $price_break)
      $lc_text .= '</tr>' . "\n";
	  $lc_text .= '</thead>';
      $lc_text .= '<tr>
      <td>' . TEXT_PRICE_PER_PIECE . '</td>' . "\n";
//product info table
      if (true == $this->hasSpecialPrice && ($this->price_breaks[0]['products_qty'] > $this->products_min_order_qty)) {
        $lc_text .= '<td>';
        $lc_text .= '<del>'
        . $currencies->display_price($this->thePrice, tep_get_tax_rate($this->taxClass))
        . '</del> <br><span class="productSpecialPrice">'
        . $currencies->display_price($this->specialPrice, tep_get_tax_rate($this->taxClass))
        . '</span> '
        .'</td>' . "\n";
      } elseif ($this->price_breaks[0]['products_qty'] > $this->products_min_order_qty) {
        $lc_text .= '<td>'
        . $currencies->display_price($this->thePrice, tep_get_tax_rate($this->taxClass))
        . '</td>' . "\n";
      }
      
      foreach($this->price_breaks as $price_break) {
          $lc_text .= '<td>'
            . $currencies->display_price($price_break['products_price'], tep_get_tax_rate($this->taxClass))
            .'</td>' . "\n";
      }
      $lc_text .= '</tr>' . "\n";
  
      // Begin saving calculation
      $base_price = $this->thePrice;
      // if you have a min order quantity set, this might be the first entry
      // in the price break table so let's check for that
      if ($this->products_min_order_qty > 1 && $this->products_min_order_qty == $this->price_breaks[0]['products_qty']) {
        $base_price = $this->price_breaks[0]['products_price'];
      }
      // in case of a special price the "Savings" are calculated against the normal price
      // apart from the first column which calculates against the special price
      $lc_text .= '<tr>
      <td>' . TEXT_SAVINGS . '</td>' . "\n";
      if (true == $this->hasSpecialPrice && ($this->price_breaks[0]['products_qty'] > $this->products_min_order_qty)) {
        $lc_text .= '<td>'
        . $this->getDiscountSaving($base_price, $this->specialPrice)
        .'</td>' . "\n";
      } elseif ($this->price_breaks[0]['products_qty'] > $this->products_min_order_qty) {
        $lc_text .= '<td>- </td>' . "\n";
      }
//product info NO table
      foreach($this->price_breaks as $price_break) {
        if ($price_break['products_qty'] > $this->qtyBlocks) {
          $lc_text .= '<td>'
          . $this->getDiscountSaving($base_price, $price_break['products_price'])
          .'</td>' . "\n";
        } else {
          $lc_text .= '<td>- </td>' . "\n";
        }
      }
      $lc_text .= '</tr></table></table></div>';
    } else {
      if (true == $this->hasSpecialPrice) {
        $lc_text = ' <del>'
        . $currencies->display_price($this->thePrice, tep_get_tax_rate($this->taxClass))
         . '</del></span> <br><span class="productSpecialPrice">' . TEXT_ON_SALE . ' '
        . $currencies->display_price($this->specialPrice, tep_get_tax_rate($this->taxClass))
        . '</span> ';
      } else {
        $lc_text = ' '
        . $currencies->display_price($this->thePrice, tep_get_tax_rate($this->taxClass))
        . ' ';
      }
    }
    return $lc_text;
  }
Link to comment
Share on other sites

It's a real mess that price breaks addon :(

 

Pretty much you'd need to look at the file and try to grab the lowest price possible and the highest price.  

I dont have price breaks installed anywhere to test it out.  If you want to put it onto a brand new Responsive, and send me the zip file I will give it a go.

Link to comment
Share on other sites

  • 2 months later...

It's a real mess that price breaks addon :(

 

Pretty much you'd need to look at the file and try to grab the lowest price possible and the highest price.  

I dont have price breaks installed anywhere to test it out.  If you want to put it onto a brand new Responsive, and send me the zip file I will give it a go.

@@burt, just digging around an old microdata problem... and wanted to let you know I did figure out a very easy solution to THIS issue when using quantity price breaks and trying to implement microdata.

 

I've removed <span itemprop="price"> </span> from product_info and then wrapped each statement that makes up the price in the priceformatter class

        $lc_text .= '<td>';
        $lc_text .= '<del>'
        . $currencies->display_price($this->thePrice, tep_get_tax_rate($this->taxClass))
        . '</del> <br><span itemprop="price"><span class="productSpecialPrice">'
        . $currencies->display_price($this->specialPrice, tep_get_tax_rate($this->taxClass))
        . '</span></span> '
        .'</td>' . "\n";
      } elseif ($this->price_breaks[0]['products_qty'] > $this->products_min_order_qty) {
        $lc_text .= '<td><span itemprop="price">'
        . $currencies->display_price($this->thePrice, tep_get_tax_rate($this->taxClass))
        . '</span></td>' . "\n";
      }
      
      foreach($this->price_breaks as $price_break) {
          $lc_text .= '<td><span itemprop="price">'
            . $currencies->display_price($price_break['products_price'], tep_get_tax_rate($this->taxClass))
            .'</span></td>' . "\n";
      }
      $lc_text .= '</tr>' . "\n";

Which validates perfectly

offers [Offer]:
price:US$41.48
price:US$38.57
price:US$35.26
availability:http://schema.org/InStock
priceCurrency:USD

which should output

US$41.48 to US35.26

Not a good as a AggregateOffer but better than an error........

Link to comment
Share on other sites

  • 2 weeks later...

Can anyone show me screen captures of this plugin in action on the admin side? Where do the meta-tags get filled out, etc? Can you edit pages too (home, category pages), or just product listings? Is this compatible with the Extra Infos Page Manager? I really want to use this plugin, but having to hand-modify over forty pages of PHP is daunting, when you're dealing with a website that's already got a lot of add-ons built into it. I would like to see how this looks in action (is it user-friendly enough to hand off to the site owner's less-savvy administrator) before I am willing to undertake such a big editing job.

Forum Rule 3.4

Link to comment
Share on other sites

Other idea,...why not install this Addon into a local test shop?

Use XAMPP, MAMPP or WAMPP (or whatever those local server programs are called) install a clean, new version of osCommerce locally and then you will be able to just overwrite the files from the Addon package.

That is how I always test Addons.

Edited by Tsimi
Link to comment
Share on other sites

I installed XAMPP, and installed osc 2.3.4. Then I dropped in this addon's "normal" build files and ran the SQL commands. So, now I'm looking at my admin pages and my product listings, and wondering what was added, since I see no changes...

 

I feel very ignorant of this addon.

Forum Rule 3.4

Link to comment
Share on other sites

I installed XAMPP, and installed osc 2.3.4. Then I dropped in this addon's "normal" build files and ran the SQL commands. So, now I'm looking at my admin pages and my product listings, and wondering what was added, since I see no changes...

 

I feel very ignorant of this addon.

 

The addon is for header tags and meta data - you won't see anything on the product listings after installing it. You should also consider updating to the bootstrap version where many SEO improvements have been made.

Link to comment
Share on other sites

@C_Jolliff

 

If you dont understand what the package is supposed to do, you need to do a bit of reading about Search Engine Optimization (SEO).

 

In a browser, check the source of the page and you should see the changes in the <head> </head> area of the site code. This code is available to help SEO, and will not be available for your customers to see. You can affect your page in the search engines by using wrong words in the title and description so be very carefully what you put in their. Nothing should alter on the actual page seen.

 

You do also need to create a good product title and description which can be seen by the customers which will also help with your SEO. There are many sites on the internet that will give help, but at first try to find one that will keep it simple so you can understand the principles.

 

SEO is not that hard to do, but is hard to get right first time round. Just do a bit of research into keywords and that sort of stuff first.

REMEMBER BACKUP, BACKUP AND BACKUP

Link to comment
Share on other sites

  • 4 weeks later...
  • 1 month later...

@@burt    A quick question ...

 

In the ht_pages_title.php file, you have this line of code:

$oscTemplate->setTitle(tep_output_string(META_SEO_TITLE)  . ', ' . $oscTemplate->getTitle());

This sets the <title> tag to: (what's in META_SEO_TITLE)  plus (a comma and a space) plus (what's already in getTitle() ).

 

 

My question is, since we are creating our own META_SEO_TITLE tag, why add the existing getTitle() tag to it? I think it just looks a bit cluttered.

 

Malcolm

Link to comment
Share on other sites

  • 1 month later...

does the "extra uploads" folder need to be installed on bootstrap installation?

thanks

 

RTFM

 

 

Optional Extras
===============
 
HT Module now included for Information Pages courtesy of Joli1811
-----------------------------------------------------------------
 
 
You need to already have the Information Pages addon installed, then overwrite three files, run
the SQL file, upload the HT module and turn it on.  Everything needed is in the extra_uploads folder.
This is not a part of the standard SEO package, but is included as an optional extra.
Edited by burt
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...