OpenSource/Spring Boot

5) ENS Project - 상품코드 가져오기

태하팍 2024. 9. 28. 18:28
반응형

저번 시간에 하드코딩이였다!!

2024.09.27 - [OpenSource/Spring Boot] - 4) ENS Project - open ai와 놀기(발주 개발)

1건에 대해서만 일단은 처리를 한 것이다.
이제는 현재 판매중이며 전시중인 상품들에 대한 데이터들이 필요하다.
이 상품번호들은 파는 것들만 하드코딩하여 할 수도 있지만 귀찮다!!!

naver api를 통해서 해당 정보들을 가져와서 자연스레 데이터를 만들도록하는것이 목표이다!

결과

아래와 같이 데이터들을 뽑아냈다!!

Controller에서는 내가 원하는 서비스들을 호출만 하였다.

String responseBody = naverStoreApiService.getChannelProductNumbers(accessToken);
naverStoreApiService.processResponse(accessToken, responseBody);

아래의 getChannelProductNumbers(); 이 부분이 바로 채널상품넘버들을 가져오는 부분이다.
naver api를 통해서 가져온다.

naverStoreApiService.getChannelProductNumbers(accessToken);

RestTemplate으로 호출하였다.

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Authorization", "Bearer " + accessToken);
        
Map<String, Object> requestBody = new HashMap<>();
requestBody.put("productStatusTypes", "SALE");

String jsonRequestBody = mapper.writeValueAsString(requestBody);
HttpEntity<String> entity = new HttpEntity<>(jsonRequestBody, headers);

ResponseEntity<String> response = restTemplate.exchange(productNoUrl, HttpMethod.POST, entity, String.class);

두번째로 naverStoreApiService.processResponse(accessToken, responseBody); 를 호출해서 원하는 데이터를 뽑고
또 다른 기능을 가진 서비스를 호출한다.

여기서 responseBody가 위 RestTemplate에 대한 리턴값이다.

이제 가져온 데이터들을 확인 할 차례이다. 왜냐면 아래와 같이 1차 작업으로 네이버에서 제공해주는 엑셀들을
가져다가 json으로 만들어주는 작업을 하였다. 이 작업에 대한 데이터들이 고도화(api 연동)로 가져온 데이터들이 맞는지 확인해야한다!

이런 데이터들은 상품에서 옵션과 추가상품에 해당한다.
OptionJsonData, SupportJsonData가 되겠다.

이게 어떤 데이터냐면?

아래와 같이 기존 파는 상품에 대한 데이터가 옵션 데이터! 그리고 추가상품이다.


상품관리에서 보면 옵션명에 대한 내용을 알 수 있다. 

추가상품명도 알수 있다.

위의 데이터들이 만들어진 json에 있는지 확인하면 된다.

