diff --git a/src/QUI/ERP/Shipping/Products/Fields/ShippingTimePeriod.php b/src/QUI/ERP/Shipping/Products/Fields/ShippingTimePeriod.php
index 952f88677a5deab7c016a0e30631e12a22add659..f13b9aeb08a2930e9c2b1bffcd9d5bac41ef6004 100644
--- a/src/QUI/ERP/Shipping/Products/Fields/ShippingTimePeriod.php
+++ b/src/QUI/ERP/Shipping/Products/Fields/ShippingTimePeriod.php
@@ -66,13 +66,27 @@ public function validate($value)
      */
     public function cleanup($value)
     {
-        $value        = parent::cleanup($value);
         $defaultValue = $this->getDefaultValueFromConfig();
 
         if (empty($value)) {
             return $defaultValue;
         }
 
+        if (!\is_string($value) && !\is_array($value)) {
+            return $defaultValue;
+        }
+
+        if (\is_string($value)) {
+            $value = \json_decode($value, true);
+
+            if (\json_last_error() !== \JSON_ERROR_NONE) {
+                return $defaultValue;
+            }
+        }
+
+        $value['from'] = (int)$value['from'];
+        $value['to']   = (int)$value['to'];
+
         switch ($value['option']) {
             case self::OPTION_TIMEPERIOD:
             case self::OPTION_UNAVAILABLE: