Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Master Products - MS2


Guest

Recommended Posts

Is it possible to have the site search include the slave products model # and description, with a link to the master product? Any tips for doing so before I take a stab at it?

 

It's good to see support for this great contribution be continued for the latest release.

Link to comment
Share on other sites

Is it possible to have the site search include the slave products model # and description, with a link to the master product? Any tips for doing so before I take a stab at it?

 

It's good to see support for this great contribution be continued for the latest release.

 

I think possible. We take a standard seach and get products_master string as results. After we have to take an array and we can list something.

First we try to finish Beta. Would be important to make with something slave popup page. There are a lot of facilities (JQuery popup or something like original JAVASRIPT)

I cant see at this moment slave url seo. All of the links go to master so maybe websearchers dont like it. Does somebody have experriencies?

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

I think possible. We take a standard seach and get products_master string as results. After we have to take an array and we can list something.

First we try to finish Beta. Would be important to make with something slave popup page. There are a lot of facilities (JQuery popup or something like original JAVASRIPT)

I cant see at this moment slave url seo. All of the links go to master so maybe websearchers dont like it. Does somebody have experriencies?

 

I think I have slave SEO url's. But I dont understand what it supposed to be happening with the products

 

http://www dot electricalcity.co.uk

Link to comment
Share on other sites

I have set up a test shop.

 

When the suggested accessories box is activated it causes a display problem in IE9

 

http://www dot electricalcity.co.uk/sample1/

 

I have tried Ultimate URLs (USU 5 Pro) and they work fine on the suggested accessories box, but not on the product listing page

 

edit:: the SEO urls work fine if the master an slave products are placed in a category.

Edited by pdcelec
Link to comment
Share on other sites

Is it possible to have the site search include the slave products model # and description, with a link to the master product? Any tips for doing so before I take a stab at it?

 

This is more simple.

 

Change in advanced_search_result.php

 

// Master Products
 $where_str = " where p.products_status = '1' and p.products_master = '0' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id ";
//Master Products EOF

 

to:

 

// Master Products
 $where_str = " where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '" .  (int)$languages_id . "' and p.products_id = p2c.products_id and  p2c.categories_id = c.categories_id ";
//Master Products EOF

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

I have tried Ultimate URLs (USU 5 Pro) and they work fine on the suggested accessories box, but not on the product listing page

 

I see. I try to find something.

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

Error Type: [E_NOTICE] Undefined index: products_set_only

in application_top

 

This is the offending part

//Master Products

