modoo!

소상공인축제 개선 이야기

소상공인축제

축제 flow

  1. 축제 참여 신청
  2. 신청 마감
  3. 본 축제 시작
  4. 본 축제 마감

빡빡한 일정

복잡한 스펙

계속되는 변경

(담당자마저..)

축제 참여 신청

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

신청 마감

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

본 축제 시작

  • 홈사이트 PC/M 이벤트 팝업 및 배너 교체
  • 홈페이지 반영 팝업 업데이트
  • 프론트 PC 롤링 배너 업데이트
  • 본 축제 페이지 개발 ( 2월 / 3월 )
  • 쿠폰 노출
  • ​이벤트 개발
  • 배치 실행
  • SNS 공유 이미지 및 문구 적용
  • SMS 발송 (optional)

본 축제 종료

  • 마감 팝업 추가
  • 축제 페이지 기능은 그대로 유지
  • 일반 참여 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