Skip to content

Commit c663ef6

Browse files
committed
INT-263: Fix ImageUrl for products without image
Explicit null checks and ensuring that all object method calls are validated before execution for ImageUrl
1 parent eaff498 commit c663ef6

2 files changed

Lines changed: 24 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
# Changelog
2+
## Unreleased
3+
### Fix
4+
- Fix ImageUrl for products without image
5+
26
## [v7.2.1] - 2026.01.27
37
### Change
48
- Upgrade Web Components version to v5.1.8

src/Export/Field/ImageUrl.php

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,37 @@ public function getCompatibleEntityTypes(): array
2626
return [ProductEntity::class, CmsPageEntity::class, BrandEntity::class];
2727
}
2828

29+
/**
30+
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
31+
*/
2932
private function checkAndReturnMediaUrlOrEmptyString(?Entity $entity = null): string
3033
{
34+
if ($entity === null) {
35+
return '';
36+
}
37+
3138
if (method_exists($entity, 'getCover')) {
3239
$cover = $entity->getCover();
3340

34-
if ($cover && !empty($cover->getMedia()->getUrl())) {
41+
if ($cover && $cover->getMedia() && !empty($cover->getMedia()->getUrl())) {
3542
return $cover->getMedia()->getUrl();
3643
}
3744
}
3845

39-
$media = $entity?->getMedia();
46+
if (method_exists($entity, 'getMedia')) {
47+
$media = $entity->getMedia();
48+
49+
if ($media) {
50+
if (method_exists($media, 'first')) {
51+
$firstElement = $media->first();
52+
53+
return $firstElement ? $this->checkAndReturnMediaUrlOrEmptyString($firstElement) : '';
54+
}
4055

41-
if ($media) {
42-
if (method_exists($media, 'first')) {
43-
return $this->checkAndReturnMediaUrlOrEmptyString($media->first());
56+
if (method_exists($media, 'getUrl')) {
57+
return $media->getUrl() ?? '';
58+
}
4459
}
45-
return $media->getUrl();
4660
}
4761

4862
return '';

0 commit comments

Comments
 (0)