public function PriceRange()
 {
     $variations = $this->owner->Variations();
     if (!$variations->exists() || !$variations->Count()) {
         return null;
     }
     $prices = $variations->map('ID', 'SellingPrice')->toArray();
     $pricedata = array('HasRange' => false, 'Max' => ShopCurrency::create(), 'Min' => ShopCurrency::create(), 'Average' => ShopCurrency::create());
     $count = count($prices);
     $sum = array_sum($prices);
     $maxprice = max($prices);
     $minprice = min($prices);
     $pricedata['HasRange'] = $minprice != $maxprice;
     $pricedata['Max']->setValue($maxprice);
     $pricedata['Min']->setValue($minprice);
     if ($count > 0) {
         $pricedata['Average']->setValue($sum / $count);
     }
     return ArrayData::create($pricedata);
 }