diff --git a/modules/order/src/Entity/OrderInterface.php b/modules/order/src/Entity/OrderInterface.php
index 20ed814..d528dde 100644
--- a/modules/order/src/Entity/OrderInterface.php
+++ b/modules/order/src/Entity/OrderInterface.php
@@ -3,16 +3,16 @@
 namespace Drupal\commerce_order\Entity;
 
 use Drupal\commerce_order\AdjustableInterface;
-use Drupal\commerce_store\Entity\EntityStoreInterface;
 use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Entity\EntityChangedInterface;
 use Drupal\user\EntityOwnerInterface;
 use Drupal\profile\Entity\ProfileInterface;
+use Drupal\commerce_store\Entity\StoreInterface;
 
 /**
  * Defines the interface for orders.
  */
-interface OrderInterface extends AdjustableInterface, ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface, EntityStoreInterface {
+interface OrderInterface extends AdjustableInterface, ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface {
 
   /**
    * Gets the order number.
@@ -233,4 +233,39 @@ interface OrderInterface extends AdjustableInterface, ContentEntityInterface, En
    */
   public function setPlacedTime($timestamp);
 
+  /**
+   * Gets the store.
+   *
+   * @return \Drupal\commerce_store\Entity\StoreInterface|null
+   *   The store entity, or null.
+   */
+  public function getStore();
+
+  /**
+   * Sets the store.
+   *
+   * @param \Drupal\commerce_store\Entity\StoreInterface $store
+   *   The store entity.
+   *
+   * @return $this
+   */
+  public function setStore(StoreInterface $store);
+
+  /**
+   * Gets the store ID.
+   *
+   * @return int
+   *   The store ID.
+   */
+  public function getStoreId();
+
+  /**
+   * Sets the store ID.
+   *
+   * @param int $storeId
+   *   The store ID.
+   *
+   * @return $this
+   */
+  public function setStoreId($storeId);
 }
diff --git a/modules/product/src/Entity/ProductInterface.php b/modules/product/src/Entity/ProductInterface.php
index 6e8c5c0..8062dd8 100644
--- a/modules/product/src/Entity/ProductInterface.php
+++ b/modules/product/src/Entity/ProductInterface.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\commerce_product\Entity;
 
+use Drupal\commerce_store\Entity\EntityStoresInterface;
 use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Entity\EntityChangedInterface;
 use Drupal\user\EntityOwnerInterface;
@@ -9,7 +10,7 @@ use Drupal\user\EntityOwnerInterface;
 /**
  * Defines the interface for products.
  */
-interface ProductInterface extends ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface {
+interface ProductInterface extends ContentEntityInterface, EntityChangedInterface, EntityOwnerInterface, EntityStoresInterface {
 
   /**
    * Gets the product title.
@@ -68,42 +69,6 @@ interface ProductInterface extends ContentEntityInterface, EntityChangedInterfac
   public function setCreatedTime($timestamp);
 
   /**
-   * Gets the stores through which the product is sold.
-   *
-   * @return \Drupal\commerce_store\Entity\StoreInterface[]
-   *   The stores.
-   */
-  public function getStores();
-
-  /**
-   * Sets the stores through which the product is sold.
-   *
-   * @param \Drupal\commerce_store\Entity\StoreInterface[] $stores
-   *   The stores through which the product is sold.
-   *
-   * @return $this
-   */
-  public function setStores(array $stores);
-
-  /**
-   * Gets the ids of stores through which the product is sold.
-   *
-   * @return int[]
-   *   The ids of stores through which the product is sold.
-   */
-  public function getStoreIds();
-
-  /**
-   * Sets the ids of stores through which the product is sold.
-   *
-   * @param int[] $store_ids
-   *   The ids of stores through which the product is sold.
-   *
-   * @return $this
-   */
-  public function setStoreIds(array $store_ids);
-
-  /**
    * Gets the variation IDs.
    *
    * @return int[]
diff --git a/modules/product/src/Entity/ProductVariation.php b/modules/product/src/Entity/ProductVariation.php
index 7ad8dc1..78adeca 100644
--- a/modules/product/src/Entity/ProductVariation.php
+++ b/modules/product/src/Entity/ProductVariation.php
@@ -215,6 +215,36 @@ class ProductVariation extends ContentEntityBase implements ProductVariationInte
   /**
    * {@inheritdoc}
    */
+  public function setStores(array $stores) {
+    $product = $this->getProduct();
+    if ($product) {
+      $product->set('stores', $stores);
+    }
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getStoreIds() {
+    $product = $this->getProduct();
+    return $product ? $product->getStoreIds() : [];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setStoreIds(array $store_ids) {
+    $product = $this->getProduct();
+    if ($product) {
+      $product->set('stores', $store_ids);
+    }
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function getLineItemTypeId() {
     // The line item type is a bundle-level setting.
     $type_storage = $this->entityTypeManager()->getStorage('commerce_product_variation_type');
diff --git a/modules/store/src/Entity/EntityStoreInterface.php b/modules/store/src/Entity/EntityStoreInterface.php
deleted file mode 100644
index 64d99d2..0000000
--- a/modules/store/src/Entity/EntityStoreInterface.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Drupal\commerce_store\Entity;
-
-/**
- * Defines a common interface for entities that belong to a store.
- */
-interface EntityStoreInterface {
-
-  /**
-   * Gets the store.
-   *
-   * @return \Drupal\commerce_store\Entity\StoreInterface|null
-   *   The store entity, or null.
-   */
-  public function getStore();
-
-  /**
-   * Sets the store.
-   *
-   * @param \Drupal\commerce_store\Entity\StoreInterface $store
-   *   The store entity.
-   *
-   * @return $this
-   */
-  public function setStore(StoreInterface $store);
-
-  /**
-   * Gets the store ID.
-   *
-   * @return int
-   *   The store ID.
-   */
-  public function getStoreId();
-
-  /**
-   * Sets the store ID.
-   *
-   * @param int $storeId
-   *   The store ID.
-   *
-   * @return $this
-   */
-  public function setStoreId($storeId);
-
-}
diff --git a/modules/store/src/Entity/EntityStoresInterface.php b/modules/store/src/Entity/EntityStoresInterface.php
new file mode 100644
index 0000000..051a059
--- /dev/null
+++ b/modules/store/src/Entity/EntityStoresInterface.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace Drupal\commerce_store\Entity;
+
+/**
+ * Defines a common interface for entities that belong to a store.
+ */
+interface EntityStoresInterface {
+
+  /**
+   * Gets the stores through which the purchasable entity is sold.
+   *
+   * @return \Drupal\commerce_store\Entity\StoreInterface[]
+   *   The stores.
+   */
+  public function getStores();
+
+  /**
+   * Sets the stores through which the product is sold.
+   *
+   * @param \Drupal\commerce_store\Entity\StoreInterface[] $stores
+   *   The stores through which the product is sold.
+   *
+   * @return $this
+   */
+  public function setStores(array $stores);
+
+  /**
+   * Gets the ids of stores through which the product is sold.
+   *
+   * @return int[]
+   *   The ids of stores through which the product is sold.
+   */
+  public function getStoreIds();
+
+  /**
+   * Sets the ids of stores through which the product is sold.
+   *
+   * @param int[] $store_ids
+   *   The ids of stores through which the product is sold.
+   *
+   * @return $this
+   */
+  public function setStoreIds(array $store_ids);
+}
diff --git a/src/PurchasableEntityInterface.php b/src/PurchasableEntityInterface.php
index a148238..771f0e7 100644
--- a/src/PurchasableEntityInterface.php
+++ b/src/PurchasableEntityInterface.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\commerce;
 
+use Drupal\commerce_store\Entity\EntityStoresInterface;
 use Drupal\Core\Entity\ContentEntityInterface;
 
 /**
@@ -11,15 +12,7 @@ use Drupal\Core\Entity\ContentEntityInterface;
  * type providing modules such as commerce_product don't need to depend
  * on commerce_order.
  */
-interface PurchasableEntityInterface extends ContentEntityInterface {
-
-  /**
-   * Gets the stores through which the purchasable entity is sold.
-   *
-   * @return \Drupal\commerce_store\Entity\StoreInterface[]
-   *   The stores.
-   */
-  public function getStores();
+interface PurchasableEntityInterface extends ContentEntityInterface, EntityStoresInterface {
 
   /**
    * Gets the purchasable entity's line item type ID.
