Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Posts posted by KirkM

  1. My guess: Boooooom!  😄

    Really, you don't have to go through all that.  I don't want to hack CC just because I am a type A PITA.  I can wait for everything to catch up in a future release... I swear I can...  Really... ahhhhhhhhhhhh!

  2. That would be very generous of you to do.  PHP 8 has only been out since the very end of November 2020, so that's just under 18 months.  Lots of changes and depreciated / removed functions and conventions so it will understandably take a while for everyone to clean their code.   

    All my stuff works fine on 7.4 too, I just am a bit impatient to work with some of the 8.1 improvements.  I have it installed in my MAMP Pro testing server and develop only with that to future-proof as far out as possible so it is important that I have it on my production server, which I do for the domains I use.

    For CC, I can just leave it on 7.4 until all is ready and then I will clean 7.4 off the server.

    As always, thanks for your help and response Brian.  It is greatly appreciated.

  3. Thanks Brian. 

    Do you know if Smarty 4 in CC645?  Obviously, if a single third-party component isn't compatible, then the whole thing isn't.

    I run PHP as a PFM Application per domain so I will keep 7.4 for the CC clients and wait for the plugins to catch up if they haven't yet.

    It would be great if Al specifically announces when the CC version is released that is tested compatible with PHP 8.1.  (wink, wink, nudge, nudge)..

  4. Searched around and didn't see much about CC compatibility with the latest php version 8.1.  Just a single post back in 2021 or so about problems with php 8.0 breaking CC.  What's happening with CC and php 8.1?  I am using CC 6.4.4 with php 7.4 right now (CC still recommends using php 7.3, which is now outdated), but all my data systems and some client wordpress sites are moved to php 8.1.  CC is the only thing hanging me up from having 8.1 as the only php version on my server.

    Any info on a timeline for this would be greatly appreciated.

  5. Well, I feel like an idiot (not the first time).  I was totally focused on where the coupon was applied and not on the shipping module.  Uncommenting that line of code did the trick and makes perfect sense.  It was right there in the shipping.class.php file, with a big flag of a comment to tell dummies like me "HEY! right here!".  Sheesh.

    Thanks Brian for always jumping in to help.  Your remark made me take a look over at the AIOS class after being so focused on the coupon class code.

  6. Sorry, I realize this is not really clear.  The example of what he needs is over-simplified with just the one product.  There could be multiple products.  The coupon in this case is for $15 off the whole order.  Plus, his promotion also has free shipping for all orders $49 or more.  He needs the shipping to be considered AFTER all coupons and any other discounts are deducted.

    The way the store works now, the coupon looks at the subtotal and the shipping looks at the subtotal ignoring the subtraction for the coupon, because the coupon also happens AFTER the subtotal.  There is no consideration by the shipping for a modified subtotal because of the coupon.

    He will always need the shipping promotion to be on the final amount AFTER any discounts.  To me, he is right, that is the way this should work or at least have the option for it to work that way.

    I hope that is a bit clearer on what the issue is with the current way CC handles the checkout flow.

  7. Been trying to figure out a way to get the coupon to be part of the calculation of subtotal.  The more I examine the function of the cart / checkout process from the store owner's point of view and possible marketing approaches, the more I see that the coupon logic is deficient in it's ability to be used in conjunction with other marketing tools.  I realize my point of view is rather simplistic since I am not intimately familiar with the code, but I have been reading through the relevant scripts and it seems that even with the complication of coupons for particular products or other variables, those discounts should be taken BEFORE the subtotal that all other things act upon, like shipping.

    Do you have any suggestions or ideas of how to hack this?  Combining coupons with variable shipping zones / rates is pretty common for my client and seems to me to be a pretty basic marketing approach.


  8. All in one shipping.  What I was thinking was that the coupon should have the user choice of either calculating on the subtotal or as part of the calculation of the subtotal.  That way the shipping or any other module can stay looking at the subtotal for their calculations.  It would be a really nice flexibility feature in the coupon module.

    • Like 1
  9. Interesting situation with a client on CC 6.4.4:

    He has shipping set up for a fixed rate of $7.95 for orders $0 - $48.99.
    He has another rate of free shipping for $49.00 - $100,000.

    He also has a coupon for $15 off for new customers.  He needs the coupon to be subtracted BEFORE the store calculates the shipping rate.
    Here what is happening:

    Product Z    49.96
    Subtotal     49.96
    Certificate                  -15.00
    Free Shipping

    Total                           34.96

    What he needs:

    Product Z    49.96
    Certificate                  -15.00
    Subtotal                     34.96
    Ship Charge                7.95

    Total                           42.91

    I don't see a way to get this to happen.  Anyone know if this is possible?

  10. Upgraded store from 6.2.9 to 6.4.4.  No error messages in the upgrade.  However, now product options print in what looks like a hash of some sort instead of the color, size, etc. (See attachment)

    Everything seems correct in the admin and I even deleted and re-added the options but it still prints out this hash on the order.  I went in to the tables to make sure it wasn't something getting written that way but the options are correct and in plain text there.

    Any help on where I should start looking for this would be greatly appreciated.


  11. Just a side note - I took a look in detail of the 6.x checkout process since my client is kind of inferring that it is leading to people opening multiple accounts if they shop before starting checkout. 

    <rant>JFC, you have to be some special sort of stupid to not be able to log into your account at ANY TIME shopping or at checkout.  The very first step in checkout says to log in if you have a profile.  If you ignore that and start to fill out the information, the ajax call to check the email tells you in real time that you already have that email registered so you can click the login link at the top.  To purposely ignore all that and type a different email and continue and THEN call to complain that the store said you couldn't use your registered email address is absolutely mind blowing.  You have to work at being that oblivious. </rant>

    Back on topic, if he requests it, I will close his store overnight, back everything up and try consolidating accounts according to the process I have identified and see if it works.  If it does, I will do my best to document it and report back.  If it doesn't work, I will report that too.  If, after letting him know the risks of undetected issues appearing down the road upon initial success, he decides to leave it, then I will go radio silent on this whole thing.

    Thanks for the ear.

  12. That is about what one of my clients wants to do - Ask the customers if they intended to have multiple accounts.  If not, then find out which email do they want to consolidate under.  In most cases, this comes about because his customers call and complain that they couldn't log in so they used a different email to just get the order done.  Not sure if it is due to text case issues (does CC use strtolower() on both read and write of user emails to eliminate text case verification errors?) or just people being stupid in one way or another.  His business has a giant selection of dietary supplements so he has people that order over and over again for years and even decades.

    My only concern with doing this manual consolidation was missing something and causing data issues.  I listed the ones that I found to be relevant and was looking for some guidance or verification that this will work from someone who has done it before in CC6.x. 

  13. On 7/17/2019 at 9:00 PM, bsmither said:

    Sorry. Adjusting the key items in the database must be done manually. This has been true since CC3 (as I have had to do that numerous times).

    (I do not know of a plugin to do this - I suppose it is possible - and I suppose I should have written one.)

    Choose which customer ID is to be retained, and change all the related keys in related tables (customer, order_summary, order_inventory, downloads, addressbook, group_memberships, maybe others). I think CubeCart automatically recounts and updates the order_count in the customer record

    Resurrecting this from last year, I think a lot of store owners have this problem (my clients do), so I was looking at the tables and it appears that all of the tables regarding orders use the order number as a key reference and the only table that relates back to the customer ID is order_summary.  It looks to me like this is where the relationship between orders (via order #) and customer (customer ID) is established and the order number is the key for all other relational information.

    Am I wrong in thinking that if I simply do a query in the order_summary table replacing the redundant customers I don't want with the ID of the one I am keeping, that this should move the history and all of the relational table information to that customer?  It looks like it to me at this point since I don't see any other reference to customer ID in any tables relating to orders.

    Any observations about this?

    The other tables that would have to have the customer_id changed appear to be addressbook, downloads, customer_memberships, saved_cart, shipping_log (no entries?), transactions and customer_reviews.  Cookie consent and sessions are strange ones since it seems that the store always puts a 0 in customer_id.

  14. I just did a test with the original code restored and the CCD enabled and it appears you are correct.  Thanks for tracking that down.  

    Seeing that the GDPR extends to any company who could possibly do business with anyone in Europe, I suppose it should just be enabled by default in CC since theoretically every store on the web is doing business "worldwide".

  15. Using DevTools in Chrome, I cleared all cookies from the site and then loaded a couple of pages.  I see a lot of cookies being stored from the CC store, but none that appear to be any of the listed cookie names used by Smarty.  I need to find out where the $smarty.cookies.accept_cookies variable is stored and how it is triggered to true.  Perhaps this is a result of the "Cookie Compliance Dialog" not being active in the store?

  16. So it has something to do with the cookie acceptance.  If I go to skins/foundation/templates/element.google_analytics.php and take out the smarty {if} statement, it works fine.

    Original code:

    {if isset($smarty.cookies.accept_cookies) && $smarty.cookies.accept_cookies=='true'}
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    ga('create', '{/literal}{$ANALYTICS}{literal}', 'auto');
    ga('set', 'anonymizeIp', true);
    ga('send', 'pageview');

    Removed the {if} statement and that works:

    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    ga('create', '{/literal}{$ANALYTICS}{literal}', 'auto');
    ga('set', 'anonymizeIp', true);
    ga('send', 'pageview');

    I don't see where this cookie acceptance is unless it is in the GDPR settings.  In this store, they are both off.  Does the cookie compliance dialog have to be on for the GA code to work?


  17. My skin is basically the Foundation skin with a few css tweaks.  It should be doing exactly what the Foundation skin does.

    I will have to hunt around and see if I can find what you are talking about.  In the mean time, I see a LOT of this in the error logs:

    File: [controller.admin.pre_session.inc.php] Line: [26] "SET @@time_zone = 'America/Los_Angeles'" - Unknown or incorrect time zone: 'America/Los_Angeles'
    File: [controller.index.inc.php] Line: [27] "SET @@time_zone = 'America/Los_Angeles'" - Unknown or incorrect time zone: 'America/Los_Angeles'

    Don't understand how that can be since it is the correct formatting for a timezone and it is selected from the admin drop-down menu.  Edit: It does it with all timezone choices. Edit #2: It appears it is not relevant to this situation per this thread - https://forums.cubecart.com/topic/55533-error-about-timezone/


  18. Strangest thing - I upgraded from 6.1.13 to 6.2.9 a little bit ago and my client just noticed that there is no GA feed to his GA account.  The really strange part of it is that it isn't an instant drop off.  It goes from Feb 2 to Feb 17 in a sharp decline to zero over days.  I don't know if the upgrade has anything to do with it or not.  If it did, you would think it would have dropped to zero instantly when the upgrade was done.  I have diffmerged all of the files to make sure that everything is the same on my installation as the clean version of 6.2.9, including matching my custom skin to the foundation skin with only my css changes the difference.  Everything seems to be there.

    Also, I noticed that Google Tag manager shows no Google Pixel on the site when I go to it in Chrome.  I also checked to make sure the element.google_analytics.php file is there in the skin templates file.

    Not sure where to start looking for this.

  • Create New...