[ 
  {
    "id": "42807664878",
    "name": "유기농 양배추즙 30팩",
    "company": "유기농 양배추즙 농장",
    "title": "양배추츱은 꼭 냉장보관하세요: 유기농 양배추즙 30팩"
  },
  {
    "id": "43010014525",
    "name": "유기농 양배추즙 60팩",
    "company": "유기농 양배추즙 농장",
    "title": "양배추츱은 꼭 냉장보관하세요: 유기농 양배추즙 60팩"
  },
  {
    "id": "43137461116",
    "name": "유기농 양배추즙 30팩 + 유기농 비트즙 30팩",
    "company": "유기농 양배추즙 농장",
    "title": "양배추츱은 꼭 냉장보관하세요: 유기농 양배추즙30팩 +유기농 비트즙 30팩"
  },
  {
    "id": "42807664880",
    "name": "일반 양배추즙 30팩",
    "company": "일반 양배추즙 농장",
    "title": "양배추츱은 꼭 냉장보관하세요: 일반 양배추즙 30팩"
  },
  {
    "id": "42807664881",
    "name": "일반 양배추즙 60팩",
    "company": "일반 양배추즙 농장",
    "title": "양배추츱은 꼭 냉장보관하세요: 일반 양배추즙 60팩"
  },
  {
    "id": "43137461118",
    "name": "일반 양배추즙 30팩 + 비트즙 30팩",
    "company": "일반 양배추즙 농장",
    "title": "양배추츱은 꼭 냉장보관하세요: 일반 양배추즙 30팩+비트즙 30팩"
  },
  {
    "id": "2842521670",
    "name": "100% 제주구좌당근주스 10팩",
    "company": "100% 제주구좌당근주스 농장",
    "title": "물한방울 안넣은 구좌당근주스 100%: 100%제주구좌당근주스10팩(택무)"
  },
  {
    "id": "2842521671",
    "name": "100% 제주구좌당근주스 20팩",
    "company": "100% 제주구좌당근주스 농장",
    "title": "물한방울 안넣은 구좌당근주스 100%: 100% 제주구좌당근주스20팩(택무)"
  },
  {
    "id": "2842521672",
    "name": "100% 제주구좌당근주스 30팩",
    "company": "100% 제주구좌당근주스 농장",
    "title": "물한방울 안넣은 구좌당근주스 100%: 100% 제주구좌당근주스30팩(택무)"
  },
  {
    "id": "2842521673",
    "name": "100% 제주구좌당근주스 40팩",
    "company": "100% 제주구좌당근주스 농장",
    "title": "물한방울 안넣은 구좌당근주스 100%: 100% 제주구좌당근주스40팩(택무)"
  },
  {
    "id": "2842521674",
    "name": "씨제거로 배안아픈 사과즙 30팩",
    "company": "씨제거로 배안아픈 사과즙 농장",
    "title": "씨제거해서 배안아픈 사과주스 100%: 씨제거로 배안아픈 사과즙30팩(택포)"
  }
 , 
  {
    "id": "2842521675",
    "name": "씨제거한 배안아픈 사과주스 100%",
    "company": "씨제거해서 배안아픈 사과주스 농장",
    "title": "씨제거해서 배안아픈 사과주스 100%: 씨제거로 배안아픈 사과즙60팩(택포)"
  },
  {
    "id": "2842521676",
    "name": "익힌 제주비트즙 100%",
    "company": "익힌 제주비트즙 농장",
    "title": "익힌 제주비트즙 100%(위약한분(: 진한 겨울 비트즙30팩(택포)"
  },
  {
    "id": "2842521677",
    "name": "익힌 제주비트즙 100%",
    "company": "익힌 제주비트즙 농장",
    "title": "익힌 제주비트즙 100%(위약한분(: 진한 겨울 비트즙60팩(택포)"
  },
  {
    "id": "2842521678",
    "name": "제주 비트 저온 착즙 100%",
    "company": "제주 비트 저온 착즙 농장",
    "title": "제주 비트 저온 착즙 100%: 일반 비트즙30팩"
  },
  {
    "id": "2842521679",
    "name": "제주 비트 저온 착즙 100%",
    "company": "제주 비트 저온 착즙 농장",
    "title": "제주 비트 저온 착즙 100%: 일반비트즙60팩"
  }
 , 
  {
    "id": "2842521680",
    "name": "제주 비트 저온 착즙 100%",
    "company": "제주 비트 농장",
    "title": "제주 비트 저온 착즙 100%: 비트즙30팩+양배추30팩"
  },
  {
    "id": "2842521681",
    "name": "흑돼지 앞다리살 500g",
    "company": "제주 프리미엄 흑돼지 농장",
    "title": "1등품질 제주 프리미엄 흑돼지: 1등품질 흑돼지 앞다리살 500g(택포)"
  },
  {
    "id": "2842521682",
    "name": "흑돼지 오겹살 500g",
    "company": "제주 프리미엄 흑돼지 농장",
    "title": "1등품질 제주 프리미엄 흑돼지: 1등품질 흑돼지 오겹살 500g(택포)"
  },
  {
    "id": "2842521683",
    "name": "흑돼지 목살 500g",
    "company": "제주 프리미엄 흑돼지 농장",
    "title": "1등품질 제주 프리미엄 흑돼지: 1등품질 흑돼지 목살 500g(택포)"
  },
  {
    "id": "2842521684",
    "name": "흑돼지 오겹살 1kg",
    "company": "제주 프리미엄 흑돼지 농장",
    "title": "1등품질 제주 프리미엄 흑돼지: 1등품질 흑돼지 오겹살 1kg(택포)"
  }
 , 
  {
    "id": "2842521685",
    "name": "제주 프리미엄 흑돼지 목살1kg",
    "company": "제주 프리미엄 흑돼지 농장",
    "title": "1등품질 제주 프리미엄 흑돼지: 1등품질 흑돼지 목살1kg(택포)"
  },
  {
    "id": "2842521686",
    "name": "제주 프리미엄 흑돼지 오겹살500g +목살500g",
    "company": "제주 프리미엄 흑돼지 농장",
    "title": "1등품질 제주 프리미엄 흑돼지: 1등품질 흑돼지 오겹살500g +목살500g 총1kg(택포)"
  },
  {
    "id": "2842521687",
    "name": "제주 프리미엄 흑돼지 오겹살1kg+목살500g",
    "company": "제주 프리미엄 흑돼지 농장",
    "title": "1등품질 제주 프리미엄 흑돼지: 1등품질 흑돼지 오겹살1kg+목살500g 총1.5kg(택포)"
  },
  {
    "id": "2842521688",
    "name": "제주 프리미엄 흑돼지 돈마호크 뼈등심+오겹살+목살",
    "company": "제주 프리미엄 흑돼지 농장",
    "title": "1등품질 제주 프리미엄 흑돼지: 1등품질 흑돼지 돈마호크 뼈등심 +오겹살+목살 총1.5kg(택포"
  },
  {
    "id": "2842521689",
    "name": "지리산찹쌀 김부각 40gX2봉",
    "company": "지리산찹쌀 김부각 농장",
    "title": "지리산찹쌀 김부각(안짜고 진짜맛잇어요: 수제부각 40gX2봉"
  }
 , 
  {
    "id": "2842521690",
    "name": "수제부각 70gX2봉",
    "company": "지리산찹쌀 김부각 농장",
    "title": "지리산찹쌀 김부각(안짜고 진짜맛잇어요: 수제부각 70gX2봉"
  },
  {
    "id": "2842521691",
    "name": "수제부각 40gX4봉",
    "company": "지리산찹쌀 김부각 농장",
    "title": "지리산찹쌀 김부각(안짜고 진짜맛잇어요: 수제부각 40gX4봉"
  },
  {
    "id": "2842521692",
    "name": "수제부각 70gX4봉+40g1개",
    "company": "지리산찹쌀 김부각 농장",
    "title": "지리산찹쌀 김부각(안짜고 진짜맛잇어요: 수제부각 70gX4봉+40g1개(선물박스포장)"
  },
  {
    "id": "2842521693",
    "name": "수제부각 40GX8봉+70g1봉",
    "company": "지리산찹쌀 김부각 농장",
    "title": "지리산찹쌀 김부각(안짜고 진짜맛잇어요: 수제부각 40GX8봉+70g1봉(선물박스포장)"
  },
  {
    "id": "2842521694",
    "name": "메밀쌀600g",
    "company": "1등제주메밀 보리 귀리쌀 농장",
    "title": "1등제주메밀 보리 귀리쌀: 메밀쌀600g(택포)"
  }
 , 
  {
    "id": "2842521695",
    "name": "메밀쌀 1kg",
    "company": "1등제주메밀 농장",
    "title": "1등제주메밀 보리 귀리쌀: 메밀쌀1kg(택포)"
  },
  {
    "id": "2842521696",
    "name": "제주귀리쌀 1kg",
    "company": "1등제주메밀 농장",
    "title": "1등제주메밀 보리 귀리쌀: 제주귀리쌀1kg(택포)"
  },
  {
    "id": "2842521697",
    "name": "제주귀리쌀 2kg",
    "company": "1등제주메밀 농장",
    "title": "1등제주메밀 보리 귀리쌀: 제주귀리쌀2kg(택포)"
  },
  {
    "id": "2842521698",
    "name": "메밀가루 600g",
    "company": "1등제주메밀 농장",
    "title": "1등제주메밀 보리 귀리쌀: 메밀가루600g(택포)"
  },
  {
    "id": "2842521699",
    "name": "메밀가루 1kg",
    "company": "1등제주메밀 농장",
    "title": "1등제주메밀 보리 귀리쌀: 메밀가루1kg(택포)"
  }
 ,  
  {
    "id" : "2842521700",
    "name" : "제주보리쌀1kg",
    "company" : "제주보리쌀 농장",
    "title" : "1등제주메밀 보리 귀리쌀: 제주보리쌀1kg(택포)"
  }, 
  {
    "id" : "2842521701",
    "name" : "제주메밀보리미숫가루500g",
    "company" : "제주메밀보리미숫가루 농장",
    "title" : "1등제주메밀 보리 귀리쌀: 제주메밀보리미숫가루500g(택포)"
  }, 
  {
    "id" : "2842521702",
    "name" : "귀리쌀1kg+보리쌀",
    "company" : "귀리쌀 농장",
    "title" : "1등제주메밀 보리 귀리쌀: 귀리쌀1kg+보리쌀(택포)"
  }, 
  {
    "id" : "2842521703",
    "name" : "귀리쌀1kg+메밀보리미숫가루500g",
    "company" : "귀리쌀 농장",
    "title" : "1등제주메밀 보리 귀리쌀: 귀리쌀1kg+메밀보리미숫가루500g(택포)"
  }, 
  {
    "id" : "2842521704",
    "name" : "귀리쌀1kg+메밀쌀600g",
    "company" : "귀리쌀 농장",
    "title" : "1등제주메밀 보리 귀리쌀: 귀리쌀1kg+메밀쌀600g(택포)"
  } 
 , 
  {
    "id": "2842521705",
    "name": "메밀쌀600g+메밀가루600g",
    "company": "1등제주메밀농장",
    "title": "1등제주메밀 보리 귀리쌀: 메밀쌀600g+메밀가루600g(택포)"
  },
  {
    "id": "2842521706",
    "name": "메밀쌀1kg+메밀가루1kg",
    "company": "1등제주메밀농장",
    "title": "1등제주메밀 보리 귀리쌀: 메밀쌀1kg+메밀가루1kg(택포)"
  },
  {
    "id": "2842521707",
    "name": "제주메밀쌀+메밀가루+귀리쌀+보리쌀 각1kg",
    "company": "1등제주메밀농장",
    "title": "1등제주메밀 보리 귀리쪟 әдеби됄: 제주메밀쌀+메밀가루+귀리쌀+보리쌀 각1kg(택포)"
  }
 ]

마지막 귀리쌀쪽을 보면 데이터가 잘 뽑혀져있다! 굿굿!

기존에는 두개의 엑셀을 가지고 2번의 작업을 했다면 api는 한번 호출하여 처리가 가능하다.

이제 상품들에 대한 정보를 가지게 되었다.
이젠 주문에 대한 정보가 필요하다.
일단 api를 확인해보자:) 

그리고 완전 자동보다는 반자동으로 체크해야하는 부분도 있을 수 있으니..!!

체크다 체크~ㅎㅎ

 

반응형