Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 10/20/2017 in all areas

  1. In the skin's config.xml, find the <image reference="category">. It is set for 800 pixels on the longest dimension. Change this to 900. It will auto-scale down to fit the container (which is 848 px wide). Next, you will need to find the CSS rule (I do not know where it would be.): .cat-hdr-img img { margin: 0px auto 5px; } Change to: .cat-hdr-img img { margin: 0 0 5px; } This CSS change will remove the margin that the browser adds to either side of the image, in equal part, to center the image in the slightly wider container. Be sure to clear Cubecart's cache.
    2 points
  2. The developer will probably / should be releasing a new version of the skin to take account of all of the skin changes included in this recent version. However, if you are using a modified version, then that update will not automatically apply to your store and you should chat to the developer about this. If you dont make all the front end skin changes then you wont be able to take advantage of any fixes / new functionality that has been added - you may say that you dont need this functionality but it is always best to stay fully up to date because the situation simply gets worse and worse with each upgrade that is released - this is the problem with having custom changes
    2 points
  3. Try this: In includes/ckeditor/config.js, at the bottom, find: config.allowedContent = true; }; Change to: config.allowedContent = true; config.coreStyles_italic = {element : 'em'}; config.extraAllowedContent = 'i[*]{*}(*)'; }; CKEDITOR.dtd.$removeEmpty = '{i: 0}'; The same added statements can be used for other HTML tags used in unorthodox ways.
    2 points
  4. 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
  5. I have read that CC650+ works with PHP 8.3. (Currently, I cannot experiment with PHP 8.3 because my server's operating system is too old.)
    1 point
  6. From what I see, the CBurst "View Product" page will show a "Swipe Gallery" if there are more than one image assigned to the product. (This is not images assigned to options.) If there is only one main image assigned to the product, there is no gallery. (The images posted above suggest there is more than one image assigned to that product.) So, there are edits that need to be made to the skin so that "Images Assigned to Options" feature will work. But not on a Gallery. I will post what those edits are soon. (There also seems to be a problem with some CSS code bleeding over into the Short Description area.)
    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. Brilliant, I changed a few lines and now it all looks pukka! Thanks again for all the help!
    1 point
  9. 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
  10. 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
  11. Since upgrading to version 6.5.2 we have the following issue: For reference our shop is located at https://www.airbornesappers.org.uk/shop/index.php We do have products with a Sale price entered, which are less than retail and greater than zero In Store Settings - Features we have Sales Mode set to Per Product, with Number of sale items to display set to 20 I don't know if the upgrade to 6.5.2 has caused this, all I can say is that prior to the upgrade Sale Items were displayed in the Sale Items category I've searched other topics and checked as much as I know what to check but can't fix this error Any help appreciated Thank you
    1 point
  12. Using a programmer's text editor, please make this edit. In /classes/catalogue.class.php, near line 893: From: $GLOBALS['catalogue']->searchCatalogue((int)$_GET['cat_id'], $page, $catalogue_products_per_page); To: $GLOBALS['catalogue']->searchCatalogue($_GET['cat_id'], $page, $catalogue_products_per_page); The variable $_GET['cat_id'] could actually contain the value 'sale'. Should this text value be cast to a numerical type, it equals 0, for which there is nothing to be found. The use of (int) was added in an attempt to solve some other problem.
    1 point
  13. 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
  14. Please bring up the extension for viewing the settings in admin, Extensions, find Card Capture and click the Edit icon. On the next page shown, what does the Description field show?
    1 point
  15. Please reload this forum conversation. I made a mistake on the last line of the new code.
    1 point
  16. 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
  17. Name: Dillion (Bootstrap Responsive Skin) Price: Free Category: Skins Homepage: https://www.cubecart.com/extensions/skins/dillion-bootstrap-responsive-skin
    1 point
  18. Yes, as well as all logs.
    1 point
  19. Thank you. By way of a bit of background for you. In the early stages of our online shop journey we checked out many different platforms including some of the well known names such as ZenCart. We found the setup of these other platforms to be quite difficult and certainly not as well organised and intuitive as CubeCart. The ease of setup and the organised admin area were the main reasons for us deciding to go with CubeCart, a good decision and we look forward to using it for a long time to come. These forum pages have been a big help, we really appreciate you being there and the assistance you provide, keep up the good work because no doubt I'll be back
    1 point
  20. For step D, be sure that the updated plugins (that needs the ionCube that works with PHP 7.4) are not enabled. Otherwise, there is still the situation of an ionCube-encoded plugin wanting a later version of ionCube that is not running under PHP 5.6. Otherwise, the above is the sequence of steps I would suggest.
    1 point
  21. 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
  22. Hi, I upgraded to 6.4.6 and everything seems ok except the extra images aren't showing in admin/products Oh, and the word location is mispelled in the dropdown Nevermind it has something to do with my custom admin skin. I'll figure it out Thanks anyway
    1 point
  23. 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
  24. Sorry to hear this Rosemary. Best of luck achieving what you want. I'm not sure I have any valuable input.
    1 point
  25. Attached is a report that covers the edits needed to make CC645 run under PHP 8.1. Of course, without a comprehensive testing procedure plan - preferably automated - hitting every feature and function that CubeCart can do is impractical. As such, I advise against running this in a production environment, for now. However, I believe I've found and fixed the Fatal Errors, Warnings, Deprecated Notices, as well as a number of general notices that became visible under PHP 8.1, and made a number of code optimizations, but only in the core code. I have chosen to not make a fork of CC645. For those who want to slog through the edits, I hope they will be able to discern the reasons for each change. Any module encoded with ionCube will need a new version from the publisher. The publisher should also take it upon themselves to test their modules under PHP 8.1. Some additional insights can be found reading the latest Github issues. PHP8.1_Changes.txt.zip
    1 point
  26. I had issues with SendinBlue. I don't recall the exact scenario, but it went along the lines of them rejecting my mailing campaign half way through sending. I quickly spent my credits and went elsewhere. Moosend is perfect for our requirements, although they are fussy with certain address uploads.
    1 point
  27. Name: AA Basic Blue Price: $14.99 Category: Skins Homepage: https://www.cubecart.com/extensions/skins/basic-blue
    1 point
  28. So there must be another cache. A content delivery network proxy or something typically used by cheap hosting providers. Does the basket reliably hold its contents between page loads?
    1 point
  29. Hi Lyd, If you edit the page/document via the admin panel "status" should be ticked and "Show link to document in storefront?" unticked. This should hide the link in the footer but leave the content accessible by the new nav link. If you are linking to a category, don't create a new page/document as stated in step 1. Simply just do step 2 and use the url for the category for the link. Thanks.
    1 point
  30. My bad. Replace that other new code with this new code: if (!empty($item['product_options'])) { $product['product_options'] = array(); if (($list = unserialize($item['product_options'])) !== false) { foreach ($list as $value) { $product['product_options'][] = $value; } } else { if(method_exists($order,'unSerializeOptions')) { $options = $order->unSerializeOptions($item['product_options']); } else { if(empty($item['product_options'])) { $options = array(); } else if(($options = cc_unserialize($item['product_options'])) !== false) { } else if (($options = cc_unserialize(base64_decode($item['product_options']))) !== false) { } else { $options = explode("\n", $item['product_options']); } } foreach ($options as $option) { $value = trim($option); if (empty($value)) continue; $product['product_options'][] = $value; } } $product['product_options'] = implode("\n", $product['product_options']); }
    1 point
  31. @radman bare with me, i'll pop @havenswift-hosting a message to get his take on it. If it is a caching issue he'll know more about it.
    1 point
  32. You can do if you're comfortable with it and familiar with github. You'd need to look over at cubecarts github and see what issues have been resolved and look at the code changes needed. Editing the core script can get messy if you lose track of what you're doing. Far more simpler to just update the normal way unless your site is running a modified version of cubecart and you don't want to lose those edits (not including 3rd party skins as those are unaffected by core updates).
    1 point
  33. Hey, By default the google analytics js is conditional to cookies been accepted so if you don't use the cookies notice or haven't accepted cookies then the code won't run. If you want to run google analytics regardless of if cookies have been accepted then you'll need to remove the conditional statement by skins > amzin > templates > element.google_analytics.php and remove line 1 and 13 like noted below: {if isset($smarty.cookies.accept_cookies) && $smarty.cookies.accept_cookies=='true'} <<< REMOVE THIS LINE {literal} <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', '{/literal}{$ANALYTICS}{literal}', 'auto'); ga('set', 'anonymizeIp', true); ga('send', 'pageview'); </script> {/literal} {/if} <<< REMOVE THIS LINE
    1 point
  34. Find the CSS file cubecart.style04.css and add the following: .page-header-sec { background-image: url('xyz'); } where 'xyz' is the location of the image.
    1 point
  35. Hi @captinmax Sorry for the delay for the Latest Products the only solution would be to display the "From" prefix for all products shown in that area as theres no direct check that can be made from the template. To achieve that you would do the following: Open file skins > amzin > templates > content.homepage.php around line 67 find : <div class="product-price"> {if $product.ctrl_sale} <div class="price-group"> <span class="old-price">{$product.price}</span> <span class="current-price">{$product.sale_price}</span> </div> {else} <span class="current-price">{$product.price}</span> {/if} </div> and change it to: <div class="product-price"> <div><small>From</small></div> {if $product.ctrl_sale} <div class="price-group"> <span class="old-price">{$product.price}</span> <span class="current-price">{$product.sale_price}</span> </div> {else} <span class="current-price">{$product.price}</span> {/if} </div> as for the product page, personally i wouldn't recommend placing it on the product page as theres no simple solution to showing/hiding the "from" text as you would want it to be dynamic so that it disappears once an option is selected so that the customer sees a final price and not a from price. Then if your options are optional then you don't want to display a from price incase no options are selected. (if that makes sense) Although you could put it on the categories page like this open skins > amzin > templates > content.category.php around line 149 find: <div class="product_pricing clearfix"> {if $product.ctrl_sale} <span class="old_price">{$product.price}</span> <span class="sale_price">{$product.sale_price}</span> {else} <div><span>{$product.price}</span></div> {/if} </div> and change it to : <div class="product_pricing clearfix"> <div class="clearfix" style="height:20px;overflow:hidden;"> <small><strong><span style="font-size:12px;">{if $product.options}From:{else}&nbsp;{/if}</span></strong></small> </div> {if $product.ctrl_sale} <span class="old_price">{$product.price}</span> <span class="sale_price">{$product.sale_price}</span> {else} <div><span>{$product.price}</span></div> {/if} </div>
    1 point
  36. Thanks Al. It's working great now.
    1 point
  37. Hi Coders! I am in the need of a couple of modifications. The website concerned is http://www.firstchoicemobility.com I currently have a large dropdown menu that works fine apart from when the web browser is resized. the text then gathers up on the left hand side. Apparently this is because the coding used (Isotope) for the menu should not be used like that so there is no fix. So I would like a new menu created the same without the browser resizing issue. The ability to print off or save a PDF of a product page (I have a sample of what i would like the layout to look like) The ability to re-order images to display on the product page in the order i wish. Please contact me if you are able to carry one or all of the modifications. Thank You Gary
    1 point
  38. All fixed now. We had a GeoIP database fault which is now resolved.
    1 point
  39. In Foundation.css .thickpad-top { padding-top: 1.25em; } make it 0em or padding: 0; I'm not sure if it's used in other pages though, so maybe be careful with that, I haven't really come across it in my rebuild yet, but then again, I am on part 5 of 9billion.
    1 point
  40. In the folder /js/styles/, do you have two copies of jquery.bxslider.css -- perhaps one being named something like orig_jquery.bxslider.css? If so, then styles.php is picking up both copies, with the original taking precedence over the edited. I am also not finding the file /js/styles/images/bx_slider_controls.png.
    1 point
  41. The problem with the left/right arrow buttons is that the file of the controls sprite belongs to a different effect. Suggest that you edit the /js/styles/jquery.bxslider.css so that the controls.png file called would be bx_slider_controls.png, then copy the controls.png from the Foundation skin, renaming it bx_slider_controls.png. Then force the browser to reload the page's resources.
    1 point
  42. Hover your mouse over the Edit button. Your browser will show the URL that will be sent when clicked. Note the address_id value. Back at the admin list of Zones, hover your mouse cursor over the Delete icon for 'Greater London'. Note the id value (maybe 469?). Using an external database utility, look in CubeCart_addressbook. Find the record that has that value as the address_id. Compare the database addressbook record 'state' column value with the 'Greater London' id value. They should match. One one point long ago in time, the 'state' column held the actual name of the state/county/province. That column still can hold actual names, but CubeCart now uses ID numbers.
    1 point
  43. Took me ages to change my signature as could not find it due to font colour being faint, Whats that all about.
    1 point
  44. To be clear, by "Windows Server", there is the IIS webserver running on the Windows Server operating system. Neither is supported by CubeCart Ltd. That is, getting the Rewrite URL configured on IIS (or any other webserver other than Apache), nor the peculiarities of PHP and dealing with the backslash of Windows OS directory separator.
    1 point
  45. This is a common mistake (caused 100% by the fact there is no documentation on how to set this up). What you have is a USPS Merchant Account. Nothing wrong with having one of those. But what you actually need is an account for the USPS Webtools. Go here: https://www.usps.com/business/web-tools-apis/welcome.htm Step 1 is a sign up. Once you sign up, USPS will email to you your USPS Webtools Username. This username is something USPS creates for you. You do not create it yourself. Once you make a few tests requesting rates, you then email them back asking to put this username onto their "production server". This is explained in the email they send you.
    1 point
  46. How UPS decides what to charge for its shipping services are not precisely known. I suppose generally the rate quoted involves weight and distance. You say "it worked", but you didn't say which option you chose: supress estimates until actual delivery address known, or show estimates based on shipping the package back to your store's physical location (which, of course, would be way off compared to shipping across the country). Also, the rates quoted would (presumably) be the same as if you carried the package into a UPS store. This is opposed to having a UPS merchant shipping account, and through that account, enjoy "negotiated rates". Cubecart's UPS module is not coded to communicate for negotiated rates.
    1 point
  47. So, for a category record in CubeCart_category table, the 'cat_image' value could be an integer other than zero. Take note of an integer value, such as 36 for example. Then, in CubeCart_filemanager, find the record with file_id of the integer value noted earlier (36, for example). The 'filepath' column must be null or have the name of an actual folder. Does this record exist?
    1 point
  48. 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
  49. im coming in late on this...but I do this every 6 months. First time I did it there were like 8,000 of those 'fake' customers. Here is the SQL command I used in phpmyadmin on my granny version 3.0 store: DELETE FROM `CubeCart_customer` WHERE noOrders = 0 AND regTime < 1454012330; Since you are running 6.0 then you would probably run it like this: DELETE FROM `CubeCart_customer` WHERE order_count = 0 AND registered < 1460000000; or even better: DELETE FROM `CubeCart_customer` WHERE order_count = 0; It will clean house in a second! i like to put a timestamp on it so that if someone has been shopping in the past two weeks and havent donea checkout yet and are still thinking...then they wont be lost and end up having to reregister.
    1 point
×
×
  • Create New...