public function saveProduct($data)
    {
        Event::fire(new ProductBeforeSave($data));

        $this->update($data);
        $this->saveProductImages($data);
        $this->saveCategoryFilters($data);
        $this->saveProductCategories($data);
        $this->saveProductProperties($data);
        $this->saveProductAttributes($data);
        $this->saveProductDownloadable($data);

        Event::fire(new ProductAfterSave($this, $data));

        return $this;
    }