diff --git a/modules/order/src/Adjustment.php b/modules/order/src/Adjustment.php
index 8b494ed1..0ffac82f 100644
--- a/modules/order/src/Adjustment.php
+++ b/modules/order/src/Adjustment.php
@@ -81,7 +81,7 @@ final class Adjustment {
     if (empty($types[$definition['type']])) {
       throw new \InvalidArgumentException(sprintf('%s is an invalid adjustment type.', $definition['type']));
     }
-    if (!empty($definition['percentage'])) {
+    if (isset($definition['percentage'])) {
       if (is_float($definition['percentage'])) {
         throw new \InvalidArgumentException(sprintf('The provided percentage "%s" must be a string, not a float.', $definition['percentage']));
       }
@@ -97,7 +97,7 @@ final class Adjustment {
     $this->type = $definition['type'];
     $this->label = (string) $definition['label'];
     $this->amount = $definition['amount'];
-    $this->percentage = !empty($definition['percentage']) ? $definition['percentage'] : NULL;
+    $this->percentage = isset($definition['percentage']) ? $definition['percentage'] : NULL;
     $this->sourceId = !empty($definition['source_id']) ? $definition['source_id'] : NULL;
     $this->included = !empty($definition['included']);
     $this->locked = !empty($definition['locked']);
diff --git a/modules/order/tests/src/Kernel/AdjustmentTest.php b/modules/order/tests/src/Kernel/AdjustmentTest.php
index 3e76337b..3e423118 100644
--- a/modules/order/tests/src/Kernel/AdjustmentTest.php
+++ b/modules/order/tests/src/Kernel/AdjustmentTest.php
@@ -139,6 +139,10 @@ class AdjustmentTest extends OrderKernelTestBase {
     $this->assertTrue($adjustment->isIncluded());
     $this->assertTrue($adjustment->isLocked());
     $this->assertEquals($definition, $adjustment->toArray());
+
+    // Test adjustment with percentage equals zero.
+    $definition['percentage'] = '0';
+    $this->assertEquals('0', $adjustment->getPercentage());
   }
 
   /**
