Jump to content

mthierfelder

Members
  • Content count

    109
  • Joined

  • Last visited

Posts posted by mthierfelder


  1. Hello, I have installed How Did You Hear About Us 1.6 into a fairly heavily modified shop that also has Purchase Without Account installed... If I choose to checkout without creating an account, I don't get the dropdown field, however, if I continue to the next page, I get an error stating I need to fill in this field (which doesn't show).

     

    I've looked through this forum for a workaround, but the only information I found was very old and no longer applicable as the file mentioned is no longer included in the base installation.

     

    Has anybody gotten this to work with Purchase Without Account, and/or was there an alternative contribution that resolved this issue?

     

    Many thanks,

    Janet

     

    I've got PWA installed on a shop, and put this module in pretty easily...everything seems to be working well so far.

     

    All I did was put this block in create_account.php:

        <!-- //rmh referral start -->
    <?php
     if ((tep_not_null(tep_get_sources()) || DISPLAY_REFERRAL_OTHER == 'true') && (!tep_session_is_registered('referral_id') || (tep_session_is_registered('referral_id') && DISPLAY_REFERRAL_SOURCE == 'true')) ) {
    ?>
         <tr>
           <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
         </tr>
         <tr>
           <td class="main"><b><?php echo CATEGORY_SOURCE; ?></b></td>
         </tr>
         <tr>
           <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
             <tr class="infoBoxContents">
               <td><table border="0" cellspacing="2" cellpadding="2">
                 <tr>
                   <td class="main"><?php echo ENTRY_SOURCE; ?></td>
                   <td class="main"><?php echo tep_get_source_list('source', (DISPLAY_REFERRAL_OTHER == 'true' || (tep_session_is_registered('referral_id') && tep_not_null($referral_id)) ? true : false), (tep_session_is_registered('referral_id') && tep_not_null($referral_id)) ? '9999' : '') . ' ' . (tep_not_null(ENTRY_SOURCE_TEXT) ? '<span class="inputRequirement">' . ENTRY_SOURCE_TEXT . '</span>': ''); ?></td>
                 </tr>
    <?php
       if (DISPLAY_REFERRAL_OTHER == 'true' || (tep_session_is_registered('referral_id') && tep_not_null($referral_id))) {
    ?>
                 <tr>
                   <td class="main"><?php echo ENTRY_SOURCE_OTHER; ?></td>
                   <td class="main"><?php echo tep_draw_input_field('source_other', (tep_not_null($referral_id) ? $referral_id : '')) . ' ' . (tep_not_null(ENTRY_SOURCE_OTHER_TEXT) ? '<span class="inputRequirement">' . ENTRY_SOURCE_OTHER_TEXT . '</span>': ''); ?></td>
                 </tr>
    <?php
       }
    ?>
               </table></td>
             </tr>
           </table></td>
         </tr>
    <?php
     } else if (DISPLAY_REFERRAL_SOURCE == 'false') {
         echo tep_draw_hidden_field('source', ((tep_session_is_registered('referral_id') && tep_not_null($referral_id)) ? '9999' : '')) . tep_draw_hidden_field('source_other', (tep_not_null($referral_id) ? $referral_id : ''));
     }
    ?>
    <!-- //rmh referral end -->

     

    Put it in After this:

    <?php
     // PWA BOF
     }
     else
     { // Ingo PWA Ende
    ?>

     

    ...and just before this:

     <tr>
      <td><?php echo tep_draw_hidden_field('guest', 'guest'); ?></td>
    </tr>
    <?php } 
    // PWA EOF
    ?>


  2. If you just wanted to get rid of the 1 in that box, use the following code in your /includes/functions/ajax.php

     

    Find this:

    if ( tep_db_num_rows($zones_query) ) {
    		$output .= tep_draw_pull_down_menu('zone_id', $zones_array, $default_zone);	  
    	} else {
    		$output .= tep_draw_input_field('state', $default_zone);
    	}

     

    Replace with this:

    if ( tep_db_num_rows($zones_query) ) {
    		$output .= tep_draw_pull_down_menu('zone_id', $zones_array, $default_zone);	  
    	} else {
    		if ($default_zone != '1') {
    		$output .= tep_draw_input_field('state', $default_zone);
    		}
    		else
    		{
    		$output .= tep_draw_input_field('state', '');
    		}
    	}


  3. Is there a fix for the "unexpected T_CASE" in customers.php?

     

    I've seen lots and lots of people with this problem but no one is posting a fix. Please help.

     

    I found the problem, and posted the bug fix to the addons page.

     

    The problem was in the README.HTM file, it added an extra "}" in /admin/customers.php, fix is here:

     

    Line 152:
    
    Replace:
    
    // +Country-State Selector	  
      } //  End if (!$refresh)	
      if (($error == false) && ($refresh != 'true')) {
    // -Country-State Selector
    
    with:
    
    // +Country-State Selector	  
       //  End if (!$refresh)	
      if (($error == false) && ($refresh != 'true')) {
    // -Country-State Selector


  4. Hi,

     

    I am trying to do the same thing, I need to integrate STS with UlraPics and I am using the content template for product_info. Any pointers would be GREATLY appreciated, or code samples are even better!

     

    Thanks,

    Mike


  5. I'm using STS, how can i hack this plugin?

     

    I am using STS too, couldn't get this one to work but found a much simpler solution. It also works with products listing columns contrib.

     

    This goes before the </head> tag of your index.php.html or whichever template you are using for your index page in STS (if not using STS just put it in the regular index.php file):

    <script language="javascript" src="includes/popup.js"></script>
    <script language="javascript" src="includes/utility.js"></script>

     

    Here is popup.js:

    // Copyright © 2000 by Apple Computer, Inc., All Rights Reserved.
    //
    // You may incorporate this Apple sample code into your own code
    // without restriction. This Apple sample code has been provided "AS IS"
    // and the responsibility for its operation is yours. You may redistribute
    // this code, but you are not permitted to redistribute it as
    // "Apple sample code" after having made changes.
    // ********************************
    // application-specific functions *
    // ********************************
    
    // store variables to control where the popup will appear relative to the cursor position
    // positive numbers are below and to the right of the cursor, negative numbers are above and to the left
    var xOffset = 30;
    var yOffset = -30;
    
    function showPopup (targetObjectId, eventObj) {
    if(eventObj) {
    // hide any currently-visible popups
    hideCurrentPopup();
    // stop event from bubbling up any farther
    eventObj.cancelBubble = true;
    // move popup div to current cursor position 
    // (add scrollTop to account for scrolling for IE)
    var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
    var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
    moveObject(targetObjectId, newXCoordinate, newYCoordinate);
    // and make it visible
    if( changeObjectVisibility(targetObjectId, 'visible') ) {
    	// if we successfully showed the popup
    	// store its Id on a globally-accessible object
    	window.currentlyVisiblePopup = targetObjectId;
    	return true;
    } else {
    	// we couldn't show the popup, boo hoo!
    	return false;
    }
    } else {
    // there was no event object, so we won't be able to position anything, so give up
    return false;
    }
    } // showPopup
    
    function hideCurrentPopup() {
    // note: we've stored the currently-visible popup on the global object window.currentlyVisiblePopup
    if(window.currentlyVisiblePopup) {
    changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
    window.currentlyVisiblePopup = false;
    }
    } // hideCurrentPopup
    
    
    
    // ***********************
    // hacks and workarounds *
    // ***********************
    
    // initialize hacks whenever the page loads
    window.onload = initializeHacks;
    
    // setup an event handler to hide popups for generic clicks on the document
    document.onclick = hideCurrentPopup;
    
    function initializeHacks() {
    // this ugly little hack resizes a blank div to make sure you can click
    // anywhere in the window for Mac MSIE 5
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
    && (navigator.platform.indexOf('Mac') != -1)
    && getStyleObject('blankDiv')) {
    window.onresize = explorerMacResizeFix;
    }
    resizeBlankDiv();
    // this next function creates a placeholder object for older browsers
    createFakeEventObj();
    }
    
    function createFakeEventObj() {
    // create a fake event object for older browsers to avoid errors in function call
    // when we need to pass the event object to functions
    if (!window.event) {
    window.event = false;
    }
    } // createFakeEventObj
    
    function resizeBlankDiv() {
    // resize blank placeholder div so IE 5 on mac will get all clicks in window
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
    && (navigator.platform.indexOf('Mac') != -1)
    && getStyleObject('blankDiv')) {
    getStyleObject('blankDiv').width = document.body.clientWidth - 20;
    getStyleObject('blankDiv').height = document.body.clientHeight - 20;
    }
    }
    
    function explorerMacResizeFix () {
    location.reload(false);
    }

     

    Here is utility.js:

    // Copyright © 2000 by Apple Computer, Inc., All Rights Reserved.
    //
    // You may incorporate this Apple sample code into your own code
    // without restriction. This Apple sample code has been provided "AS IS"
    // and the responsibility for its operation is yours. You may redistribute
    // this code, but you are not permitted to redistribute it as
    // "Apple sample code" after having made changes.
    //
    // ************************
    // layer utility routines *
    // ************************
    
    function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its id
    if(document.getElementById && document.getElementById(objectId)) {
    // W3C DOM
    return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
    // MSIE 4 DOM
    return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
    // NN 4 DOM.. note: this won't find nested layers
    return document.layers[objectId];
    } else {
    return false;
    }
    } // getStyleObject
    
    function changeObjectVisibility(objectId, newVisibility) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
    styleObject.visibility = newVisibility;
    return true;
    } else {
    // we couldn't find the object, so we can't change its visibility
    return false;
    }
    } // changeObjectVisibility
    
    function moveObject(objectId, newXCoordinate, newYCoordinate) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
    styleObject.left = newXCoordinate;
    styleObject.top = newYCoordinate;
    return true;
    } else {
    // we couldn't find the object, so we can't very well move it
    return false;
    }
    } // moveObject

     

    Find this code in /includes/modules/product_listing.php:

    else {
    		  $lc_text = ' <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'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a> ';
    		}

    Replace with:

    else {
    			 $lc_text = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '"  class=popupLink onmouseover="return !showPopup(\'' . $listing['products_id'] . '\', event);" onmouseout="hideCurrentPopup()">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a> <DIV onclick=\'event.cancelBubble = true;\' class=popup id=' . $listing['products_id'] . '><table width="50%" border="0" cellspacing="0" cellpadding="0"><tr><td>' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name']) . '</td></tr></table></DIV>';
    		}

    Note: if your original product_listing.php code snippet uses this syntax: $listing[$x]['products_id'] then you'll need to make sure the changed code reflects this structure, just put [$x] in front of every $listing call in that snippet.

     

    Last but not least, the CSS to go in your stylesheet.css:

    .popup
    {
    visibility:hidden;
    position: absolute;
    left:-100px;
    }


  6. I have installed QTPro 4.5, and using it with STS4.5.

     

    Everything seems to work except if you add a product to the cart, on the shopping_cart.php page, the product image/text link goes to: /shop/product_info.php?products_id=28{1}2{2}3 Note the weird curly braces. It redirects back to the main category.

     

    Any idea?

     

    the only product in the store is here: http://www.fluffyco.com/shop/product_info....;products_id=28


  7. I've searched throughout the forums and can't find the answer. Lots of posts requesting the feature to have the extra_fields value show up on the product_listing.php page but no help.

     

    If anybody has an idea of how to pass the extra_fields variable to other pages (besides just product_info.php) I'd be very interested. I'd like it to show up at least on the product_listing, possibly in the shopping_cart, and checkout confirmation pages as well.


  8. Thanks for the quick response! Unfortunately, these were the /bin files I was using, and I still get the 'Credit Card Error' message.

     

    Two questions:

    1. Does this contribution work in the test mode?

    2. Any tips on how to debug this as far as log files or other info?

     

    thanks!

    /russg

     

    I never used test mode, the other contrib I grabbed files from said it absolutely did not work in test mode so you might want to try setting it to live if you can and just use the bogus cc# 4111111111111111 for testing. If you get the Credit+Card+Error%21+Declined you'll know it worked, if you get the generic Credit+Card+Error%21 then you'll know your module is not working yet. I think :rolleyes:

     

    Debugging Tips:

    1. be sure appropriate permissions are set for the /bin files and folders.

    2. be sure the executable name in the admin module is not pfpro.so, but simply pfpro

    3. If you are using godaddy as your host, or bluehost, or any other host that requires a proxy server to run payflow you will need their proxy server info. A quick call to tech support might work, but godaddy's was typically worthless and told me they don't support payflow at all....their help files however, proved worth their weight as they gave me what I needed. Tip: don't use the native search when digging through knowledge bases, use google instead and type, site:godaddy.com payflow...sad but it works much better.

    4. Godaddy told me they required me to use a php.ini file that specifies the location of the certs folder for payflow, this was not true since I was using my own payflow files. If you can find the location of payflow files on your server, then you might try using them to simplify things. That's a bit of a gamble since in my experience most hosts don't know much about payflow, less about paths, and even less about permissions regarding both.

    5. Try looking through the module payflowpro.php and the function pfpro.php near the top to make sure none of the default settings are causing problems for your configuration. There is a section where you can hard code in the paths, proxy server, etc. and there's a section where you can tell pfpro to look in the php.ini for the paths, etc.

     

    If you get through all that and can't get it, let me know and I'll send a screenie of my admin config and my pfpro.php and payflowpro.php files and you can try them. At least that way you'll know if its your server or if its your files.

     

    Mind you I'm no expert in this, more just a hack, and I spent 1 day alone working on this stupid thing. The contrib is really misleading IMO in that it says, its really an easy install just drag and drop! Well, not so for everybody I'd say.


  9. OK, maybe I'm being stupid, but none of the downloads in this this contribution string have the contents of the /bin directory. Where can I find those?

    thanks!

    /russg

     

    I guess you're right, I downloaded another payflow module and ripped the /bin files from it. You could also get them straight from the dev kit from Paypal too. This is the contrib that I got my files from:

    http://www.oscommerce.com/community/contri.../search,payflow

     

    Good luck.


  10. Same here - installing on a shared SSL (Bluehost) gives me error 21 every time - all other payment gateways work (including PayPal IPN) but this one fails all the time

     

    Baffled

     

    Finally got it working today. The problem was the path to the files, I used this contrib: http://www.oscommerce.com/community/contributions,1019 to get it working....there are others, but this one works. I added a complete install file that details how to install the stupid thing and get all the paths set up properly.

     

    Give me a PM if you can't figure it after trying this contrib.


  11. Has anyone got a fix to this? I can't get the thing working at all, and noone seems to know what is going on.

     

    Also getting this error. I don't use a proxy server.

     

    I'm hosted with GoDaddy, just to put that out there.


  12. I have installed this contrib and it is great!

     

    One feature request, or even code help though:

     

    I'd like the possibility of switching the contrib on and off by category, instead of globally. So for one category you could have 1 add to cart button for all products within, then for another you could have individual buy it buttons for each product within, then for yet another you could show default product listing.

     

    Does anyone have any idea of how I could do this? where to start looking, etc?


  13. Yes, well I appreciate the thought but to be honest, that wouldn't work for my purposes. In my case its a scenerio where the site sells vitamins & supplements. So, say they sell vitamin C, and they have a 500 pill bottle, a 1000 pill bottle, and a 2000 pill bottle. Its not efficient or acceptable to make a "Vitamin C" category and list them all there, as they have close to 200 different vitamins and supplements. That would mean that they would end up with 200 categories of vitamins, each with 2 or 3 products in it. To concatenate the problem, I am using dynamenu which is a dhtml menu system that generates flyout menu dynamically based on the categories you have setup, so the flyouts could get a bit unwieldy.

     

    Maybe you begin to see my point?....

     

    Anyway, if you don't have any suggestions on coding, its kind of a moot point as MS2 is already set up and working on the store. I'm just trying to add functionality to it now.


  14. I don' understand your Q

    Do you want a check box instead of a drop down list?

    The answer to that can be found in the forum =)

     

    What I would like is for the slaves to appear with no quantity box/dropdown menu/checkbox. The "Buy It" button should automatically add 1 to the cart when you click on it, then in the cart you should change the quantity if you want to. Do you know how to get rid of the quantity selector, and have the Buy It button just add 1 to the cart?


  15. I've searched the forums for this, and ACTUALLY FOUND AN ANSWER!....don't get excited though, as the fix is for an old version of MS2

     

    So many people have been asking about this, I'm surprised that no PHP wizards have solved it yet...

     

    The PROBLEM:

    I DON"T WANT A QTY BOX in the master_listing.php for each slave.

     

    Anybody have a solution? I've tried about 10 different things, some of which almost work (add both slaves to the cart), some don't work at all (add master to the cart), and some are just plain silly.

     

    Chunk of code concerned in master_listing.php

    } elseif ((STOCK_CHECK == 'false')&&(tep_get_products_stock($listing['products_id']) < 1)) {
    		$qty_array = array();
    		for ($i=0; $ns = 20, $i <= $ns; $i++) {
    				$qty_array[] = array('id' => $i, 'text' => $i);
    	 				 $lc_text = tep_draw_input_field('Qty_ProdId_' . $listing['products_id'], '1', 'size="4"');
    	  }
    	  } else {
    		$quantity = tep_get_products_stock($listing['products_id']);			  
    		$qty_array = array();
    		for ($i=0; $ns = (($quantity < 20) ? $quantity : 20), $i <= $ns; $i++) {
    				$qty_array[] = array('id' => $i, 'text' => $i);
    
    //Fix added to display the Buy Button nex to the Qty Select Mike
    				$lc_text = '<span style="white-space:nowrap;vertical-align:middle;">';
    				$lc_text .= tep_draw_pull_down_menu('Qty_ProdId_' . $listing['products_id'], $qty_array, '0','');
    				//$lc_text .= tep_draw_hidden_field('Qty_ProdId_' . $listing['products_id'], $value = (int)1);
    				$lc_text .= ' ' . tep_draw_hidden_field('products_id', $listing['products_id']) . tep_image_submit('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</span>'; 
    
    		}


  16. Hello,

     

    Is it possible to install not in the directory catalog/ ?

     

    My oscommerce website is located directly in the root (to overcome the url www.mysite.com\catalog\index.php)

     

    Regards, Paul

     

     

    Yes, this is what I want to do as well....is it possible? What kinds of things will I need to do to make sure it works smoothly? Any help appreciated.


  17. Hi guys. This contribution seems really cool and just what I need. Are there any install instructions for those of us who don't have a clean install of OSC? Going through each file trying to find the differences is too time consuming.

     

    THANKS! :blush:

     

    Unfortunately, this is the only reliable method since you woulnd't want to over write vital sections of your code that has already been modified. There are utilitites that can greatly aid in this task such as Beyond Compare, and there's also another one. They are GREAT! You should get them and use them regularly...only way to modify OsC stores.

     

    Good luck!


  18. I am trying to install this with Master Products. I am getting hung up with categories.php. Everything works great except if I try to update an existing product's image. When I try, it acts like it is updating the image but no image is shown on the preview page, and no image shows up on the product list.

     

    I know its a case of figuring out where to paste in the new Additional Images code for each 'case' in the categories.php page, but so far I have'nt been able to get it to work.

     

    Anyone with help in this area, please contact me and let me know.


  19. Yes, that's certainly possible (if I understand correctly). I had this complaint as well. I actually ended up using a Buy It button instead of the default set up, which required a lot of modification and I won't go into it here...that being said here's your fix:

     

    Go into the file catalog/includes/modules/master_listing.php and look for this:

     

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

     

    Change to this:

     

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

     

    My first ever posting on any oscommerce forum so please be gentle with an absoloute beginner!

    Having read this support thread I have managed to install and configure Master Products and have it working perfectly, (brilliant addition - many thanks).

     

    My query is: When I set up slaves, they all have '1' selected as the default number for customer purchase. If I have 10 slaves under the master, with 10 T-shirts in various sizes or colours, the customer automatically adds 1 of each, (ie 10 in total), to his cart if he simply clicks Add to Cart.

    Is there ay way of setting the default slect to zero, meaning the customer has to physically enter the number he wants next to the slave he wishes to buy?

     

    Huge apologies if this has been covered but I truly have tried to read through every contribution to find the answer to this one!


  20. Hey Everyone, I have a question about the FedEx shipping process. I added the label generator v1.2b and surprisingly went in fairly smooth without any errors. My question is I get an error when trying to track a shipment.

     

    Your package is not in the tracking system yet. Please check back later.

    ERROR: FedEx Return Error 500139 : No information for the following shipments has been received by our system yet. Please try again or contact Customer Service at 1.800.Go.FedEx® 800.463.3339.

     

    Does this mean that the FedEx guy has to scan it first and then it will show in the system OR should it automatically go into the system when the label is generated in OSCommerce.

     

    Thanks!

     

     

    I have this question too. Also, after I log into my account on the fedex.com website, there are no shipments shown, and there are no current bills due, no tracking numbers etc. This says to me that the module is not submitting properly to fedex. Yes, I am certified to use the production server, just got it this morning.

     

    Can someone outline how the module is SUPPOSED to work? some questions about the actual functionality of the thing.

×