diff --git a/modules/price/src/Resolver/DefaultPriceResolver.php b/modules/price/src/Resolver/DefaultPriceResolver.php
index 4c3e7ab..edae54b 100644
--- a/modules/price/src/Resolver/DefaultPriceResolver.php
+++ b/modules/price/src/Resolver/DefaultPriceResolver.php
@@ -14,10 +14,7 @@ class DefaultPriceResolver implements PriceResolverInterface {
    * {@inheritdoc}
    */
   public function resolve(PurchasableEntityInterface $entity, $quantity, Context $context) {
-    $field_name = $context->getData('field_name', 'price');
-    if ($entity->hasField($field_name) && !$entity->get($field_name)->isEmpty()) {
-      return $entity->get($field_name)->first()->toPrice();
-    }
+    return $entity->getPrice($context);
   }
 
 }
diff --git a/modules/product/src/Entity/ProductVariation.php b/modules/product/src/Entity/ProductVariation.php
index 1f7b039..34e9dfa 100644
--- a/modules/product/src/Entity/ProductVariation.php
+++ b/modules/product/src/Entity/ProductVariation.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\commerce_product\Entity;
 
+use Drupal\commerce\Context;
 use Drupal\commerce\Entity\CommerceContentEntityBase;
 use Drupal\commerce\EntityHelper;
 use Drupal\commerce_price\Price;
@@ -181,9 +182,10 @@ class ProductVariation extends CommerceContentEntityBase implements ProductVaria
   /**
    * {@inheritdoc}
    */
-  public function getPrice() {
-    if (!$this->get('price')->isEmpty()) {
-      return $this->get('price')->first()->toPrice();
+  public function getPrice(Context $context = NULL) {
+    $field_name = $context ? $context->getData('field_name', 'price') : 'price';
+    if (!$this->get($field_name)->isEmpty()) {
+      return $this->get($field_name)->first()->toPrice();
     }
   }
 
diff --git a/src/PurchasableEntityInterface.php b/src/PurchasableEntityInterface.php
index 45885e8..b5b9c69 100644
--- a/src/PurchasableEntityInterface.php
+++ b/src/PurchasableEntityInterface.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\commerce;
 
+use Drupal\commerce\Context;
 use Drupal\Core\Entity\ContentEntityInterface;
 
 /**
@@ -46,9 +47,12 @@ interface PurchasableEntityInterface extends ContentEntityInterface {
   /**
    * Gets the purchasable entity's price.
    *
+   * @param \Drupal\commerce\Context $context
+   *   Optionally the context of the price being requested.
+   *
    * @return \Drupal\commerce_price\Price|null
    *   The price, or NULL.
    */
-  public function getPrice();
+  public function getPrice(Context $context = NULL);
 
 }
