Forum Replies Created

Viewing 15 replies - 1 through 15 (of 92 total)
  • Thread Starter svaldesm

    (@svaldesm)

    I’m doing great, thanks for asking. What I really love about your support is how quick and timely you answer. Thanks for that.

    The issue resolved itself. The feed was indeed updated (because I added new fields that appeared) but after refreshing it again, it worked.

    Thanks anyway for your support!

    Thread Starter svaldesm

    (@svaldesm)

    Sorry, I forgot to ask something else: is it possible to change the start from 1-5 to 0-10? (as in NPS).

    Thanks!

    Thread Starter svaldesm

    (@svaldesm)

    Thanks again for everything! Amazing support.

    Thread Starter svaldesm

    (@svaldesm)

    I can’t thank you enough for this. It works amazingly well!

    I realized that the single-product page is checking if the product is on the wishlist as well. This is suppose to have a much lower load, but what I’m worried is that, if somehow the first user added to wishlist on the category view and then entered to the product, the cache will be saved with the icon of the product added.
    It’s no big deal, but just want to know if theres a way to adapt your current solution to this case.

    I also had a suggestion in case you want to consider them for your backlog:
    – be able to define the order in which products are shown on the wishlist asc/desc (maybe via a shortcode parameter). I think usually the products with the highest chance to be sold are the newly added.
    – have the ability (from backend and customer view) to remove all out of stock products with a button

    Thanks again for your great support, I’ve left a review on the plugin site.

    Thread Starter svaldesm

    (@svaldesm)

    Hi there,

    Thank you very much for such a complete and precise answer. It works perfectly.

    I just would like to know if two modifications can be achieved:

    – when you click, not redirect to the wishlist page, just add them
    – in line with the previous item, after the product is added (click on the button), changing the class of the element so that we can change the design

    In summary, the desirable flow would be:
    – All products are loaded with a link to /add_to_wishlist= (…), without any kind of check if it’s already added or not
    – When you add a product, it’s added via AJAX and the class element changes (the heart goes from white with black borders to full black)
    – Ideally, once added if you click you remove it

    Is there a way to achieve those changes?
    For me, the ideal flow would be to load everything as it is out of the box, but only without the verification if that product is already on wishlist.

    Thanks again for your help!

    Thread Starter svaldesm

    (@svaldesm)

    Hi there,

    First of all, I really appreciate how complete, personal and professional your answers are, considering I’m a non-paying user. Please refer me to a place where I can write an adequate review for YITH that will be useful to you, because I really think this is very high level support. Thanks for that.

    Regarding the query, I did it with the biggest list that I have on my site: 903 products. It took 0.041 seconds to load. I tried with several other lists over 100 products and the time was almost the same. Considering it must load for 32 products, it can take up to 1,3 seconds (just adding it directly) for this to load, but if it’s happening for several customers at once, it might put a huge load on the server. What I don’t get is why it takes sometimes 100 or more seconds, apparently something breaks the loop and products some memory or CPU leak. I think it’s some kind of iterative loop. I can get over 800% CPU usage with a few customers that are browsing.

    Regarding the index on prod_id, it is created.

    Considering your solution, what would be the best way to achieve that? Should I do that on my child template or on the plugin template? If you could point me in the right direction I would really appreciate it. I know I can’t ask for you to do this, it’s out of boundaries and I think I can achieve it, but with your help on telling me which files needs to be changed and in big terms, where.

    Thanks again for such a helpful support.

    – Santiago

    • This reply was modified 4 years, 6 months ago by svaldesm.
    Thread Starter svaldesm

    (@svaldesm)

    I’ve been investigating a bit more.
    Please let me know if I’m in the right direction:

    What needs to be done is to change the file /templates/add-to-wishlist.php, replacing the content between lines 42-53 and add the code that’s on /templates/add-to-wishlist-button.php` (that is the template I’m using).

    So far I think I can do that, but I’ve been unable to show the “success” template after adding to wishlist.

    Remember, what I want to do is just to let people add to wishlist, but not compare every product to check if it’s on the wishlist previously (hence, showing the added or to-add template, which is what slows my site).

    I’ve been all day without the “Shop loop” and it works very smoothly, which tells me that the issue is not that people have big lists checking them on the wishlist view, but rather that it compares, for logged in users, for every 32 products of every page to check if it’s already added to change the design of the button. It’s just not worth it and I’ve compared other big stores (as Asos) and they have it as I’m trying to achieve.

    In summary, how can I achieve what I want? I don’t care if I need to do custom work (considering updates will break) but rather being able to achieve it. I think it’s a great feature to add (check if product was already added? yes/no to avoid that load)

    Thanks again and sorry for all the messages ??

    Thread Starter svaldesm

    (@svaldesm)

    So, disabling the option “Show “Add to wishlist” in loop” certainly reduces the load.

    I think the issue mostly relates to the plugin comparing each page load to check if those products are on the list or not.
    Is it possible to override that behavior? I just want to show the heart and if someone wants to add it, then add it, but don’t check on every load if they are there.

    I would really appreciate if there’s some kind of hook or fix for that, right now I had to disable the plugin because of those issues mentioned.

    Thanks again!

    Thread Starter svaldesm

    (@svaldesm)

    Thanks for your reply

    A few more things to consider:
    – I’m using Basel theme (XTemos) that used to be integrated with your wishlist, not sure if they might have done something that affects (It’s a remote theory, but nevertheless)
    – We have 70K products and the biggest wishlist has 500 products in it
    – We don’t have Redis or any other object cache in place
    – We are on a 16GB, 6-core server

    What I believe happens are two things:
    – Someone enters to /wishlist/ with a huge wishlist and it takes years to load
    – Somehow, when one of these same people are browsing, every page load tries to match the 32 products of that page with their wishlist, completely thrashing the machine.

    How can we test this further? I have a staging site that is exactly the same as production if you want to make a few tests.

    I’m 100% sure the issue is related to this plugin because just after disabling it, it starts to work fine and the load goes from 800% to 40%.

    Thanks!

    Thread Starter svaldesm

    (@svaldesm)

    I don’t know if this is necessarily related, but we have 32 products per page and look at this New Relic report:

    View post on imgur.com

    View post on imgur.com

    It takes 45sec to load it fully (32 products) and I’m not really sure why

    Thread Starter svaldesm

    (@svaldesm)

    Hi @404eng ,

    Our business is a bit different, that’s why the solution is a bit tricky.
    We sell secondhand products, so we get lots of products out of stock quickly (because there’s 1 unit per product). That makes having out of stock products in the wishlist useless for us (that product won’t return).

    What I did was to download the full table and edit it on Excel, removing all products that were out of stock or removed on the site.

    The second thing we did was to realize that customers were having, despite removing out of stock products, huge lists. We then reduced those lists manually (it was a pain) to 50 products max. Not elegant but it worked and we send them the remaining products via email.

    That’s why I suggets to @yithemes to:
    – increase performance (I know it takes time)
    – have the ability to remove all ouf of stock products from backend
    – limit the number of items on a wishlist, and after that, start replacing elements

    Another thing I would like to propose @yithemes is to be able to configure the order of the products being shown. I think it’s more useful to have newer products on the wishlist being shown first rather than old ones. But that may be something you could configure.

    Cheers to both

    Thread Starter svaldesm

    (@svaldesm)

    Hi, I appreciate your answer. I’ll try that.

    For now, we reduced the amount of products on the biggest lists.
    I was going to suggest some things that could be interesting for the plugin:

    – Be able to remove all out of stock products at once from the lists
    – Change the default order that is used for showing the products. Right now it’s ASC from date of publication, but that is counter intuitive because you will always see the oldest products from your list. I think that could be something you can choose on admin
    – Limit the amount of products per list. If your list is full, I’ll start replacing old products with new ones or just block the add process.

    Some of those measures could help others as well.

    Thanks for your help and please keep me posted if there’s any advance in performance for bigger lists.

    Thread Starter svaldesm

    (@svaldesm)

    Hi there,

    This is kind of urgent. Customers with huge wishlists are dropping my site at times.
    They wait for the list to load over 200sec and it uses all CPU and RAM available.
    Is it possible to limit that somehow, or use a pagination system?
    It really is a big deal for us.

    Maybe a few things that might help:
    – limiting the amount of items (as Aliexpress does) per wishlist
    – have an option to remove all out of stock items from wishlists in a quick way (we do it right now via database)
    – limit the time a query can run (or have an option for that)

    Thanks!

    – Santiago

    • This reply was modified 4 years, 8 months ago by svaldesm.
    Thread Starter svaldesm

    (@svaldesm)

    Thanks for your answer.

    We are a store that sell secondhand products, so any product that is sold won’t be available a second time. What we do from time to time is to remove those products so that only in-stock products are there. We don’t have hidden products.

    According to your description, I think it’s very slow because of the amount of products. What I don’t quite understand is why other plugins work fine with that level of products but this has troubles. Others that work fine are FacetWP, Scalability Pro, SUMO Rewards and Points, CodeCanyon Dynamic Pricing and Discounts, and others more. All of them have different purposes, but my point is that the amount of products we have shouldn’t have THAT level of performance impact because those plugins are able to cope with it fine.

    To be honest, I’m not a developer myself, I do a few tricks but far from an expert.
    I’m not sure how to proceed with the performance on impact, but maybe you can check plugins that have similar scalability problems and are greatly built, as FacetWP for filters (works amazing!).

    Maybe a few tricks:
    – using indexes
    – using pagination (depending on the situation it may help)
    – avoiding running querys that perform full scans

    I’ll be happy to test any new version and you can feel free to use my staging site to test if there’s indeed an improvement on performance.

    You can download the data here: https://bit.ly/3dudZcj
    The customer I spoke to (ID 3303) has 1900 products on her wishlist, which is far from normal, but still.

    Also, I’m not sure why there are lots of products assigned to customer ID = 0 (does not exists)

    Thanks for your help!

    – Santiago

    Thread Starter svaldesm

    (@svaldesm)

    UPDATE:

    I modified the database to remove any ID of products that were removed from the store.
    There are now 81K rows on the wp_yith_wcwl table (I made sure to alter the autoincrement and also to make IDs consecutive)

    I managed to speak with one of the customers who had a big wishlist.
    It does not work for her at all. Even after removing this products (that might have been the ones causing the issue) when she tries to enter it takes years to load, and trying to remove one product freezes the browser completely.

    From my end I’m not sure there’s something else to be done.
    We have 50K products and ~15K customers, I’m not sure if this is a huge volume for you guys, but so far with other plugins it is very manageable.

    If you need access to my staging site, I’ll gladly send it to you so you can check by yourself.

    Thanks!

    • This reply was modified 4 years, 8 months ago by svaldesm.
Viewing 15 replies - 1 through 15 (of 92 total)