Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by equilla

  1. Now uploaded to the contributions area here : http://www.oscommerce.com/community/contributions,3453 WHAT IT IS FOR ============== The supertracker contrib is designed to give you more information on which to base marketing decisions for your osCommerce store. I created the supertracker contrib because, although there were some contribs around that provide a more detailed who's online tool, nothing quite gave me the information I was after. Here is the information that is recorded for each customer arriving at your site: referring page referring query (so we can get at keywords used if search engine) landing page (including query string - important for Pay Per Click campaign assessment) arrival time exit time exit page IP address Number of clicks on the site (accuracy is not 100% as this is recorded based on session ID) Products viewed Customer ID (if signed in) Order ID (if order was placed) Were products added to cart (true/false) Did the customer Checkout (true/false) This allows lots of interesting reports to be generated about customer activity on your site, without the need of a 3rd party service, such as : Question which supertracker can currently help you answer are the following: How do my customers find my site? Which referring sites generate the most sales? Are there any trends to the pages on which baulking customers leaving without completing their purchase? Am I getting enough visitors from the countries I am targetting? Is my Pay Per Click Campaign delivering pay customers, rather than just expensive hits? Current Reports Available are as follows: Top Referrers Top Sales Generating Referrers Top Exit Pages (No Sale) Top Exit Pages (No Sale, but added to cart) Search Keywords Used Average Clicks on Site by referrer Average Time Spent on Site by referrer Last Ten Visitors Remember, this is just a beta version, so it's quite unpolished, but generally functional. The idea is to get feedback, develop, improve, etc.
  2. At someone else's suggestion, I have set up this development thread for Supertracker. The idea is that questions/suggestions/feedback regarding future requirements and improvements for Supertracker should be posted and discussed here. If you have an issue with getting the current edition of Supertracker to work, please post your problem to the Supertracker Support Thread, which you can find here: http://forums.oscommerce.com/index.php?act=ST&f=7&t=166141 OK, so this would be a suitable juncture at which to reveal what is in the version which I am about to upload (I needed to upload a new one to sort out proper copyright/licence text in the files, etc anyway):- 1. Improvement to the appearance/layout of the admin screen (probably still needs more work though) 2. Info about number of rows in Supertracker database table displayed in admin screen, with the ability to delete the oldest x rows (x is entered into a text box). 3. Basic reporting information screen for number of hits referred through PPC campaigns - stats at both campaign level and keyword level possible. This has to be configured both in Supertracker and, of course, within your PPC provider's control panel. 4. Summary report breaking down the % of overall visitors by country. 5. I have now switched the ip to country conversion on the catalog side, rather than the admin side. The IP address of a visitor really only needs to be evaluated once, and can then be stored in the database alongside their other data. Converting the IP address to give country information represents a large, unnecessary processing overhead, particularly when running new reports such as summary of % of visitors by country (see above) which can time out using the current methods with database tables that have over about 15,000 rows. For existing users the new download package includes an update script which sorts out aligning their databases to cope with the new structure for this, and the stuff which follows below. 6. Added tracking for which categories have been viewed. This might be useful information because at the moment an exit page shown as "index.php" does not necessarily mean the customer left on the front page of the site, but may have been viewing product category listings. Also, it may come in handy for finding categories that are not often viewed by customers. 7. Added tracking for what was in the customers cart when they left (if the added to cart). Not sure if this is strictly necessary - it may just add to the torture when seeing what sales have not been converted, but it's there now! I may soon also add an option to stop the system recording hits from your own IP address. For the longer term, I have some other ideas of things that need to be improved, but I'd be interested to hear what people think about this one. What I have in mind is a wizard/report thingy that takes some of the manual assessment out of the results generated by Supertracker. We have potentially a lot of data here to make sense of, and perhaps for the less experienced person some of the significance of it can be missed. What I have in mind is a one-click process that analyses everything and generates plain text advice based on the result (which would include looking at other stuff as well as the Supertracker data). For example, you could imaging the following kinds of output: - 40% of visitors who added products to their cart left at the page login.php. If you are selling products which are of a highly personal nature, perhaps you need to consider adding the PWA contribution.... - 90% of customers do not add products to their carts. As your product descriptions are an average of 30 characters in length, perhaps they do not have confidence in what they are buying. You should consider providing more detailed product descriptions. - Your overall conversion rate for PPC campaigns is 3%. On average, PPC referrals result in 2 clicks on the site. Perhaps you are receiving referrals from people who are looking for a different kind of store. You should consider revising your trigger keywords for your PPC campaigns. Well, the above may not be polished, but you get the idea - Thoughts...?
  3. equilla

    3D Secure

    Hi, just wondering if anyone can tell me if anyone has tackled the issue of integration of Paypal WPP with 3D Secure (https://www.paypal-business.co.uk/3dsecure.asp) as yet? And yes, I've just noticed this post has come up in the wrong place... perhaps one of the admins can move if for me...? Many thanks, Mark
  4. Hi All, new Options as Images contrib just released here: http://www.oscommerce.com/community/contributions,1467 Note, this is a complete rewrite from scratch and not a rework of the original contrib of similar name. Does exactly what it says on the tin (I hope....!). Should also work with MS1, although this has not been tested. Any comments, bugs, suggestions for improvement, please let me know. Many thanks, Mark
  5. equilla

    One Page Checkout Support

    Hi all, not withstanding any other issues there may be with this contribution, I had a quick look at the Update Cart issue tonight and have found that the following works for me. If you change this in checkout.php: if (tep_not_null($_GET)){ foreach($_GET as $var => $val){ $_GET[$var] = utf8_decode($val); } } to this: if (tep_not_null($_GET)){ foreach($_GET as $var => $val){ if (($var != 'qty') && ($var != 'id')) $_GET[$var] = utf8_decode($val); } } then I found the update cart button now works. The utf8_decode on $_GET was screwing up the arrays sent in the AJAX request.
  6. Hi Seb, If you have a look in catalog/admin/supertracker.php, you will find the line of code that limits the length of the URL shown (or anything else in the table for that matter); it's this one: if (strlen($tracker[$r]) > 50) $tracker[$r] = substr($tracker[$r],0,50); What this does is to limit all strings to 50 characters in length. If you remove this line, it will show the whole thing. URLs can get very long, which is why this was introduced, in order to avoid having a table that stretched way off screen. Regards, Mark
  7. Hi Remy, wow, that errors been in there a long time, so I'm surprised nobody picked it up before. Those files should indeed be going under catalog/admin.
  8. My newest contribution released today :D http://www.oscommerce.com/community/contributions,1680 This contribution allows you to easily change the look of your infoboxes by "wrapping" them in a sliced up graphic. All you have to do is draw one infobox template, save it as a JPEG, upload it and the script does the rest! A small library of example infobox skins is included with this contrib to get you started. You must have gdlib2 installed on your server for this script to work. This is a relatively simple script at the moment and there are some limitations with what can be achieved with it. I'd really like some feedback on this so that we know what people would also like to see in any future releases. I do have a working demo available online, so if anyone wants to see that, please just drop me a line for details. Enjoy, Mark
  9. Hi All, Version 2.0 of the Infobox Skin Manager is just released here: http://www.oscommerce.com/community/contributions,1680 Now you can skin each boxes individually with one of a library of 10 skin slice sets. Also, you can skin header, footer, left and right columns and even main page content with this one tool. There is a demo up on my site (www.oscommerce-templates.net) at the moment, but the final version had a few tweaks before it was released. I should be updating the demo on my site to reflect these in the next few days. This is a larger mod than previously so here is the support thread ready and waiting...... :unsure: Enjoy!
  10. Hi Again, the 2 most obvious causes are that either this line : require(DIR_WS_CLASSES . 'supertracker.php'); is missing from application_top.php (it should be directly above this line): $tracker = new supertracker; which must be your line 513. or, the supertracker.php file is missing from your shop/includes/classes folder. I would usually expect other error messages about not being able to find the supertracker class file though, so it is possible that there is a problem with the class file itself. If the above things I have mentioned are definitely in place, try re-uploading the supertracker class file and see if that solves the problem. Regards, Mark
  11. equilla

    SuperTracker - search keyword report

    Hi Dave, yes, the Supertracker is meant to store this information. It does this by splitting the captured referral URL into 2 parts a)The main part of the URL which gives an indication of the site from which the hit came (e.g. http://www.google.com and b) The GET parameters (e.g. q=what%20I%20am%20searching%20for%20&someotherparameter=true&etcetc). By looking at the b) part stored in the database, supertracker is able to filter out the bits in the parameter string which represent what was searched for. Each search engine is different (they may use q=, query=, p=, etc) so multiple filter patterns are used - it's not 100% foolproof, but can easily be extended for other search engines if you find one that doesn't get picked up in Supertracker today. Hope this helps, Mark
  12. Hi, ah yes, it seems we have a configuration control problem here. The supertracker class was rewritten in one of the earlier versions and no longer needed the sesskey field in the database, so it was removed. Unfortunately, the security update posted by createvideo was based on an earlier version of supertracker, and so is trying to use this field. As a temporary fix you could add the sesskey field to the database, but I think we need to organise a new release that fixes this issue properly. Mark
  13. equilla

    Supertracker Development

    Hi Barbara. this represents what I call "Direct Access" - in other words people who either typed in the URL for your site, or used a browser bookmark to get to it. Also, anyone using a browser or proxy that withholds their browser referrer information would fall into this category. Regards, Mark
  14. Hi createvideo, can you just confirm which version of Supertracker you found this issue with? Reason I ask is that code to mitigate the risk of SQL injection was introduced in version 3.1a - the parameters that get used in db transactions are treated immediately before the queries. Certainly, on my installs I haven't been able to pull off your suggested method of attacking through this script. Many thanks, Mark
  15. equilla

    Supertracker Development

    Sorry, no. The code as it is at the moment doesn't allow for blocks of IP address, but there's no reason why the code couldn't be amended to provide for this. Regards, Mark
  16. equilla

    Supertracker Development

    Hi, yes, you just need to find this line in /catalog/includes/classes/supertracker.php: $excluded_ips = ''; and edit it to put your IP address between the quotes. You can add more than one IP here by separating them with commas. Mark
  17. Hi, the problem comes because you've redefined the array in that second statement, so it overwrites the first definition of $ppc. You need to combine the definition of the 2 campaigns into one array statement like this: $ppc = array ('googlead' => array ('title' => 'Google Adwords', 'keywords' => 'rcb:radio control boats'), 'goshopping' => array ('title' => 'GoShopping.com', 'keywords' => 'mstruck:mstruck')); Hopefully I've got that right - not quite awake yet.... Cheers, Mark
  18. Hi, just an observation, but you've got a missing "&" in the URL you posted. It should read: http://mysite.com/index.php?cPath=27&r...o_control_boats (& added before ref=). the result of your URL would be that cPath equals '27ref=googlead' and the ref parameter would not be set. Regards, Mark
  19. Hi All, just got my first look at the 3.0 Alpha 3 version today, and had one major issue which I thought worth mentioning. Apologies if this has been covered before - I did search the forums and couldn't find any reference to this problem though. Anyway, in admin/includes/application_top.php the following is used in a couple of places: basename($_SERVER['SCRIPT_FILENAME']); to get the name of the script currently executing. Unfortunately, this returns 'php.exe' on the setup I have on my laptop (Apache2, MySQL 4.0.12, Php 4.3.2). The above code is used to: 1. Redirect to login.php if not logged in 2. Include the required language file for the page being viwed This means that I couldn't log in to admin to start with (infinitely loops through redirects to login.php) and also that I have lots of errors on the pages due to undefined constants (as the required language file doesn't get included). On my install I'm going to have to adjust these lines to get admin working as it should be I think. I don't know if this is going to be a general problem - probably it's because of the way I've got php installed on my laptop, which I use for all my code development work, but just thought I'd mention it in case anyone else has problems in this area. Cheers, Mark
  20. Hi Harold, yes, I can confirm that the problems were limited to the Administration tool - I didn't have any issues like this with the Catalog frontend. Regards, Mark
  21. equilla

    [Contribution] Infobox Skin Manager

    Hi Steven, that query is built in index.php - because it is built in "chunks" depending on various things like whether a manufacturer filter is in use, which columns are shown in the results, etc, is probably why your search for it failed. The query is used to find how many products are to be listed in the results for the category that was clicked. I it's unlikely to be connected with Infobox Skin Manager and given that the result of the query (p.products_id is unknown) is just silly there's something fundamental going wrong here. I've seen something similar before, just once, and if I recall correctly it was due to a corrupt table in the database - have you tried reparing the products database table? It could be that something happened to it when you were migrating your data. Regards, Mark
  22. Ralph, you are right - making this field on of the text type fields should prevent data from being overwritten. The reason for the choice of varchar(255) was basically one of naivety when the contribution was first written. Since I had noticed the the issue you highlight, but hadn't had opportunity to post a correction due to the pressure of work. Manually changing the type of this field should have no side-effects though. Regards, Mark
  23. Hi, yes, you're right it is the country name that is causing a problem because it has an apostrophe in it. To correct the situation we need to addslashes to the country name during the insert to the database, so find this line (approx line number 195) in /includes/classes/supertracker.php : $query = "INSERT INTO `supertracker` (`ip_address`, `browser_string`, `country_code`, `country_name`, `referrer`,`referrer_query_string`,`landing_page`,`exit_page`,`time_arrived`,`last_click`) VALUES ('" . $ip . "','" . $browser_string . "','" . $country_code . "', '" . $country_name . "', '" . $referrer . "', '" . $query_string . "','" . $landing_page . "','" . $current_page . "','" . $time_arrived . "','" . $time_arrived . "')"; and change to : $query = "INSERT INTO `supertracker` (`ip_address`, `browser_string`, `country_code`, `country_name`, `referrer`,`referrer_query_string`,`landing_page`,`exit_page`,`time_arrived`,`last_click`) VALUES ('" . $ip . "','" . $browser_string . "','" . $country_code . "', '" . addslashes($country_name) . "', '" . $referrer . "', '" . $query_string . "','" . $landing_page . "','" . $current_page . "','" . $time_arrived . "','" . $time_arrived . "')"; That should resolve the problem. Regards, Mark
  24. Chris, it's the geoip.inc file that not being found. Can you check that it is in the /catalog/includes folder an that the case of the filename is correct? Regards, Mark
  25. Chris, bear in mind that it is 30 minutes since last click, not 30 minutes since time of arrival. Normally it is safe to assume that a visitor has disappeared for good after this time. However, I suspect that your question may have been aimed at affiliate style tracking, where a referral comes initially from a PPC campaign, but it may be hours, days or even weeks before the referred customer actually completes a purchase. To do this, we would need to use a cookie. Regards, Mark