Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

cujimmy

Members
  • Posts

    64
  • Joined

  • Last visited

Everything posted by cujimmy

  1. @@AdiJan Log into cPanel and under databases, go to phpMyAdmin. Once you're in there and you can see your database tables listed on the left, click on the SQL tab and paste the contents of the SQL file in there and click Go. If you have a problem with phpMyAdmin complaining about a 1064 syntax error or something like that, try sticking a semi-colon at the end of the first query so that it reads: ALTER TABLE `customers` ADD `mmstatus` VARCHAR( 2 ) NOT NULL DEFAULT '0' AFTER `customers_newsletter`; Try copying and pasting just that one line in on its own and clicking Go. If that works, you can then copy in the rest of the SQL file (without that line) and click Go.
  2. at line 120, change this: echo tep_draw_textarea_ckeditor to this: echo tep_draw_textarea_field
  3. One thing I loathe is obsequious grovelling and sycophancy but, Harald, you are a rock star and a legend! :-) Apologies for the slow reply. I wanted to go back over everything I'd done and check it again. To make sure I was getting the debug email, I added $paypal_express->sendDebugEmail(); at line 27, right after $paypal_express = new paypal_express(); result: 1) good - after clicking on Checkout with Paypal, the empty debug email arrived (no POST or GET data) result: 2) maybe not so good? - after logging in at Paypal, and seeing the shipping (apparently) update to £16.50, no further email arrived. With the debug email call at line 27, I expected a second email at the time of the AJAX request? I imagined php would have to parse that line before getting to the switch? I then placed the debug call at a variety of points inside the switch, for example: at line 55, right after case 'callbackSet': at line 164 after the comment "// get all available shipping quotes" at line 223 at the end of case callbackSet (just before exit;) result in each case (even after logging in to Paypal and watching the shipping update (or default) to £16.50): no email received. The AJAX response always seems to include the (RoW) shipping rate of £16.50 but, according to the debug email, no POST or GET request ever reached express.php? I know that can't be right but that's how I'm reading it - lol - unless the default £16.50 shipping value had already been passed to Paypal along with the rest of the cart data? I tried calling the page directly in the browser: URL: ... .../express.php?osC_Action=callbackSet, and with the debug email line inside the switch at line 57 right after if (MODULE_PAYMENT_PAYPAL_EXPRESS_INSTANT_UPDATE == 'True') { result: the email came back with $HTTP_GET_VARS: osC_Action=callbackSet Also tried an AJAX request to the page (debug call still inside the switch at line 57) ajaxTest.open("GET", "... ... /express.php?osC_Action=callbackSet", true); result: again, the email came back with $HTTP_GET_VARS: osC_Action=callbackSet Then repeated the AJAX request but with the debug call back at line 27, right after $paypal_express = new paypal_express(); ajaxTest.open("GET", "... ... /express.php?osC_Action=callbackSet", true); result: the email came back with $HTTP_GET_VARS: osC_Action=callbackSet
  4. :) OK, I won't ask that question again - lol. It's just that I've been postponing getting into AJAX (mainly because of the smell of brimstone). From what I can see, the Paypal Express Checkout and its Instant-Update feature were coded by Harald himself. ... It must work!! No idea if this is relevant but the constructor specifies this version: signature = 'paypal|paypal_express|1.2|2.2'; api_version = '60.0'; Starting out with a fresh install of osC 2.3.1, with Paypal Express Checkout enabled and with its Instant Update set to TRUE, does anyone know which shipping module we should use in order that the Instant Update request will return the correct shipping rate? In this case, we only need three rates for three locations: UK, EU, Rest of World. Is there more to it than setting up a zones-based shipping module in the same way as we would for Paypal Standard? Zone 1 Countries GB Zone 1 Shipping Table 99:4.5 Zone 1 Handling Fee 0 Zone 2 Countries AT,BE,NL,DE,FR,GL,IS,IE,IT,NO,DK,PL,ES,SE,CH,FI,PT,IL,GR Zone 2 Shipping Table 99:8.5 Zone 2 Handling Fee 0 Zone 3 Countries All Others Zone 3 Shipping Table 99:16.5 Zone 3 Handling Fee 0 I tried three flat-rate shipping modules, each enabled only for one zone, which works fine with Paypal Standard but, on reverting to Paypal Express Checkout, the Instant Update didn't work at all. At least, when using the zones-based (international default) shipping module, it feels as if it's nearly working: the AJAX call is coming back with the default value of 16.50. With the flat-rate modules, no shipping was being charged at all. BTW, does anyone have Paypal Express Checkout with Instant Update working? All I can find on the forum are unanswered questions on this.
  5. Is there a way to get some info logged or emailed on the AJAX call that the Paypal Express Instant Update makes when the customer logs into Paypal? This is on osC 2.3.1. I've been adding debug email lines in all sorts of places - lol - the emails always come up empty :) I'm getting what looks like the same issue and yet I can see it's pulling the default shipping rate (£16.55) from the database so it looks as if it's maybe sending a country code that is not understood by the shipping module? (which, in this case, is a variation on zonesworld/zones international default). The shipping is set up for a rate of £4.50 for the UK, £8.50 for Europe and £16.55 for the rest of the world, (i.e. it defaults to £16.55 if it doesn't get either 'GB' or one of the two-character EU codes) and that is what the Instant Update AJAX call is coming back with: £16.50. In Paypal's "Review Your Information" section, the Postage method is also missing the country. It says, "Postage method: Zone Rates (Shipping to ..." where it should say, "Zone Rates (Shipping to UK ..."
  6. Great contrib! If anyone using an admin-configurable version has to change the configuration_group_id from 100 in the SQL file don't forget (as I did) to change it in the query at line 21 in catalog/product_thumb.php or you'll get an arty-farty cubist thumbnail image compressed right down to zero quality. On the plus side, you get a nice quick download with a file size of under 1KB :-"
  7. status: n/a - definitely not status-conscious

  8. I had the same issue - call_user_func(tep_reset_cache_data_seo_urls) [function.call-user-func]: First argument is expected to be a valid callback - this was after installing ULTIMATE_Seo_Urls_5_r96_rc The contrib worked fine in all other respects. I was using the drop_on_top files in which the function tep_reset_cache_data_seo_urls is placed at the end of admin/includes/functions/general.php All I did to sort it was take the function tep_reset_cache_data_seo_urls further up the page, placing it before the function tep_call_function which, on my version of general.php was around line 1203. If you're new to osC, it might help to see the code we're talking about. At line 1203, I now have tep_reset_cache_data_seo_urls followed by tep_call_function. // ULTIMATE Seo Urls 5 by FWR Media // Reset the seo urls cache // Jimmy - 23Aug10 - this function was previously at the end of the file and, in the admin, we were getting an error message: // "call_user_func(tep_reset_cache_data_seo_urls) [function.call-user-func]: First argument is expected to be a valid callback..." etc. // resolved by placing this before the function "tep_call_function" function tep_reset_cache_data_seo_urls($action = false){ if ( $action == 'reset' ){ $usu5_path = DIR_FS_CATALOG . DIR_WS_MODULES . 'ultimate_seo_urls5' . DIRECTORY_SEPARATOR; switch( SEO_URLS_CACHE_SYSTEM ){ case 'FileSystem': $path_to_cache = realpath($usu5_path . 'cache') . DIRECTORY_SEPARATOR; $it = new DirectoryIterator($path_to_cache); while( $it->valid() ){ if ( !$it->isDot() && is_readable($path_to_cache . $it->getFilename()) && (substr($it->getFilename(), -6) == '.cache') ){ unlink($path_to_cache . $it->getFilename()); } $it->next(); } break; case 'Database': tep_db_query("TRUNCATE TABLE `usu_cache`"); break; case 'Memcached': if ( class_exists('Memcache') ){ include_once $usu5_path . 'interfaces' . DIRECTORY_SEPARATOR . 'Interface_Cache.php'; include_once $usu5_path . 'classes' . DIRECTORY_SEPARATOR . 'Usu_Cache_Memcached.php'; $mc = new Usu_Cache_Memcached('dummy'); $mc->flushOut(); } break; } tep_db_query("UPDATE " . TABLE_CONFIGURATION . " SET configuration_value='false' WHERE configuration_key='SEO_URLS_CACHE_RESET'"); } } // endof tep_reset_cache_data_seo_urls function ################################ function tep_call_function($function, $parameter, $object = '') { if ($object == '') { return call_user_func($function, $parameter); } elseif (PHP_VERSION < 4) { return call_user_method($function, $object, $parameter); } else { return call_user_func(array($object, $function), $parameter); } }
  9. 1) Backup admin/includes/reset_meta_cache.php 2) Replace its entire contents with this: <?php /*=======================================================================*\ || #################### //-- SCRIPT INFO --// ########################### || || # Script name: meta_tags.php # || || # Contribution: cDynamic Meta Tags # || || # Version: 1.4 # || || # Date: Jan 17 2009 # || || # ------------------------------------------------------------------ # || || #################### //-- COPYRIGHT INFO --// ######################## || || # Copyright (C) 2005 Chris LaRocque # || || # # || || # This script is free software; you can redistribute it and/or # || || # modify it under the terms of the GNU General Public License # || || # as published by the Free Software Foundation; either version 2 # || || # of the License, or (at your option) any later version. # || || # # || || # This script is distributed in the hope that it will be useful, # || || # but WITHOUT ANY WARRANTY; without even the implied warranty of # || || # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # || || # GNU General Public License for more details. # || || # # || || # Script is intended to be used with: # || || # osCommerce, Open Source E-Commerce Solutions # || || # http://www.oscommerce.com # || || # Copyright (c) 2003 osCommerce # || || ###################################################################### || \*========================================================================*/ #--------------------------------------------------------------------------# ############################################################################ # cache path... make sure it is the same as you # specified in includes/meta_tags.php (if you changed it) MUST HAVE READ/WRITE CHMOD to 777 $meta_cache_files_path = DIR_FS_CATALOG.'cache/'; //this should work for most # DO NOT ALTER OR EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING # // BOF bugfix (error msg when cache folder is empty), changed: //foreach (glob($meta_cache_files_path."{*.meta-cache}", GLOB_BRACE) as $filename_page) { // unlink($filename_page); // } // in: if (is_array($meta_cache_files_path."{*.meta-cache}")){ foreach (glob($meta_cache_files_path."{*.meta-cache}", GLOB_BRACE) as $filename_page) { unlink($filename_page); } } // EOF bugfix (error msg when cache folder is empty) $exists = mysql_query("SELECT 1 FROM cache LIMIT 0"); if ($exists) tep_db_query("DELETE FROM cache WHERE cache_name LIKE '%meta-cache'"); ?> 3) have a beer or take the dog for a walk
  10. Jings! this is a quiet corner of the osC forum. I'm getting "the MD5 signature could not be verified" on running a test transaction - been over everything a dozen times and suspect the problem lies with WorldPay (can't even submit a support request at the moment - getting an internal server error on submitting) but I still have a horrible feeling I've missed something obvious. (In the admin, we do have the same password under "MD5 Password" as under "MD5 secret for transactions" on Worldpay's Test Integration Setup page). In worldpay_junior.php, everything is unchanged (I've only removed some fields for this post) : $process_button_string = tep_draw_hidden_field('instId', MODULE_PAYMENT_WORLDPAY_JUNIOR_INSTALLATION_ID) . tep_draw_hidden_field('amount', $this->format_raw($order->info['total'])) . tep_draw_hidden_field('currency', $currency) . tep_draw_hidden_field('hideCurrency', 'true') . tep_draw_hidden_field('cartId', $order_id) . tep_draw_hidden_field('signatureFields', 'amount:currency:cartId') . tep_draw_hidden_field('signature', md5(MODULE_PAYMENT_WORLDPAY_JUNIOR_MD5_PASSWORD . ':' . $this->format_raw($order->info['total']) . ':' . $currency . ':' . $order_id)) . tep_draw_hidden_field('MC_callback', substr(tep_href_link('ext/modules/payment/worldpay/junior_callback.php', '', 'NONSSL', false, false), strpos(tep_href_link('ext/modules/payment/worldpay/junior_callback.php', '', 'NONSSL', false, false), '://')+3)); At this point, I think the sensible thing is to take the dog for a walk.
  11. Serious problem with CCGV. I want to sell gift vouchers using the IPN and without queing but every time I test I get the same thing: I only need to go as far as checkout_confirmation and the Voucher Balance appears in the Shopping Cart Box - no need to part with any money; I've got my voucher without going any further. Which is the most bug-free version to install? The CCGV5.16.zip from 8 Feb 2006 uncompresses to CCGV1.51a. I've been adding the subsequent fixes and testing on a test server, on a clean install of oscommerce-2.2ms2-051113 every time. Latterly, I haven't been bothering with the fixes because I don't think they have any effect on this issue (please correct me if I'm wrong)! The site will be selling music downloads and the idea was to use Gift Vouchers to allow customers to buy credits worth several downloads so that the 20p Paypal transaction charge applies only once. Queing the voucher is not really an option because, for this site, the vouchers wouldn't be an extra; they'd be an intergral part of every sale so, basically, no voucher scheme - no site.
  12. Sorted - emails were going out OK. Thanks again to all. :thumbsup:
  13. I'll second that! And, for Harald, we can just do without the "almost" eh? But it's true; the osC forum's like a different planet without that guy's (almost) limitless reserves of patience. Ironic, and tragic for the rest of us, that he got banned the way it happened. How about a Bring Back Chemo signature file petition? - lol Anyway, big thanks for the EPDQ contrib - much appreciated! I'm personally still not out of the woods yet - emails are not yet getting sent from the shop - but the transaction status is now getting updated so must be getting close. :)
  14. Hi Steve, thank you for that; it was a good, logical thought, but the comment tags were still in place. What's interesting is the fact that that line was in there in the first place. I have a hunch that Joe was maybe having a problem with the same thing at one point and that it's arising because complete.php doesn't include application_top and the includes have to be hardcoded. I was going to post again, anyway, because... (suddenly figured out this painfully obvious workaround at 4.00am this morning ) :blush: I think I have it sorted so, for anyone else coming up against the same issue, here's what was happening: complete.php starts out with a list of included files and the one that's causing the fatal error is includes/functions/html_output.php. In my setup, the "HTML href link wrapper function" in html_output.php has been modded for the Ultimate SEO URLs contribution; effectively, it's going to be looking for includes/classes/seo.class.php and, when application_top is used (which it can't be)!, that happens seamlessly. For some reason that I haven't yet sussed, the hardcoded-included html_output fails to find seo.class.php and produces the error, thus breaking the transaction-complete process. The transaction status doesn't get upgraded ergo, the emails don't get sent out by the cart (only by the EPDQ server). Here's the sticking-plaster-and-string solution: SEO URLs don't matter a monkey's to the EPDQ; it's just sending back data to complete.php so we can't possibly need that mod in html_output.php at that moment. So... :blush: I made a copy of html_output.php and replaced the HTML href link wrapper function that had been modded by SEO URLs with the original (stock osC) version of the function. I called the new file "html_output_4epdq.php" and changed the hardcoded include in complete.php to include('../includes/functions/html_output_4epdq.php'); and Bob (Easland)'s yer uncle. :rolleyes: Then I took the dog out and still got 5 hours sleep.
  15. Thanks Tamlyn - spot on - I'm no longer stuck. Now back to normal... going round in circles :) It looks like the problem in complete.php is in the includes: includes/functions/html_output.php is producing an error relating to Ultimate SEO but my understanding of what's going on there is too wooly. In functions/html_output there's this line (in the HTML href link wrapper function): if ( !is_object($seo_urls) ){ if ( !class_exists('SEO_URL') ){ include_once(DIR_WS_CLASSES . 'seo.class.php'); but, calling complete.php in the browser, I get (saw this right at the start then completely forgot about it): (includes/classes/seo.class.php does exist). I suppose most people using EPDQ will also have SEO URLs installed but I haven't seen anyone else getting this error. 5.30am!!? Is that an early morning or a very late night? (I usually give up before 3.00am - even on this one)!
  16. Thanks to everyone involved here. Up to this point, I thought I was doing fine. I have the live transaction being processed. The EPDQ logs say that the POST is OK. The order is stored in the database but the status is not being updated from "awaiting card transaction" (still set to orders_status_id 4) and following from that, the emails can't be sent either to the customer or the merchant. The only email being sent out is from the EPDQ site. Basically, I'm no longer going round in circles. I'm completely stuck. I won't be offended if someone asks me to check that the computer is plugged in at the mains socket; I'll be grateful for the suggestion (and I'll check).
  17. Help! :( I decided to try oscMax and I've got myself into a big mess of my own making! I added the Hide Products From Groups contrib (Special Price Per Customer is pre-installed). I then added Sebastian Frank's Dynamics Mopics Admin addon (Dynamic Mopics is pre-installed) which should allow admin access to non-ftp administrators to upload images. In fairness to Sebastian , he did say, "this is not a final version. See it as a v0.1." but he also said, "these changes work for my store," from which came false hope! Dynamics Mopics Admin is not working for me at all. As I understand it, on the New Product page, I should browse to and select the main thumbnail image - image.jpg - and, from another folder on my computer, I select a larger version with the same filename; the DynamicMopicsAdmin contrib adds a number - actually a string + a number - that will increment for each additional image starting at: {imagebase}_pic1.jpg) i.e. the uploaded image will be renamed as image_pic1.jpg I'm getting an upload success message for each image but only one image, the thumbnail, has been uploaded properly. The larger image uploads, not to the images/images_big directory but to the images/ directory and it is renamed not as "image_pic1.jpg" but as "_pic1.jpg" Looking at the code, however, that's where I would expect it to go so I'm at a loss to know how this is supposed to work: case 'new_product_preview': // copy image only if modified $products_image = new upload('products_image'); $products_image->set_destination(DIR_FS_CATALOG_IMAGES); if ($products_image->parse() && $products_image->save()) { $products_image_name = $products_image->filename; } else { $products_image_name = (isset($HTTP_POST_VARS['products_previous_image']) ? $HTTP_POST_VARS['products_previous_image'] : ''); } // added by Sebastian Fr?nk begin // for Dynamic MoPics for ($i=1; $i<MAX_PICTURES_UPLOAD + 1; $i++) { if (isset($GLOBALS['file_' . $i]) && tep_not_null($GLOBALS['file_' . $i])) { $upload_file_image = new upload('file_' . $i); $upload_file_image->set_destination(DIR_FS_CATALOG_IMAGES); $upload_file_image->parse(); $image_base = substr($HTTP_POST_VARS['products_previous_image'], 0, -4); $upload_file_image->set_filename($image_base . '_pic' . $i . '.jpg'); $upload_file_image->save(); } } // added by Sebastian Fr?nk end break; Problem is, even if I get it to upload correctly, the thumbnail has a click-to-enlarge link only if the Big Images Directory in Admin/Configuration/Dynamic Mopics is set to blank i.e. if the default setting, images_big, is deleted. Then, when you click on the link, it's the thumbnail that pops up!
  18. Thanks JanZ - I'll give the javascript method a try - could maybe even do it without a button, by using 'onload' (haven't thought that through either - it would work on a static page)! - I just thought my cat-sat-on-the-mat php was the problem! lol I should stick to what I'm good at: cut&paste cut&paste cut&paste cut&paste :-"
  19. Try changing all instances of default.php to index.php
  20. Big thanks to all involved here - great contrib(s) and 83 pages of support! Can I ask a Hide from Groups question: pretty rare case - shop has 20+ groups. To save ticking 19+ checkboxes for each product, could the Hide from Groups checkbox code be modified to serve as "show to this group" i.e. all boxes checked, by default, or a radio button or drop-down allowing the product to be shown to only one of the groups? I thought the answer was "yes, easily," ...until I tried! <?php if (isset($pInfo->hide)) { echo tep_draw_checkbox_field('hide[' . $hide_customers_group['customers_group_id'] . ']', $hide_customers_group['customers_group_id'] , (isset($pInfo->hide[ $hide_customers_group['customers_group_id']])) ? 1: 0); } else { echo tep_draw_checkbox_field('hide[' . $hide_customers_group['customers_group_id'] . ']', $hide_customers_group['customers_group_id'] , (in_array($hide_customers_group['customers_group_id'], $hide_from_groups_array)) ? 1: 0); } ?>
  21. Another possibility: In the admin/configuration section, under Customer Details, make sure Company (Display company in the customers account) is set to true.
  22. Just an update on my last post... links are all OK now :rolleyes: - In fact, they're much better than OK. Maybe it was some kind of cache issue? If anyone is in touch with Chemo, please pass on my thanks.
  23. Big thanks to Chemo for this. I can tell it?s going to be a great asset when it decides to behave itself and get on with the job. I have to explain, firstly, that my problem is with a jewellery store. I have to explain because, otherwise, this would just seem like any other installation hiccup. It?s not. This is intriguing. I know there must be some other explanation but this contrib seems to have developed an odd idiosyncracy in that it doesn?t really like jewellery ? stuff like necklaces, pendants or bracelets ? but it has a thing for earrings! And that proves that it?s the contrib itself that?s to blame, not me, because I?m definitely more of a garter man. The New Products links are fine; they?re going to: catalog/product-name-p-xx.html and the address bar shows the same so I know it?s nearly working! The breadcrumbs links are fine, going to: catalog/categoryname/product-p-xx.html etc But in catalog/index.php, clicking on any of the ?categories? links takes me to? index.php The address bar shows catalog/index.php?catalog=index.php and I can see, in the status bar, that all the categories links are going to catalog/index.php?cPath=21 etc It?s just the main menu that isn?t working? that is ? and this is where it gets a wee bit creepy - unless the breadcrumbs show Earrings! Either on the Earrings product listing page or an individual Earrings page - as long as Earrings is in the breadcrumbs - the category links work as they should (I think), i.e. going to e.g. catalog/necklaces-c-21.html (and, provided I click on catalog/earrings-c-23.html, they keep working)! I?ve been through everything; I've even been throught the database, trying to spot some difference between that category and the rest or maybe some difference between Earrings products, collectively, and everything else but I?ve finally, reluctantly, come to the uncomfortable conclusion that this contrib is only turned on by earrings! Chemo, you are one strange guy! lol As a matter of mild curiosity, does anyone know what's going on here?
  24. Not sure about the etiquette of posting this in the osC_Categories topic but I decided the JS Cook Menu was too good to give up on - finally installed the New DHTML Categories Menu contrib - also based on the JSCook menu - very quick and easy install and everything worked first time - no problems since.
×
×
  • Create New...