diff --git a/src/Plugin/Field/FieldFormatter/PriceRuleFormatter.php b/src/Plugin/Field/FieldFormatter/PriceRuleFormatter.php
new file mode 100644
index 0000000..80545fd
--- /dev/null
+++ b/src/Plugin/Field/FieldFormatter/PriceRuleFormatter.php
@@ -0,0 +1,56 @@
+<?php
+
+namespace Drupal\commerce_price_rule\Plugin\Field\FieldFormatter;
+
+use Drupal\commerce\Context;
+use Drupal\commerce_price\Plugin\Field\FieldFormatter\PriceCalculatedFormatter;
+use Drupal\Core\Cache\Cache;
+use Drupal\Core\Field\FieldItemListInterface;
+use Drupal\Core\Language\LanguageInterface;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+
+/**
+ * Plugin implementation of the 'commerce_price_rule' formatter.
+ *
+ * @FieldFormatter(
+ *   id = "commerce_price_rule",
+ *   label = @Translation("Price Rule"),
+ *   field_types = {
+ *     "commerce_price"
+ *   }
+ * )
+ */
+class PriceRuleFormatter extends PriceCalculatedFormatter implements ContainerFactoryPluginInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function viewElements(FieldItemListInterface $items, $langcode) {
+    $context = new Context($this->currentUser, $this->currentStore->getStore());
+    $elements = [];
+    /** @var \Drupal\commerce\PurchasableEntityInterface $purchasable_entity */
+    $purchasable_entity = $items->getEntity();
+    $resolved_price = $this->chainPriceResolver->resolve($purchasable_entity, 1, $context);
+    $number = $resolved_price->getNumber();
+    $currency = $this->currencyStorage->load($resolved_price->getCurrencyCode());
+    $new_price = $this->numberFormatter->formatCurrency($number, $currency);
+    $cache = [
+      'tags' => $purchasable_entity->getCacheTags(),
+      'contexts' => Cache::mergeContexts($purchasable_entity->getCacheContexts(), [
+        'languages:' . LanguageInterface::TYPE_INTERFACE,
+        'country',
+      ]),
+    ];
+
+    /** @var \Drupal\commerce_price\Plugin\Field\FieldType\PriceItem $item */
+    foreach ($items as $delta => $item) {
+      $default_price = $this->numberFormatter->formatCurrency($item->number, $currency);
+      $elements[$delta] = [
+        '#markup' => '<del>' . $default_price . '</del>&nbsp;' . $new_price,
+        '#cache' => $cache,
+      ];
+    }
+
+    return $elements;
+  }
+}
