diff --git a/src/app/core/services/private-catalogs.service.ts b/src/app/core/services/private-catalogs.service.ts
index d8656f65f166ee71292678b2c6de509b3ddf4b39..c3077b800ba09ffc85e4c029f2ea5575c06dc34d 100644
--- a/src/app/core/services/private-catalogs.service.ts
+++ b/src/app/core/services/private-catalogs.service.ts
@@ -716,7 +716,7 @@ export class PrivateCatalogsService {
     );
   }
 
-  deleteTag(tag: Tag, solutionId: string) {
+  deleteTag(tag: string, solutionId: string) {
     const url =
       apiConfig.apiBackendURL +
       apiConfig.urlDeleteTag +
@@ -732,7 +732,7 @@ export class PrivateCatalogsService {
     );
   }
 
-  updateAddTag(tag: Tag, solutionId: string) {
+  addTag(tag: string, solutionId: string) {
     const url =
       apiConfig.apiBackendURL +
       apiConfig.urlAddTag +
@@ -774,10 +774,11 @@ export class PrivateCatalogsService {
       '/picture';
     const formData = new FormData();
     formData.append('file', image);
-
-    const req = new HttpRequest('POST', url, formData);
-
-    return this.http.request(req);
+    return this._httpSharedService.post(url, undefined, formData).pipe(
+      catchError((error) => {
+        throw error;
+      }),
+    );
   }
 
   updateSolutionFiles(
diff --git a/src/app/shared/components/publish-to-marketplace-page/publish-to-marketplace-page.component.html b/src/app/shared/components/publish-to-marketplace-page/publish-to-marketplace-page.component.html
index c5c8c0af2a48f656f3ac901296cac21f9fa84611..8fd346a4e8db1d5999a9addcd426f033da08826f 100644
--- a/src/app/shared/components/publish-to-marketplace-page/publish-to-marketplace-page.component.html
+++ b/src/app/shared/components/publish-to-marketplace-page/publish-to-marketplace-page.component.html
@@ -141,7 +141,7 @@
             <mat-label>Add tag</mat-label>
             <mat-chip-grid #chipGrid>
               @for (tag of tagsItems(); track tag) {
-                <mat-chip-row (removed)="remove(tag)">
+                <mat-chip-row (removed)="removeTag(tag)">
                   {{ tag.tag }}
                   <button matChipRemove [attr.aria-label]="'remove ' + tag">
                     <mat-icon>cancel</mat-icon>
diff --git a/src/app/shared/components/publish-to-marketplace-page/publish-to-marketplace-page.component.ts b/src/app/shared/components/publish-to-marketplace-page/publish-to-marketplace-page.component.ts
index 898e24d621efe90734741dc80756137dcecf637c..d01c6d33108ee0e759743fea8beeb45743fa691f 100644
--- a/src/app/shared/components/publish-to-marketplace-page/publish-to-marketplace-page.component.ts
+++ b/src/app/shared/components/publish-to-marketplace-page/publish-to-marketplace-page.component.ts
@@ -411,6 +411,12 @@ export class PublishToMarketplacePageComponent implements OnInit {
       const extensionFile = this.getFilenameExtension(this.licenseProfile.name);
     }
   }
+  onClickUpdateImageSolution(file: File) {
+    return this.privateCatalogsService.setSolutionPicture(
+      this.solutionId,
+      file,
+    );
+  }
 
   onClickUploadImageFile() {
     const dialogRef: MatDialogRef<UploadLicenseProfileComponent> =
@@ -420,14 +426,26 @@ export class PublishToMarketplacePageComponent implements OnInit {
             title: 'Upload image model',
             isEditMode: false,
             isCheckExtension: false,
-            action: (file: File) => {},
+            action: (file: File) => this.onClickUpdateImageSolution(file),
             isLicenseProfile: false,
             isProcessEvent: false,
           },
         },
       });
 
-    dialogRef.afterClosed().subscribe((result) => {});
+    dialogRef.afterClosed().subscribe((result) => {
+      this.updateSolutionImage();
+    });
+  }
+  updateSolutionImage() {
+    this.publicSolutionsService
+      .getPictureOfSolution(this.solutionId)
+      .subscribe({
+        next: (res) => {
+          this.createImageFromBlob(res);
+        },
+        error: (error) => {},
+      });
   }
 
   onClickUpdateSolutionDocument(file: File) {
@@ -478,19 +496,42 @@ export class PublishToMarketplacePageComponent implements OnInit {
     this.addEditLicenseProfile = true;
   }
 
-  remove(tag: Tag) {
-    this.tagsItems.update((tags: Tag[]) => {
-      const index = tags.indexOf(tag);
-      if (index < 0) {
-        return tags;
-      }
-
-      tags.splice(index, 1);
-      this.announcer.announce(`Removed ${tag}`);
-      return [...tags];
+  removeTag(tag: Tag) {
+    this.privateCatalogsService.deleteTag(tag.tag, this.solutionId).subscribe({
+      next: (res) => {
+        const alert: Alert = {
+          message: 'Tag deleted successfully',
+          type: AlertType.Success,
+        };
+        this.alertService.notify(alert, 5000);
+        this.alertService.notify;
+        this.updateTags();
+      },
+      error: () => {},
     });
   }
 
+  updateTags() {
+    this.publicSolutionsService
+      .getSolutionDetails(this.solutionId, this.revisionId)
+      .subscribe({
+        next: (res) => {
+          const alert: Alert = {
+            message: 'Tag deleted successfully',
+            type: AlertType.Success,
+          };
+          this.alertService.notify(alert, 5000);
+          this.alertService.notify;
+          const tagsList = res?.solutionTagList;
+          this.tagsItems.update((tags: Tag[]) => [...tagsList]);
+          this.publishToMarketPlaceForm.patchValue({
+            tags: res?.solutionTagList,
+          });
+        },
+        error: () => {},
+      });
+  }
+
   removeDocument(document: DocumentModel) {
     this.privateCatalogsService
       .deleteSolutionsFiles(
@@ -516,12 +557,24 @@ export class PublishToMarketplacePageComponent implements OnInit {
   addTag(event: MatChipInputEvent): void {
     const value = { tag: (event.value || '').trim() };
 
-    // Add our keyword
     if (value) {
-      this.tagsItems.update((tags: Tag[]) => [...tags, value]);
-      this.filteredTags.next(
-        this.updateAllTagsSignal(event.value, this.allTags()),
-      );
+      this.privateCatalogsService
+        .addTag(event.value, this.solutionId)
+        .subscribe({
+          next: (res) => {
+            const alert: Alert = {
+              message: 'Tag added successfully',
+              type: AlertType.Success,
+            };
+            this.alertService.notify(alert, 5000);
+            this.alertService.notify;
+            this.updateTags();
+            this.filteredTags.next(
+              this.updateAllTagsSignal(event.value, this.allTags()),
+            );
+          },
+          error: () => {},
+        });
     }
 
     // Clear the input value
@@ -602,7 +655,7 @@ export class PublishToMarketplacePageComponent implements OnInit {
       data.solution.solutionTagList.length >= 1
     ) {
       const tagsList = data.solution?.solutionTagList;
-      this.tagsItems.update((tags: Tag[]) => [...tags, ...tagsList]);
+      this.tagsItems.update((tags: Tag[]) => [...tagsList]);
       this.publishToMarketPlaceForm.patchValue({
         tags: data.solution?.solutionTagList,
       });
@@ -665,14 +718,25 @@ export class PublishToMarketplacePageComponent implements OnInit {
   }
 
   selected(event: MatAutocompleteSelectedEvent): void {
-    this.tagsItems.update((tags: Tag[]) => [
-      ...tags,
-      { tag: event.option.value },
-    ]);
-    event.option.deselect();
-    this.tagCtrl.setValue(null);
-    this.filteredTags.next(
-      this.updateAllTagsSignal(event.option.value, this.allTags()),
-    );
+    this.privateCatalogsService
+      .addTag(event.option.value, this.solutionId)
+      .subscribe({
+        next: (res) => {
+          const alert: Alert = {
+            message: 'Tag added successfully',
+            type: AlertType.Success,
+          };
+          this.alertService.notify(alert, 5000);
+          this.alertService.notify;
+          this.updateTags();
+          event.option.deselect();
+          this.tagCtrl.setValue(null);
+          this.tagInput.nativeElement.value = '';
+          this.filteredTags.next(
+            this.updateAllTagsSignal(event.option.value, this.allTags()),
+          );
+        },
+        error: () => {},
+      });
   }
 }