Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 12/17/2013 in all areas

  1. 3 points
    I want to publicly THANK @havenswift-hosting for helping our little church with a FREE hosting account! Many years ago I used a series of various hosting companies and ended up leaving every one of them, one after the other, because they were absolutely no help at all if I had any problems - whether the problem was their fault or mine. Ian has time after time gone out of his way to help me with any problems I've had with our CubeCart install over the years. Most of those issues were of my own making, but he has always been super patient and prompt to respond and find a solution. THANK YOU IAN!!!
  2. 3 points
    Thanks to all your guys for your feedback. I agree that we really need more extensions and significant enhancements for existing ones. Especially for shipping! I'm currently towards the end of a massive project with a huge global payment company and we are just about to release this as a new extension. Once that is done and proven stable we are hoping to be able to start work on improved extensions for 2020.
  3. 2 points
    Just a quick thought: please check the admin Store Settings, Stock tab, "Allow delivery to non-invoice address". If not checked, I would think that CubeCart would disallow the selection of delivery addresses and force the use of the Billing address as also the Delivery address.
  4. 2 points
    Keywords gone for 6.2.6. Feels great. https://github.com/cubecart/v6/issues/2370
  5. 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.
  6. 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
  7. 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.
  8. 2 points
    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.
  9. 2 points
    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".
  10. 2 points
    Welcome garitoml! Glad to see you made it to the forums. In the Foundation skin file content.product.php, find these two statements near lines 140 and 149: 140: <dl class="tabs" data-tab data-options="deep_linking:true; scroll_to_content:false"> 149: <div class="tabs-content"> What we will do is apply a CSS style to make them disappear: style="display:none;" 140: <dl class="tabs" data-tab data-options="deep_linking:true; scroll_to_content:false" style="display:none;"> 149: <div class="tabs-content" style="display:none;"> You may need to clear the skin cache after having edits to the skin file: admin, Maintenance, Rebuild tab, Clear Cache. As an aside, I ran a CC3 store that sold conference registrations. I know what you're involved with in getting CubeCart to do this.
  11. 1 point
    Welcome Nanakumi75! Glad to see you made it to the forums. Modules? Please know that CubeCart ships with no modules. In admin, the Dashboard will show several modules that are available that may be useful to you. But, visit the MarketPlace (there is a link just below the Manage Extensions link in the admin Navigation pane) and fetch the install tokens for those shipping and gateway modules that will serve your needs.
  12. 1 point
    The module discussed above gives you what you want. Send a PM with your email address and I will attach it to a reply.
  13. 1 point
    Hi, I updated the site with version 5 to version 6 and can not see ckeditor. Everything is done according to the instructions, all recorded files on the host. PHP version 7.2 and 7.4. Cache cleaning. Please help me
  14. 1 point
    @Dirty Butter drop us a support ticket via your account - we offer cheap (and in many cases free) "Standard" hosting plans for charities and non-profits which is perfect for small WordPress websites and as you are already a hosting customer, would be happy to offer that for free for you - see https://www.havenswift-hosting.co.uk/website-hosting/charity-non-profit-hosting/
  15. 1 point
    It is a feature of CubeCart. In admin, Maintenance, Rebuild tab, Miscellaneous section, check the box for Rebuild Sitemap and click Save. If PHP has a ZipArchive extension installed (and this is a normal requirement for CubeCart), CubeCart will create a zipped version of the XML file. CubeCart will then immediately notify Google that this file exists.
  16. 1 point
    I am not sure about the above. But, in admin, Store Settings, Features tab, Misc. section, check the box for "Hide prices until logged in". This also effectively inhibits adding items to the shopping basket, and deters visitors from checking out.
  17. 1 point
    It would have been a pain that otherwise a "set this price Y based on an equation using that price X" would have solved.
  18. 1 point
    The difference seems to be that the NoChex screen removed the actual listing of the item in the order. Regardless, I advise a consult with a NoChex customer rep.
  19. 1 point
    Feel free to use mine and pick out any bones you can use. Whilst most of it is made up myself with information gleaned from elsewhere, it was scanned over by a GDPR practitioner who gave us the green light. https://www.beal.org.uk/terms-conditions.html
  20. 1 point
    I have instruction to upgrade a CC5-era skin to accommodate reCaptcha V2/3. There is also an edit one can make that will exit running the CubeCart script if a registration is posted with certain key values - typical of a certain, very prolific bot. See: https://forums.cubecart.com/topic/54715-potential-malicous-attack/?do=findComment&comment=238507
  21. 1 point
    If you just recently upgraded to CC626, this effect is likely caused by your web browser using its internally cached copy of the CKEditor javascript code. CC626 includes a more recent version and there may be incompatibilities between the main javascript and all the supplemental javascript files that the main script calls. Please try forcing your browser to reload all the page resources with fresh copies. This is usually done with the keyboard shortcut CTRL-F5.
  22. 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.
  23. 1 point
    A problem with the AIOS module is that adding, editing, deleting rates will submit all the rates on the tabs, regardless even if they have not changed. This could lead to submitting a very large number of data points (key/value pairs). (This is because browsers submit arrayed keys even with empty values.) PHP has a default limit of 1000 key/value pairs of data input. Exceeding this limit will cause PHP to truncate the collection of data, including the security token that had been added at the end. No security token, nothing gets updated. This hack makes each tab of the administrative screen of AIOS to function as an independent form. This then drastically cuts down the number of key/value pairs. There is a consequence to doing this --- Each separate zone tab is a complete and distinct "form". This is different than any other admin settings area. That is, (as of CC611 and earlier) when editing a Product, all the various tabs and the content displayed for each tab is considered to be all on one single form -- the data from ALL tabs' contents are submitted all at once. Thus, you can progress through the various tabs making ALL the settings and properties for that one product. Clicking Save will save ALL the data from all the tab contents. If you are experienced with using your browser's waterfall diagnostics, you can verify what data gets sent out by the browser. NOT SO with this alternate template for the AIOS module. That is, making changes on the first zone tab (USA for example), then making changes on a second zone tab (Canada for example), then clicking the Save button while still viewing that second zone (Canada), will ONLY send the data on the second zone (Canada). The changes on the first zone tab (USA), not being visible, was NOT submitted. So please keep this in mind -- each zone tab is a separate form and only the data for the form being viewed will get submitted. Copy the existing file: /modules/shipping/All_In_One_Shipping/skin/admin/index.tpl to some other name, and using a programmer's text editor, make the following edits. The edits are made from the bottom up so as to not disturb line numbers. Line 314: From: </form> To: </form> *} Line 301 - 304: From: </fieldset> </div> {/if} <div class="form_control"> To: </fieldset> {* NEW *} <div class="form_control"> <input type="hidden" name="save" value="{$FORM_HASH}" /> <input type="hidden" name="previous-tab" id="previous-tab" value="" /> <input type="submit" value="{$LANG.allinoneshipping.save_this_tab}" /> </div> <input type="hidden" name="token" value="{$SESSION_TOKEN}" /> </div> </form> {* /NEW *} {/if} {* <div class="form_control"> Line 149 - 155: From: {include file='admin/shipping_rates.tpl'} </div> {/foreach} {/if} {/if} {if isset($DISPLAY_FORM)} <div id="All_In_One_Shipping" class="tab_content"> To: {include file='admin/shipping_rates.tpl'} {* NEW *} <div class="form_control"> <input type="hidden" name="save" value="{$FORM_HASH}" /> <input type="hidden" name="previous-tab" id="previous-tab" value="" /> <input type="submit" value="{$LANG.allinoneshipping.save_this_tab}" /> </div> <input type="hidden" name="token" value="{$SESSION_TOKEN}" /> </div> </form> {* /NEW *} {/foreach} {/if} {/if} {if isset($DISPLAY_FORM)} {* NEW *}<form action="{$VAL_SELF}" method="post" enctype="multipart/form-data"> <div id="All_In_One_Shipping" class="tab_content"> Line 140 - 145: From: </table> </div> {if $MULTIPLE_ZONES} {foreach from=$ZONES item=zone} <!-- TAB --> <div id="zone_{$zone.id}" class="tab_content"> To: </table> {* NEW *} <div class="form_control"> <input type="hidden" name="save" value="{$FORM_HASH}" /> <input type="hidden" name="previous-tab" id="previous-tab" value="" /> <input type="submit" value="{$LANG.allinoneshipping.save_this_tab}" /> </div> <input type="hidden" name="token" value="{$SESSION_TOKEN}" /> </div> </form> {* /NEW *} {if $MULTIPLE_ZONES} {foreach from=$ZONES item=zone} <!-- TAB --> {* NEW *}<form action="{$VAL_SELF}" method="post" enctype="multipart/form-data"> <div id="zone_{$zone.id}" class="tab_content"> Line 91 - 94: From: {/if} </div> <!-- TAB --> <div id="shipping_zones" class="tab_content"> To: {/if} {* NEW *} <div class="form_control"> <input type="hidden" name="save" value="{$FORM_HASH}" /> <input type="hidden" name="previous-tab" id="previous-tab" value="" /> <input type="submit" value="{$LANG.allinoneshipping.save_this_tab}" /> </div> <input type="hidden" name="token" value="{$SESSION_TOKEN}" /> </div> </form> {* /NEW *} <!-- TAB --> {* NEW *}<form action="{$VAL_SELF}" method="post" enctype="multipart/form-data"> <div id="shipping_zones" class="tab_content"> Line 4 - 8: From: </style> <form action="{$VAL_SELF}" method="post" enctype="multipart/form-data"> {if isset($DISPLAY_RATES)} <!-- TAB --> <div id="All_In_One_Shipping" class="tab_content"> To: </style> {* <form action="{$VAL_SELF}" method="post" enctype="multipart/form-data"> *} {if isset($DISPLAY_RATES)} <!-- TAB --> {* NEW *}<form action="{$VAL_SELF}" method="post" enctype="multipart/form-data"> <div id="All_In_One_Shipping" class="tab_content"> In the AIOS module's language file: Find: <string name="save_all_changes"><![CDATA[Save all changes]]></string> Add After: <string name="save_this_tab"><![CDATA[Save this tab's settings]]></string> This is a change in a Smarty-powered template, so clear the skin cache. You can verify the reduction in the amount of data sent out by re-examining the waterfall.
  24. 1 point
    The scenario is that there is some part of a document where the HTML for that part must not be present when the document is being displayed on a mobile device. The version of CubeCart must support parsing Smarty tags in the document (apparently, all versions of CC6). The mobile device must send a User Agent (UA) string that CubeCart will recognize as being a mobile device. When editing the Content of a document (the HomePage's BXSlider, for example), use the following: {if !GUI::getInstance()->mobile} <ul class="bxslider"> <li><img src="skins/foundation/images/examples/slide1.jpg" title="Message Foo" /></li> <li><img src="skins/foundation/images/examples/slide2.jpg" title="Message Bar" /></li> <li><img src="skins/foundation/images/examples/slide3.jpg" title="Message Baz" /></li> </ul> {/if} Be sure to have "Parse Smarty Tags" setting enabled. Then, create a snippet. In admin, Manage Hooks, Code Snippets tab, click Add Snippet. In the form that appears, fill in fields as follows: Enabled: Checked Unique ID: [email protected]+ Execution Order: 1 Description: Forces CubeCart to detect if a mobile device Trigger: class.gui.css Version: 1.0 Author: https://forums.cubecart.com/topic/54744-how-to-turn-bxslider-off-on-mobile-homepage PHP Code: <?php $current_disable_mobile_skin_setting = $GLOBALS['config']->get('config', 'disable_mobile_skin'); $GLOBALS['config']->set('config', 'disable_mobile_skin', false); $this->_detectMobile(); $GLOBALS['config']->set('config', 'disable_mobile_skin', $current_disable_mobile_skin_setting); The reason we use the "class.gui.css" hook is because CubeCart processes this hook early - before processing the action of getting a document ready for display. It also has to be a hook in the GUI class because that is where the private code is located that determines if the UA string is mobile. Let me know if I left anything out.
  25. 1 point
    Agreed - failed upgrades have been very common in the past when done via the built in upgrade option and often result in a mix of files from different versions - this will cause this type of problem. It has been covered in quite a few threads on here before and a manual upgrade would definitely solve it. Ian
  26. 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.
  27. 1 point
    Welcome Doc! Glad to see you made it to the forums. Ignore everything below. Completely confused with something else. -------------------- If you have your store hosted somewhere, then your host should have given you a control panel for that account (Cpanel?). There, you should find a way to select which version of PHP you want to use and to choose which PHP extensions you need. You will find MBString as an extension to be enabled. If you cannot find where to do this, please contact your hosting provider to enable this for you. If you have direct and total control of your server installation, you will need to edit the PHP.INI file to enable the MBString extension.
  28. 1 point
  29. 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.
  30. 1 point
    You need to clear the cache in your store. Top right of admin control panel.
  31. 1 point
    Cheers guys Look forward to sharing my creations
  32. 1 point
    Determine which folder has the latest date. This is the one that likely is CC622. Then, in /includes/global.inc.php, make sure the value for $glob['adminFolder'] matches that folder's name.
  33. 1 point
    There is this: https://github.com/cubecart/v6/issues/1427 which could be enhanced to include the case where there is just one product in the listing of a category and there are no child categories. (I'll add this to my to-do list.)
  34. 1 point
    Hello Havenswift. Just for the record, Im absolutely impressed with cubecart, dont have any problems and have been impressed with the fact that cubecart looks so easy and small time, but once you start using it you find that its just as good as the big boys. Ive got my own shopfront using cubecart and dont intend to swap. I was looking at the possibility of using majento to setup a takeaway food shops online ordering system. They dont want to go to justeat, as justeat charge too much, so this shop wants it "inhouse". Obviously there needs to be sub options when ordering product A, like size and whether the customer wants all salad, or salad no onion etc. So I was going to setup majento on my site to try and figure it out, and let the shop see a running test before installing on their own host. But does cubecart allow for sub selections, IE what size pizza, and if you order that type of tee shirt, then select the size etc. Thanks
  35. 1 point
    Congratulations Al
  36. 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.
  37. 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.
  38. 1 point
    Hey Claudia - you probably want to edit your post to get your actual admin_XXXX.php name out of public view. As for the database warning you're getting, it's being discussed in GitHub.
  39. 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.
  40. 1 point
    I see extra lines in 2.cubecart.js: Lines 542-545: if(Foundation.utils.is_medium_up()) { $('.product_list').removeClass('small-block-grid-1'); $('.product_list').addClass('small-block-grid-3'); } Change to: if(Foundation.utils.is_medium_up()) { $('.product_list').addClass('medium-block-grid-3'); } Near lines 567-568: $('.product_list').removeClass('small-block-grid-3'); $('.product_list').addClass('small-block-grid-1'); Change to: $('.product_list').removeClass('medium-block-grid-3');
  41. 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; }
  42. 1 point
    Yes it's a bug we intentionally created to drive support sales... or so some have suggested. Great for your image!!!!
  43. 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.
  44. 1 point
    Yeah, that does the trick, thanks, as always bsmither you are a font of problem solving. On using it more, it's doing some weird things, but it's workable, for some reason it keeps hard forcing a linebreak like a <br> but not visable anywhere. I looked for solutions on ckeditor forums, but they seem to really break it hard and it just spams every blank space with the <i class
  45. 1 point
    @twistedsymphony - if you have any questions, please feel free to ask - a ticket via our website is likely to get seen quicker but a reply on here or a PM is fine @jka - thanks for the vote of confidence in the plugin and for buying it. As you discovered, the plugin calculates tax and shipping using what is already configured within your store. In terms of the customer seeing the order, yes they need to login and then it will appear on their Account | Order History page with an option to Complete Payment. An option to send the customer an email at the point when the admin user has created it would be an option that could be added - it would need a new template plus the ability to select on an order by order basis whether this email should be sent. With regard to the credit balance issue - I have opened a support ticket for you as will need to understand from you in more detail what you are doing and what the problem is Ian
  46. 1 point
    This plugin does everything that you are looking to do (and a lot more !). The ability for the customer to complete payment after the admin has entered the order was added in the latest release (this is not a trivial piece of functionality !). As with all of our plugins, you can install a fully working 7 day trial to check it does everything that you need Ian
  47. 1 point
    There is this: https://www.cubecart.com/extensions/plugins/enhanced-admin-order-entry However, there is no confirmation that an order created by this module would be eligible for the Customer to execute the "Complete Payment" action in their Order History page of their Account Settings - but I see no reason why this would not be the case. There is also no mention of a means of notifying the customer that there is a new order ready to have them execute the "Complete Payment" action. Perhaps the author of this module could clarify this feature, or have it added if necessary.
  48. 1 point
    I haven't made a change in mine, either. It's been so long I don't even know how I knew what to put there
  49. 1 point
    I wouldn't recommend using that method. It won't consider images being referenced in either category/document or product descriptions. Those images will likely be considered orphaned and get removed. The module I will put together, hopefully in March will address embeded images as well as those directly associated with products/categories etc. In theory, filemanager contains all images found in the /images/source directory regardless of if it's in use in the store, so your process isn't really removing orphaned files. It's likely removing images which are not in sync with the store DB. you can run the filemanager / scan/update process and it will re-scan the images directory and add/remove records as required to the filemanager table. The trick is to find images/data that isn't in use elsewhere in the store, and exists in both filemanager and the /images/source directory. Those are the true opphaned/unused images. I've some crude code which does this already but needs to be polished and published via a module.
  50. 1 point
    I've tested it on our plushcatalog, and it's working as expected for me. Looking forward to your further testing, @keat!


  • Newsletter

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