Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 05/14/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
    I switched to Ubuntu 18.04 from Windows 10 on my main computer a couple of years back and haven't looked back. Now with Ubuntu's minimal installation option too I have my computer running just the software I want with no annoying desktop apps being pushed on me or that nasty new start menu. Which operating system do you use, and why?
  5. 1 point
    Please make this edit. In /classes/catalogue.class.php: Lines 1835-1849: From: if (isset($search_data['featured'])) { $where[] = "I.featured = '1'"; } // Only look for items that are in stock if (isset($search_data['inStock'])) { $where[] = $this->outOfStockWhere(); } $whereString = (isset($where) && is_array($where)) ? implode(' AND ', $where) : ''; if (!empty($whereString)) { $whereString = ' AND '.$whereString; } $whereString .= $this->_where_live_from; $joinString = (isset($joins) && is_array($joins)) ? implode(' JOIN ', $joins) : ''; To: if (isset($search_data['featured'])) { $where[] = "I.featured = '1'"; } $whereString = (isset($where) && is_array($where)) ? implode(' AND ', $where) : ''; // Only look for items that are in stock if (true || isset($search_data['inStock'])) { // Forcing a filter for only in-stock items. Includes _where_live_from. $whereString .= $this->outOfStockWhere(false,'I'); // BUG!! Using this method at this location requires using the table alias. } else { $whereString .= $this->_where_live_from; // Adding the _where_live_from to the $whereString. } if (!empty($whereString)) { $whereString = ' AND '.$whereString; $whereString = str_replace('AND AND', 'AND', $whereString); // Hack to kill double verb from empty $where[] causing _where_live_from being first. Note two spaces between verbs. } $joinString = (isset($joins) && is_array($joins)) ? implode(' JOIN ', $joins) : '';
  6. 1 point
    Thanks Al. It's working great now.
  7. 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
  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
    In the Noodleman skin template main.php, find: Near line 26: <a href="{$ROOT_PATH}" class="main-logo"><img src="{$STORE_URL}/skins/noodleman_v6/images/noodleman/noodleman-logo.png" alt="{$CONFIG.store_name}"></a> Change to: <a href="{$ROOT_PATH}" class="main-logo"><img src="{$STORE_LOGO}" alt="{$CONFIG.store_name}"></a>
  10. 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.
  11. 1 point
    The solution is going to involve having CubeCart make a decision on how to deal with the HomePage document. This before CubeCart sends the finished page to the browser so as to not include the <ul class="bxslider"> block of code. By removing this block of code, the <img> tags will not be present and so the total time to finally display the page will be lessened. On the other hand, if you just want to hide it on a mobile skin, we can create a simple CSS rule: .bxslider { display:none;} To hide it on a responsive screen: The html in the document would be: <ul class="show-for-medium-up bxslider"> Getting back to not including it, we need a version of CubeCart that includes the ability to parse Smarty tags. In admin, Documents, click the edit icon for any document. On the General tab, check for the presence of the "Parse Smarty Tags" checkbox.
  12. 1 point
    Click on the "Follow" button top right of the page just above the green "Reply to this topic" button
  13. 1 point
    To follow up on this, I contacted FastComet support and spent a little time trying to figure out the problem, and looked at a few other shopping carts... But aside from the problem I was having I did like CubeCart so decided to just download CubeCart 6.2.4 and install a new Database... The new version appears to be working perfectly! So if you have a similar problem a reinstall may be a quick and simple solution. Regards, Dave
  14. 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}
  15. 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.
  16. 1 point
    CubeCart 6.2.2 uses openssl instead of mcrypt making it compatible with the newest PHP versions. If you still get mcrypt errors then your store code is not up to date. See: https://github.com/cubecart/v6/issues/2113
  17. 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.
  18. 1 point
    I'm confused. The first sentence says you want to manually apply an image (and presumably show it). The second sentence you want to suppress displaying it. Can you clear this up?
  19. 1 point
    https://github.com/cubecart/v6/issues/2016
  20. 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.
  21. 1 point
    After several hours, posts and attempts to figure out a way around this problem I finally had to give up and try another self hosted cart script. I spent a lot of time in CubeCart and there are a lot of things I love about it but I simply cannot hand off a store to my client with this behavior, bug or whatever it is. I would suggest a fix for this problem ASAP and after that a PayPal donation link for the developer. In my opinion, technical support cost might be too high or not needed for most folks but I for one would certainly consider a donation for this great free script. Just a thought.
  22. 1 point
    Cheers guys Look forward to sharing my creations
  23. 1 point
    Hi @NiteFox This is correct. It's a legal obligation for us to collect taxes on your behalf as a marketplace. Say you sell a £100 skin to an Italian customer (22% VAT rate). You will receive £70, we will take £30 and the tax man will get £22. Please note that PayPal may take a transaction fee from the £70 but I'm not entirely sure.
  24. 1 point
    Yes, CC622 will work with PHP 7.2. Be aware, however, plugins provided by some third-parties will need to have new versions replace older versions. These plugins require the ionCube loader, and ionCube is such that there are specific versions of the loader for respective versions of PHP, and also that PHP code that requires the loader be "compiled" against that specific version of the loader being used. That is, if upgrade PHP, then also upgrade the ionCube loader to match, then the plugin author will need to recompile their PHP scripts against that new loader version, and the plugin user replaces the previous version of the plugin with the new version. Also, there are PHP extensions that CubeCart 622 needs that have, on the rare occasion, not been enabled with PHP 7: ZIPArchive and MBString. So, in admin, PHP Info, scroll through the tables verifying the presence of these extensions.
  25. 1 point
    Welcome perrow! Glad to see you made it to the forums. Essentially, you just need to remove (or hide) three form elements: Registration, Addressbook, and Checkout Confirm. If the data is not entered, it will not show. Look in the skin's templates content.register.php, content.addressbook.php, and content.checkout.confirm.php for the following code (or very similar to it): <input type="text" name="title" id="title" value="{$DATA.title}" placeholder="{$LANG.user.title}"> This form element will be inside other code. If the skin is Foundation, then the entire set of statements you are interested in will be very similar to: <div class="row"> <div class="small-4 columns"><label for="title" class="show-for-medium-up">{$LANG.user.title}</label><input type="text" name="title" id="title" value="{$DATA.title}" placeholder="{$LANG.user.title}"></div> </div> To "hide" this code, make the following edit each to the three templates: {* <div class="row"> <div class="small-4 columns"><label for="title" class="show-for-medium-up">{$LANG.user.title}</label><input type="text" name="title" id="title" value="{$DATA.title}" placeholder="{$LANG.user.title}"></div> </div> *} All that was done is to have made the template rendering engine (Smarty) ignore these template "comments".
  26. 1 point
    The PRODUCT_TABS_TITLES and PRODUCT_TABS_CONTENTS are arrays that are populated by hooks, usually the hook in the Catalogue->displayProduct method. When viewing a product of the storefront, there are three established tabs: Product Information, Specification, and Quantity Discounts. Each TAB has a corresponding CONTENT panel. Other hooks in admin will add tabs and content panels to collect whatever additional data would be related to the product.
  27. 1 point
    I found, it's in the config.xml file
  28. 1 point
    SCRIPT_URI? Is there also a REQUEST_URI? These keys to the _SERVER[ ] array come from the web server.
  29. 1 point
    The Login/Register is two separate links. That would be done in the template box.session.php: From: {else} <a href="{$STORE_URL}/login.html" class="button white small nopad-sides">{$LANG.account.login}</a> / <a href="{$STORE_URL}/register.html" class="button white small nopad-sides">{$LANG.account.register}</a> {/if} To: {else} <a href="{$STORE_URL}/login.html" class="button white small nopad-sides">{$LANG.account.login}</a>{* / <a href="{$STORE_URL}/register.html" class="button white small nopad-sides">{$LANG.account.register}</a> *} {/if} Have CubeCart clear its cache. Then there is the option to register at checkout.
  30. 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
  31. 1 point
    CubeCart will create and cache a skin-based rendering of the category tree, then make that "cameo" available to box.navigation.php in $CATEGORIES. The "pro" of this is to expend just once what could be a time-intensive task in building the tree. The "con" is that (at least for some versions of CubeCart) the URLs have the host address of the store when the tree was built. (Thus, should the web address change, the links do not work anymore.) By adding {debug} to the end of the main.php template, you should see the $CATEGORIES variable in the left pane of the Smarty popup.
  32. 1 point
    Name: Ebay Sales Price: £104.95 Category: Plugins Homepage: https://www.cubecart.com/extensions/plugins/ebay-sales
  33. 1 point
    Thank you guys. For the reason that this platform was made available for free, It would be a great idea for me to keep it too as a thank you.
  34. 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 !
  35. 1 point
  36. 1 point
    I'm going to add an extra step to the joyride on first admin login.
  37. 1 point
    UPDATE: forgot to actually push the "submit" button on this post yesterday.... DOH Reporting back.. something is still not right for sure. So I've been writing data to the log all day, the cache has been cleared at least twice but the number of actual writes doesn't add up. In 9 hours, 377,000 new file writes. But, I am seeing a lot of duplicate hashes being written, an example of this is: even if caching WAS working correctly, and cache was cleared we should NOT have written the same item to cache 8442 times since this morning. Most things in the log do appear to be duplicated many thousands of times. Assuming the overwriting of cache is working correctly, this is incorrect and will add to increased IO for file cache. Here is my log amendment for reference: modified _writeCache function: protected function _writeCache($data, $query) { $query_hash = md5($query); if (isset($GLOBALS['cache']) && is_object($GLOBALS['cache'])) { $fp = fopen('query_log.txt', 'a+'); fwrite($fp, time() . " ### " . $query_hash . "\r\n"); fclose($fp); return $GLOBALS['cache']->write($data, 'sql.'.$query_hash); } return false; } maybe I did something wrong... but, initial results suggest cache is being written mode than it should. I'll need to check the write function to see if it does a check first. won't have time until this evening.
  38. 1 point
    One final experiment before we take a different approach: Log out of admin. Log out of the storefront. Clear the cookies to your site (or use a different browser or computer). Change those values in global.inc.php to be the latest file and folder names. Save the file. Go to the page www.store.com/admin.php. Attempt to log in.
  39. 1 point
    According to this conversation on Stack Overflow, your page needs a <link>, and then you need to tell FB to re-fetch the targeted image using a LINT or DEBUG tool. In the <head> section, add: <link rel="image_src" href="{$PRODUCT.small}" /> That conversation also mentions using Open Graph tags, but the latest Foundation skin uses only two of the six required, and only if FBOG is true -- which I cannot find where that happens. Your skin may or may not have that code.
  40. 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.)
  41. 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
  42. 1 point
    Two possibilities: CubeCart allows only iframes from SAMEORIGIN. To bypass this, an edit will be needed in two places: * The .htaccess file shipped with CC621 has a directive that will always add SAMEORIGIN to the outgoing headers, and * There is a header command in the core code that adds SAMEORIGIN. and/or (Probably this is the case) Your site is loading under https, but the frame is loading under http. This is mixed security and the latest versions of browsers generally do not allow for this. Please leave off the http: having simply the leading double-slash. The browser will then use the protocol the main page used to be fetched. Then, the page coming into the frame could also have its headers say SAMEORIGIN.
  43. 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
  44. 1 point
    Magento is a PHP based application just as CubeCart is and so you could run then together if you really wanted to as long as one is in a sub-directory. However, Magento is a MASSIVE application (and complex to learn as well as maintain - even patches are extremely complex !) and tough on server resources so if you are planning on running a live site, then it isnt advisable. A live Magento site generally requires a small dedicated server even for a relatively non-busy site.- we have a small number of Magento clients running on very large servers in what we call semi-dedicated hosting where we have 2 to 4 sites per server, geographically spread so clients almost get the benefits of a dedicated server without the costs and hassle.
  45. 1 point
    Thanks so much Al...I was sweating it!! Lol Rockin' Job! Thanks. Matthew
  46. 1 point
    @Al Brookbanks: Tested and confirmed working on 6.2.1. Thanks!
  47. 1 point
    Provided that the digital file is publically accessible, in admin, Add/Edit Product, Digital tab, Custom File Path section, you may enter either a direct path to a folder on CubeCart's server, or a Full Web Address that points to anywhere on the Internet. If your AWS repository requires a login, that may pose an obstacle unless you know how to overcome it.
  48. 1 point
    Congratulations Al, to you and your wife!
  49. 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>
  50. 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.


  • Newsletter

    Want to keep up to date with all our latest news and information?

    Sign Up
×
×
  • Create New...