Components
Hiding the Add to Cart button in Drupal Commerce 2.x is easy. Just alter the commerce_order_item_add_to_cart_form form, and set the disabled property of the button to true.
use Drupal\Core\Form\FormStateInterface;
function MY_MODULE_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if (strpos($form_id, 'commerce_order_item_add_to_cart_form') !== FALSE) {
$product = $form_state->getFormObject()->getEntity()->getPurchasedEntity()->getProduct();
$flag_service = \Drupal::service('flag');
$flag = $flag_service->getFlagById('sold_out');
$flagging = $flag_service->getFlagging($flag, $product);
if ($flagging !== NULL ) {
$form['actions']['submit']['#value'] = t('Out of stock');
$form['actions']['submit']['#disabled'] = TRUE;
}
}
}