use SL::DB::MetaSetup::PriceRule;
 use SL::DB::Manager::PriceRule;
-use Rose::DB::Object::Helpers qw(clone_and_reset);
 use SL::Locale::String qw(t8);
 
 __PACKAGE__->meta->add_relationship(
   my ($self, $value) = @_;
 
   if (@_ > 1) {
-    my $number = $self->price || $self->discount;
+    my $number = $self->price || $self->discount || $self->reduction;
     if ($value == SL::DB::Manager::PriceRule::PRICE_NEW()) {
       $self->price($number);
     } elsif ($value == SL::DB::Manager::PriceRule::PRICE_REDUCED_MASTER_DATA()) {
   my @errors;
   push @errors, $::locale->text('The name must not be empty.')              if !$self->name;
   push @errors, $::locale->text('Price or discount must not be zero.')      if !$self->price && !$self->discount && !$self->reduction;
-  push @errors, $::locale->text('Pirce rules must have at least one rule.') if !@{[ $self->items ]};
+  push @errors, $::locale->text('Price rules must have at least one rule.') if !@{[ $self->items ]};
+  push @errors, $_->validate                                                for $self->items;
 
   return @errors;
 }