modoo!
소상공인축제 개선 이야기
소상공인축제


축제 flow
- 축제 참여 신청
- 신청 마감
- 본 축제 시작
- 본 축제 마감
빡빡한 일정
복잡한 스펙
계속되는 변경
(담당자마저..)

축제 참여 신청
- 홈사이트 PC/M 이벤트 팝업 및 배너
- 홈페이지 반영 팝업에 축제 안내 추가
- 프론트 PC 롤링 배너 추가
- 참가신청 메인 페이지 개발
- 참가신청 팝업 (modoo / 일반)
- 쿠폰(혜택) 입력 팝업
- 이벤트 개발
- SNS 공유 이미지 및 문구 적용
- 공통댓글 objectId 변경
- 지난달 이벤트 신청자 밀어넣기
- 운영 발송 SMS 신청자 쿼리 업데이트
- MOD 관리툴 내 참여현황 추가
- 참여 독려 SMS 발송 (optional)




신청 마감
- 마감 팝업 추가
- 참가신청 막기
- SNS 공유 문구 변경
- 입력된 쿠폰 자동 입력
- 지역 modoo 추가
- dev - 실 데이터로 환경 셋팅

본 축제 시작


본 축제 종료
- 마감 팝업 추가
- 축제 페이지 기능은 그대로 유지
- 일반 참여 fade-out
- 쿠폰 종료 처리
- SNS 공유 이미지 및 문구 변경
- SMS 발송 (optional)
- 이벤트 응모자 데이터 추출
- 각종 지표 추출

