0

i want to change customer group on one-page checkout based on checkout address .

Basically two type of customer group : Indian Customer , Outside India, if checkout country is other than India customer groups should auto switch to Outside India

issue : can same be applied for guest customer (non logged in users also).

I am using tier price for products based on Customer Group.

Please help me with way to do same .

2
  • I think you should change your customer flow. Because run time it might be difficult to change the customer group and apply the correct tier price.
    – Nits
    Commented Apr 12, 2020 at 11:44
  • @Nits : i want this thing is it possible that way auto switch store based on country : magento.stackexchange.com/questions/310183/… Commented Apr 12, 2020 at 11:45

1 Answer 1

0

Use event :- here is event : etc/frontend/events.xml "checkout_onepage_controller_success_action"

public function execute(\Magento\Framework\Event\Observer $observer ) {        

//Get order details
$order = $observer->getEvent()->getOrder(); <br>
$guestCustomer = $order->getCustomerIsGuest(); <br>
$groupId  = $order->getCustomerGroupId(); <br>
$order->getShippingAddress()->getCountryId();

Check for the country id and then inject customer class

private $customerRepository;

public function __construct(
    \Magento\Framework\App\RequestInterface $request,
     CustomerRepositoryInterface $customerRepository
    )
{
    $this->_request = $request;
    $this->customerRepository = $customerRepository;
}

{      

    $id = $observer->getEvent()->getCustomer()->getId();
    $customerid=$order->getCustomerId()
    $customer = $this->customerRepository->getById($customerid);

//Set customer to the group id as per requirement $customer->setGroupId($group_id);

Change code as per requirement , basically this is the logic.

1
  • can customer group be set for guest user Commented Apr 12, 2020 at 12:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.