• Content count

  • Joined

  • Last visited

  • Days Won


bsmither last won the day on April 19

bsmither had the most liked content!

Community Reputation

1,263 Excellent

Profile Information

  • Gender
  • Location
    Pacific Coast

Recent Profile Visitors

83,459 profile views
  1. An easy way is to add the style attribute to the link itself: <a itemprop="url" href="/my_special_link.html" title="My Special Link" style="background:red;">My Special Link</a>
  2. Update

    Does this other skin require CC620? If not, I would think this other skin would work fine with what you have now.
  3. Interesting. The next question is: Where does the HTML (page or Shopping basket snippet) that has the wrong token come from? CubeCart or a cache somewhere? For that, we need to look again at the waterfall. There should be a setting to "persist" network traffic. (Otherwise, the waterfall resets for every request made. Whether this includes XHR - aka AJAX - requests, I'm not sure.) If you can persist the logs, then do it again. This time, if a POST fails, look at the POST /?_g=ajaxadd. The response of the failed POST will not be one of: * a redirect to the product page because required options were not chosen * a redirect to the current page because something went wrong with adding to the basket (stock levels, other availability issues) * shopping basket snippet of HTML and a new token (the requester should update all other locations in the page that hold the token) The current problem is that the response contains index.php because the token mismatch discards all GET and POST data, and sends back the Homepage. But with an ajaxadd, that is not supposed to happen. Look at the previous POST /?_g=ajaxadd payloads and responses. We need to find the condition where and when the rogue token appears.
  4. Yes, of course. Let's try logging what CubeCart expects the token to be and what the web form is sending back as the token. In /classes/session.class.php, near line 255, find: public function checkToken($token) { On a new blank line after that, add: trigger_error('CubeCart Token: ' . $this->get($this->_token_name), E_USER_WARNING); trigger_error('POSTed Token: ' . $token, E_USER_WARNING); Then, observe the error_log contents. Just above every "Invalid Security Token" line, there should be the values of tokens that were compared.
  5. "change the "Add to Basket" button to "You have the last one!" and disable the button" I like that idea. I see the POST payload includes the token. The next question is, is it the correct token? To determine that, we would need to get serious about adding a bunch of diagnostic code to Cubecart.
  6. Facebook like buttons not showing

    I don't see it because of a setting in my browser (even if I allow Facebok's javascript to run): The resource at “” was blocked because tracking protection is enabled. Please determine if your browser(s) was recently updated to have "Tracking Protection" default to On.
  7. First, in admin, Store Settings, Stock tab, there is "Reduce Stock Levels" when the order goes to Pending. Keep in mind, the order must go to Pending. Stock levels are not reduced (as best I know) by merely placing the item in the shopping basket. (And this is where my comparison of CubeCart versus a b-n-m store fails.) You can also "Hide Out-of-Stock" items and have "Allow Out-of-Stock Purchases" disabled. CubeCart has become sensitive to CSRF security token. Not being in certain POSTs (AJAX requests and a couple others) wasn't an issue a few versions ago, but it now is. But, that would be CubeCart objecting and this objection would happen no matter what browser was being used. Your browser's developer's tools must have a Network panel, where a time-lapse graph (a waterfall) of traffic being sent and content being received is shown. There will be a POST entry. Examine the POST payload. Note if the security token is present. (It is strange, but disregard the token if it appears as part of the URL.) The "page within a page" (actually, an entire page replacing just the Shopping Basket area - this is the AJAX Request and Response) is caused by CubeCart disagreeing with something that got POSTed. Interestingly, an item that has a stock level of '1' was added to the basket. Then I clicked Add to Basket a second time. (The stock levels as reported in admin and on the Specs tab of the product storefront page are still at '1'.) I get the red banner that says: The following errors were detected: Sorry but the chosen product option combination is out of stock or the last of the stock is already in your basket.
  8. We can render the user agent checker inoperative. In /classes/session.class.php, Near line 700, find: if ($current[0]['useragent'] !== $this->_http_user_agent()) { Change to: if ( false && ($current[0]['useragent'] !== $this->_http_user_agent()) ) { I still think there is a different reason why Chrome behaves differently than Firefox. But we will see.
  9. These errors are a result of the version of PHP being 5.3 or higher (but not PHP7). The ereg() family of functions are removed from PHP7, and warnings about it (deprecated) will be displayed as of PHP5.3. Fortunately, you can tell PHP's error_reporting() function to suppress deprecated messages. Next, please consider if this CC4 installation has any customizations to the code. If not, think about upgrading to the latest version of CC4. These problems and others will be solved. (Give some thought to going all the way to CC6.)
  10. PayPal Powered by Braintree

    Hmm. I installed "BrainTree Payments" by It properly uses the language file. Unfortunately, "PayPal Powered by Braintree" from does not properly use the language file. You must manually edit the file: /modules/gateway/Braintree/skin/form.tpl
  11. PayPal Powered by Braintree

    In admin, Manage Extensions, what is the version number shown for the BrainTree module?
  12. Download CubeCart 4.4.8 from Extract and replace just the index.php and admin.php files. CubeCart has a new licensing model in which enforcement of that license by "phoning home" is no longer performed. Replacing those files will bypass the phone home code. Do not try to actually remove the license, because third-party modules, if any are installed, may be using it.
  13. PayPal Powered by Braintree

    The best way is: In admin, Languages, click the Edit icon for Française. On the next page, scroll through the dropdown and select "Modules - Gateway - BraintreePayments". Shortly, a list of phrases will appear. Translate the phrases, then click Save.
  14. error country

    This unhelpful error message would imply that your installation of CubeCart either has no shipping modules enabled, or of those that are enabled, none have agreed (or even responded) to ship that order for whatever reason. May we have a list of the enabled shipping modules you have for your store? You may be able to find the shipping rate requests in admin, Request Log. The Response should indicate why the package was declined.
  15. Adding a SSL logo?

    Not a setting, per se. I have added the script to fetch and display the SSL Medallion to the admin, Store Settings, Copyright contents.