반복해서 변경해야 하는 것들
definition.modo.inc
// 소상공인축제에서 사용할 공통 정보
$DEF_SODAY_COMMON_DATA = array(
'snsDesc_1' => '봄바람 휘날리며 소상공인축제 신청하러 가요! 4월 1일~4월 15일까지!!', // 신청기간 sns
'snsDesc_3' => '봄소상공인축제 4월 25일~5월 15일! 고마운 마음은 우리 이웃가게들을 통해 전해주세요.', // 신청기간이후 sns
'4' => array(
'theme' => '201604_store',
'objectId_1' => 'soday4_1', // 신청페이지 공통댓글 ID
'objectId_3' => 'soday4_3', // 축제페이지 공통댓글 ID
'snsSharingClickCodePrefix' => 'soday4.sns.',
'shortcutClickCode' => 'soday.happyweek.shortcut',
'og' => array(
'title' => '4월 소상공인축제',
'site_name' => '4월 소상공인축제',
'image' => 'http://static.naver.net/modoo/promotion/e_160401_soday/pc/img/sns_logo.png',
),
// mobile은 공통 팝업 적용 전까지 <br>을 \n로 변환해서 사용
'applyEndAlertMsg' => '4월은 신청이 마감되었습니다.<br>다음 축제 참여 신청은 6월 1일부터 가능합니다.',
),
'5' => array(
'theme' => '201605_',
'objectId_1' => 'soday5_1', // 신청페이지 공통댓글 ID
'objectId_3' => 'soday5_3', // 축제페이지 공통댓글 ID
'snsSharingClickCodePrefix' => 'soday5.sns.',
'shortcutClickCode' => 'soday.happyweek.shortcut',
'og' => array(
'title' => '5월 소상공인축제',
'site_name' => '5월 소상공인축제',
'image' => 'http://static.naver.net/modoo/promotion/e_160401_soday/pc/img/sns_logo.png',
),
// mobile은 공통 팝업 적용 전까지 <br>을 \n로 변환해서 사용
'applyEndAlertMsg' => '4월은 신청이 마감되었습니다.<br>다음 축제 참여 신청은 6월 1일부터 가능합니다.',
)
);반복해서 변경해야 하는 것들
soday_4_1.tpl
// og 태그 정보
<meta property="og:url" content="http://happyweek<!--{ c.DOMAIN_NAME }-->" />
<meta property="ogf:title" content="{ COMMON_DATA.og.title }" />
<meta property="og:site_name" content="{ COMMON_DATA.og.title }">
<meta property="og:image" content="{ COMMON_DATA.og.image }">
<meta name="twitter:image" content="{ COMMON_DATA.og.image }">
<meta property="og:description" content="{ snsDesc }" />
// 공유 이벤트 click code
doSNSApply(loginId, "{ COMMON_DATA.snsSharingClickCodePrefix }facebook");
doSNSApply(loginId, "{ COMMON_DATA.snsSharingClickCodePrefix }band");
doSNSApply(loginId, "{ COMMON_DATA.snsSharingClickCodePrefix }blog");
doSNSApply(loginId, "{ COMMON_DATA.snsSharingClickCodePrefix }cafe");
doSNSApply(loginId, "{ COMMON_DATA.snsSharingClickCodePrefix }post");
class.SodayThemeControl.php
$COMMON_DATA = $DEF_SODAY_COMMON_DATA[$this->themeNum];
// 공통 댓글 objectId 셋팅
$this->viewAssign('objectId', $COMMON_DATA['objectId_1']);0:00 AM
시간에 따라 자동 처리
config.private.inc
// 팝업 시작 시간
define('START_POPUP_DATETIME', '2016-04-01 00:00:00');
// 팝업 종료 시간
define('EXPIRE_POPUP_DATETIME', '2016-04-14 00:00:00');
// PC 홈페이지 첫화면 팝업 다시보지않기 쿠키명
define('CLOSE_HOME_POPUP_BANNER_COOKIE_NAME', 'close_modoo_soday4_5_banner');
// PC 홈페이지관리 팝업 다시보지않기 쿠키명
define('CLOSE_MANAGEMENT_POPUP_BANNER_COOKIE_NAME', 'close_modoo_soday4_5_banner_manage');
// 모바일 홈페이지 첫화면/관리시스템 내 띠배너 이미지 URL
define('MOBILE_POPUP_BANNER_PATH', 'img_evtbn_160401.png');
// 소상공인축제(다음달) 오픈 시간
define('NEXT_SODAY_1_OPEN_TIME', '2016-06-01 00:00:00');
define('NEXT_SODAY_2_OPEN_TIME', '2016-06-16 00:00:00');
define('NEXT_SODAY_3_OPEN_TIME', '2016-06-25 00:00:00');
// 소상공인축제 오픈 시간
define('SODAY_1_OPEN_TIME', '2016-04-01 00:00:00'); // 축제 신청 오픈
define('SODAY_2_OPEN_TIME', '2016-04-16 00:00:00'); // 축제 신청 마감
define('SODAY_3_OPEN_TIME', '2016-04-25 00:00:00'); // 본 축제 오픈
define('SODAY_4_OPEN_TIME', '2016-05-16 00:00:00'); // 본 축제 종료
// 소상공인축제 클로즈 시간
define('SODAY_CLOSE_TIME', '2016-05-16 00:00:00'); // 축제 1-2-3-4 전체 cycle 종료시간에 따라 자동 처리
class.MainControl.php
$today = date('Y-m-d H:i:s', time());
$expirePopupTm = date('Y-m-d H:i:s', strtotime(EXPIRE_POPUP_DATETIME));
$startPopupTm = date('Y-m-d H:i:s', strtotime(START_POPUP_DATETIME));
if ($today < $expirePopupTm && $today > $startPopupTm) {
$out['expirePopup'] = 'N';
} else {
$out['expirePopup'] = 'Y';
}main_index.tpl
// 이벤트 팝업레이어
function openEventPopup() {
if('{ expirePopup }' == 'N' && $.cookie('{ c.CLOSE_MANAGEMENT_POPUP_BANNER_COOKIE_NAME }') != 'y') {
new LayerPopup('/home/event/event.popup', {position : 'fixed', top:'50%', left:'50%' });
}
}
시간에 따라 자동 처리
class.SodayThemeControl.php
public function index_action() {
// 축제 신청 or 축제 신청 종료 > 신청페이지
} else if ($this->soday1Ended === FALSE || $this->soday2Ended === FALSE) {
$this->index_1_apply_action();
// 본 축제 or 본 축제 종료 > 축제페이지
} else if ($this->soday3Ended === FALSE || $this->soday4Ended === FALSE) {
$this->index_3_main_action();
} else {
$this->index_1_apply_action(); // 다음달 축제 신청
}
}
투입 리소스 변화
2월
3월
4월
3
3.5
1.5
The End
modoo!
By realgo
modoo!
- 348
