Index: Delivery.pm =================================================================== --- Delivery.pm (revision 261) +++ Delivery.pm (revision 262) @@ -56,7 +56,12 @@ if ( ref $price_modify eq 'ARRAY' && @$price_modify ) { foreach my $mod ( @$price_modify ) { if ( $mod->{level} <= $sum ) { - $price = $mod->{cost}; + if ( $mod->{cost} =~ /(\d+)%/ ) { + my $mod = $1; + $price = sprintf("%.2f", ($self->price * $mod) / 100); + } else { + $price = $mod->{cost}; + } } } }