diff --git a/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx b/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx
index ae871bc1..7cb40d02 100644
--- a/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx
+++ b/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx
@@ -584,6 +584,11 @@ export default function ProductAllSection({
[productType, themeProductInfo, themeProducts, selectedIndex, productInfo]
);
+ // ProductDescription 데이터 유무 확인
+ const hasProductDescription = useMemo(() => {
+ return !!productData?.prdtDesc;
+ }, [productData?.prdtDesc]);
+
// 🆕 [251211] patnrId=21인 경우 QR 데이터 확인
useEffect(() => {
if (productData?.patnrId === 21 || productData?.patnrId === '21') {
@@ -1336,6 +1341,9 @@ export default function ProductAllSection({
);
const handleProductDetailsClick = useCallback(() => {
+ // 제품 설명 데이터가 없을 때 클릭 방지
+ if (!hasProductDescription) return;
+
dispatch(minimizeModalMedia());
scrollToSection('scroll-marker-product-details');
@@ -1344,7 +1352,7 @@ export default function ProductAllSection({
setTimeout(() => {
Spotlight.focus('product-description-content');
}, 100);
- }, [scrollToSection, dispatch, handleIndicatorOptions]);
+ }, [scrollToSection, dispatch, handleIndicatorOptions, hasProductDescription]);
const handleYouMayAlsoLikeClick = useCallback(() => {
dispatch(minimizeModalMedia());
@@ -1961,16 +1969,18 @@ export default function ProductAllSection({
className={css.actionButtonsWrapper}
spotlightId="product-info-button-container"
>
-
- {$L('PRODUCT DETAILS')}
-
+ {hasProductDescription && (
+
+ {$L('PRODUCT DETAILS')}
+
+ )}
{isReviewDataComplete && (
<>
{/*