Get all available promotions for specific commerce product
You can do it via commerce_order.price_calculator service:
$context = new Context($this-&gt;currentUser, $this-&gt;currentStore-&gt;getStore(), NULL, [
    'field_name' =&gt; $items-&gt;getName(),
]);
/** @var \Drupal\commerce\PurchasableEntityInterface $purchasable_entity */
$purchasable_entity = $items-&gt;getEntity();
$adjustment_types = array_filter($this-&gt;getSetting('adjustment_types'));
$result = $this-&gt;priceCalculator-&gt;calculate($purchasable_entity, 1, $context, $adjustment_types);

//Get promotions
$promos = $result-&gt;getAdjustments();