Open superskyman100 opened 4 years ago
Thanks for opening this issue! We will help you to keep its state consistent
Hi @superskyman100 , You need to delete the content of ps_cart_rule_combination and none of the cart rule will be compatible with each other. i just did the test and it works correctly. Please check and let me know.
Have you tested what happened in case a new cart rule is created ?
We are not speaking about static situation, but dynamic one. We need newly created discounts (we will have hundreds per days due to reminder cart modules) to be incompatible by default.
BUT we also need some existing cart rule to stay compatible with others....
Deleting all ps_cart_rule combinaison won't solve the (dynamic) issue.... Right ?
On Thu, 25 Jun 2020 at 20:57, florine2623 notifications@github.com wrote:
Hi @superskyman100 https://github.com/superskyman100 , You need to delete the content of ps_cart_rule_combination and none of the cart rule will be compatible with each other. i just did the test and it works correctly. Please check and let me know.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PrestaShop/PrestaShop/issues/19935#issuecomment-649523840, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOKM5WWDCHBQDJV2A7UO3PTRYNCULANCNFSM4OIH5NFA .
Then you must add the restriction directly manually from the BO If you have specific cases in your shop, you will need to contact an agency to develop a special tool for you. Or ou need to contact the developer of the tool you are using directly from your Addons account to request a new feature. The GitHub space is for PrestaShop core software, not external modules.
Deleting all ps_cart_rule combinaison won't solve the (dynamic) issue....
No it won't.
Well we are speaking about BUG of the core software : if we uncheck all cart rules compatibility (as shown up in several screenshots), they are still compatible >> there is obviously something wrong.
This BUG creates problem when we use Prestashop, with or without modules. Modules that create discounts are not the problem. The problem is that we cannot use the core prestahop functionalities as they supposed to work, cause it's not working.
Just look the forums, there is plenty of reports about this problem.....
On Fri, 26 Jun 2020 at 15:13, florine2623 notifications@github.com wrote:
Then you must add the restriction directly manually from the BO If you have specific cases in your shop, you will need to contact an agency to develop a special tool for you. Or ou need to contact the developer of the tool you are using directly from your Addons account to request a new feature. The GitHub space is for PrestaShop core software, not external modules.
Deleting all ps_cart_rule combinaison won't solve the (dynamic) issue....
No it won't.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PrestaShop/PrestaShop/issues/19935#issuecomment-650018255, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOKM5WV6ACI3YPZLIDBHADTRYRDALANCNFSM4OIH5NFA .
I can't reproduce your issue. When the cart rules are uncombinable this is the issue I have in the FO :
If you are not using theme classic, check if the error comes from your theme.
You have to uncheck the 'Compatibility with other cart rules' checkboxes. If you do so for all discounts, you will see that they are compatible while (unchecking the boxes means) it shouldn't be .
On Fri, 26 Jun 2020 at 23:30, florine2623 notifications@github.com wrote:
I can't reproduce your issue. When the cart rules are uncombinable this is the issue I have in the FO : [image: Capture d’écran 2020-06-26 à 17 29 31] https://user-images.githubusercontent.com/16019289/85874242-9e980700-b7d2-11ea-8348-53a860650f09.png
[image: Capture d’écran 2020-06-26 à 17 28 08] https://user-images.githubusercontent.com/16019289/85874110-6bee0e80-b7d2-11ea-931b-c79c392078c9.png
If you are not using theme classic, check if the error comes from your theme.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PrestaShop/PrestaShop/issues/19935#issuecomment-650242599, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOKM5WXEHRIZDOLLLZMCMOTRYS5JLANCNFSM4OIH5NFA .
That's the point of this option. If you check "Compatibility with other cart rules" it opens a board where you can choose the cart rules that can be combined or not.
The point should be to make rules compatible if you choose to make them compatible (click on compatibility), not to make them compatible if you don't click. That's just stupid. Anyway, waste enough time with Prestashop bugs, always end having buying module to solve such stupid issues.
On Thu, 2 Jul 2020 at 17:33, florine2623 notifications@github.com wrote:
That's the point of this option. If you check "Compatibility with other cart rules" it opens a board where you can choose the cart rules that can be combined or not.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PrestaShop/PrestaShop/issues/19935#issuecomment-652900005, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOKM5WRYYWMBYTXTYNHK7H3RZRH5JANCNFSM4OIH5NFA .
You can choose to make them compatible or not. You are free of your actions regarding the discounts.
I think superskyman100 hasn’t made his point very clearly. I too find this to be a bug of PrestShop.
The problem is that when someone creates a new cart rule, by default, without ticking the compatibility check box, all the cart rules you have previously created are compatible with this new cart rule you are setting up. So every time you create a new cart rule you have to manually check the compatibility box, and then remove all the previous cart rules.
This is extremely frustrating and time wasting for shops that have the need to create new discount codes on a weekly or daily basis. It’s a lot of work. And by reading the forums I’m not the only one experiencing this issue.
The default behaviour, in my view, should be that if you create a cart rule and you don’t check the compatibility box, it is not compatible with all the others you have Previously created. And if you check it, then you should be obliged to manually add the ones you want to be compatible.
The tone of the comments on this issue is quite heated, please remember we have a Code of Conduct https://github.com/PrestaShop/PrestaShop/blob/develop/CODE_OF_CONDUCT.md that says
This being said, the suggestion seems relevant so I ping @PrestaShop/prestashop-product-team to have a look
I'm not sure we should change the behaviour that much, because although in your case you consider that the default behaviour is for Cart rules to be incompatible, some other merchants might think the opposite..
As from the technical point of view I guess if no restriction is set on a cart rule then it's considered to be appliable with others, which kind of makes sense.
However I do understand your issue when you need to create self-incompatible cart rules and it's a pain, so instead of changing the existing behaviour I would suggest adding one that allows to easily create a independent cart rule. This could be done by improving the form creation. Maybe we could have a select box where you would choose:
Thanks for pointing that out clearly @jolelievre
Since I follow the stores of 7 merchants in different industries, with different needs about discounts and coupon codes, I found the scenarios in which we need to create cart rules that are compatible with each other are extremely rare if not non-existent. Hence the reason why I naively thought about this as a ‘bug’. I couldn't picture a logical reason why one would make different discounts cumulative. With that said I understand my experience is not statistically significant and I take that some merchants can find the current default behaviour useful.
I see how this can become complicated to overcome to make everyone happy.
Your suggestion to improve the form is most probably the only way forward. In an ideal scenario one would be able to chose what is the default behaviour for each of the restrictions while still being able to act in each new scenario.
I see a visual solution similar to the one used for categorisations on the product page . On the left of the three options you suggested, you have a square tick box, on the right a circle tick box. The circle dot is the default behaviour the merchants wants to see from the next new cart rule creation, while the left square tick box is there for adjustments foe each specific scenario.
In my humble opinion the issue is quite simple. And this is nor a technical or statistical issue, but a functional one... Of course we can find logic behind the actual Prestashop discounts behavior, but this logic is NOT functional in real life.
Why ? Basically, because there is no choice in between default behaviors.
Unchecking compatibility box should make discounts rules incompatibles by default. Checking compatibility box should make them compatible by default (with possibility to refine rules one by one if needed). That's a basic YES/NO behavior that should allow to choose the default behavior of cart rules with other ones.
Actually, we cannot choose this default behavior : it's ALWAYS compatible by default (YES/YES) with existing AND newly created cart rules, box checked or unchecked...
That said, the fact is that Prestashop needs its satellites modules to be one complete e-commerce solution, and what i say here is not anecdotal. The Prestashop ecosystem is what it is, and as a matter of fact, most payed marketing/discounts modules create codes "à la volée" and we cannot manage compatibility/incompatibility of these created codes, one by one, by hand, with basic Prestashop cart rules behavior (YES/YES). Of course we can argue and say that modules devs should think about that, but that's just not the case, most modules rely on core Prestashop behavior to do their job (or not ;).
In a nutshell, it should be useful to have one logical 'contrarian - YES/NO' behavior of the Prestashop core cart rules functionality, to give any core cart rule the opportunity to be either compatible OR incompatible by default with other existing OR newly created new rules.
Hope I made myself clear this time ;),
Cheers guys
@marionf @jolelievre @florine2623 @Pitt1823 @superskyman100 very interesting discussion, as sellers we have the same position as superskyman100. Usually the seller applies or adds discount rules, so removing the already assigned rules seems less intuitive. But with some small changes in layout and functionality, all could be solved, I took a screenshot with some graphic changes.
an important change is the one shown in the screenshot, an opportunity that allows us not to apply discounts on already discounted products. Do discounts also mean the rules?
Thanks a lot for your support. Balla.
@Pitt1823 @superskyman100 @ballashop very well done and explained, I could not agree more! Why would we generally want make any newly issued discount being compatible with all previously issued ones??? And I cannot disagree more with @jolelievre , seems like you don't want to listen merchants! Perhaps you can explain how to make every new abandoned cart discount NOT compatible with hundreds of previously issued coupons? I would love to know, because that is our issue...
Hi, We are delighted to see so many feedbacks on the subject. @mrabsinthe, we do listen to the merchants and your point of view as well. It is that we take a lot of precautions. Any changes could arm the merchants' businesses until the next version to fix those changes. We want the solution to be as wide as possible. Many merchants from different industries and countries use our solution.
Said so, I think with @jolelievre, @superskyman100, and @ballashop ideas, we could have a nice improvement. The only problem that I see on @ballashop's design is that the excluded discounts is a static list, so if you create a new cart rule, you will have to edit the previous one to no be compatible with the new one.
But I trust @prestascott's design talent to find what could be the best fit? Do you think it could find a place on your new design for the migration of the page? The page will be migrated, so any improvement will have to wait for the migration. It could be planned for 1.7.8 depending on our resources, it is not guaranteed. Also, check what could be the best option a default or having a mandatory option to select a type of compatibility.
The big problem of the modules need to be handle as well as said @superskyman100 @jolelievre, Do you think it will bring a lot of BC changes to impose module in the cart creation to choose a type of compatibility? An idea could be to set by default as incompatible since is the option that will have less impact on the merchant turnover.
@MatShir > The only problem that I see on @ballashop's design is that the excluded discounts is a static list, so if you create a new cart rule, you will have to edit the previous one to no be compatible with the new one.
Excellent observation, is exactly what superskyman100 is asking for. Mine was not a definitive solution but simply graphics to improve the usability of the rules. Sellers like us who have so many rules on their site know what I'm talking about. We hope this aspect will be improved soon. Thanks for your support.
Hi! It's Aug 2021 already so a feedback from a comp-sci Msc. folk who is also a shop owner.
tl;dr: make the compatibility option "opt-in" not opt-out.
It's a simple change technically. Backward compatibility of this change is hard to call problematic, since combined coupons is very rare case and can be fixed quickly in the BO. It was already mentioned above and I can send you opinion/evidence from a marketing advisor if needed.
Please note that the current state is a serious issue that cost us money if unnoticed, and costs money, penalties, and lost customers due to disputes. With close to none fault on the side of shop owner...
Realistic scenario from my own store:
Simpler scenario: A very small shop who has just "free shipping" and -10% code is also overkill: customers can enter both and the shop is left with no profit or loss, e.g. assuming that shipping a large parcel from Germany to the US costs a lot.
That logic can be assumed a bad default in the Prestashop software. Currently to avoid it, for N discounts, the BO user has to iterate over O(N^2) discount combinations and remove them. Yes, that is so bad and probably not known by most users.
Regards, Jared
We are running a huge shop with ~800 cart rules, and relatively ~1.5 million rows of combinations which is insane. Actually it should be ~640k but because we removed some cart rules the combinations are still there. Yet again ~640k rows is not good for 800 cart rules.
We thought about your ideas and we come up with another idea which we are testing now.
Currently the ps_cart_rule_combination
is considered as an ALLOW LIST. We want to flip the meaning and make it a BLOCK LIST and store only the incompatible cart rules in database.
We believe that this is a business specific case. Some merchants want to create vouchers which are compatible with others by default and some other merchants want the reverse logic.
So in order to do so, I tried to override two parts in CartRule
Still not sure if it is a correct approach. I would like to hear from others and what they think about it
https://github.com/PrestaShop/PrestaShop/blob/9fd649614c1a66644006e56bef56a96958fe3bfe/classes/CartRule.php#L683 https://github.com/PrestaShop/PrestaShop/blob/9fd649614c1a66644006e56bef56a96958fe3bfe/classes/CartRule.php#L1575
We are running a huge shop with ~800 cart rules, and relatively ~1.5 million rows of combinations which is insane. Actually it should be ~640k but because we removed some cart rules the combinations are still there. Yet again ~640k rows is not good for 800 cart rules.
We thought about your ideas and we come up with another idea which we are testing now.
Currently the
ps_cart_rule_combination
is considered as an ALLOW LIST. We want to flip the meaning and make it a BLOCK LIST and store only the incompatible cart rules in database.We believe that this is a business specific case. Some merchants want to create vouchers which are compatible with others by default and some other merchants want the reverse logic.
So in order to do so, I tried to override two parts in
CartRule
Still not sure if it is a correct approach. I would like to hear from others and what they think about it
I think this idea will be positive in most businesses. You might have cart rule generators and would like them to be all in an allow list, so this way with the core functionality you will end up with a huge table of combinations. With our idea you do not need to specify the combinable cart rules. You only need to fill the block list for specific cart rules.
Another benefit of this idea is that when you add new cart rule which is compatible with all cart rules, you do not need to update old cart rules, and no need to add new rows to combination table.
The problem is that when someone creates a new cart rule, by default, without ticking the compatibility check box, all the cart rules you have previously created are compatible with this new cart rule you are setting up. So every time you create a new cart rule you have to manually check the compatibility box, and then remove all the previous cart rules.
This is extremely frustrating and time wasting for shops that have the need to create new discount codes on a weekly or daily basis. It’s a lot of work.
The default behaviour, in my view, should be that if you create a cart rule and you don’t check the compatibility box, it is not compatible with all the others you have previously created. And if you check it, then you should be obliged to manually add the ones you want to be compatible.