Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 02/11/2018 in all areas

  1. 2 points
    Works fine,it's pretty simple and could do with some refinement in the future to make the UI a little nicer and add additional features such as an API so those of us with a larger catalogue can setup automated order processing (for licenses etc). PayPal do also take a fee on top of the CubeCart fee.
  2. 2 points
    Your database and dB user names and passwords will almost certainly be different on your new hosting and you need to update the /includes/global.ini.php file with the new values Ian
  3. 2 points
    Seems to have levelled off the cache at around 35,000 objects at the moment, will keep an eye and report back later.
  4. 1 point
    This is most likely to be your browser auto-filling variables trying to be helpful ! This is a problem in a few areas in CubeCart even when the field is set to not autofill (for example the SMTP Authorisation password when configuring the store email in the Store Settings). Depending on what browser you are using you can disable this for various types of information. For Chrome, go to the Settings page (enter chrome://settings/ in the browser url) go to the autofill section and then you can disable for passwords, payments methods and addresses and more Ian
  5. 1 point
    I guess it must be working, on the front page of my store I now see a "Protected by reCAPTCHA" icon! And hopefully no more bot spam! Thanks Al Brookbanks and bsmither for the good advice.
  6. 1 point
    Return to CubeCart's admin and edit the Homepage document. Remove the Mailerlite code from this Homepage document - including the {literal} and {/literal}. After saving the edited document, be sure to click the button "Clear Cache" that is lit up in the upper-right corner.
  7. 1 point
    Welcome Courtney! Glad to see you made it to the forums. Using a programmer's text editor (your hosting account's control panel has one of these), you will open /skins/foundation/templates/main.php (and main.checkout.php). Here you will find the </head> tag. You should include these additional two lines of code so that the template rendering engine (Smarty) will not get confused because it uses braces that javascript also uses. {literal} Mailerlite javascript goes here... {/literal} Then, return to CubeCart's admin and edit the Homepage document. Remove the Mailerlite code from this document.
  8. 1 point
    Mycrypt library missing from server required to encrypt credit card details I upgraded from 6.0.11 to CubeCart Version 6.2.2 PHP Version (5.6 Recommended) 7.3.2 MySQL Version 5.5.41-MariaDB and now cannot accept credit card information Need advice or help Thank you Doc
  9. 1 point
    Ian is wrong. Logging in with the same staff account will kick out the other staff member who will need to login again thus kicking the other out. It's a security feature to prevent session hijacking. You'll need an account for each staff member.
  10. 1 point
    To change details about the database, please edit the file /includes/global.inc.php. Ok, not being able to maintain session, which, having items in the Shopping Basket (aka Cart) stay in the shopping basket between pages, means PHP is having some difficulty with using a session manager. And yet, not being able to use these means of maintaining session should be getting logged in error_log. I think submitting a trouble ticket with your hosting provider to discuss session-related issues is warranted.
  11. 1 point
    Yes. In admin, Documents, click Create Document tab. On the new page, for the Title, enter FAQ. For Status, click the checkbox. On the Content tab, in the editor window, (as an example) enter: Q1. How do I link to a paragraph in a document? A1. How do I link to a paragraph in a document? Highlight A1. Click the 'Anchor' toolbar button (looks like a flag). A dialog window will show. The Anchor Name is A1. Click OK. Select Q1. Click the 'Link' toolbar button. A dialog window will show. The Link Type is 'Link to anchor'. Select the A1 anchor name. Click OK. Click Save. (Click the Clear Cache button that is lit in the upper-right corner.) Reload the storefront Homepage. Click the FAQ document link. Click on Q1. Note the page scrolls so that A1 is at the top of the screen.
  12. 1 point
    The format of the sitemap that CubeCart creates is OK but there are third party packages available that create much better versions and will optionally create image or video sitemap files as well and even more importantly can be scheduled to run via cron, for example weekly, whereas with CubeCart you have to remember to re-run it manually each week. The number of CubeCart sites I see with sitemap files that were created a year or two ago and never updated ! This is worse than not having a sitemap file at all
  13. 1 point
    did you generate one yet? Store Admin -> Maintenance it will then be here: https://testvalleymodels.co.uk/sitemap.xml.gz
  14. 1 point
    Thanks Al. It's working great now.
  15. 1 point
    Thank you,I changed this part of code.I decided to move to other host,so I hope it will be than solved.But your work-arround code works,so at least for now it is some solution to solve this issue for a moment.Thank you.I always appreciate your quick and helpful advices.David
  16. 1 point
    Earlier, I said: The line numbers shown indicates that CubeCart is using the 'X-Forwarded-For' header. This then suggests that the web server is mis-reporting or mis-interpreting the IP address in that X-Forwarded-For header. So, we have verified that the SERVER_ADDR and REMOTE_ADDR is correct. It is the PHP function apache_request_headers() - line 523 - is where Cubecart is getting the value of the server address. Conclusion: There is an appliance just ahead of the web server that is adding/mangling the X-Forwarded-For entry in the Request Headers HTTP stream with an erroneous value. It is possible that this appliance (a reverse proxy server?) uses in a correct fashion the newer Forward header. See if Forward is in the two PHP Info tables discussed earlier. Until the above gets sorted, you can implement a work-around: In the function get_ip_address(), find: // Remove port if it exists $parts = explode(':',$address); $address = (empty($parts[0])) ? $address : $parts[0]; Change to: $address = $_SERVER['REMOTE_ADDR']; // Remove port if it exists $parts = explode(':',$address); $address = (empty($parts[0])) ? $address : $parts[0]; We will use the REMOTE_ADDR because we have verified in PHP Info that it is correct -- FOR YOU!
  17. 1 point
    In admin, Languages, click the Edit icon of the language(s) you use in your store. From the drop-down selector, choose Basket. From the list that appears a few seconds later, change 'shipping_select' to what you desire. I am going to experiment with the Store Collection module. I will experiment by using two of these modules and renaming them to Summit and Milton. In the e-Tone template content.checkout.php, near line 120, find: <p class="basket_actions"> <a href="{$STORE_URL}/index.php?_a=basket&empty-basket=true" class="button_submit left"><span class="icon icon-cross"></span> {$LANG.basket.basket_empty}</a> <button type="submit" name="update" class="button_submit update"><span class="icon icon-cycle"></span> {$LANG.basket.basket_update}</button> {if $DISABLE_CHECKOUT_BUTTON!==true} <input type="submit" name="proceed" class="button_submit" value="{$CHECKOUT_BUTTON}" /> {/if} </p> Change to: <p class="basket_actions"> <a href="{$STORE_URL}/index.php?_a=basket&empty-basket=true" class="button_submit left"><span class="icon icon-cross"></span> {$LANG.basket.basket_empty}</a> </p> <p class="basket_actions"> <button type="submit" name="update" class="button_submit update"><span class="icon icon-cycle"></span> {$LANG.basket.basket_update}</button> </p> {if $DISABLE_CHECKOUT_BUTTON!==true} <p class="basket_actions"> By clicking Secure Checkout, you are creating an order...etc.<br> <input type="submit" name="proceed" class="button_submit" value="{$CHECKOUT_BUTTON}" /> </p> {/if}
  18. 1 point
    Please make the following edits: In /classes/seo.class.php, find: public function buildURL($type, $item_id = false, $amp = '&') { // Some SEO paths are not stored in the database if (!$item_id && in_array($type, $this->_static_sections)) { if (($item = $GLOBALS['db']->select('CubeCart_seo_urls', array('path'), array('type' => $type))) !== false) { return $GLOBALS['storeURL'].'/'.$item[0]['path'].$this->_extension; } else { return $GLOBALS['storeURL'].'/'.$this->setdbPath($type, '', '', false).$this->_extension; } } elseif (($item = $GLOBALS['db']->select('CubeCart_seo_urls', array('path'), array('type' => $type, 'item_id' => $item_id))) !== false) { return $GLOBALS['storeURL'].'/'.$item[0]['path'].$this->_extension; } else { return $GLOBALS['storeURL'].'/'.$this->setdbPath($type, $item_id, '', false).$this->_extension; } } Change to: public function buildURL($type, $item_id = false, $amp = '&', $absolute = true) { // Some SEO paths are not stored in the database $url = ($absolute) ? $GLOBALS['storeURL'].'/' : $GLOBALS['rootRel']; if (!$item_id && in_array($type, $this->_static_sections)) { if (($item = $GLOBALS['db']->select('CubeCart_seo_urls', array('path'), array('type' => $type))) !== false) { return $url.$item[0]['path'].$this->_extension; } else { return $url.$this->setdbPath($type, '', '', false).$this->_extension; } } elseif (($item = $GLOBALS['db']->select('CubeCart_seo_urls', array('path'), array('type' => $type, 'item_id' => $item_id))) !== false) { return $url.$item[0]['path'].$this->_extension; } else { return $url.$this->setdbPath($type, $item_id, '', false).$this->_extension; } } In the file /classes/gui.class.php, near the end of the file, find: private function _makeTree($tree_data) { A few lines later, find: $branch['url'] = $GLOBALS['seo']->buildURL('cat', $branch['cat_id'], '&'); Change to: $branch['url'] = $GLOBALS['seo']->buildURL('cat', $branch['cat_id'], '&', false); Then find: private function _displayNavigation() { A few lines later, find: 'saleitems' => $GLOBALS['seo']->buildURL('saleitems',false,'&'), 'certificates' => $GLOBALS['seo']->buildURL('certificates',false,'&') Change to: 'saleitems' => $GLOBALS['seo']->buildURL('saleitems',false,'&',false), 'certificates' => $GLOBALS['seo']->buildURL('certificates',false,'&',false) You will need to have CubeCart clear its internal cache.
  19. 1 point
    I have yet to confirm CC6011 contributes to this problem. I will check on this shortly.
  20. 1 point
    I think the key thing to fix is to have your hosting provider assist you with having sub-domains (mail, hostmaster, etc) resolve to alternate services - not to your site. Also, your domain name registrar should also assist you in making sure non-existent sub-domains (ww) return a "Server Not Found" error.
  21. 1 point
    Thanks @AI and @Bsmither. @Bsmither my first installation was done manually, however, I deleted it and used the Token method, its working properly now. Thanks.
  22. 1 point
    https://github.com/cubecart/v6/issues/2016
  23. 1 point
    Here is the fix. classes/cubecart.class.php Find: $old_addresses = md5(serialize(array_merge($this->_basket['billing_address'], $this->_basket['delivery_address']))); Replace with: $old_addresses = $GLOBALS['user']->addressCompare($this->_basket['billing_address'], $this->_basket['delivery_address']); Find: $new_addresses = md5(serialize(array_merge($this->_basket['billing_address'], $this->_basket['delivery_address']))); Replace with: $new_addresses = $GLOBALS['user']->addressCompare($this->_basket['billing_address'], $this->_basket['delivery_address']); Save then open classes/user.class.php Find: /** * Change a user password * * @return bool */ public function changePassword() ABOVE this add: public function addressCompare($address1, $address2) { $allowed_keys = array('line1','line2','town','postcode','state_id','state','state_abbrev','country','country_id','country_iso','country_name'); $address1_filtered = array(); foreach($address1 as $key => $value) { if(in_array($key, $allowed_keys)) $address1_filtered[$key] = strtolower($value); } $address2_filtered = array(); foreach($address2 as $key => $value) { if(in_array($key, $allowed_keys)) $address2_filtered[$key] = strtolower($value); } return md5(serialize($address1_filtered).serialize($address2_filtered)); } This will be released in 6.2.3.
  24. 1 point
    Solved it Al - Many thanks. I'd not noticed that before.
  25. 1 point
    You need to clear the cache in your store. Top right of admin control panel.
  26. 1 point
    Cheers guys Look forward to sharing my creations
  27. 1 point
    I found, it's in the config.xml file
  28. 1 point
    There's the problem... mb_strtolower your server doesn't have the MB string functions enabled in PHP enable multibyte and it'll fix the issue. also.. eeewwww. PHP 5.5! you should upgrade that to at least PHP 7.1. It's often overlooked. http://php.net/supported-versions.php
  29. 1 point
    It sounds like the server your website is hosted on, previously had memcached installed and configured but either it now doesnt have that installed or it has been disabled. Most shared hosting doesnt have memcached available (we do across all of our servers !) so you will need to speak to your hosting company - unless you own and manage the server there will be nothing you can do. To get back into the site edit your includes/global.inc.php file and change memcached to file to switch back to the standard but slower file based caching Ian
  30. 1 point
    Welcome Sycho! Glad to see you made it to the forums. After the successful transaction, CubeCart places a link in the customer's "Downloads" page of their Account section. However, "guest' customers (those who did not create a customer account) do not have an Account section. In addition, CubeCart also sends a link in an email to the customer. CubeCart also can expire a digital download by time (from 30 minutes to never), or by count (x-number or unlimited) -- on a global approach. That is, it is not possible to limit ProdA to 6 downloads while ProdB has 10 downloads. The availability of the download is immediate, although there are some customizations that will delay the appearance and emailed delivery of the link until the admin "approves" the sale (for whatever reason). CubeCart also allows the admin to reset any limits and to resend the email containing the download link.
  31. 1 point
    If you are running cPanel AND your hosting companies allows you access to Multi PHP INI Editor AND you are allowed by them to change the values - that is by far the best way of doing it. Once you have changed it, then go into PHP Info and go to the sessions section and check that it has changed If your statement in your last post of the setting of your memory_limit at 15M is correct and it isnt a typo, then you need to change or better still remove that line !
  32. 1 point
    Interestingly, we have just had a report from a client of this exact same behaviour and they have been running 6.2.0 (just recently upgraded to 6.2.1) so it looks like it could be a problem introduced with the new caching in 6.2.0 - unfortunately our client has reported this and then closed their store for their Summer holiday Reported as possible issue : https://github.com/cubecart/v6/issues/2116
  33. 1 point
    Thanks so much Al...I was sweating it!! Lol Rockin' Job! Thanks. Matthew
  34. 1 point
    OH!!! Congratulations to both of you!! I was hoping you were offline because your baby had come!
  35. 1 point
    At about line 66 in main.php, find: <div class="sidebar" id="sidebar_left"> {$CATEGORIES} {$SALE_ITEMS} {$MAIL_LIST} </div> Change to: <div class="sidebar" id="sidebar_left"> {$CATEGORIES} {$SALE_ITEMS} {* $MAIL_LIST *} </div>
  36. 1 point
    No Problem if it can be resolved this easy. Thank you for creating this great and easy to use product.
  37. 1 point
    Please delete the unique key 'custom_oid' on the CubeCart_order_summary table. And replace it with a standard key or normal index. This was a bug in the beta.
  38. 1 point
    Fixed by adding facility to specify exact form rather then trying to find via parent DOM. https://github.com/cubecart/v6/commit/4e5f6f42dec0c51f9c512210736b9ddb764718c8
  39. 1 point
    CC620 has adopted the attitude that clearing the cache as often as all prior versions of CC5/6 was doing was incredibly aggressive. Now, the admin is to make all changes - adding inventory, creating categories, editing documents, etc, etc - then click the "Clear Cache" button (should now be lit) seen at the upper-right corner of the admin page. The cache holds SQL queries and their results to lessen the load on shared database servers. If you are not concerned about the load on the database while setting up your store, then in admin, Store Settings, Advanced tab, switch off Caching.
  40. 1 point
    We are excited announce the release of CubeCart 6.2 which sports a number of fabulous new features. Maintenance release 6.1.15 is also available for those who are not ready or are not keen to make use of the new features. Massive thanks to all those who have tested and reported any 6.2 bugs. What's New in 6.2? Incremental order numbers (with dynamic prefix/suffix). #636 Tools to help with GDPR. #1892, #354 * Automatically minified and compressed HTML, CSS & JS. #1905 * Checkout state/county can be required, optional or disabled. #1870 * Invoice template editor tool. #1904 Caching improvements. #1536 Product category added to Google Analytics for eCommerce. #1859 * Order summary to show "guide" currency used. #1913 Ability to show hide site document titles. #1907 * Email log to show fail reason. #1899 Email configuration test to work prior to save. #1894 reCaptcha added to newsletter signup. #1891 * Colours added to admin control panel order statuses. #1888 Introduction of "Safe Mode". #892 Product dimensions (width, height & depth). #828 * Changed admin URL emailed on setup (if changed). #1314 "Continue Shopping" added to cart at all times. #1381 * Search redirect to product detail page for single result. #1427 Auto delete captured card details when order status changes from pending. #1886 Upgrade Instructions: https://support.cubecart.com/Knowledgebase/Article/View/228/43/how-do-i-upgrade-from-cubecart-v6-to-latest-v6 Download: CubeCart-6.2.0.zip Download: CubeCart-6.1.15.zip 6.2 Release Notes - Please Read!! * These features will require skin updates if you do not use the default "Foundation" skin from the 6.2 release. This release has a clear cache on demand tool which significantly optimises the caching system and lowers server load. This means that inventory or configuration changes made in the admin control panel will not be reflected on the front end of the store until the "Clear Cache" button is clicked. This can be found at the top right hand side of every page of the admin control panel. We very much appreciate that this may be seen as an unwelcome new feature but the technical significance is worthy. Unless you have a critical change to make we suggest clearing the cache habitually at the end of each admin session. If the cache is not cleared it may take up to 24 hours for your changes to show. To help comply with GDPR CubeCart 6.2 now has "double opt-in" for email marketing signup and a tool to create a report of all customer data based on an email address. This can be found in the "Customer" section of the admin control panel under the "GDPR Report" tab. A customer can be "forgotten" by deleting their account, newsletter subscription, review(s) and any orders they may have placed. Please note that it may be a legal obligation to keep their order data on file if you have an existing financial contract. The GDPR report can be disclosed to your customer printed or saved as a PDF and/or used to help remove their data from the system. To be GDPR compliant please be sure to have a suitable privacy policy which should contain other such information such as what each site cookie does. Further information and support may be available from your local "Information Commissioner" such as the ICO (in the UK). GDPR is still a very confused and misunderstood subject of which there is no one solution for every business. We will prioritise further development to help compliance based on your feedback if merchants feel they still need extra tools.
  41. 1 point
    I just had to upload & install the latest skin. I'd thought it was part of the main upgrade package. Fixed it for me. Belated thanks to Al & all
  42. 1 point
    In one of your skin template files, probably main.php, find these statements: <div class="row {$SECTION}_wrapper"> <div class="small-12 large-9 columns" id="main_content"> <div> <div data-alert="" class="alert-box alert"> <ul class="nomarg no-bullet"> <li>JavaScript is required by this website. Please enable this in your browser settings.</li> Change the large-9 to large -12. The various CSS sizing classes instructs the browser how much of the available container to give to this row section. There are 12 columns per row (within the parent container). So, when the browser viewport is 'large', this section of 9 columns will take 75% of the row. A section of 12 columns will take 100% of the row.
  43. 1 point
    Try this. Line numbers refer to CC6114: In the admin skin template dashboard.index.php, near line 162: <td align="right"> {if isset($order.notes)} <a href="?_g=orders&action=edit&order_id={$order.cart_order_id}&source=dashboard#order_notes" title="{foreach $order.notes as $note}{$note.time} {$note.content}{"\r\n"}{/foreach}"><i class="fa fa-sticky-note" title="{$LANG.common.notes}" aria-hidden="true"></i></a> {/if} <a href="{$order.link_print}" class="print" target="_blank" title="{$LANG.common.print}"><i class="fa fa-print" title="{$LANG.common.print}"></i></a> Change to: <td align="right" NOWRAP> {if isset($order.notes)} <a href="?_g=orders&action=edit&order_id={$order.cart_order_id}&source=dashboard#order_notes" title="{foreach $order.notes as $note}{$note.time} {$note.content}{"\r\n"}{/foreach}"><i class="fa fa-sticky-note" title="{$LANG.common.notes}" aria-hidden="true"></i></a> {/if} <!-- --> {if isset($order.items)} <a href="?_g=orders&action=edit&order_id={$order.cart_order_id}&source=dashboard#order_inventory" title="{foreach $order.items as $item}{$item.quantity}{" x "}{$item.product_code}{"\r\n"}{/foreach}"><i class="fa fa-shopping-cart" alt="{$LANG.common.items}"></i></a> {/if} <!-- --> <a href="{$order.link_print}" class="print" target="_blank" title="{$LANG.common.print}"><i class="fa fa-print" title="{$LANG.common.print}"></i></a> In the admin source file dashboard.index.inc.php, near line 299, find: foreach ($GLOBALS['hooks']->load('admin.dashboard.unsettled_orders') as $hook) include $hook; We can use this hook. But to complete this experiment, on a new blank line after this, add: /**/ if (($order_inventory = $GLOBALS['db']->select('CubeCart_order_inventory', '`cart_order_id`,`product_code`,`quantity`', array('cart_order_id' => $cart_order_ids))) !== false) { foreach ($order_inventory as $inventory) { $order_items[$inventory['cart_order_id']]['items'][] = $inventory; } $orders = merge_array($orders, $order_items); } /**/ In admin, Dashboard, Unsettled Orders tab, this gives an icon (shopping basket - available in latest versions of CubeCart having a recent version of the Font Awesome files) that, when hovering the mouse over it, will show a 'tooltip' listing the products of that order.
  44. 1 point
    I lied, I figured it out. In /foundation/templates/main.php <div class="row"> <div class="small-12 columns small-collapse"> {include file='templates/box.navigation.php'} <div class="hide" id="val_lang_back">{$LANG.common.back}</div> </div> </div> Make it <div class="row row-mod"> <div class="small-12 columns small-collapse"> {include file='templates/box.navigation.php'} <div class="hide" id="val_lang_back">{$LANG.common.back}</div> </div> </div> then go to foundation/css/foundation.css and add .row-mod { max-width: none !important; }
  45. 1 point
    Ok, I see that you have the friendly names of the database columns as the CSV headers. I hope you can change those headers. I suggest using the database table actual column names: 'available','status','name','image','product_code','cat_id','description', 'description_short','manufacturer','price','sale_price','cost_price', etc You can see the complete list of table column names in the admin /sources/products.import.inc.php file, lines 299-333. If you cannot change the CSV headers, then try using this: In the admin skin template products.import.php Find near line 68: {foreach from=$COLUMNS item=column}<option value="{$column.column}">{$column.title}</option>{/foreach} Change to: {foreach from=$COLUMNS item=column}<option value="{$column.column}"{if $map.example eq $column.title} selected="selected"{/if}>{$column.title}</option>{/foreach} Note we are looking now to compare example with title.
  46. 1 point
    There will be some major work involved to make the BXSlider "viewport" take a specific height and then allow for the images to scale accordingly - and not make things messy. For example, a collection of 1000x300px images shown in a max-height 200px viewport will have the bottom 100px not visible. To then scale the images (reduce the width and height) so that the height fits, the width will also be reduced to 666px. That will really mess up the overall display of the slider. The BXSlider javascript scans through the collection of images and finds: if horizontal slides, the height of the tallest image if adaptiveHeight is true, dynamically changes the height of the viewport if vertical slides, the combined height of all images (see adaptiveHeight) I see two possible solutions: make all your images no taller than the max-height, or use a different slider.
  47. 1 point
    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.
  48. 1 point
    In the file /js/styles/jquery.bxslider.css, you must replace controls.png with bx_slider_controls.png. Line numbers affected are: 106, 114, 143, 157
  49. 1 point
    Somewhere, you have this: $('.bxslider').bxSlider({auto:true,captions:true}); Change to: $('.bxslider').bxSlider({autoStart:false,auto:false,captions:true});
  50. 1 point
    The 'top menu' is the "Navigation" bar (or sometimes "Shop by Category" box). The menu is built from all the categories (enabled and unhidden) there are. There are also three special items: Home, Sale Items, and Gift Certificates. To add any other links to this group would require editing the skin template "box.navigation.php".


  • Newsletter

    Want to keep up to date with all our latest news and information?
    Sign Up
×
×
  • Create New...