diff --git a/payment/uc_payment/config/install/uc_order.status.payment_received.yml b/payment/uc_payment/config/install/uc_order.status.payment_received.yml
index 244e3dd..76fac05 100644
--- a/payment/uc_payment/config/install/uc_order.status.payment_received.yml
+++ b/payment/uc_payment/config/install/uc_order.status.payment_received.yml
@@ -1,5 +1,4 @@
 id: payment_received
-uuid: e2ff8952-b72e-4621-b40b-119702645140
 name: 'Payment received'
 state: payment_received
 weight: 10
diff --git a/payment/uc_paypal/config/install/uc_order.status.paypal_pending.yml b/payment/uc_paypal/config/install/uc_order.status.paypal_pending.yml
index 250170a..eed08c3 100644
--- a/payment/uc_paypal/config/install/uc_order.status.paypal_pending.yml
+++ b/payment/uc_paypal/config/install/uc_order.status.paypal_pending.yml
@@ -1,5 +1,4 @@
 id: paypal_pending
-uuid: 3d6233d7-f46b-47f7-be00-ac269d242386
 name: 'PayPal pending'
 state: post_checkout
 weight: 7
diff --git a/uc_order/config/install/uc_order.status.canceled.yml b/uc_order/config/install/uc_order.status.canceled.yml
index da1eea5..64c7ced 100644
--- a/uc_order/config/install/uc_order.status.canceled.yml
+++ b/uc_order/config/install/uc_order.status.canceled.yml
@@ -1,5 +1,4 @@
 id: canceled
-uuid: 4f5fc766-51d7-47c5-8900-0c0b09035966
 name: Canceled
 state: canceled
 weight: -20
diff --git a/uc_order/config/install/uc_order.status.completed.yml b/uc_order/config/install/uc_order.status.completed.yml
index 886bb2e..75c963c 100644
--- a/uc_order/config/install/uc_order.status.completed.yml
+++ b/uc_order/config/install/uc_order.status.completed.yml
@@ -1,5 +1,4 @@
 id: completed
-uuid: bc7720d8-4e76-4fe9-8b00-eb43c3b31156
 name: Completed
 state: completed
 weight: 20
diff --git a/uc_order/config/install/uc_order.status.in_checkout.yml b/uc_order/config/install/uc_order.status.in_checkout.yml
index 343afb1..30ea4c6 100644
--- a/uc_order/config/install/uc_order.status.in_checkout.yml
+++ b/uc_order/config/install/uc_order.status.in_checkout.yml
@@ -1,5 +1,4 @@
 id: in_checkout
-uuid: 8177835c-12cc-4c68-aa50-80f175b37f37
 name: 'In checkout'
 state: in_checkout
 weight: -10
diff --git a/uc_order/config/install/uc_order.status.pending.yml b/uc_order/config/install/uc_order.status.pending.yml
index 21a0340..7f4e34a 100644
--- a/uc_order/config/install/uc_order.status.pending.yml
+++ b/uc_order/config/install/uc_order.status.pending.yml
@@ -1,5 +1,4 @@
 id: pending
-uuid: 9739a009-a0ea-49b0-b906-06531060379f
 name: Pending
 state: post_checkout
 weight: 0
diff --git a/uc_order/config/install/uc_order.status.processing.yml b/uc_order/config/install/uc_order.status.processing.yml
index 9beb8f2..6c6d8e3 100644
--- a/uc_order/config/install/uc_order.status.processing.yml
+++ b/uc_order/config/install/uc_order.status.processing.yml
@@ -1,5 +1,4 @@
 id: processing
-uuid: c28e36b3-6341-434d-bb00-ebd709bc15e9
 name: Processing
 state: post_checkout
 weight: 5
