시스템 바로가기
매핑 테이블 (1688 ↔ 카페24)
| 1688 상품번호 | 1688 색상 | 카페24 상품명 | 카페24 옵션 | 단가 |
|---|---|---|---|---|
| 1017247925598 | 灰色 | 쿠션핸들 보스턴 크로스백 | 어반 그레이 | ¥32.50 |
| 1017247925598 | 黑色 | 쿠션핸들 보스턴 크로스백 | 시크 블랙 | ¥32.50 |
| 1017247925598 | 琥珀色 | ❌ 미등록 | — | ¥32.50 |
| 1045259543402 | 灰色 | 컴포트 트래블 나일론 크로스백 | 그레이 | ¥29.00 |
| 1045259543402 | 黑色 | ❌ 미등록(아이보리/그레이만 존재) | — | ¥29.00 |
| 975447638184 | 黑色 | 데일리 라이트 모던 슬링백 | 블랙 | ¥27.99 |
⚠️ 매핑에 없는 색상은 입고돼도 카페24에서 판매 불가합니다. 1688 주문 전 반드시 대조하세요.
① 발주량 계산기 (카페24 미발송 → 1688 발주 수량)
공식: 최소발주량 = 현재 미발송수량 + (일평균판매 × 리드타임일수) ・ 권장발주량 = 최소발주량 + 안전재고
값을 입력하고 계산하기를 눌러주세요.
📦 LCL 해운 부피/운임 계산기
공식: 개당부피(cbm) = 가로×세로×높이 ÷ 1,000,000 ・ 청구부피 = MAX(0.5, 총부피) ・ 운임 = 청구부피 × 90,000(청도 LCL 로얄등급 기준)
값을 입력하고 계산하기를 눌러주세요.
② 예상 납품일 계산기 (남해운송 → 카페24 발송예정일)
공식: 양주입고예정 = 부가작업 완료일 + 5일 ・ 고객발송가능일 = 양주입고 + 1~2일 ・ 카페24 발송예정일 = 고객발송가능일 + 안전마진(3~7일)
날짜를 입력하고 계산하기를 눌러주세요.
진행상태 단계 (남해운송)
신청대기 → 견적요청 → 결제대기 → 결제완료 → 주문완료 → 배송전환완료 → 접수신청 → 입고처리중 → 입고완료 → 포장준비중 → 출고대기 → 출고완료(양주 입고)
실측 리드타임 사례 (26H000972)
| 구간 | 날짜 | 소요 |
|---|---|---|
| 신청 | 2026-08-17 09:16 | — |
| 미싱작업 진행 확인 | 2026-08-23 | 6일 |
| 출고완료 → 양주 입고 | 2026-08-28 | 5일 |
| 신청 → 양주 입고 전체 | 11일 |
④ 원가·마진 계산기
개당 착지원가 = 상품원가 + 국제운임 + 관세 + 검수·핸들링 + 3PL작업비 + 국내택배비 ・ 마진 = 판매가 − 착지원가 − 결제수수료(3.5%)
값을 입력하고 계산하기를 눌러주세요.
전체 사이클 (9단계)
- [1] 카페24 배송준비중 관리기간 확대 + 총건수 확인 + rows=100 → 품목별 미발송 수량 집계
- [2] 발주량 산출미발송수량 + (일평균판매 × 리드타임 11일) + 안전재고 → 「발주량 계산」 탭 사용
- [3] 1688 소싱상품번호 / 단가 티어 / 실측 치수 → cbm → LCL 0.5cbm 충족 여부 → 「LCL 부피」 탭 사용
- [4] 남해운송 발주 (Buy_W1.asp)청도 · 사업자항공/LCL · 구매대행 / 수취인=패킹베어 / 배송지=솔길로지스 / 부가서비스 17·78·18·20·21·22·13
- [5] 진행 추적 (Order_V.asp)입고완료 → 미싱 등 부가작업 → 출고완료 → 양주 입고
- [6] 예상납품일 산출부가작업 완료 +5일=양주입고 / +1~2일=고객발송가능 / +안전마진=카페24 발송예정일 → 「예상납품일」 탭 사용
- [7] 카페24 발송예정일 등록배송준비중 관리에서 대상 체크 → 발송예정일 등록 → 달력 클릭 → 저장 → 주문상세에서 검증
- [8] 3PL 입고 내역서 작성시트명=양주창고 입고일 / 상품명은 카페24 옵션명 기준 / 옵션별 행 분리 / 썸네일 필수(삽입>그림>이 디바이스)
- [9] 발주 vs 실주문 대조과부족 계산 + 옵션 매핑 존재 여부 확인 → 다음 사이클 [2]로 피드백
✅ 현재 미해결 항목 체크리스트
체크 상태는 이 브라우저에 자동 저장됩니다.
🧩 자주 쓰는 JS 스니펫 (브라우저 콘솔에 붙여넣기)
⚠️ 이 스니펫들은 카페24/남해운송 관리자 화면의 개발자도구(콘솔)에서 실행하는 용도입니다. 로그인·약관동의·결제 등은 절대 자동화하지 말고 직접 진행하세요.
기간 확대 후 재검색 (카페24 배송준비중)
(()=>{
const s = document.querySelector('[name=start_date]');
s.value = '2026-08-01';
s.dispatchEvent(new Event('change', {bubbles:true}));
const b = [...document.querySelectorAll('a,button,input')]
.find(e => ((e.innerText||e.value||'').trim() === '검색'));
b.click();
return 'searching from ' + s.value;
})()
페이지 크기 100으로 확대 (페이지네이션 함정 방지)
(()=>{
const s = [...document.querySelectorAll('select')]
.find(x => [...x.options].some(o => /100/.test(o.text) && /개/.test(o.text)));
s.value = [...s.options].find(o => /100/.test(o.text)).value;
s.dispatchEvent(new Event('change', {bubbles:true}));
return 'rows -> ' + s.value;
})()
품목별 수량 집계
(()=>{
const hdr = [...document.querySelectorAll('table tr')]
.find(r => /수량/.test(r.innerText) && r.querySelectorAll('th,td').length > 6);
const cells = hdr ? [...hdr.querySelectorAll('th,td')]
.map(c => c.innerText.replace(/\s+/g,' ').trim()) : [];
const qi = cells.findIndex(c => c === '수량');
const rows = []; let tot = 0;
document.querySelectorAll('table tr').forEach(tr => {
const tds = [...tr.querySelectorAll('td')]
.map(c => c.innerText.replace(/\s+/g,' ').trim());
const t = tds.join(' ');
const ord = (t.match(/\d{8}-\d{7}/)||[])[0];
if (!ord || ord === '02020101-1234567') return;
const p = /데일리/.test(t) ? '슬링백'
: /컴포트/.test(t) ? '컴포트'
: /쿠션핸들/.test(t) ? '보스턴' : '?';
const n = parseInt(tds[qi]) || 1;
tot += n;
rows.push(ord + ' | ' + p + ' | ' + n + '개');
});
return 'rows=' + rows.length + ' 총수량=' + tot + '\n' + rows.join('\n');
})()
발송예정일 등록 — 1) 다음 달 이동
(()=>{
const m = document.querySelector('#layerExpectShip');
const nx = [...m.querySelectorAll('button,a')]
.find(e => /duet-date__next/.test(e.className||''));
nx.click();
return 'next month';
})()
발송예정일 등록 — 2) 날짜 클릭 (YYYY-MM-DD 수정 필요)
(()=>{
const m = document.querySelector('#layerExpectShip');
const d = [...m.querySelectorAll('button')]
.filter(b => /duet-date__day/.test(b.className||'')
&& !/is-outside|is-disabled/.test(b.className||''))
.find(b => /2026-09-12/.test(b.innerText||''));
d.click();
const vis = document.getElementById('shipping_expected_date_input');
const chk = [...document.querySelectorAll('input[name="chk_id[]"]')]
.filter(c => c.checked).length;
return 'date=' + vis.value + ' checked=' + chk;
})()
발송예정일 등록 — 3) 저장
(()=>{
const m = document.querySelector('#layerExpectShip');
const s = [...m.querySelectorAll('a,button')]
.find(e => e.innerText.trim() === '저장' && /btnCtrl/.test(e.className||''));
s.click();
return 'SAVED';
})()
등록 검증 (order_detail.php에서 실행)
(()=>{
const v = [...new Set([...document.querySelectorAll('input')]
.map(e => e.value||'').filter(x => /^2026-09-\d\d$/.test(x)))];
const b = document.body.innerText.replace(/\s+/g,' ');
const i = b.indexOf('발송예정일');
return '9월값=' + v.join(',') + '\n' + (i>=0 ? b.slice(i, i+90) : '없음');
})()
대상 상품 체크박스 선택 (품목 키워드 수정 필요)
(()=>{
let n = 0; const p = [];
document.querySelectorAll('table tr').forEach(tr => {
const t = tr.innerText.replace(/\s+/g,' ');
const ord = (t.match(/\d{8}-\d{7}/)||[])[0];
if (!ord || ord === '02020101-1234567') return;
const cb = tr.querySelector('input[name="chk_id[]"]');
if (!cb) return;
if (/데일리/.test(t)) {
if (!cb.checked) { cb.click(); n++; }
p.push(ord);
} else if (cb.checked) {
cb.click();
}
});
return 'selected=' + n + '\n' + p.join(', ');
})()
부가서비스 일괄 체크 (남해운송 발주서)
(()=>{
const want = ['78','18','20','21','22'];
const r = [];
document.querySelectorAll('input[type=checkbox]').forEach(e => {
if (want.includes(e.value) && !e.checked) {
e.click();
r.push(e.value + ':' + (e.checked ? 'ON' : 'FAIL'));
}
});
return r.join(', ') || 'none';
})()