Here is what i do when i need different menus for different users,
i create a role for each user type (in your case Merchant
and Owner
) and i give each role a different view menu capability ex:
add_role('merchant', 'Merchant', array(
'merchant_menu' => true // would allow the merchant to view merchant menu
));
add_role('owner', 'Owner', array(
'owner_menu' => true // would allow the owner to view owner menu
));
and then i simply create 3 menus and instead of calling wp_nav_menu() by location i call it by name:
if ( current_user_can('merchant_menu') ) { //current user is a merchant
wp_nav_menu(array('menu' => 'Merchant Menu Name' ));
}elseif(current_user_can('owner_menu') ){ //current user is an owner
wp_nav_menu(array('menu' => 'Owner Menu Name' ));
}else{//any one else get the default menu
wp_nav_menu(array('menu' => 'Default Menu' ));
}