diff --git a/com.twin.app.shoptime/src/views/DetailPanel/components/BuyOption.jsx b/com.twin.app.shoptime/src/views/DetailPanel/components/BuyOption.jsx
index d2b4afa9..8e0ce034 100644
--- a/com.twin.app.shoptime/src/views/DetailPanel/components/BuyOption.jsx
+++ b/com.twin.app.shoptime/src/views/DetailPanel/components/BuyOption.jsx
@@ -1502,6 +1502,7 @@ const BuyOption = ({
productInfo={productInfo || productData}
selectedOptions={selectedOptions}
patncNm={patncNm || productData?.patncNm || productInfo?.patncNm}
+ quantity={quantity}
/>
{
+const BuyOptionPriceBlock = ({ patncNm, productInfo, selectedOptions, quantity, className }) => {
const productData = useSelector((state) => state.main.productData);
const sourceProduct = productInfo || productData;
const { shippingCharge } = sourceProduct || {};
@@ -23,6 +23,26 @@ const BuyOptionPriceBlock = ({ patncNm, productInfo, selectedOptions, className
return $L('Price');
}, [patncNm]);
+ // 가격에서 통화 기호와 숫자 분리
+ const extractPriceInfo = (priceString) => {
+ if (!priceString) return { currencySymbol: '', numericPrice: 0 };
+
+ const numericPrice = parseFloat(priceString.replace(/[^0-9.]/g, ''));
+ const currencySymbol = priceString.replace(/[0-9.]/g, '').trim();
+
+ return {
+ currencySymbol: currencySymbol || '',
+ numericPrice: isNaN(numericPrice) ? 0 : numericPrice
+ };
+ };
+
+ // quantity를 곱한 총 가격 계산
+ const totalPrice = useMemo(() => {
+ const { currencySymbol, numericPrice } = extractPriceInfo(discountedPrice);
+ const total = numericPrice * (quantity || 1);
+ return `${currencySymbol}${total.toFixed(2)}`;
+ }, [discountedPrice, quantity]);
+
const showDiscountBadge = discountedPrice && originalPrice && discountedPrice !== originalPrice;
if (!discountedPrice && !shippingCharge) {
@@ -35,7 +55,7 @@ const BuyOptionPriceBlock = ({ patncNm, productInfo, selectedOptions, className
{priceLabel}
- {discountedPrice}
+ {totalPrice}
)}