diff --git a/uc_order/src/Entity/Order.php b/uc_order/src/Entity/Order.php
index e5ddc7b..e1678cc 100644
--- a/uc_order/src/Entity/Order.php
+++ b/uc_order/src/Entity/Order.php
@@ -104,8 +104,8 @@ class Order extends ContentEntityBase implements OrderInterface {
     // Record a log entry if the order status has changed.
     if ($update && $this->getStatusId() != $this->original->getStatusId()) {
       $this->logChanges(array(t('Order status') => array(
-        'old' => $this->original->getStatus()->name,
-        'new' => $this->getStatus()->name,
+        'old' => $this->original->getStatus()->getName(),
+        'new' => $this->getStatus()->getName(),
       )));
 
       // rules_invoke_event('uc_order_status_update', $this->original, $this);
@@ -274,7 +274,7 @@ class Order extends ContentEntityBase implements OrderInterface {
    * {@inheritdoc}
    */
   public function getStateId() {
-    return $this->getStatus()->state;
+    return $this->getStatus()->getState();
   }
 
   /**
diff --git a/uc_order/src/Entity/OrderStatus.php b/uc_order/src/Entity/OrderStatus.php
index 135244d..8d5faa2 100644
--- a/uc_order/src/Entity/OrderStatus.php
+++ b/uc_order/src/Entity/OrderStatus.php
@@ -9,6 +9,7 @@ namespace Drupal\uc_order\Entity;
 
 use Drupal\Core\Config\Entity\ConfigEntityBase;
 use Drupal\Core\Entity\EntityStorageInterface;
+use Drupal\uc_order\OrderStatusInterface;
 
 /**
  * Defines the order status entity.
@@ -22,53 +23,106 @@ use Drupal\Core\Entity\EntityStorageInterface;
  *     "id" = "id",
  *     "label" = "name",
  *     "weight" = "weight",
- *     "uuid" = "uuid",
  *   }
  * )
  */
-class OrderStatus extends ConfigEntityBase {
+class OrderStatus extends ConfigEntityBase implements OrderStatusInterface {
 
   /**
    * The order status ID.
    *
    * @var string
    */
-  public $id;
-
-  /**
-   * The order status UUID.
-   *
-   * @var string
-   */
-  public $uuid;
+  protected $id;
 
   /**
    * Name of the status.
    *
    * @var string
    */
-  public $name;
+  protected $name;
 
   /**
    * Specific state of the status.
    *
    * @var string
    */
-  public $state;
+  protected $state = '';
 
   /**
    * The weight of this status in relation to other statuses.
    *
    * @var integer
    */
-  public $weight = 0;
+  protected $weight = 0;
 
   /**
    * Locked statuses cannot be edited.
    *
    * @var bool
    */
-  public $locked = FALSE;
+  protected $locked = FALSE;
+
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getName() {
+    return $this->label();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setName($name) {
+    $this->name = $name;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getState() {
+    return $this->state;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setState($state) {
+    $this->state = $state;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getWeight() {
+    return $this->weight;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setWeight($weight) {
+    $this->weight = $weight;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isLocked() {
+    return (bool) $this->locked;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setLocked($locked) {
+    $this->locked = (bool) $locked;
+    return $this;
+  }
 
   /**
    * {@inheritdoc}
diff --git a/uc_order/src/Form/OrderWorkflowForm.php b/uc_order/src/Form/OrderWorkflowForm.php
index 267d47a..46b174e 100644
--- a/uc_order/src/Form/OrderWorkflowForm.php
+++ b/uc_order/src/Form/OrderWorkflowForm.php
@@ -55,8 +55,8 @@ class OrderWorkflowForm extends ConfigFormBase {
       // Create the select box for specifying a default status per order state.
       $options = array();
       foreach ($statuses as $status) {
-        if ($status->state == $state_id) {
-          $options[$status->id] = $status->name;
+        if ($state_id == $status->getState()) {
+          $options[$status->id()] = $status->getName();
         }
       }
       if (empty($options)) {
@@ -84,34 +84,34 @@ class OrderWorkflowForm extends ConfigFormBase {
     );
 
     foreach ($statuses as $status) {
-      $form['#locked'][$status->id] = $status->locked;
+      $form['#locked'][$status->id()] = $status->isLocked();
 
-      $form['order_statuses']['order_statuses'][$status->id]['id'] = array(
-        '#markup' => $status->id,
+      $form['order_statuses']['order_statuses'][$status->id()]['id'] = array(
+        '#markup' => $status->id(),
       );
-      $form['order_statuses']['order_statuses'][$status->id]['name'] = array(
+      $form['order_statuses']['order_statuses'][$status->id()]['name'] = array(
         '#type' => 'textfield',
-        '#default_value' => $status->name,
+        '#default_value' => $status->getName(),
         '#size' => 32,
         '#required' => TRUE,
       );
-      $form['order_statuses']['order_statuses'][$status->id]['weight'] = array(
+      $form['order_statuses']['order_statuses'][$status->id()]['weight'] = array(
         '#type' => 'weight',
         '#delta' => 20,
-        '#default_value' => $status->weight,
+        '#default_value' => $status->getWeight(),
       );
-      if ($status->locked) {
-        $form['order_statuses']['order_statuses'][$status->id]['state'] = array(
-          '#markup' => $states[$status->state],
+      if ($status->isLocked()) {
+        $form['order_statuses']['order_statuses'][$status->id()]['state'] = array(
+          '#markup' => $states[$status->getState()],
         );
       }
       else {
-        $form['order_statuses']['order_statuses'][$status->id]['state'] = array(
+        $form['order_statuses']['order_statuses'][$status->id()]['state'] = array(
           '#type' => 'select',
           '#options' => $states,
-          '#default_value' => $status->state,
+          '#default_value' => $status->getState(),
         );
-        $form['order_statuses']['order_statuses'][$status->id]['remove'] = array(
+        $form['order_statuses']['order_statuses'][$status->id()]['remove'] = array(
           '#type' => 'checkbox',
         );
       }
@@ -134,15 +134,15 @@ class OrderWorkflowForm extends ConfigFormBase {
       $status = \Drupal\uc_order\Entity\OrderStatus::load($id);
       if (!$form['#locked'][$id] && $value['remove']) {
         $status->delete();
-        drupal_set_message(t('Order status %status removed.', ['%status' => $status->name]));
+        drupal_set_message(t('Order status %status removed.', ['%status' => $status->getName()]));
       }
       else {
-        $status->name = $value['name'];
-        $status->weight = (int) $value['weight'];
+        $status->setName($value['name']);
+        $status->setWeight((int) $value['weight']);
 
         // The state cannot be changed if the status is locked.
         if (!$form['#locked'][$key]) {
-          $status->state = $value['state'];
+          $status->setState($value['state']);
         }
 
         $status->save();
diff --git a/uc_order/src/OrderInterface.php b/uc_order/src/OrderInterface.php
index 4a436b0..6d65be8 100644
--- a/uc_order/src/OrderInterface.php
+++ b/uc_order/src/OrderInterface.php
@@ -70,7 +70,7 @@ interface OrderInterface extends ContentEntityInterface {
   /**
    * Returns the order status.
    *
-   * @return \Drupal\uc_order\Entity\OrderStatus
+   * @return \Drupal\uc_order\OrderStatusInterface
    *   The order status entity.
    */
   public function getStatus();
diff --git a/uc_order/src/OrderStatusInterface.php b/uc_order/src/OrderStatusInterface.php
new file mode 100644
index 0000000..8b265b0
--- /dev/null
+++ b/uc_order/src/OrderStatusInterface.php
@@ -0,0 +1,89 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\uc_order\OrderStatusInterface.
+ */
+
+namespace Drupal\uc_order;
+
+use Drupal\Core\Config\Entity\ConfigEntityInterface;
+
+/**
+ * Defines the order status entity.
+ */
+interface OrderStatusInterface extends ConfigEntityInterface {
+
+  /**
+   * Returns the name of this status.
+   *
+   * @return string
+   *   The name of this status.
+   */
+  public function getName();
+
+  /**
+   * Sets the order status name to the given value.
+   *
+   * @param string $name
+   *   The name of this order status.
+   *
+   * @return $this
+   */
+  public function setName($name);
+
+  /**
+   * Returns the order state this status.
+   *
+   * @return string
+   *   The order state of this status.
+   */
+  public function getState();
+
+  /**
+   * Sets the order state associated with this status to the given value.
+   *
+   * @param string $state
+   *   The order state of this status.
+   *
+   * @return $this
+   */
+  public function setState($state);
+
+  /**
+   * Returns the weight of this status in relation to other statuses.
+   *
+   * @return int
+   *   The weight of this status.
+   */
+  public function getWeight();
+
+  /**
+   * Sets the status weight to the given value.
+   *
+   * @param int $weight
+   *   The desired weight of this status.
+   *
+   * @return $this
+   */
+  public function setWeight($weight);
+
+  /**
+   * Locked statuses cannot be edited.
+   *
+   * @return bool
+   *   TRUE if the status is locked.
+   */
+  public function isLocked();
+
+  /**
+   * Sets the locked property for this status.
+   *
+   * @param bool $locked
+   *   TRUE if the status should be locked.
+   *
+   * @return $this
+   */
+  public function setLocked($locked);
+
+}
diff --git a/uc_order/src/Plugin/views/field/Status.php b/uc_order/src/Plugin/views/field/Status.php
index 7b9f7d8..5fe2689 100644
--- a/uc_order/src/Plugin/views/field/Status.php
+++ b/uc_order/src/Plugin/views/field/Status.php
@@ -25,7 +25,7 @@ class Status extends FieldPluginBase {
    */
   public function render(ResultRow $values) {
     $status = OrderStatus::load($this->getValue($values));
-    return $this->sanitizeValue($status->name);
+    return $this->sanitizeValue($status->getName());
   }
 
 }
diff --git a/uc_order/src/Tests/OrderTest.php b/uc_order/src/Tests/OrderTest.php
index d9e57fb..18a0b4c 100644
--- a/uc_order/src/Tests/OrderTest.php
+++ b/uc_order/src/Tests/OrderTest.php
@@ -73,7 +73,7 @@ class OrderTest extends UbercartTestBase {
     $entities = $storage->loadMultiple(array($order->id()));
     $storage->delete($entities);
 
-    $storage->resetCache(array($order->id));
+    $storage->resetCache(array($order->id()));
     $deleted_order = \Drupal\uc_order\Entity\Order::load($order->id());
     $this->assertFalse($deleted_order, 'Order was successfully deleted');
   }
diff --git a/uc_order/uc_order.module b/uc_order/uc_order.module
index 0b1643a..d52acf9 100644
--- a/uc_order/uc_order.module
+++ b/uc_order/uc_order.module
@@ -737,7 +737,7 @@ function uc_order_state_default($state_id) {
 function uc_order_status_options_list() {
   $options = array();
   foreach (OrderStatus::loadMultiple() as $status) {
-    $options[$status->id] = $status->name;
+    $options[$status->id()] = $status->getName();
   }
   return $options;
 }
diff --git a/uc_order/uc_order.order_pane.inc b/uc_order/uc_order.order_pane.inc
index 7b535ca..713851c 100644
--- a/uc_order/uc_order.order_pane.inc
+++ b/uc_order/uc_order.order_pane.inc
@@ -963,7 +963,7 @@ function uc_order_pane_order_comments($op, $order, &$form = NULL, FormStateInter
           array('data' => \Drupal::service('date.formatter')->format($comment->created, 'short'), 'class' => array('date')),
           array('data' => array('#theme' => 'uc_uid', '#uid' => $comment->uid), 'class' => array('user')),
           array('data' => array('#theme' => 'image', '#uri' => drupal_get_path('module', 'uc_order') . '/images/' . $icon), 'class' => array('notified')),
-          array('data' => SafeMarkup::checkPlain($statuses[$comment->order_status]->name), 'class' => array('status')),
+          array('data' => SafeMarkup::checkPlain($statuses[$comment->order_status]->getName()), 'class' => array('status')),
           array('data' => SafeMarkup::checkPlain($comment->message), 'class' => array('message')),
         );
       }
@@ -982,7 +982,7 @@ function uc_order_pane_order_comments($op, $order, &$form = NULL, FormStateInter
         foreach ($comments as $comment) {
           $rows[] = array(
             array('data' => \Drupal::service('date.formatter')->format($comment->created, 'uc_store'), 'class' => array('date')),
-            array('data' => SafeMarkup::checkPlain($statuses[$comment->order_status]->name), 'class' => array('status')),
+            array('data' => SafeMarkup::checkPlain($statuses[$comment->order_status]->getName()), 'class' => array('status')),
             array('data' => SafeMarkup::checkPlain($comment->message), 'class' => array('message')),
           );
         }
diff --git a/uc_order/uc_order.tokens.inc b/uc_order/uc_order.tokens.inc
index 547f281..6587978 100644
--- a/uc_order/uc_order.tokens.inc
+++ b/uc_order/uc_order.tokens.inc
@@ -283,7 +283,7 @@ function uc_order_tokens($type, $tokens, $data = [], $options = []) {
           break;
 
         case 'order-status':
-          $replacements[$original] = $sanitize ? SafeMarkup::checkPlain($order->getStatus()->name) : $order->getStatus()->name;
+          $replacements[$original] = $sanitize ? SafeMarkup::checkPlain($order->getStatus()->getName()) : $order->getStatus()->getName();
           break;
 
         case 'customer':
