Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 02/09/2022 in Posts

  1. It is the whole reported number as the percentage, that is, for you, 7.00 (do not include the actual percent character). If you are experiencing this in CC654, please know that several stores are experiencing tax calculation issues. The solution at present is to make an edit to the following file: /classes/cart.class.php, line 1203, remove the line: $this->get(); The value $37.90 is 3X what the tax should be, thus somewhere, somehow, CubeCart is running $179 through the tax calculator three times. (Personally, I have not discovered why, but the programmers imply this should be the fix.)
    1 point
  2. You were absolutely correct @Al Brookbanks Yesterday - I tried to fix this by reinstalling 1.9.6 and got the same errors but 1.9.7 from today has solved it! Many thanks. Really helpful
    1 point
  3. I'll note here that my store is set to reduce stock on processing, but I've had customers with this same problem even before PayPal Commerce.
    1 point
  4. There will be some problems with PHP 8.0+. There are several incompatible changes compared to earlier PHP version families. PHP 7.3 is in the same situation as PHP 5 - end of life. I think PHP 7.4 would work without too much trouble for CC642, - again, end of life.
    1 point
  5. Is it possible to show random products in the sidebar, instead of featured products? Or perhaps to show random products instead of latest products on the homepage? Thank you very much for your time!
    1 point
  6. Hey everyone, I recently discovered a fantastic way to elevate your gift-giving game: custom gift packaging! Whether it's for birthdays, weddings, or any special occasion, adding a personal touch to the packaging can make your gift stand out. I've been experimenting with different materials, designs, and embellishments, and it's been so much fun! Not only does it make the recipient feel extra special, but it also shows that you've put thought and effort into the presentation. Do you have any creative packaging ideas or tips to share? Let's inspire each other to spread joy through beautifully wrapped gifts!
    1 point
  7. Please try: https://cubecart.zendesk.com/hc/en-gb/articles/360003831497-How-can-I-create-a-plugin-using-the-code-hooks-system
    1 point
  8. I tried uploading a sscreenshot but server rejects it, error code 200. Instead: Product with webp image: https://cavalier-gift-shop.org/magic-puppy-valentine-s-card.html (fails) Product with a jpeg (any other product): https://cavalier-gift-shop.org/best-cavalier-mum-mug.html (all ok)
    1 point
  9. It could be that the Apache web server, in its main config settings, has not yet been set to allow for directory overrides. Please see: https://stackoverflow.com/questions/18740419/how-to-set-allowoverride-all
    1 point
  10. Brilliant, I changed a few lines and now it all looks pukka! Thanks again for all the help!
    1 point
  11. I am going to ignore the lines that appear to come from an SSL Cert manager. I just wanted to make sure there is an appropriate RewriteBase directive. It will be interesting as to what would be found in the web access logs.
    1 point
  12. Great! Thank you very much. It is working, I used the database credential and host localhost:9200. In the search box, to get the drop down list product, need to use mouse cursor. Can we add keyboard up,down to reach to the downward list instead of mouse cursor. Even after click outside of the search box, ES search dropdown list wont disappear. Need to used ESC key. It would be good idea to add one click functionality to clear search dropdown list like ESC key.
    1 point
  13. Why, why, why you have to be so smart @bsmither? That's exactly what the issue was, since initially they both had the same route /powerball the system added a re-direct when leaving blank, creating the redirection. Is there a module, under product page, tab #product spec, to have custom stuff? I could jam everything into the actual product page but it would be cool to add some custom stuff, in our case we don't need to specify the code or if it's new or used. Thanks again kid, Happy Thanksgiving of whatever you celebrate today!
    1 point
  14. In shipping.class.php: Find near lines 237-240: $this->debug(sprintf('<strong>&gt;&gt;&gt; Shipping zone [ID %s] matches the delivery address! Use this zone for shipping calculations.</strong>', $this->_all_zones[$i]['id'])); if ($this->_settings['multiple_zones'] == 'first') { $this->debug('Looking for first matching zone of best match (instead of searching for all matching zones - see AIOS module settings)'); } else { Change to: $this->debug(sprintf('<strong>&gt;&gt;&gt; Shipping zone [ID %s] matches the delivery address! Use this zone for shipping calculations.</strong>', $this->_all_zones[$i]['id'])); if ($this->_settings['multiple_zones'] == 'first') { $this->debug('Looking for first matching zone of best match (instead of searching for all matching zones - see AIOS module settings)'); $closest_match_zone_id = $this->_all_zones[$i]['id']; break; } else { The above is the exact same edit as was posted earlier, just the line numbers have changed.
    1 point
  15. Please reload this forum conversation. I made a mistake on the last line of the new code.
    1 point
  16. Yes, you can. Having different content implies having a distinct and separate database - or, at least a distinct table prefix (can be on the same database server).
    1 point
  17. I'm only running All in One Shipping v 1.0.24, Card Capture v 1.0.12, and Google Base v 1.0.3. So far, so good, but I'll keep an eye on them.
    1 point
  18. It sounds like you may be encountering a technical issue while trying to generate a token. Without additional information, it's difficult to provide specific troubleshooting advice. However, one possible solution could be to clear your browser cache and cookies, and then try generating the token again. Regarding your question about the tracking ID, it depends on which version of Google Analytics you are using. If you are using the newer Google Analytics 4, then you would enter the g-tag number (e.g. G-0K5RYTYZ11) as the tracking ID. If you are still using the older Universal Analytics, then you would enter the UA number (e.g. UA-26600668-1) as the tracking ID. UPSers Login
    1 point
  19. You are getting the address items from the admin, Order Summary page? If so, try the following: In the admin /sources/orders.index.inc.php: Near line 419, find: $overview_summary['country'] = is_numeric($overview_summary['country']) ? getCountryFormat($overview_summary['country'], 'numcode', 'name') : $overview_summary['country']; After that, add: $overview_summary['state_abbrev_d'] = is_numeric($overview_summary['state_d']) ? getStateFormat($overview_summary['state_d'], 'id', 'abbrev') : $overview_summary['state_d']; $overview_summary['state_abbrev'] = is_numeric($overview_summary['state']) ? getStateFormat($overview_summary['state'], 'id', 'abbrev') : $overview_summary['state']; In the admin template orders.index.php: Near lines 163-164, from: {$OVERVIEW_SUMMARY.town_d|upper}<br> {if !empty($OVERVIEW_SUMMARY.state_d)}{$OVERVIEW_SUMMARY.state_d|upper}, {/if}{$OVERVIEW_SUMMARY.postcode_d}<br> To: {$OVERVIEW_SUMMARY.town_d|upper}&nbsp; {if !empty($OVERVIEW_SUMMARY.state_abbrev_d)}{$OVERVIEW_SUMMARY.state_abbrev_d|upper}, {/if}{$OVERVIEW_SUMMARY.postcode_d}<br> Near lines 174-175, from: {$OVERVIEW_SUMMARY.town|upper}<br> {if !empty($OVERVIEW_SUMMARY.state)}{$OVERVIEW_SUMMARY.state|upper}, {/if}{$OVERVIEW_SUMMARY.postcode}<br> To: {$OVERVIEW_SUMMARY.town|upper}&nbsp; {if !empty($OVERVIEW_SUMMARY.state_abbrev)}{$OVERVIEW_SUMMARY.state_abbrev|upper}, {/if}{$OVERVIEW_SUMMARY.postcode}<br>
    1 point
  20. Nice idea! In admin, Maintenance, Rebuild tab, there is a means to "Reset all product view counts". "Views" is one of the choices on what criteria to base a query for "Best Sellers" (aka Popular Products). But resetting Views might be overkill for some. I have in mind a text box next to Store Settings, Layout tab, "Source data for popular products" saying, "Within the past [###] days." This won't be a date range, but will this suffice for your needs?
    1 point
  21. I added more to my post above. Please reload this forum page. There is no urgency in removing the debugging code. It does not affect how CubeCart runs.
    1 point
  22. You can check your "includes/global.inc.php" file it will have the link to the admin page in it, $glob['adminFile'] = 'admin_xxxxx.php';
    1 point
  23. Please create the error log: https://forums.cubecart.com/topic/51550-how-to-create-the-error-log/ There may be clues to what is happening.
    1 point
  24. A Zone, for whatever purpose (i.e., having countries), but no shipping rates for that zone, will not have any rates to offer the customer to choose. Yes, the zone will match (Canada, for example), but there will be no rate available -- neither because, for any of the rates that could be supplied, none fit the conditions, nor because there are no rates at all. Thus (in later versions of AIOS), the module will try to match a rate's conditions listed in "Rest of World". So, short answer, a zone with no rates is as good as being disabled (suspended), and as good as having been deleted, and as good as not having been created at all. The point of the "Uncheck to Suspend" feature is to keep the zone with its list of rates intact, but to not use them.
    1 point
  25. Regarding the template syntax error, an issue has been posted in the Github. https://github.com/cubecart/v6/issues/3126 3. Check the code in the admin skin file filemanager.index.php, near lines 122-129: {if $FILE.type == 1} <div> <label for="alt">{$LANG.filemanager.alt}</label> <span> <input type="text" id="alt" name="details[alt]" class="textbox" value="{$FILE.alt}"> </span> </div> {/if} Also in this file, make this change: Lines 117-119, from: <select name="details[move]" id="move" class="textbox"> <option value="">{$LANG.form.please_select}</option> </select> To; <select name="details[move]" id="move" class="textbox"> <option value="">{$LANG.form.please_select}</option> {if isset($DIRS)}{foreach from=$DIRS item=dir} <option value="{$dir.path}"{$dir.selected}>{$dir.path}</option>{/foreach}{/if} {* #3121 *} </select> 1. Is this what CubeCart reports in admin, Dashboard, Store Overview tab? Or is this aspect of the server environment being shown somewhere else?
    1 point
  26. Please try this edit: In /classes/language.class.php, line 106: From: if(ADMIN_CP == false && isset($d[$url['host']]) && !empty($d[$url['host']])) { To: if( (!defined('ADMIN_CP') || ADMIN_CP == false) && isset($d[$url['host']]) && !empty($d[$url['host']])) {
    1 point
  27. Did you follow the steps in method 1? https://support.cubecart.com/hc/en-gb/articles/360003794198-How-do-I-upgrade-from-CubeCart-v6-to-latest-v6-
    1 point
  28. An enhancement regarding Gift Cards allows: the admin to assign a collection of images to the Gift Card system. One image is the default (master). the admin to have a text editor to add more content to the Gift Card purchase page. the customer to choose an image when purchasing a Gift Card. for the additional content to appear on the Gift Card purchase page. At checkout, a small-sized image of the chosen image appears in the list of basket items. For a physical Gift Card, the card can be (pre)printed with the chosen image. For an emailed notice, the HTML content can now include a link to the image the customer chose. For example, the collection of images may include birthday, Mother's day, Winter holiday, Valentine's day, Thank You, and other themes. This enhancement is not a plugin. It involves hard code edits.
    1 point
  29. My solution was to remove the registration page link from my skin and form fields within the registration page. I only have the the option to create an account on the checkout, therefore users and spammers will need to place an order to create an account, genuine users will do so but the spammers wont proceed. Has worked well for me for 2 years, no fake accounts created. I believe they create fake accounts so your shop sends registration emails or password resets to their targets & used to spam people and will give your store/email a bad reputation, some users may report these emails as spam and accounts like google mail will auto junk any future mail you send or your report your site to your hosting provider for sending spam.
    1 point
  30. This may be related to an open issue: https://github.com/cubecart/v6/issues/3057 If the error was copied from CubeCart's admin, System Error Log, if you hover the mouse over the error, there may be a popup that gives the trace PHP made to get to the code that errored. If that popup appears, try to copy/paste the contents to a reply here.
    1 point
  31. Please make the following change: {literal} <!-- Google tag (gtag.js) --> ... all the javascript code ... </script> {/literal} That is, surround the supplied code with Smarty's "Take this literally!" command. Otherwise, Smarty will try to interpret anything between braces as commands for itself.
    1 point
  32. Currently, no. But, CubeCart has the ability to respect a custom API call that a "cron job" would execute on schedule, as well as hooks that could be used every time that a web page is requested to update if a specified amount of time has elapsed since the last update.
    1 point
  33. 1 point
  34. Try to get back to PHP 5.6. Hopefully, you can resume store operations. If not, please add this statement, as the next-to-last line, to the /includes/global.inc.php file: $glob['safe_mode'] = true; This will have CubeCart not load any plugins. Doing this is based on the assumption that perhaps there is an installed plugin that requires the ionCube extension to PHP. That extension may still be a PHP 5.6 version. Additionally, plugins that use ionCube are coded against a specific version of the ionCube extension. So, even if the installed version of the ionCube extension is for PHP 7.1, the plugin also requires a new 'build' against that specific version of the ionCube extension. Please determine if there are any plugins by Noodleman or Havenswift that are installed on your site. If so, request updated versions of those plugins for PHP 7.4 (and switch to PHP 7.4 for your site).
    1 point
  35. If you have CubeCart's debug mode enabled, turn it off. I *believe* that switching off Debug mode will quiet the PHP8 Warnings (used to be Notices in PHP7). As for Google, please see: https://github.com/cubecart/v6/issues/3047
    1 point
  36. In Catalogue Mode, customers are not even able to add items to a shopping basket. So, there is no way for CubeCart to log what the customer wanted. The admin can try to not enable any Payment Gateways. A shopping basket should be created and an Order Summary created, which the store owner can review and amend in CubeCart's administrative backend. But there will be no means for the customer to actually pay for the items via CubeCart.
    1 point
  37. If you are used to using it, then it should not have gotten out of hand like I am theorizing it did -- if it did! You can always try a sandboxed effort of applying the CC646 edits of the new code to a copy of that file from CC645 and see if it happens again. If you have a mind to. Good reviews about Notepad++. (I don't use it because it doesn't do a few things I find very useful.)
    1 point
  38. Experiments have shown that making these two edits will resolve this issue.
    1 point
  39. CubeCart version 6.4.6 is now available. This is a maintenance release with full PHP 8 and 8.1 support. This release is backward compatible to earlier PHP versions so your hosting environment doesn't need PHP 8 or above to run it. What's New? - PHP 8 Support - Miscellaneous bug fixes Download: CubeCart-6.4.6.zip Download: CubeCart-6.4.7.zip
    1 point
  40. Brains suggestion is definately the way to go initially. Create a new file ini-custom.inc.php in the root of your store. I did have issues with the memory size when i did this, so you might want to play with this. <?php # Custom initialization commands # Filename: ini-custom.inc.php # File location: main CubeCart folder ini_set('memory_limit', '256M'); ini_set('max_execution_time', '60'); ini_set('error_log', 'error_log'); ini_set('log_errors', 'on'); ?> To add to this, Cubecart support is extermely fair. You'd be hard pushed to find dedicated product support at such a price anywhere else. https://www.cubecart.com/technical-support
    1 point
  41. Sorry to hear this Rosemary. Best of luck achieving what you want. I'm not sure I have any valuable input.
    1 point
  42. Hi, I just tried this again with with PayPal Commerce 1.6.2 and still no joy, therefore I downloaded the 1.6.2 code to get a better look .. And this is what I found - /** * CubeCart v6 * ======================================== * CubeCart is a registered trade mark of CubeCart Limited * Copyright CubeCart Limited 2019. All rights reserved. * UK Private Limited Company No. 5323904 * ======================================== * Web: http://www.cubecart.com * Email: [email protected] * License: GPL-3.0 http://opensource.org/licenses/GPL-3.0 */ function ppcp_body_js($tpl_output, Smarty_Internal_Template $template) { $skins = $GLOBALS['gui']->getSkinData()['info']; // $skin = $GLOBALS['gui']->getSkinData(); if (($pp_config = $GLOBALS['cache']->read('pp_config.'.$skins['name'])) === false) { if(file_exists('modules/plugins/paypal_commerce/config.custom.json')) { $pp_config = file_get_contents('modules/plugins/paypal_commerce/config.custom.json'); } else if(file_exists('modules/plugins/paypal_commerce/config.'.$skins['name'].'.json')) { $pp_config = file_get_contents('modules/plugins/paypal_commerce/config.'.$skins['name'].'.json'); } else { $pp_config = file_get_contents('modules/plugins/paypal_commerce/config.foundation.json'); } $GLOBALS['cache']->write($pp_config, 'pp_config.'.$skins['name']); } if(isset($GLOBALS['cart']->basket['total']) && $GLOBALS['cart']->basket['total'] > 0) { $pp_amount = $GLOBALS['cart']->basket['total']; } else { $pp_amount = "null"; } return preg_replace('/\<\/body\>/i','<script id="pp_config" type="application/json">'.$pp_config.'</script><script> var pp_config = JSON.parse(document.getElementById(\'pp_config\').textContent) var pp_amount = '.$pp_amount.';</script></body>', $tpl_output); return $tpl_output; } $GLOBALS['smarty']->registerFilter("output","ppcp_body_js"); On about the third line of code you can see I have replaced a line. Now the thing is that this was never going to work the variable '$skin' is never referenced in the code so its clearly in error. The question is why did nobody else experience the same ? Its probably because, and this is just a guess, many other skins are strongly based upon the foundation skin, but as I say that's only a guess .. Anyway it seems to be working now but no production test yet.. Chris.
    1 point
  43. Thanks, I realised it but forgot to hide it!
    1 point
  44. It should, however it hasen't been updated since 2017. Which only means that, since it is encoded with ionCube, the encoded files must have been built with a matching version of the encoder for the version of PHP it is running under. Even though the current encoded files are built for "PHP 5.6 and above", this does not mean they will work on any version of PHP7 - which your hosting provider has likely configured your hosted account to use. The publisher, @Noodleman, will need to build encoded files for PHP 7.
    1 point
  45. In a stock install of CC6, the list of images to play in the slider is part of the HomePage document. In admin, Documents, click the Edit icon of the document shown as having the HomePage button selected. You may have an easier time of it by using the editor's Source mode. The slider is optimized to show 1000x300 pixel images.
    1 point
  46. Hi, Wish to make the sales report with the product details, which sql should I edit on? "product_code" is a new attributes that I add in, since it is not inside the table "CubeCart_order_summary". Actually, it is from table "CubeCart_order_inventory". And, How to sum the product_code? As the product code is in integer, digit form. The below code is from admin_LsSCSi/sources/reports.index.inc.php $fields = array( 'title', 'cart_order_id', 'product_code', 'order_date', 'status', 'subtotal', 'discount', 'shipping', 'total_tax', 'total', 'customer_id', 'first_name', 'last_name', 'company_name', 'line1', 'line2', 'town', 'state', 'country', 'postcode', 'title_d', 'first_name_d', 'last_name_d', 'company_name_d', 'line1_d', 'line2_d', 'town_d', 'state_d', 'country_d', 'postcode_d', 'phone', 'email', 'gateway' ); foreach ($GLOBALS['hooks']->load('admin.reports.order.pre') as $hook) include $hook; $orders = $GLOBALS['db']->select('CubeCart_order_summary', $fields, $where); foreach ($GLOBALS['hooks']->load('admin.reports.order.post') as $hook) include $hook; if ($orders) { ## If we are wanting an external report start new External class if (isset($_POST['external_report']) && is_array($_POST['external_report'])) { $module_name = array_keys($_POST['external_report']); $external_class_path = 'modules/external/'.$module_name[0].'/external.class.php'; if (file_exists($external_class_path)) { include $external_class_path; $external_report = new External($GLOBALS['config']->get($module_name[0])); } } ## Tally up totals $tally = array(); $i = 0; foreach ($orders as $order_summary) { $order_summary['status'] = $lang['order_state']['name_'.(int)$order_summary['status']]; foreach ($order_summary as $field => $value) { if (in_array($field, array('subtotal', 'discount', 'shipping', 'total_tax', 'total'))) { if (!isset($tally[$field])) $tally[$field] = 0; $tally[$field] += $value; } } $order_summary['country'] = (is_numeric($order_summary['country'])) ? getCountryFormat($order_summary['country']) : $order_summary['country']; $order_summary['state'] = (is_numeric($order_summary['state'])) ? getStateFormat($order_summary['state']) : $order_summary['state']; $order_summary['country_d'] = (is_numeric($order_summary['country_d'])) ? getCountryFormat($order_summary['country_d']) : $order_summary['country_d']; $order_summary['state_d'] = (is_numeric($order_summary['state_d'])) ? getStateFormat($order_summary['state_d']) : $order_summary['state_d']; $order_summary['date'] = formatTime($order_summary['order_date'],false,true); ## Run line of external report data if (isset($external_report) && is_object($external_report)) $external_report->report_order_data($order_summary); unset($order_summary['order_date'], $values); foreach ($order_summary as $field => $value) { if ($i == 0) $headers[] = $field; $values[] = (is_numeric($value) || !strpos($value, ',')) ? $value : sprintf('"%s"', addslashes($value)); } if ($i == 0 && $add_headers) $data[] = implode(',', $headers); $data[] = implode(',', $values); $smarty_data['report_date'][] = $order_summary; $i++; } $GLOBALS['smarty']->assign('REPORT_DATE', $smarty_data['report_date']); if (isset($_POST['download']) || (isset($_POST['external_report']) && is_array($_POST['external_report']))) { $GLOBALS['debug']->supress(true); if (isset($_POST['download'])) { $file_content = implode("\r\n", $data); $file_name = $lang['reports']['sales_data'].' '.$download_range; } else { $file_content = $external_report->_report_data; $file_name = ucfirst($module_name[0]).' '.$lang['reports']['data'].' '.$download_range; } deliverFile(false, false, $file_content, $file_name.'.csv'); exit; } ## Show table footer $tally['orders'] = count($orders); foreach ($tally as $key => $value) { $tallyformatted[$key] = ($key=='orders') ? $value : sprintf('%.2F', $value); } $smarty_data['tally'] = $tallyformatted; $GLOBALS['smarty']->assign('DOWNLOAD', true); ## Get external module export code $where = array('module' => 'external', 'status' => '1'); ## Start classes for external reports if (($module = $GLOBALS['db']->select('CubeCart_modules', 'folder', $where)) !== false) { foreach ($module as $module_data) { if(file_exists(CC_ROOT_DIR.'/modules/external/'.$module_data['folder'])) { $module_data['description'] = ucfirst(str_replace('_',' ',$module_data['folder'])); $smarty_data['export'][] = $module_data; } } $GLOBALS['smarty']->assign('EXPORT', $smarty_data['export']); } } else { if (isset($_POST['download'])) httpredir(currentPage()); $smarty_data['tally'] = array('orders' => 0); } $GLOBALS['smarty']->assign('TALLY', $smarty_data['tally']); $GLOBALS['smarty']->assign('POST', $report_filter); foreach ($GLOBALS['hooks']->load('admin.reports.order.filter') as $hook) include $hook; Thanks~
    1 point
  47. If i enter in to admin > products and bring up a list of products, there's no indication which items are discounted or on sale. So the only way to see which items we have listed on sale is via the customer side. Am i missing something obvious ?
    1 point
  48. Hi, I was just wondering if Cubecart is compatible with Apple's iPad and iPhone? I've had several customers tell me that they can not place orders using these devices... I also had a lady tell me that she couldn't email me using her iPhone either (it bounced back)...hmmm Thanks.
    1 point
×
×
  • Create New...