[Log] Log, IF-LGSP-LOG-006 / Product Detail 이력 (logTpNo: “400”) 반영

This commit is contained in:
younghoon100.park
2024-05-31 14:56:54 +09:00
parent 78140a3467
commit eb8d97981e
4 changed files with 127 additions and 36 deletions

View File

@@ -31,6 +31,13 @@ export const getUrlByLogTpNo = (logTpNo) => {
case LOG_TP_NO.GNB:
return URLS.LOG_GNB;
// IF-LGSP-LOG-006 / 상품 상세 이력
case LOG_TP_NO.PRODUCT.PRODUCT_DETAIL:
case LOG_TP_NO.PRODUCT.GROUP_DETAIL:
case LOG_TP_NO.PRODUCT.BILLING_PRODUCT_DETAIL:
case LOG_TP_NO.PRODUCT.PRODUCT_DETAIL_IMAGE:
return URLS.LOG_PRODUCT;
// IF-LGSP-LOG-008 / Shop by mobile 이력
case LOG_TP_NO.SHOP_BY_MOBILE.SHOP_BY_MOBILE:
case LOG_TP_NO.SHOP_BY_MOBILE.AGREE_AND_SEND:

View File

@@ -172,6 +172,64 @@ export default function useLogService() {
[dispatch, menuMovSnoRef, nowMenuRef]
);
/**
* IF-LGSP-LOG-006 / 상품 상세 이력
*
* (M) befPrice 할인 전 가격
*
* (O) curationId 큐레이션 아이디
*
* (O) curationNm 큐레이션 이름
*
* (M) entryMenu 진입 메뉴
*
* (O) expsOrd 노출 순번
*
* (M) inDt 진입 시간
*
* (M) lastPrice 할인 후 가격
*
* (M) lgCatCd 카테고리 코드
*
* (M) lgCatNm 카테고리 이름
*
* (O) linkTpCd 딥 링크 타입
*
* (M) logTpNo 로그 타입 넘버
*
* (M) nowMenu 현재 메뉴
*
* (M) outDt 진출 시간
*
* (M) patncNm 파트너 이름
*
* (M) patnrId 파트너 아이디
*
* (M) prdtId 상품 아이디
*
* (M) prdtNm 상품 이름
*
* (O) revwGrd 별점
*
* (M) rewdAplyFlag 리워드 적용 여부
*
* (M) tsvFlag TSV 여부
*/
const sendLogProductDetail = useCallback(
(params) => {
const newParams = {
...params,
entryMenu: entryMenuRef.current,
inDt: formatGMTString(new Date()),
nowMenu: nowMenuRef.current,
outDt: "",
};
dispatch(postLog(newParams));
},
[dispatch, entryMenuRef, nowMenuRef]
);
/**
* IF-LGSP-LOG-008 / Shop by mobile 이력
*
@@ -880,6 +938,7 @@ export default function useLogService() {
sendLogLive,
sendLogCuration,
sendLogGNB,
sendLogProductDetail,
sendLogShopByMobile,
sendLogMyPageAlertFlag,
sendLogMyPageMyDelete,

View File

@@ -117,7 +117,12 @@ export const LOG_TP_NO = {
HOME: {},
PRODUCT: {},
PRODUCT: {
PRODUCT_DETAIL: "400",
GROUP_DETAIL: "408",
BILLING_PRODUCT_DETAIL: "409",
PRODUCT_DETAIL_IMAGE: "410",
},
DETAIL: {},

View File

@@ -1,4 +1,4 @@
import React, { useCallback, useEffect, useRef } from "react";
import React, { useCallback, useEffect, useMemo, useRef } from "react";
import classNames from "classnames";
import { useDispatch, useSelector } from "react-redux";
@@ -26,7 +26,8 @@ export default function UnableOption({
patnrName,
smsTpCd,
}) {
const { sendLogGNB, sendLogShopByMobile } = useLogService();
const { sendLogGNB, sendLogProductDetail, sendLogShopByMobile } =
useLogService();
const dispatch = useDispatch();
@@ -34,7 +35,7 @@ export default function UnableOption({
(state) => state.common.popup
);
const logParamsRef = useRef(null);
const shopByMobileLogParamsRef = useRef(null);
const tooltipDes = $L("Scan for more information about the product.");
@@ -51,7 +52,7 @@ export default function UnableOption({
const {
discountRate,
rewardFlag,
// rewardFlag,
discountedPrice,
discountAmount,
originalPrice,
@@ -71,9 +72,40 @@ export default function UnableOption({
case9: !price2 && !price3 && !price5 && offerInfo,
};
const commonLogParams = useMemo(() => {
return productInfo
? {
befPrice: productInfo.priceInfo?.split("|")[0],
curationId: productInfo?.curationId ?? "",
curationNm: productInfo?.curationNm ?? "",
lastPrice: productInfo.priceInfo?.split("|")[1],
lgCatCd: productInfo?.catCd ?? "",
lgCatNm: productInfo?.catNm ?? "",
patncNm: productInfo?.patncNm ?? "",
patnrId: productInfo?.patnrId ?? "",
prdtId: productInfo?.prdtId ?? "",
prdtNm: productInfo?.prdtNm ?? "",
revwGrd: productInfo?.revwGrd ?? "",
rewdAplyFlag: productInfo.priceInfo?.split("|")[2],
tsvFlag: productInfo?.todaySpclFlag ?? "",
}
: null;
}, [productInfo]);
useEffect(() => {
sendLogGNB(Config.LOG_MENU.DETAIL_PAGE_PRODUCT_DETAIL);
}, [sendLogGNB]);
if (commonLogParams) {
const params = {
...commonLogParams,
expsOrd: "",
linkTpCd: "",
logTpNo: Config.LOG_TP_NO.PRODUCT.PRODUCT_DETAIL,
};
setTimeout(() => sendLogProductDetail(params));
}
}, [commonLogParams, sendLogGNB, sendLogProductDetail]);
useEffect(() => {
if (soldoutFlag) {
@@ -86,39 +118,27 @@ export default function UnableOption({
const handleSMSClick = useCallback(() => {
dispatch(setShowPopup(Config.ACTIVE_POPUP.smsPopup));
const params = {
befPrice: originalPrice,
curationId: productInfo?.curationId,
curationNm: productInfo?.curationNm,
lastPrice: discountedPrice,
lgCatCd: productInfo?.catCd,
lgCatNm: productInfo?.catNm,
liveFlag: panelInfo?.liveFlag ?? "N",
logTpNo: Config.LOG_TP_NO.SHOP_BY_MOBILE.SHOP_BY_MOBILE,
mbphNoFlag: "N",
patncNm: productInfo?.patncNm,
patnrId: productInfo?.patnrId,
prdtId: productInfo?.prdtId,
prdtNm: productInfo?.prdtNm,
revwGrd: productInfo?.revwGrd,
rewdAplyFlag: rewardFlag,
shopByMobileFlag: "Y",
shopTpNm: "product",
showId: panelInfo?.showId,
showNm: panelInfo?.showNm,
trmsAgrFlag: "N",
tsvFlag: productInfo?.todaySpclFlag,
};
if (commonLogParams) {
const params = {
...commonLogParams,
liveFlag: panelInfo?.liveFlag ?? "N",
logTpNo: Config.LOG_TP_NO.SHOP_BY_MOBILE.SHOP_BY_MOBILE,
mbphNoFlag: "N",
shopByMobileFlag: "Y",
shopTpNm: "product",
showId: panelInfo?.showId,
showNm: panelInfo?.showNm,
trmsAgrFlag: "N",
};
sendLogShopByMobile(params);
logParamsRef.current = params;
sendLogShopByMobile(params);
shopByMobileLogParamsRef.current = params;
}
}, [
discountedPrice,
commonLogParams,
dispatch,
originalPrice,
panelInfo,
productInfo,
rewardFlag,
panelInfo?.showId,
panelInfo?.showNm,
sendLogShopByMobile,
]);