i want to make one custom module in that i set customer group and shipping method than that particulate customer group hide that shipping method can any one help me how can i do that.
2 Answers
In shipping carrier class, there's a method to validate additional rules proccessAdditionalValidation
, searching for that method in the code base will reveal processAdditionalValidation
(less than 1 'c'). Then continue searching with that will lead collectCarrierRates
So in my opinion, there will be 2 approaches for this:
- Extend the current Carrier, add logic into
proccessAdditionalValidation
- Make a new module, with GUI that helps customers/store-owner choose the rules and then process that rule inside
Magento/Shipping/Model/Shipping.php:collectCarrierRates
I haven't done something similar but as I checked the code right now, you can create an after Plugin for this method \Magento\Shipping\Model\CarrierFactory::createIfActive
, there you can add your validation and return true or false for the shipping method you allow or not.
Although I haven't tried it yet, maybe it will guide you to the right direction.