if ($_GET['products_set_only']) {

 

Would I be right in saying to change it to

if (isset($_GET['products_set_only'])) {

Link to comment
Share on other sites

Error Type: [E_NOTICE] Undefined index: products_set_only

in application_top

 

This is the offending part

//Master Products

if ($_GET['products_set_only']) {

 

Would I be right in saying to change it to

if (isset($_GET['products_set_only'])) {

 

Yes this is good idea but 'products_set_only' maybe redundant. I think would be better to use parameters in links like this: /products_info.php?products_id=xx&slave_id=yy from previous pages or suggested_accessories or anywhere.

 

tep_href_link(FILENAME_PRODUCT_INFO . '?products_id=' . $HTTP_GET_VARS['products_master'] . '&slave_id=' . $HTTP_GET_VARS['products_id'])

 

or

 

tep_href_link(FILENAME_PRODUCT_INFO . '?products_id=' . $product_info['products_master'] . '&slave_id=' . $product_info['products_id'])

 

I dont undenstand why use redirects this contrib. We can avoid every problems.

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

A couple more notice errors

 

Date / Time: 28-12-2010 23:27:22

Error Type: [E_NOTICE] Undefined variable: cart

On line 36

File includes/modules/boxes/bm_suggested_accessories.php

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Date / Time: 28-12-2010 23:27:22

Error Type: [E_NOTICE] Undefined variable: data

On line 79

File includes/modules/boxes/bm_suggested_accessories.php

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Link to comment
Share on other sites

A couple more notice errors

 

Date / Time: 28-12-2010 23:27:22

Error Type: [E_NOTICE] Undefined variable: cart

On line 36

File includes/modules/boxes/bm_suggested_accessories.php

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Date / Time: 28-12-2010 23:27:22

Error Type: [E_NOTICE] Undefined variable: data

On line 79

File includes/modules/boxes/bm_suggested_accessories.php

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

includes/modules/boxes/bm_suggested_accessories.php change

 

<?php
/*
 $Id$

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2010 osCommerce

 Released under the GNU General Public License
*/

 class bm_suggested_accessories {
var $code = 'bm_suggested_accessories';
var $group = 'boxes';
var $title;
var $description;
var $sort_order;
var $enabled = false;

function bm_suggested_accessories() {
 	$this->title = MODULE_BOXES_SUGGESTED_ACCESSORIES_TITLE;
 	$this->description = MODULE_BOXES_SUGGESTED_ACCESSORIES_DESCRIPTION;

 	if ( defined('MODULE_BOXES_SUGGESTED_ACCESSORIES_STATUS') ) {
   	$this->sort_order = MODULE_BOXES_SUGGESTED_ACCESSORIES_SORT_ORDER;
   	$this->enabled = (MODULE_BOXES_SUGGESTED_ACCESSORIES_STATUS == 'True');

   	$this->group = ((MODULE_BOXES_SUGGESTED_ACCESSORIES_CONTENT_PLACEMENT == 'Left Column') ? 'boxes_column_left' : 'boxes_column_right');
 	}
}

function execute() {
 	global $oscTemplate;

 	$slaves = $this->get_slave_products();
 	if (tep_not_null($slaves) ) {

   	$max_rows_to_show = 0; 
   	$cfg_query = tep_db_query("select configuration_value from " . 
                 	TABLE_CONFIGURATION . " where configuration_key = '" . 
                 	"MASTER_LIST_NUM_ACCESSORIES" . "'"); 
   	if (tep_db_num_rows($cfg_query) > 0 ) { 
     	$cfg_array = tep_db_fetch_array($cfg_query);
     	$max_rows_to_show = (int)$cfg_array['configuration_value'];
   	}

   	if ( 0 < $max_rows_to_show ) { 
     	$data = '<div class="ui-widget infoBoxContainer">' .
             	'  <div class="ui-widget-header infoBoxHeading">' . MODULE_BOXES_SUGGESTED_ACCESSORIES_BOX_TITLE . '</div>' .
             	'  <div class="ui-widget-content infoBoxContents">';
     	foreach ( $slaves as $key => $value ) { 
       	$slave = $slaves[$key]; 
       	$strquery = "select p.products_id, p.products_master, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd " . "where p.products_id = '" . $slave['products_id'] . "' " . "  and p.products_id = pd.products_id";
       	// echo "<!-- QUERY: " . $strquery . " -->\n";
       	$query = tep_db_query($strquery);
       	if ( tep_db_num_rows($query)) { 
         	$row = tep_db_fetch_array($query);
         	// echo "<!-- QUERY RESULTS: " . $row['products_name'] . " -->\n";
         	$data .= '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $row['products_master'] . '&slave_id=' . $row['products_id']) . '">' .  $row['products_name'] . '</a><br />';
       	}
     	}
     	$data .= '  </div>' .
          		'</div>';
   	} else {
     	$data = '<div class="ui-widget infoBoxContainer">' .
             	'  <div class="ui-widget-header infoBoxHeading">' . MODULE_BOXES_SUGGESTED_ACCESSORIES_BOX_TITLE . '</div>' .
             	'  <div class="ui-widget-content infoBoxContents">';
     	$data .= '  </div>' .
          		'</div>';              	
   	}
 	}

 	$oscTemplate->addBlock($data, $this->group);
}

function isEnabled() {
 	return $this->enabled;
}

function check() {
 	return defined('MODULE_BOXES_SUGGESTED_ACCESSORIES_STATUS');
}

function install() {
 	tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Suggested Accessories Module', 'MODULE_BOXES_SUGGESTED_ACCESSORIES_STATUS', 'True', 'Do you want to add the module to your shop?', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
 	tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Content Placement', 'MODULE_BOXES_SUGGESTED_ACCESSORIES_CONTENT_PLACEMENT', 'Right Column', 'Should the module be loaded in the left or right column?', '6', '1', 'tep_cfg_select_option(array(\'Left Column\', \'Right Column\'), ', now())");
 	tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_BOXES_SUGGESTED_ACCESSORIES_SORT_ORDER', '5001', 'Sort order of display. Lowest is displayed first.', '6', '0', now())");
 	tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Entries in Accessories Infobox', 'MASTER_LIST_NUM_ACCESSORIES', '5', 'aximum number of entries in the suggested accessories infobox', '3', '12', now())");
}

function remove() {
 	tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
}

function keys() {
 	return array('MODULE_BOXES_SUGGESTED_ACCESSORIES_STATUS', 'MODULE_BOXES_SUGGESTED_ACCESSORIES_CONTENT_PLACEMENT', 'MODULE_BOXES_SUGGESTED_ACCESSORIES_SORT_ORDER', 'MASTER_LIST_NUM_ACCESSORIES');
}

function get_slave_products() {
  	global $cart;

  	require(DIR_WS_CLASSES . "masters_and_slaves.php");
// first, are there any products in the cart that have slave products
// associated with them? 
 	$products = $cart->get_products(); 
 	$slaves = array();
   	foreach ( $products as $i => $value ) {
     	$product_id = $products[$i]['id'];
     	$master_prod = new masterProduct($product_id);

     	// second, are any of those slave products in the cart? 
     	$slave_array = $master_prod->get_slaves();  
     	foreach ( $slave_array as $i => $value ) { 
       	$slave = $slave_array[$i];
       	$slave_id = $slave['products_id'];
       	if ( $cart->get_quantity($slave_id) <= 0 ) { 
         	$slaves[] = $slave;
       	}
     	}
   	}

	// return array of products.
	return($slaves);
  }	
 }
?>

 

 

is it helped? I dont find this error when happened?

Edited by Gergely

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

includes/modules/boxes/bm_suggested_accessories.php change

 

 

This version of suggested_accessories contains next link process. Could you test it in SEO? Does it work? Can you link to master page from slave products?

 

I hope we don't need some changed codes in ßeta pack. I rewrote all relevated tep_href_links

 

We can write reviews to slave products. Why not?

Edited by Gergely

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

Date / Time: 28-12-2010 23:27:22

Error Type: [E_NOTICE] Undefined variable: data

On line 79

File includes/modules/boxes/bm_suggested_accessories.php

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

 

change

 

   	}

 	$oscTemplate->addBlock($data, $this->group);
}

function isEnabled() {
 	return $this->enabled;
}

 

 

to

 

    	$oscTemplate->addBlock($data, $this->group);
 	}
}

function isEnabled() {
 	return $this->enabled;
}

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

I changed the New Product config.

 

add_only_new_product.jpg

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

I have done the changes to the suggested accessories box and this is the result when I click on slave

 

http://www.electricalcity.co.uk/sample1/test-p-29.html?slave_id=30

 

Ok. This is fine! We can do unique links! You need url seo enhance from SEO contributor.

 

We need to list on product_info page about slave product for SEO.

For example make bold letter highlight in master listing or print some info about slave product. Master product's Header tags can mix or join with slave product or something like this.

 

It looks like just solved popup page problems and google xml sitemap seo too. We have to reach original product_info page only for slave products without master listing table, so we dont need popup pages. Customers can write reviews and so on.

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

A template has been made available for creating addons for USU 5 pro

 

I do not know enough to create it

<?php
/**
*
* ULTIMATE Seo Urls 5
*
* 
* @package Ultimate Seo Urls 5
* @license http://www.opensource.org/licenses/gpl-2.0.php GNU Public License
* @link http://www.fwrmedia.co.uk
* @copyright Copyright 2008-2009 FWR Media
* @copyright Portions Copyright 2005 Bobby Easland
* @author Robert Fisher, FWR Media, http://www.fwrmedia.co.uk 
* @lastdev $Author:: Rob                                              $:  Author of last commit
* @lastmod $Date:: 2010-12-01 14:03:08 +0000 (Wed, 01 Dec 2010)       $:  Date of last commit
* @version $Rev:: 188                                                 $:  Revision of last commit
* @Id $Id:: Usu_Template.php 188 2010-12-01 14:03:08Z Rob             $:  Full Details   
*/

class Usu_XXX extends aDataMap {

 const MARKER = '-xxx-';  // Could for example be -c- or -l- etc.
 const DEPENDENCY = 'xxx_id'; // _GET key like e.g. cPath or lPath etc.
 const FILENAME = 'xxx.php'; // The filename define of the file where this code will be actioned, this MUST NOT be a define
 public $dependency = self::DEPENDENCY;
 public $dependency_tags = array( self::MARKER => self::FILENAME ); // key value pair of tag (like e.g. -c-) => filename ( e.g. FILENAME_DEFAULT )
 private $page_relations = array( self::FILENAME => 1 ); // Page relation for this module ( e.g. FILENAME_DEFAULT or FILENAME_LINKS )
 private $markers = array( self::MARKER => self::DEPENDENCY ); // Markers as key value pair like -c- => cPath or perhaps -l- => lPath
 private $base_query; // Template query with placeholders ( :placeholder ) waiting for real values
 private $query; // The final query which will be $base_query but with the placeholders replaced with real values
 private $xxx_name; // property populated in the acquire() method, there may be multiples of these, rename in line with the query results
 private $dependency_value; // Dependency value, so if the dependency was cPath and cPath = 27 then this value would be 27
 private $installed = false; // Unless it is a core module $installed should only be true if the contribution is installed ( e.g. articles or links manager etc )

 public function __construct(){
   // The items with a colon : are placeholders which must match the $placeholders array in method acquire()
   $this->base_query = "SELECT xxx FROM " . TABLE_XXX . " WHERE xxx_id=':xxx_id' LIMIT 1";
   usu::$registry->merge( 'seo_pages', $this->page_relations );
   usu::$registry->merge( 'markers', $this->markers );
   usu::$registry->addPageDependency( array( self::FILENAME => self::DEPENDENCY ));
   /**
   * XXX For modules which are optional ( like information pages etc)
   * we would check for the existance of certain defines and if present set $this->installed to true
   * e.g. for the links contribution we would use ..
   * if ( defined( 'FILENAME_LINKS' ) && defined( 'TABLE_LINK_CATEGORIES_DESCRIPTION' ) ) {
   *   $this->installed = true;
   * }  
   */
   $this->installed = true; // xxx Hardcoded to true in this instance - see above comment.
 }

 protected function acquire( $base_path, $full_path ) {
   $this->dependency_value = $full_path; // Full path perhaps with underscores
   /**
   * About placeholders
   *  
   * The placeholders (items with a colon :) must match those in the query ( $this->base_query in the constructor )
   */
   $placeholders = array( ':xxx_id' );
   // Do the below values need to be typecast?
   $values = array( (int)$base_path ); // xxx These values will replace the placeholders above in $this->base_query
   $this->query = str_replace( $placeholders, $values, $this->base_query ); // Replace the placeholders with actual values
   $result = usu::query( $this->query ); // Action the query
   $this->query = null; // Unset the query for future usage
   $row = tep_db_fetch_array( $result ); // Return the array of data ( or false if there are no results )
   tep_db_free_result( $result ); // Housekeeping
   if ( false === $row ) {
     return false; // No results for the query so abort
   }
   /**
   *  Values obtained from the query, these properties will populate the registry via the method getProperties()
   * Method $this->linkText() should be used here to convert the text into seo url format e.g.
   * my great product .. may become .. my-great-product
   * You may have more than one of these like ..
   * $this->parentname, $this->catname dependent on how many results you retrieve from your query
   */
   $this->xxx_name = $this->linkText( $row['xxx_name'] );

   // If the registry item doesn't exist as a key then set a blank array
   if ( false === isset( usu::$registry->{self::DEPENDENCY} ) ) {
     usu::$registry->{self::DEPENDENCY} = array();
   }
   /**
   * Populate the registry with the properties we have set in this class
   */
   usu::$registry->attach( self::DEPENDENCY, $this->dependency_value, $this->getProperties() );
 } // End method

  protected function getProperties() {
    $properties = get_object_vars( $this ); // $properties becomes an array of all properties within this class
    unset( $properties['page_relations'] ); // Get rid of this key as it is not needed in the registry
    return $properties;  
  } // End method

  private function get_full_path( $path ) {
    // Only used for modules that require paths with parents like .. 2_6_35
    // See Usu_Categories.php for usage
    return $path;
  } // End method

  private function get_parents() {
    // Only used for modules that require paths with parents like .. 2_6_35
    // See Usu_Categories.php for usage
  } // End method

  /**
  * Builds the seo url
  * 
  * @param string $page - file name of the calling page e.g. index.php
  * @param array $valuepair - key => value pair array containing dependency(e.g. cPath) => value (e.g. 2_24_52)
  * @param string $url - $url passed by reference created by the method linkCreate() 
  * @param array $added_qs - passed by reference containing key value pairs for _GET
  * @param string $parameters - Currently unused
  */
  public function buildLink( $page, $valuepair, &$url, &$added_qs, $parameters ) {
    if ( ( $valuepair[0] != self::DEPENDENCY ) || ( false === array_key_exists( 1, $valuepair ) )
                                               || ( false === $this->installed )
                                               || !tep_not_null( $valuepair[1] ) ) {
      return false; // Either this module is not installed or the value pair does not meet our requirements so abort
    }
    $base_path = $valuepair[1]; // well it might be a single top level item
    if ( false !== strpos( $valuepair[1], '_' ) ) { // It is a path with parents? ( has underscores )
      $base_path = ltrim( strrchr( $valuepair[1], '_' ), '_' ); // Grab the base path which is the number at the end of a path with parents ( e.g. 2_23_37_52 = 52 ) 
    }
    // Sanity check - if the $base_path is not numeric then we dump it
    if ( false === is_numeric( $base_path ) ) {
      trigger_error( __CLASS__ . ' Incorrect ' . self::DEPENDENCY . ' presented: ' . $valuepair[1], E_USER_WARNING );
      return false;
    }
    // Get a full path with underscores from the database
    $full_path = $this->get_full_path( $base_path );
    // If this item is not already in the registry we use the acquire() method to query for the data
    if ( !isset( usu::$registry->vars[self::DEPENDENCY][$full_path] ) ) {
      if ( false === $this->acquire( $base_path, $full_path ) ) {
        return false; // Looks like an invalid request so dump it
      }
    } else {
      usu::$performance['queries_saved']++; // Already in the registry so we saved one query
    }
    /**
    * About $reg_item
    * 
    * We grab the array of data from the registry and place it in $reg_item for convenience
    * The data stored in the registry was set in the method acquire as properties of this class
    * These are then set in the registry using the method getProperties()
    * the specific array keys like $reg_item['catname'] will be specific and differ in each module 
    */
    $reg_item = array();
    $reg_item = usu::$registry->vars[$valuepair[0]][$full_path];

    /**
    * Set the link text from reg_item
    * e.g. $link_text = $reg_item['parentname'] . '-' . $reg_item['catname'];
    */
    $link_text = $reg_item['xxx_name']; // the property added in the acquire function this would have been set in the acquire method like $this->xxx_name


    switch( true ){
      case $page == self::FILENAME:
        $url = $this->linkCreate( self::FILENAME, $link_text, self::MARKER, $full_path );
        break;
      default:
        // Add leftovers to the querystring _GET
        $added_qs[filter_var( $valuepair[0], FILTER_SANITIZE_STRING )] = usu::cleanse( $valuepair[1] );
        break;
    } # end switch
  }
}

Edited by pdcelec
Link to comment
Share on other sites

A template has been made available for creating addons for USU 5 pro

 

I do not know enough to create it

 

I do not too. I think USU 5 pro seo needs query enhance. Slave_id var have to replace with slave product name.

 

Here is my test http://variants231 dot oscom.hu

 

I am testing. Next step I will send you my pack.

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

What about Multiple Masters?

 

The previous (cymonguk 2005/09/07) multiple master for single slave pack was similar and very good idea.

What's happening when we use multiple master products for a slaves?

The contribution goes crash. I found a lot of bugs.

 

My opinion that we need Suggested Masters information at least on products info page.

 

The next release will contain return links to masters from unique slave info page. All masters will be listed with links.

In this case customers can use every products listing results with better navigation.

 

 

NEW standard values for Multiple Masters like this "_ 57 67 557 _".

 

 

If we use "like %" options in queries we have to use unique values. The old standards not good enough. If we ask for "%57%" we can find "557" too.

So we have to use some open and close tags in products_master field: "_"

 

Look at special codes in suggested accessories:

 

trim(str_replace('_', '', $row['products_master']))

 

 

Return links with special examination code:

 

$data .= '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . ((strpos(trim(str_replace('_', '', $row['products_master'])), ' ') !== false) ? ($row['products_id']) : (trim(str_replace('_', '', $row['products_master'])) . '&slave_id=' . $row['products_id']))) . '">' .  $row['products_name'] . '</a><br />';

Not simple but usefull, and Master Products has got Multiple Masters.

 

 

What about search?

 

If we use Suggested Masters, the search results will be optimal for navigation. The navigation more important than anything.

 

 

 

What about previous page?

 

In link navigation next release will use slave_id so the program can do highlight in master products listing or something for seo or printing information. I deleted the ugly redirect.

 

 

I hope this will be usefull as we can read in this forum.

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

Hi there,

 

Ive hit a problem at the first hurdle. I cannot locate the Master.sql file within the archive I've downloaded!

 

Master Products V2.3x V2.0.zip

 

Any ideas?

 

Sorry. Download the next Master Products V2.3x V2.0a.zip.

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

I've executed the sql query and used the files from New shop. I'm now getting this error on the shop load;

 

Parse error: syntax error, unexpected ':' in /home/euro/public_html/shop/includes/functions/general.php on line 909

 

viewable at www.euroshack.com/shop

 

Any ideas?

Link to comment
Share on other sites

I've executed the sql query and used the files from New shop. I'm now getting this error on the shop load;

 

Parse error: syntax error, unexpected ':' in /home/euro/public_html/shop/includes/functions/general.php on line 909

 

viewable at www.euroshack.com/shop

 

Any ideas?

 

Find in catalog/includes/functions/general.php

 

  	$sort_suffix = (substr($sortby, 0, 1) == $colnum ? (substr($sortby, 1, 1) == 'a' ? '+' : '-' : '') . '</a>';

 

change to:

 

  	$sort_suffix = (substr($sortby, 0, 1) == $colnum ? (substr($sortby, 1, 1) == 'a' ? '+' : '-') : '') . '</a>';

 

Thanks for post! I will take an edit in the next release.

Edited by Gergely

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

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