사업자 설정창 갱신

This commit is contained in:
R5600U_PC 2024-05-28 01:03:14 +09:00
parent 3187aee549
commit a0b0c8b4d2
120 changed files with 840 additions and 518 deletions

View File

@ -20,43 +20,56 @@ etc4_title =
etc4_context = etc4_context =
etc5_title = etc5_title =
etc5_context = etc5_context =
쿠팡_쿠팡id = gAAAAABmTwfF-q8bE6HSZupUC_RbAE9l4_tzkZfGnPgHrgYZD6iTir2fitrKHnHGUdTY6loMEbwA3OV1FpgvgqK-9Q-YcrG1ew== 쿠팡_쿠팡id = gAAAAABmVK6vTLxv4G_Z4PG0Atjue6ELxBhZJw6BFzEYSKhcIuRo2HP_rjgDlWSGwxtmHfeNoVSPtWFVwZfzOhzOam9TnQoIpA==
쿠팡_업체코드 = gAAAAABmTwfFpjV8EEdrX1vMbftUnP3nykXYDSIWuX_ESuip4UTLhv-9IyJINiB0jx573XZdkkK9dhk_BizEeQYAM2bGgXKbwQ== 쿠팡_업체코드 = gAAAAABmVK6vFk1CR91FPc7XAt4zMPBJu6kN6dPm7J0mQwhuUdquAdormKAgtFs8RuigSYiGq-_F-xvX7GTxRiiySOg72vl4jw==
쿠팡_accesskey = gAAAAABmTwfF5i1Sz9qtBcJ3TMecSEjjv2XOPsC2CZeptGKloBp5hi4Zpjd9jKbHQ_6_9IE92W9ysvcyE3Q4AJ_0DaKaU1Obo8sK6xFdsGKnZLrGAsxpoYnM-tzEy3ohTLZpHaDisDyz 쿠팡_accesskey = gAAAAABmVK6vfthb9NRfvqkJhV5GFBiwEEgDkQoe4E-up8NngVaxo0bFZ-QKTXb_7d2htHheyee7z7MdtdIq2fT9-I4ZlcirekJGu6I89O88zx7elUgt8VJXjmUKTlROZqryMg2fGCTa
쿠팡_secretkey = gAAAAABmTwfFH62vqrIXLmrOWlmhwOogE0p5XwmJ-rvpKJQ1oGwXyLZe_o1os9e2Ok5dSqtTxvJhanoU0GmIVBHc_WH1b3G0mjPvniA_j_ZslG6eFTy5qw4doEoKnSy-L41_O4BFcuyF 쿠팡_secretkey = gAAAAABmVK6v_6xBWgJbiON0cADVhCF8KDjb1XXHKv1FjGcG2GXUuMx6ZwB-UbM8Tr4oy3b1MfkLpYsL4n5t4SHz6YpZkxlaJJ8fIV1eGSmppsZohZPBnW15nim_a3sdnwODOcJ25M4p
스마트스토어_업로드할스마트스토어계정명 = gAAAAABmTwfFK-7hFhMAri8ID2yzg-VnO8dBsMoU1r6mWRCYqDLfYk98zjnZNIkUvB06Yv2_nktM7AXC6oXRQ-7suXrMWbZHRw== 스마트스토어_업로드할스마트스토어계정명 = gAAAAABmTwfFK-7hFhMAri8ID2yzg-VnO8dBsMoU1r6mWRCYqDLfYk98zjnZNIkUvB06Yv2_nktM7AXC6oXRQ-7suXrMWbZHRw==
스마트스토어_업로드할스마트스토어계정id = gAAAAABmTwfFnjn-TXZXK49waTB7hQKdJ9Rs2AN8SiaEnSUoXkfljsLho9R_St9_UZ86xyB4cFT7OA46geMsNSOGGVpseoin0SMcfT614JuJGGi-WkCbWXw= 스마트스토어_업로드할스마트스토어계정id = gAAAAABmVK6vuCaawvAVU5xNMvtO5eLBogOCxUHD-ZYSCBbjk3rra-tV1RIVoCbSdQBqB3Q_-SnC0ZkHNPDTijymyEhjtsbtsQR2Qn-Oi5bhUos4P3_Uw3U=
스마트스토어_업로드할스마트스토어계정pw = gAAAAABmTwfFhUoRpShOQPe24zpaBONYX9zzxx_MAzCK3_EUVJ_8Ufe2GfBKfD1-gNGjvZw9fSeQyd_SlGd2yvkvmWCWH_5sGg== 스마트스토어_업로드할스마트스토어계정pw = gAAAAABmVK6v67s28tsM-zth4uo8XVE9Xda5Ywt8sVSksDOpHz5nZoCfBfLKvfBl0BXrFkuYNfcip9jiDEFIs-2qd6wqg_8NLA==
스마트스토어_애플리케이션id = gAAAAABmTwfFtahN05LGM_tzCkvKdQJW94jsoNWOwbpBSssksouGjQbGiDCIgxi0S2OrHZPiosVyljtSCMknKut17_RZiONKtHHa_qHUJrV62JR0CipAD5U= 스마트스토어_애플리케이션id = gAAAAABmVK6vEX9Uik_jn3vJJ0Go45162gA1wfEM2w5ew5rfqhp7ZJk-Dnd0H5X06VPKdk1XwDbVMTccJYGSr66wIiSC1-IWZTF2aer2InlRCw4R5nfQ09Y=
스마트스토어_애플리케이션시크릿 = gAAAAABmTwfFitD5pewMwvrMpoR9Oon6yvRVYLoGtSIX80NbIddMKU7y_j3GtcXQ4Dqe686zCfV_OIw67EpftUJoJtIr-hcBrVTzM8ou8ovVT4kkWna_0OY= 스마트스토어_애플리케이션시크릿 = gAAAAABmVK6vNumdvMOkatp54E127VKdf5kRUq1rJePO2jQJOtXey0MWA46QvzqScX2e93ZoixxR_KdI_AwwMm7hS1yxr1-AtZMR81gWXYshgkltDmixkRM=
esm_옥션id = gAAAAABmTwfFwZPgm3QPQz81tzf8U_jxZLdyV7nBOLmknBqrAkaFDgibPXhoNZIvfQ2IA1IWOiJuf4b7S_tHjGq0jFHCjc2OPA== esm_옥션id = gAAAAABmVK6vFErr3pszL044iHTPe_QmxxIL-uNa05rcJ0oujwiS9aQkPNHZn_apRqkOdgP8cyIa23CM3JsdpwgHpPZAFKvmvQ==
esm_지마켓id = gAAAAABmTwfF06fMjZcvF3DSoZXyvnLTc6ZTpDVaN2zmbOPCVbMNcPi6zePYw0aYievT2-rVq5K3ro3sOVNfVjC2SW3KWdnkbw== esm_지마켓id = gAAAAABmVK6v3-U9tVBMiczLQSfS1D7Ppk7cmU3ntr5OxBwPoUjNJsIVUok_hZLgi0WUhisiWN1M9k5rWRNiVpekibNUGobTeg==
11번가-국내_apikey = gAAAAABmTwfFRnG9pkqbSZDMFyeDxJ38QuxN-VZep_EWMPbJucc24AeHbuwKN2zORUSHEdMsOpzREU5IGeFi1qQMcmTcJjh6UlCDeN4wsAxnRvkfZz_OBEy0iIzg6ZMynlLCyTmvo7bx 11번가-국내_apikey = gAAAAABmVK6vjQFBdPlOJgR5g5H4xixNLvuAUeuiy3SGzKfFiFhbsKWt2dK7AS-rydVmz49rmSd649w1ZSpnU2cft1pECNpOcOCHg7Ad_-Z2vzNUV-Wz-ca98qSdzVUDRV4TG4VDADRl
11번가-글로벌_apikey = gAAAAABmTwfFUcSJbxnxONNrfBGXJEyVHcFWZ-yZ5eXcFVWSNfo0RfbHgcTvdD5fCp31phITY9UNENxy2pxO1qhGPc41Lg4oKr_fNnoPk_W4TljcsBbCO4SpLHMwNUMwhhPPMLrNLn1c 11번가-글로벌_apikey = gAAAAABmVK6vOcyqJ7l2-HpicQgcRpbbBLAARq4xDYfFuMy4c8r5mZWNS18QazsZc0Y0dJ4rcLpLV_H45LncecBtaOQoDnRxHnJ6f5jyv1oMW4DuQz9T1sU5wtJEYYM65g9_fahU4lcA
롯데온_apikey = gAAAAABmTwfFI1SPqtMPJU0hLpFWvUohCQTJTAZSSVsBmzjh81s3g4L32bO6IyElo_e25-ALoiOS3b69MuGKmpZz1EhTaO-vbK_TwzC4yde5vy53WkGWxVvqdX2_C8UiLnIypB5DmlG6rRBxsGlhBvhXoqv8JT7xrg== 롯데온_apikey = gAAAAABmVK6vMieBkWVju7BJdDFX8Ft4T2uKDJomopRXvp0jRlp_iroS2PAhjJ36OHpB47MNF2wSivjW723XWoA4ZRmTp4pLj5hIsL4WqvlKK_n3BTq8PbZqx93tuKwLUda2GNw8w7UsPJWZeO0aMePfCk_cxZKWGw==
인터파크_상품상태재고수정인증키 = gAAAAABmTwfFbkMcgmjA7OjPIMAHnoVToFVt9yQUud56HN0ndFqQEKXS2LhopIaR_N5IDfe_wUpZM2pRdjabR0-9oDxNK5una4JdNAvfJVEM89EGnfT_GgMmA3rW3MTKNCGN_yuqeNlA 인터파크_상품상태재고수정인증키 = gAAAAABmVK6vnDSw_hgqQFub76hW5O1DxtpQpzItVaqWBfwfKTNLEorVNsFsM6-6Ajl4yHwUQC8JuyxgY6xpciSy9wZsEnHf3yeEsXB4UEMbNQM4HkYkr3B6QE0qtRg02zGrvHPvvlFc
인터파크_상품상태재고수정비밀키 = gAAAAABmTwfFUy_Gcb8BZtXIA0P6InFzRJYVruWewiGEXPurUwqqLlMBe9dCxANrvM6HY-0mG-5tAdBVA1FnVxI6cKi5KfbrN3SnmXJTVZ_005h0VV8T_WhBs96ofs2QhfzidrEt1RhA 인터파크_상품상태재고수정비밀키 = gAAAAABmVK6v1T4xdEZDU6PUWled6Q3BfjPCnF-FEvpSAwXzImIPVVzFCDO5wiigUIoiFjcXggcKKr8nwHmIKWJWblc8jfbJx3ZSseG2XbUKgerdKWIqEjNEfXn1W3RIAtg319Oebpue
인터파크_상품재고조회인증키 = gAAAAABmTwfFrk3TYYcFSaTxGeOPVxAZIFHGE-SQh0Lle0gDxcAMXK-PrbUFq7xOqRgMap3sRf26rwVjRqY5Dl2rWqwEP4I22ShODEVV7Sm3eQxBvPmbu0gEssOdVBAfSF1d1NzWgtfR 인터파크_상품재고조회인증키 = gAAAAABmVK6vF8dR4lb2nNSs_PHStq8Ubn01rdfn1BkKZyKTQqQkCGVk7ln1ZWQxqqRNqn_bni850dOUmRrkcy0O1hzdoCzI2TIRm2SSNyaP_YCsxVIJFCctZV7oggeqStjBQNZYIqvw
인터파크_상품재고조회비밀키 = gAAAAABmTwfFJ5-IvmZi0Qytz9Yj4iFQcgz2peDTNxOg2Z9cxyeBHhJJAoIArNzYRpN98AXmt92tcv9u88whXeus2E4RroD4Vi7VR8969ANS5QVW1zAu4J5v3KlwhboR7LZzdGWhnCmr 인터파크_상품재고조회비밀키 = gAAAAABmVK6v3N2Q19CtABRRg1SMhShapOhnXAKLpJZRG82PvFDROmHRWNdxAtjFNkhTJqMeiQO-CCcwa1pMdENDzf1T_qvjkHwBnVZyzCWXU30WoF313dcL8dlE4GyhUJtdKCwVM9Xv
인터파크_상품정보조회인증 = gAAAAABmTwfF7gRrervDilMXykQIS29m9qNqMvB54TmR92v-3itn_4_o80qvwSXAHSK7DrxD1jUVKFCH4ZwN8GkZ2DGNU4BYGzBlXAtdaZEN3W6mj9XnHCiPOC_PuZVQIBDd51PaDoN5 인터파크_상품정보조회인증 = gAAAAABmVK6vmBOJIfkyZh2o0eDslwQja2eP4HdqMdkaTmKgZ-OLXdYR-kVp7kTYXZ24Uij5OTJ7k9Kr156f6t21JXikJX7qK4oq2SLxri8vwiGozWPM6sUVxPXnvp7Fw-eozxAbnBvM
인터파크_상품정보조회비밀키 = gAAAAABmTwfF9VP4pEyXKKecxICkazGYU3_petMXKW7haPcslERC-HfeBm5kbMLwMeZw0pVHcGi9YeQANyAwPRXDle4XiwBy7PmA0DhQ0CfGx_uP5iswxf8ZyceSwswULROllpYffSNn 인터파크_상품정보조회비밀키 = gAAAAABmVK6v6ajMSQ97lJd7mG53P3Yo2_8q9fQehZEoZelGFre9I-OeoUOSnJKHrFCBmx3kc0qvqX2KQm0aEEeLU07EZjnOc9FVtOYQQz6JKdp4FynxrtCzbzt0JUh-yTptq_E2fI36
인터파크_상품수정인증키 = gAAAAABmTwfFoH5rxkxyKiynGcjDEpaei750PJbmibZIvXiab1zui6BjI9Z-ThNmKY0DvPm269ATpNhT1RSilzKcUiEo63kufh40zh3LZkOUY5PhVDtBx7Zr0KuCQjGnYAuNDbf3VMXl 인터파크_상품수정인증키 = gAAAAABmVK6vuMINvsDhTxZTjOmS2VQAuxu6DAcFL-qTuNoCZdY7gnRDajNs2r9iw7SVJLQ3q6IypxoTsvKHPLYqjaQeEAhySH8n5rFsXvADmDfpmOqC1-FAacKRno4EWRJAiBpXiunm
인터파크_상품수정비밀키 = gAAAAABmTwfFt_nim7YScE2udkTTIDI-OUbZ5Ig1SaXrF9TCt0_AmvR77Hx9YzK5xStjGFuWsmxh4z03bmkasjhGXEkFtCLtsiOVXuFPHgNTcTYvZpOmEnBPm1EWGA3wPCqyEjjP_gh_ 인터파크_상품수정비밀키 = gAAAAABmVK6vy7EwybRVrrp3Lcl7paqfOOHsJ4QYOEjD4Btt3_RTV5HUk8OgUo6sPtOIvoWwdAhDVAVh4CweXXCJUoZIEr-RnjTDdBCkldxbOFiICxDciCKqn3MbF5Vt1greK2PsNsvo
인터파크_상품등록인증키 = gAAAAABmTwfF7CO5Io8Hcmr0f3VEm1eUUnINpZYtOelEUfV_4CAoPHIMz7xJfWZBgIOw5Et245ZP4qwXitE4L4s8eg92FTJW7cnHdUEouILcPbEqloTD_XAjiTweZ0qLRKZub8goZLId 인터파크_상품등록인증키 = gAAAAABmVK6vRudqRPcUAuyBl7oqk-2ZuQxNUDGajKea4bFwJqgNym0b3Pn5_kRI-cFDzonBIxtAWMGOnTP7Um7_GVfJk0C09a3EMD7bp6HedUFJzDPA7TB7F7T9vzrV8mtfjBbzzp-K
인터파크_상품등록비밀키 = gAAAAABmTwfFJoDZ2MKL3dLb-kDsh_XptdZJ463S1d3fIkOzuIC96pr9-eUwSHi5F7Wrmrf_mpkKp_p6U8kxP11GgvGGQkVyA1GL8_LItE5DC3q5Y8NDtN1OYmgNHaGbJ5gWibd47tCq 인터파크_상품등록비밀키 = gAAAAABmVK6vgRPB7VB82WQU7z5OovPJoPmLLz0kluZqBgYkthAmot_vIVWCVSIEAruInf81GxiitgRSl5SOvt6JCgZvrvL4b71LPD79c3TSmrnWaktNTGGgeMycWrjWQuJascRF52ug
인터파크_반품배송지조회인증키 = gAAAAABmTwfFhMizPCvggS-JnhRPQY42osqCTik46NVhizMgDE2HzLF2OWr-qiXPZVl7aDXboQouHGSe5EWGMlBEXvKD3wLWr5XVTU8yhgYhYyZSC7BDPH6o2Xbeosjo0TTpacnUzeXV 인터파크_반품배송지조회인증키 = gAAAAABmVK6vRLoE9qxNuRcMNEwFqU2zskvVVHJqaArxk8MEZBUoYWMo4uqflU65YQLX6JTB0L2hrRDLQBbWwI1zKcJ18u1IGpX5h3c4mCPSRqcfJg1yIJCed3zE4USAG5y0curKU0cu
인터파크_반품배송지조회비밀키 = gAAAAABmTwfF2ALlnmxORad1sBqjK7zYevjmN5SRGbEXm3AY8Vya4mJewOQEusSiZrXfCE0cchyj5s_HeGvNhF44U1NRVX0btO6HxA2y3xKeKdPJS82etC-CDsNDDIyXG1bQYtyaLIrD 인터파크_반품배송지조회비밀키 = gAAAAABmVK6vVNAsTUlQtJ5lpMmbO-d3jrWY0F6ClfpiZ7JGxSD6kz5hu7cxBEQfz2oF8_csgmVvkIZnqautX5suY4rNFgRUMu_i8uMGQhOSfZfz8XU0oh1MATWQGj4hFY6G5KJZWftc
인터파크_반품배송지등록인증키 = gAAAAABmTwfFBVe1H8jKO4r6mOlXS0DnRDTk8NAWL3xoPDm9OPWdPeAbhxaG4EzAkJu3SLKf9Zis1xxQtD_R6vNceW8JIJVjq3DxgPU9ELKCMgWw9G6ZbxupquoJfUBeieHSQjTY99vW 인터파크_반품배송지등록인증키 = gAAAAABmVK6vxhyfo7WaR1iIis_tLcUHwJKJxzNLL6eYeuKheqjiVrV3dWoYVrcwWehxL8lp_3gdkJo35PTgJj0PoXeuVJvCO-aKqTjQ7x3vEr_8BluK-bXL8X3oZAox-dXlfzEqy1hs
인터파크_반품배송지등록비밀키 = gAAAAABmTwfFQCI-pGOVzBSbzs_mlAaJ0IDMF4W_2FTKMc2dnHzvHesu9IEftEsG4N0T99I6dMHsUR3LD8yz11hwezMh6zFd52bv88-uPm-iEIcy-C1qI4U_06j8U_zzsBCuQiZUr3ht 인터파크_반품배송지등록비밀키 = gAAAAABmVK6vlmbg_NnmsmMPJAUcuKuaaLkZ_CzuH-oqL3xueM6z-JLq5205RPoJi0biNoHmL90qbv5gXNb4wroUE1HRqWBqGsyuaUPYPllYp2x2fJIzuzWIlkXg-5SDIpKJTOcppwPq
인터파크_상품qna등록인증키 = gAAAAABmTwfFWTASjwYZAeTvnuWMQHKCdSwDsiDKXaAWtaL6ZiA54U4B3kNvjczqmWfCjEI8pvAMz3IfBdbIfnai17Pws3WfHkWgAE3HIcsrdBV8_uRgv0u5e9lC566R1v2FIAmj9OgG 인터파크_상품qna등록인증키 = gAAAAABmVK6ve14gULpe7wqS6JFXJIZGW5cxRnBzPmMXG6PDMsVn7ROg2haAodH40WgUPS_2AUOUPUg0M19n2scvpzXuVdNCxw==
인터파크_상품qna등록비밀키 = gAAAAABmTwfFkWqU1Ixr0e2r9UQETu9kTtRiB-U5l-rRbYEaZJ6QN0y-nvfMezHs1VqfVh5RTHogyavLahZMjPuTs57oo-CQ1Bf8yz7fKVG3iBY1pq8qp4xqPBIj924tOVxYm-Aca-z8 인터파크_상품qna등록비밀키 = gAAAAABmVK6vIRxEfktH-rUDHTE_eYdq1CINdekUpK8yv7z8cEpwXpkpKCY-QDuNNHjUoLLyWEyIjbOYoRbI02SfqzxYAJoLjg==
인터파크_상품qna조회인증키 = gAAAAABmTwfFF5I1LJ05ZCBT1WiNSpw2UQumnN3ltVwC1tu5ZLL-y9lV_Tq7ewpVdAtBN7r0IWfPOCNFeh46iRrb1H9g6SgwNafW_duzv2sw86t-cxnUQclDB0u-RHLbYHHiAcnB5umM 인터파크_상품qna조회인증키 = gAAAAABmVK6vxnsNcwP33nOL4NZU4iaE4Fhp06PKSzXTSLy49KnXvpUedu5jqN67Y-iMbKiAzdKxSd9sGrFwr1kyWleMHutd4g==
인터파크_상품qna조회비밀키 = gAAAAABmTwfFMVi-ccr4e9bKuqx2GIIci5oyuTIoktBc6QE9CVM_x34JGiYAIbNlDge_WWWbBwKeT5FsA80i7zxG8EeBQQ-Yc8YG24vZpHK-4qn1j_bZcNnPkwK1XL7T5bhDnAtzngvs 인터파크_상품qna조회비밀키 = gAAAAABmVK6vbOvdKotosVZpOUfigYAupDOzsT7c-81KiEUm3BS6tU4CpZRvx0uJOCWw_Cboyf99HBrKMS-DSDIw2EbYxtnBbQ==
인터파크_인터파크업체번호 = gAAAAABmTwfF8kfWXvbdXpsK1SSLFPn3GTsMah3x33SZhiPv15PxKAN4BKkWrSArXbWVQOM2cgxibkV-lI5VsmN-sx-ZkGogbg== 인터파크_인터파크업체번호 = gAAAAABmVK6vRSjKknR_JrfOJwzXtfAjoBAf__QjOMAt6uYuLoG8TuUnmSkT59sBknV20tm9c2DTU4rKqilssn78pdQ5QVufWQ==
인터파크_공급계약일련번호 = gAAAAABmTwfF3gKdhtuXWNXix3WYZyVDQOKJ2l0lJjo5UZz9rBt4uJbq8o9jiY1lEk6_S5F-76qlaENqTNjwqUlS0PkUKmu5rw== 인터파크_공급계약일련번호 = gAAAAABmVK6vPof7AyJWsO1fUnYU6qAjgHzbp0m9Zlg0bt-72lum-ieap-dy9T-n2ciM8YxOVDWy2lB_2zxUyVF2XFCjJPpYXQ==
위메프_apikey = gAAAAABmTwfFPY2d-yxU_O2vmxgHO3WVTDN5VNY_iGGgV6EPc52C68XOC8D2jgNpfbLr1cfKYDH4kK4OnW_piqdrDIUH6hvi6w== 위메프_apikey = gAAAAABmVK6vYESSNOwZbUS-rXpK_IUDdjaiTTYM3NecPXFjgWtbJWfP79xelNHzhTK1hQ08wy-vxd420-pnyGABxA9HliUYpw==
옥션1.0_apikey = gAAAAABmTwfFh0EVW-4mmupef2BbGKEimCNv0FSbVvPai0x2LsOpjw1S-alcopVYni5fn-xvmfjDIoxRGmlIRAVgFeZmORuolg== 옥션1.0_apikey = gAAAAABmVK6vl23OYgibmkquwQGA-1kHiqln2W0OR6tXnZGsVHyvIjqd3lvq1FkEI2q-umt3-wt5Jsf0IRDjOEsC-duVezG8Dw==
옥션1.0_멤버id = gAAAAABmTwfFnIxHrpMzT9_g_Oav8oqWwrHCxz90vU83MfI9PqlkK22RktuE76wfpvs-30toP2MbjXaPN0RPGsIa_L--3v2HbA== 옥션1.0_멤버id = gAAAAABmVK6v8jUCEfv8d2P3nWJmYvMSphp9puHQkJ1E1Z--9cbWFZl5KZe4SW8KxLPsNp_feeKoXW33U8MN4NyRGdEJf03oVA==
활성마켓 = 쿠팡:False, 스마트스토어:False, esm:False, 11번가-국내:False, 11번가-글로벌:False, 롯데온:False, 인터파크:False, 위메프:False, 옥션1.0:False
기타정보title1 = 기타정보1
기타정보context1 = asdfasdfasdf
123123123
123123
기타정보title2 = 기타정보2
기타정보context2 =
기타정보title3 = 기타정보3
기타정보context3 =
기타정보title4 = 기타정보4
기타정보context4 =
기타정보title5 = 기타정보5
기타정보context5 =
[BUSINESS_2] [BUSINESS_2]
사업자별칭 = 혜리수샵 사업자별칭 = 혜리수샵
@ -74,44 +87,55 @@ etc4_title =
etc4_context = etc4_context =
etc5_title = etc5_title =
etc5_context = etc5_context =
쿠팡_쿠팡id = gAAAAABmTwfxTZNLRSqfmf_-qflA-dYr7wTigi21XEziTnDnKTUS4chQakITJAK0dzeg8gLPIESUNmXHsBSzJz1ZkVgf3zl5Mg== 쿠팡_쿠팡id = gAAAAABmVK6vEIOdCy0uP94OjkP7jeTqbJAAdYTzFOvr9OWZWl7RwzBdoCg7wcnqe9PEj2GxOT6NmCxzy3UzlWIIzCjwzKvCmA==
쿠팡_업체코드 = gAAAAABmTwfxf8I1R8kb9t4puzgnW178WQtVXGmqB-B7NDNVm6vYv7V_cjr6UWVZvFEEPryLhf4vV3ltFI2k0WiYxghPUpnv0Q== 쿠팡_업체코드 = gAAAAABmVK6vQixybHZtrZEENsUHLZ5mJzeyLnK37SDKccLsujuYVgdZe6xotsc42PlJjTctJUVndpWUG4fUmxvOdlsb-srm7w==
쿠팡_accesskey = gAAAAABmTwfxswctgeytkkEIiRp-4Tic3QUvxVkniLdIw6O7f0hjsztE3KERWsoRdy0C41mIFa7ZwksO-zjY4uDGUH4dauvBFkRiuHqlSWGvmrpQSoZMzZeHGK6DNuqbV46-VXXJMsaW 쿠팡_accesskey = gAAAAABmVK6v4w-LetzrhWGxVE0z7NjPwUHJWxowF7-yfP2KdzjItWN72rWOg9MmRSSKM2pKX5a2xrFMz4nj3tSKB0OdRVYLrw0gOiuj_Cu5GRvU0HtT60fYdEv3mHiEAAoW4_0bgEQi
쿠팡_secretkey = gAAAAABmTwfxikTd0MmiZyKrraTNl2KQHXB2wjcjq36e6-Eoen3O4cXgRUrkAlpBhSYSlvSfQaxfhOh9APYKYBm0pB9wTmY6X2ldWuM1qPzWiBtwW1dTpafmmJg1UOFm8xOEdyDjFFTA 쿠팡_secretkey = gAAAAABmVK6vf8qC2m_bQ8UNFjI5Q8Fmlj-U6evJ-3cHX5RJfbEOcpf06hhCVG1qRvINPQpRvekaYwm0rVKgyuXSGDyRk26YZ0AF8y_kTffXOb3jItXKEKtw93dcxDgcM7qK4EfpjVf_
스마트스토어_업로드할스마트스토어계정명 = gAAAAABmTwfx8jDez-OfoLVaxWLHufn5DO_V5Re7jEvPcDDq6_fjq7h2cnKHvaklFCDnT8ltnPkLU_MPaSKi0NQAf1y2tKwrdw== 스마트스토어_업로드할스마트스토어계정명 = gAAAAABmTwfx8jDez-OfoLVaxWLHufn5DO_V5Re7jEvPcDDq6_fjq7h2cnKHvaklFCDnT8ltnPkLU_MPaSKi0NQAf1y2tKwrdw==
스마트스토어_업로드할스마트스토어계정id = gAAAAABmTwfxPXBPmWlI8cxqi5KVKumHfZaQoi2OEcuwWRyyzs2jpbn4n_Vq-QQUZHtfslU0By6PXbHhS8YudeIQT9GyeDtlUfaiHe39mw8XImq_77N2jHo= 스마트스토어_업로드할스마트스토어계정id = gAAAAABmVK6vZUOTvqELwJhcVnBxi365w-mO-_j543jjSG-evf6RwyegDpiJhm1HyH48cO9hCPg3BSw0rCb_hh7txB7HC5_LMy-b5vt2hwIcnrtWE3FiaQc=
스마트스토어_업로드할스마트스토어계정pw = gAAAAABmTwfxQSZ1r3Ti3siFTPnct29moGgKtgCsig4nFFts9PsOHlW0KJA6ufc-tqWu9Bi-U9pvsm_QdKLDK10P2AMBiffaTQ== 스마트스토어_업로드할스마트스토어계정pw = gAAAAABmVK6v-wOkFUtM7G5ANymVsm32Z7p6ls9pjRkZRYKsmdN4tZRsdlzN7_LDrZkShUrU3coZ9RuHbI-ORkbHet6sgg4_QA==
스마트스토어_애플리케이션id = gAAAAABmTwfxhLyvo1awLxKauEgxtm0J6JY0iiXXyWNDPZCu7PO2SVkXjr_FsPLXJnJFvKdmSHivavSiEFKexNU7BnpZgeTPA_rxqbZhHtTp0o_Fd0KjA3g= 스마트스토어_애플리케이션id = gAAAAABmVK6vIcm87mPX15uimIRaWVb_Oy-Yyz4-e6mfojfPGH2hgZs0AbUktSoQMe_VYTm25xC-Che66mKXef7SM3OF2MFwEXRoU8hW1C7TP2s5I9AKWQE=
스마트스토어_애플리케이션시크릿 = gAAAAABmTwfxhQtYpbYFBNT2FbwVXitoqYUaLpeN8yUQ1zqS-jtRJ-z1mPTMt2IBNdvYNrg_cLiiwVOBlsCyZYLy80xVg_OkWHLji5SSnmd7TCg-vsiQvBM= 스마트스토어_애플리케이션시크릿 = gAAAAABmVK6vipiWpT40TMCwMqQopu2fAvSFdrzLJpmMcltyfq_URLFSfOo3snOKaKlUB4lLDYjDFC-DP80HEpnYekxVeNSvs0Lp5vTxw_Rob1mts6KbllQ=
esm_옥션id = gAAAAABmTwfxLWa0gCNPSHLyoCMUlKxRzkmb1Pi-qQJYiOajFQt4ZvB1zCVhD-rfR0P92CEHhj0KgJnR7IoDsK09sQw4cKMkyQ== esm_옥션id = gAAAAABmVK6vz4LGiBamaAzfFKCIeBVKxihEjEidUUfHDwgSuqXWCwtezixgoolePC2abCBkhX2n5LvnYwJKvLiFXPCf6qhvzA==
esm_지마켓id = gAAAAABmTwfxsZHCy96KLyrr7OvLfhEoo1sgXwbGhpZVICT9JcBkiTram96kGoCkRSCDoSwTQUxY-AWKZQsgRY0WhKuKr_Tw8Q== esm_지마켓id = gAAAAABmVK6vsXVh9VwDJAKrxjNLnlYgD4MUPVnVyRKo5nRU-feXaaqaPQ7-MCWol2z_fhD_gGN0A0jajMesoSGUk9P9lL6kmQ==
11번가-국내_apikey = gAAAAABmTwfxnqqHRIrKRqQw3nPwjbWoQAVuKDyxWnkgkbpF-UuedlyX1TfF6Jzs637_9gOfWxHWvuU1tJEdqgzvC9an4AM4cRGxgtD2fd_rDGom9EwpEESv2aZhiXtMZOEykkDC7qrX 11번가-국내_apikey = gAAAAABmVK6vKdGmcBAttJQzLg-BMI5SiiJ-nv49zWQFKq-bkS0IxrWVD6K895JvLsaUfly-yOW5hixJFMTIpGgp6vQUEf_z_9ZDMGy_od_V3tqzWDHOWjXJ_bkKWv1TU203F5h92ivr
11번가-글로벌_apikey = gAAAAABmTwfxEwo4rvs1T4bYt_4YsFC4aMLmIN6UzNFHTCjIw0p-DTmvI-ArP9Luc62AbrfPvj6KeGMSzr_3qCPU2yE8vxO349NXbD_3vv_iVDJWLrjS9yjoSvB1W-hqHH-7bUrcfqyu 11번가-글로벌_apikey = gAAAAABmVK6v-OP6WzkujnJdUWIUCyJ-2OGLJHyK2o1ez592kdnn2_LSyrPzYjHV5QkRAb91s_LKwUrDJv-iTKeipyDu2KmOF4BmWNujpdWbf92Z1AsDWzXPxi13y_jUmIxMyvZlB_Lb
롯데온_apikey = gAAAAABmTwfx2bvlpaK5G44H_R3-8Ft7LuRZrMstw6_bn99TQHiW_jzbqfILD34co8Aa3S2iBvLRA7caGCSiz6Lr31Gou02gSsHBZfKCXny_5aFGKYAgkeEfluPIHpm-HebisOpW4ZG59irQtdghUzB-GKQdAaAqVg== 롯데온_apikey = gAAAAABmVK6vsKnsM08Ie5yiyuwJcMskYBuun8pLvIRZKUxNAeHAh0lwjFPuVVtfOPA-ytTG9l6ZL75LFzb3H-MTE71Q5z870amuquPf_vf-_RKu9_4_HWBqMW56HwH0cUJBbfvT_0yPETq5ofnS8ByNvoqUfs5Tlg==
인터파크_상품상태재고수정인증키 = gAAAAABmTwfxmsIYl4SZbmeKCCu0zsqoq2zN985DXAxd5nbOM8AayoIPwqY3yfF5LuJH6yLkr3_6NoU6L98FJZ2NXNQ7kFidazQh1jkk8PR7JsmFMzZV88m8eDwFroki9dD4V7trPtIe 인터파크_상품상태재고수정인증키 = gAAAAABmVK6vD5tCzQ1q8wyvvMogxVWyx8UQMIwMB-Hp-KJnGQt-9u90KYC_sAPSf0H_rUhSCZpwMISwUfCPRDP4iwOJCwic0AdC0Db9Bws918hp30Mf7wJXBaDpOvIumKeELnJvcKhD
인터파크_상품상태재고수정비밀키 = gAAAAABmTwfxr_z3ICvnEn9o0EV51Lb950cneKGQgPCHupgjvcxHVMvfFS7CiqeCzsdp3oQ9-IDZ0VveIPN5XUAODVBPHxnBOaNZy-QcGjqlrzmQqSYukbYZanjPvV91M9A9HLvBnX-K 인터파크_상품상태재고수정비밀키 = gAAAAABmVK6v7YpyP7-69J0qYgEBLCoI8i9vPmZPWeny_CYuDN-53H7lefZo5VWdFMVX1ffBOOrQvolCGOhZDQ3o8DMeLhlHjgBXQik26kbwkKCqt-tclgd6sRwKmvYpFiqDncQqc8CF
인터파크_상품재고조회인증키 = gAAAAABmTwfxYf0bDlylbZVfvzOvUCpa5snKFSpffrTGXAthcWCui1u4CDFnTFjM1rukGL_jVsqf-2XNaPzEocgwoJ19Lq5N9EAU4x1yQvkhEfcsec4aflqwXDtT0MnMXri1N2eT8SER 인터파크_상품재고조회인증키 = gAAAAABmVK6vWvMuykgWHqkZKean5FPR8lm9mmUOtK1QWlh2bJWXi0sZ1IcTeog1fnl8URhP_wQurXOjpwWjp8gEdOWH5N5m0NIn8CPV3D7Oen4QtTXPEpCsS2YH9-fkENG8FZD-PPk1
인터파크_상품재고조회비밀키 = gAAAAABmTwfxg7ZJavklG3Qc2hotKAJ4Qr_FdoxOwLh92U0R7MsB8I5encnUAxkpbU-z0Gg_lgpeYFv4NcHhPYXgBxCb69DZiOucy7YRJO6vHhmRNnp232otx1PyjMZ2NUZU8fb7iI7B 인터파크_상품재고조회비밀키 = gAAAAABmVK6vb93k9YfzF9FlneRjO-ENFshKoQqfJtLoaOzx9n-4CZIsE6zNS_vTeVauwmPrD-hKSg4R4KO3XOulKDG7DDtXFlfB6ClQ151vcxIBIeDYa6k7PyN6YaIY8xNHyJ-qsK3T
인터파크_상품정보조회인증 = gAAAAABmTwfxbQdcLfEGZIzXOEEG57l8DuQDMxzam0On_IZ7Dl_198cqFUiW3vJTQijb-fpvJtTJlwiXaQgyMtOokbVkgO2uESDFcZpcJmiM8-3fgW9MrLm5btCYh1n2j1qF_4v7Bt1D 인터파크_상품정보조회인증 = gAAAAABmVK6vbr_7OTdgglJE9SWlHhQ5WNoioP67vpRroF8eYepZRwYu0MPxpFWQMzI0socPfxDXBuwo5T3rh_iIzy0E_JHcsA7WD-jTSkyEvRFHxFy1nDIacoiHiZCSHiTsoyI5SwU_
인터파크_상품정보조회비밀키 = gAAAAABmTwfx15EAz0_z3WLwNDIiRn_x_U6YCGnZhFdIwkjT9Tvn79HxWiQ2kIKZTX55oFH347rh2uMmrbqvlX10Ou_QLx70fzbW9zZ9pS7gQqk2NFi-ptyh9F3VQeeq4qC_YOKbJy4P 인터파크_상품정보조회비밀키 = gAAAAABmVK6vGhsfGH6yTyF7aBBRkYYbX6nzjBs_-SXhTC3MaGJE0UrZDKHxdQD7UO4yMsPGxYsiLuNK4bZKWCMmYM0B4ud2q-3F37W9E9FWtWz3cbalKOMgYtPc2XoZ4iwVndakGfcD
인터파크_상품수정인증키 = gAAAAABmTwfxTIsZ-ZOuqusmfq4uO5EU9zYbkfzyJ8YeI1d2LZzmxO8GeQj5T2aP6EbQ3tg7I2Eu0ylOPHZALH_7EZGxZJSU5cPDiLUhqEXSJGKMCyDflGgm2tUXfGLKzP_W39J6YthL 인터파크_상품수정인증키 = gAAAAABmVK6vE4zEaQUQsisgndyCjyn_MfnNuuXd8hOEyIGxH4zUA_TSR5rxzboHOHBA52dxrid1sTa_jwTEyEt7VeWWij794oJeiqzUuaIorpJlwwzlen8orDlUXqKE9JEAfGDRtMav
인터파크_상품수정비밀키 = gAAAAABmTwfxNUQvbKFZJcluT827WVOORQJcCHxR_bLgmSnK3Rd-MW62ehK7jyTaLHclG3ZJmj6ITSVPFLiS0iw5S1KTv6XnUoqsmMOQSF3Oh9dVLv1EUEyPgyfeYKnRaAsyiX5tLiOB 인터파크_상품수정비밀키 = gAAAAABmVK6vWwTZHfnN_NpvHQd48LIdv3ZvsOXAN4uMzUhySKp1QFD2FTHL7aFN5a-1Z0fcWLTuxAxN7_oYJO1BwIMp207RJ1WGbCIq0CADrOs0caVXs9ww4PSE0N_BY_NHnn4iHeIv
인터파크_상품등록인증키 = gAAAAABmTwfxUDUUa5rtWsy9gg5znEA0HpT1hTKp5GXUmLYMLLKCxCp2djW4w31q9U6DMpB2OdBfzuWFgLjfNjUD_oBD52wBuHwST9998pByyr2pJkTyjHEYu4qBsn8UKs6B1blF30WU 인터파크_상품등록인증키 = gAAAAABmVK6vGGvv5r3uloDbd9RsA71LCdoZJR-Puws_zEXaptSYISZmxGBI0DY0nl3n5vOnLgvf8gNmX6vyTjR9o7fd3fe1iJqjjH-zmVgos_OuW1gEF7o3YdizXSeac4VL3v3gHJNv
인터파크_상품등록비밀키 = gAAAAABmTwfxapY6nz4hbeVbIgnr_46sbs-CwtPw1SWLUol03xn5yRo5o_3LS1Cy91rLIB4zoHjWscUpQQl0Fh77j8dJsWtTVpUj-_ry5caA7biA5lcCHQkJxBF3bPwO6k9otK_nv64N 인터파크_상품등록비밀키 = gAAAAABmVK6vkSLiSt-uJtQ2tWurmqjhkpJvKjKxYt2HHDVcwIbO_9nWsd0TXOUJEsCRzbmI9RsF0syzQBOeGRPkk1YWGTeL9UdyW-Rvtg4mK31VjUjo8D2cpo61PZ5JfvDw4tTElm5B
인터파크_반품배송지조회인증키 = gAAAAABmTwfxA-zJjEkLZrZqTAtZIwff6PR8n73iok_YAI720NzVX_UZzL6RsOrH_N9wRdNWYNt5fl1UEfg_xacZ6udcxVKf8ApHRKkF_XjTTRgd7BwxlOwkaYZK7UXeHN9rqe2E_EWm 인터파크_반품배송지조회인증키 = gAAAAABmVK6vKDZB7WdLWeEdyaM6eYBSfmHfDKIsy1BfN-VJellSrL99xKzPKPfSwdVtnSXPRM_BTiOckhguLJ9nXHpelhLz5E9tLUV7wBgwbkR4VMOzI28S_MrWpfaVXQ-6XJu0zOff
인터파크_반품배송지조회비밀키 = gAAAAABmTwfxvcfwATenoHVmG-lsoxLBkDNOvZ508PePY9DHh1d27kZuYsBLs63dWSjXtwpZsNHrkLsG2B9KjFM_tsNcmEf0A1pq12utkbZrxmU-Ct-WWTqJzBTTMU172UqfRCtMejmh 인터파크_반품배송지조회비밀키 = gAAAAABmVK6vTgCjcmkRnNLIBI3_Bs0VO5EGTI9b7IegyFTV8DrdPWD1CzEfIZLpgClbwei_gdiL69Rl00Rl6WTf5dwOChE2fzfLeJaRoPdtU26HXQ5SfoAxSwfHLVrDYG1okqvN4kVA
인터파크_반품배송지등록인증키 = gAAAAABmTwfxWDCossKrfAq6lJUCKGt6hR1OkN_vJDla4Bx7DMJiBg-1Mh8MzMTXnznxx85ABmesM3blyH0MuN1wBXAeuMBkOU4mgRNjUOeoUUjbG2kMCkhl1_Yk4y_tLWeSWZ4xvsT7 인터파크_반품배송지등록인증키 = gAAAAABmVK6v-g48TQJrbYYGpTxKDTVsSXt4zYQaNQ0vOqENj_IwLFEBbo4XHmglE2ZAVlxy54Z-eSg6j3SNj_In5OyCtpMUniZZgLRd1HKndYOy4SvN5LbzBvEQSbCVvFycTg9mZruK
인터파크_반품배송지등록비밀키 = gAAAAABmTwfx7hNSgIYM2X4Otu_kjELoZ1NM3B5GU7xj84b1T5g1tlvjkgfVOBOjLVxCp3oeLsv89LCnY0XVt66an1qsNwbO0LUeuWTWlOrGbkHZD6N5Ckc6IdtMAX0KofwbNePINVGj 인터파크_반품배송지등록비밀키 = gAAAAABmVK6vjtX_YFviKh3lCMP6fl4qMVRCXYjoGGWg7ShhR_LM-mOQ9xBQj94u3D23nCDHKe8rowQug8sWBRX-fhlVaeCho0bM34-WeYyByGrm1m-GoMdKZKF3O8NsUME3i0pVIZrB
인터파크_상품qna등록인증키 = gAAAAABmTwfxnCvMFX7H5Ti4SLPmD7shg9u9WZaghwQiFJeazSn0A5nFe76t0vxTw1Jx86e9aFYAhCoWd2WGIuEEOwHOJKYes8XWKj9kgOnmw9aqYliScw4wrdqHdOjat8i7LEv0arwj 인터파크_상품qna등록인증키 = gAAAAABmVK6veMzNbMBo86kWN1vvL3km3IRwyQdBcVHbThSNgSFUB17xLJ7AxOdRNn9RbHvE8aQvfc8iDAGP0hPc7no5RmVxDw==
인터파크_상품qna등록비밀키 = gAAAAABmTwfxm8qVWtMyiQhHk8wgLKxh2JDNcAcyjK6cfyn7xl9eqTJeE_KqD1-OleMx-s8P9KVV2CuneTu0p5_iEuO2TuwRnsD9oEvk1gxt5FAB6YFZk4uveff8L8ZwdwEPqC9T8qac 인터파크_상품qna등록비밀키 = gAAAAABmVK6v50NGJ6fFSdmIHILj_PvnBZuxfxM_h9KJ23NqFyT8aKqy6KoIUdooz3IyZ30ZMvnUhzLC8EW-45g-xdH747YPyw==
인터파크_상품qna조회인증키 = gAAAAABmTwfx6u0gfkhAPZSXVBqsbhyKl9XVLDiTmdQ44cZWeG0D2WLqP_VX7Saus-jxcUbyxOKvy5sQ3-Uf3bxtdptLRYtXQhc8725jiXoN746ce5pRQpN72_i_5-jvnLlHcTuZjt7W 인터파크_상품qna조회인증키 = gAAAAABmVK6vr2yKUl9ZHQtNPQfGytN-jJ4tL1cp6xXHCH-FYtStbOGB1MQMyUMGICYjIo-HriHAg5OD50dMZtFhrVc6oYgdUA==
인터파크_상품qna조회비밀키 = gAAAAABmTwfxrKxoQouGs9mKC3JNdmWPuN8B1kbnr0RQiB9N1BeYerCjuMJH_pbtaD5xczTe57s3iXX-vBoNLrrgVbP4Dsk3-JrfsUPFUZ3_Ea7CjM4nTO9W7O9B3S1D5phjz_5c-ErM 인터파크_상품qna조회비밀키 = gAAAAABmVK6vMG_d_-7WfErpZTw-TJBLEtml0u6kxs6YXF5Kf7i6TxhQ9zYjeOmtoio5Pm7bwsUFbTNELdCpnooKqtebnx9_Pw==
인터파크_인터파크업체번호 = gAAAAABmTwfxO3fBPzvlXyZ3d3A9Z_86SwOkp63xWYpti2itDL0bjPEvUlMJiMM-dldiaonFMtjvHoElKVEpmyVSV80RpBSHyA== 인터파크_인터파크업체번호 = gAAAAABmVK6vqu5zSXRnAyLCiTXiPs-cZGY6mHY-jvOG0P2XeW0IJt939nmislMPca62LqjLWVRkOsRaS-x2NCICZiznkpNDow==
인터파크_공급계약일련번호 = gAAAAABmTwfxh3c-KV0ArcAJ6TqBhxj7Z-zuq-nevfG33haJo8qXBK-SHVutZREIfreuThsZeCdAYqB1V9DV6AVlJ8Ocem7iog== 인터파크_공급계약일련번호 = gAAAAABmVK6vmfVmeZWNfJE0jq4T8T-JoLRa2-2qpDoEjj8pXXOEBvHDlQouFXyL7f1L6tNH1nYPA6TjDtR1QUijMUoXzpW1gw==
위메프_apikey = gAAAAABmTwfxY1iDm071k26h9TdYQUz9AiUHs6MzuBogeLiE6XBsValQz3P4Jc6cSnoa6_s4dN2WswqVUMCmjMbr2Ej-lO3XcA== 위메프_apikey = gAAAAABmVK6v9WOoglyvEGhgJHJHJOXJ54YD7z8fxVv_6ZAfLF_h2q8MR32xWBkuM-qpLXcSk2lnbNrsiYQW-RqLfnLAe3GwhQ==
옥션1.0_apikey = gAAAAABmTwfxtDTyGBB3i2ZJ9mYLaFlsXwAx82Mcx-1rXvbbKxnTXPTm2ANp6szCGKFw4pjunh8L-QvcaKUf3RAL6M6_RLud1Q== 옥션1.0_apikey = gAAAAABmVK6v4_yZoPP79q-lGbkhE5yj6L_0D0_ExGMOlzSmFENi3fC6CaH32avyysX_6c6g53HXSwX25sGif4FcWA4sVTRXHA==
옥션1.0_멤버id = gAAAAABmTwfxYkWjyF0vfUxYt5GzE-OdRONUPzIw6RKgrete7SQZXPEWCZG6a63BMUlYNfPSRiGSwV_rcOme9nSXXqIYvh41Rw== 옥션1.0_멤버id = gAAAAABmVK6vmapdF0gwu75UleR63ofVIumlEzrzwqfZSITgUjdW9mkclEp8TtHGR47ViRR-eZ0ATDaX1tBvHjEFXjdXXC-0DA==
스마트스토어_업로드할스마트스토어계정 = gAAAAABmTwfx3lFUVh_pUB5ShZF2INwkb-egje_i5iE66NQzJ64wS0MpUUUztIhctNyY_xMBH2C_LVEdVZG6G_nKkA9wPu9WGw== 스마트스토어_업로드할스마트스토어계정 = gAAAAABmTwfx3lFUVh_pUB5ShZF2INwkb-egje_i5iE66NQzJ64wS0MpUUUztIhctNyY_xMBH2C_LVEdVZG6G_nKkA9wPu9WGw==
활성마켓 = 쿠팡:False, 스마트스토어:False, esm:False, 11번가-국내:False, 11번가-글로벌:False, 롯데온:False, 인터파크:False, 위메프:False, 옥션1.0:False
기타정보title1 = 기타정보1
기타정보context1 =
기타정보title2 = 기타정보2
기타정보context2 =
기타정보title3 = 기타정보3
기타정보context3 =
기타정보title4 = 기타정보4
기타정보context4 =
기타정보title5 = 기타정보5
기타정보context5 =
[BUSINESS_3] [BUSINESS_3]
사업자별칭 = 사업자별칭 =
@ -129,152 +153,54 @@ etc4_title =
etc4_context = etc4_context =
etc5_title = etc5_title =
etc5_context = etc5_context =
쿠팡_쿠팡id = 쿠팡_쿠팡id = gAAAAABmVK6vZ7R-S1TFrjUHempqQQalN38vFuQeFwbNBIDgr-qjAsMxUCY-KIA_JTSs0-pE_CaSw-kl6Vm9ex2GHSnx1f2p_w==
쿠팡_업체코드 = 쿠팡_업체코드 = gAAAAABmVK6vJ_wWe_HugWFIWIGwRSM9t5j-rku_eLs3zcRDMO5PCcV6XsidGjMtX3ZmFF9NPmwWosFtNIpyOjsw_qAIPWoSig==
쿠팡_accesskey = 쿠팡_accesskey = gAAAAABmVK6vaq1nJt7O8nqVkAW8e3t8bsf9vlDutz1mQ9WFLhbYeSA_RTIIzHWtuDVhIfP5Qimh6ScFTOD7d-ojPF0DEVu9BQ==
쿠팡_secretkey = 쿠팡_secretkey = gAAAAABmVK6vfISfXg1ujvGXZl_XUnRfezcgoLoD3bHSkHKIHIB7BBN9VImbS86_ab2cTQKzuTq0kSGqtdrslWRqG7J6WPujVA==
스마트스토어_업로드할스마트스토어계정명 = 스마트스토어_업로드할스마트스토어계정명 =
스마트스토어_업로드할스마트스토어계정id = 스마트스토어_업로드할스마트스토어계정id = gAAAAABmVK6vhMYECcxAkVyDj8PEiyD1jU-rW6czMIigz8ny0bWapBL30_RlhBxo2f9P3Vy3i2kR_XYqhLu3KK24nX0TNWvZEA==
스마트스토어_업로드할스마트스토어계정pw = 스마트스토어_업로드할스마트스토어계정pw = gAAAAABmVK6vFHsHy2h4Xtx2ovWb3jdicjI4fM3Bhr5smGRodLh0KVhiTAB9ttOPbto2V-WXWC3_eRoL3BG4HMuUFnyoebaHrg==
스마트스토어_애플리케이션id = 스마트스토어_애플리케이션id = gAAAAABmVK6vAmYlYh5XLEPraP_yBozX3IgJayYSlbbXlZ7Cmf6wUQHVCDE4s8iErQsm_rBuX2RMjdWxVw90I4ME8u0jE4oEWg==
스마트스토어_애플리케이션시크릿 = 스마트스토어_애플리케이션시크릿 = gAAAAABmVK6vedGu8k_lo0fZR-IKOGYnakm2zLj4n9Biwd6tjT95oO1y-wc3m4fGO_k0BY1QkMyDmwWvuS6xU3Ya6ydA67whWg==
esm_옥션id = esm_옥션id = gAAAAABmVK6vQeR4TpZ2EDOmFP2G1fuVyUV4mmHGEJIFbTzogQOi2NFk_MNtTgnOGgST7D_KTnJIUEwdRJvgg1WqK51tzS0Qbw==
esm_지마켓id = esm_지마켓id = gAAAAABmVK6vJCwrzq9X_U9tkzyKtNZ7R2Ehvgos_YDZ-pv1kwWSYdcDT4uWxXsvR5YU17GzG0kWvNVyN-iYOhGatZ4fpb0xnQ==
11번가-국내_apikey = 11번가-국내_apikey = gAAAAABmVK6vEkK0Obs4UvdY5_JdNhtLjaC1Fa_sGgv2AElrgoE-r1BLhl5LMXrROnn8pkuxUxxAGbsZKSW6d-vsTQSblYLiTA==
11번가-글로벌_apikey = 11번가-글로벌_apikey = gAAAAABmVK6vFUms_mFJNnvLKJJJUOH-xSELFwWa--U-2idI19vsyeOdCWg3_YbYpbylocEa-vIsrfTzIJfuOK5RIfjBVys4mg==
롯데온_apikey = 롯데온_apikey = gAAAAABmVK6v9dgQwvbdVaKnms86p4Q8C9p340WK-v6Hn3sEgwSCAvP0FXcthBb6nqVNkSwyNNtHt4JM2yuuv9MqFd4cOvFNWQ==
인터파크_상품상태재고수정인증키 = 인터파크_상품상태재고수정인증키 = gAAAAABmVK6vbSLiCZ32MTjnbp4HplcICiayPOcH5kPp06li-bHzb-L4j5tPUFhOTIBw2idKe3m7-I2rJiS7zQw2Y6xWr021Yg==
인터파크_상품상태재고수정비밀키 = 인터파크_상품상태재고수정비밀키 = gAAAAABmVK6vRWveZPI6j0GOh29twiY9vc1StB_6c2oIZ3tchMvC54OohPoTVDwaqyEn4vAlIOrHICyi2NOPClcXOiklRHbatA==
인터파크_상품재고조회인증키 = 인터파크_상품재고조회인증키 = gAAAAABmVK6vUDRHInXfrdj1XIqmflBIgHikyP-PpZBfcwTXdoW9dpaAH54xwmohkNKO4RlA2iCWIam3ZqKYeJTvN_r2h5eqrQ==
인터파크_상품재고조회비밀키 = 인터파크_상품재고조회비밀키 = gAAAAABmVK6vtUb7xtx136wJEzNsRCt_PzaBEkslWs8mDwEP-Rl0bmSH7tmm52VFGku3H0Hx90-D6ZZP_ZZspINLipYqeFwkiA==
인터파크_상품정보조회인증 = 인터파크_상품정보조회인증 = gAAAAABmVK6vn0rusqvTPWCq4IFXWr82YYLgHLftImeAhhFCuE2totmZoPcxUMWiRV7NIXE8K2Aw3leikphOiZd13HXStju7RQ==
인터파크_상품정보조회비밀키 = 인터파크_상품정보조회비밀키 = gAAAAABmVK6vbQedlmPCVe767yvzzcpgWDzzTiQKJ53SC9KRSIAn-Bpctp4_7XA2ez46tIFZzrL3I3fnn1mwksQhOyiAnVHAhQ==
인터파크_상품수정인증키 = 인터파크_상품수정인증키 = gAAAAABmVK6v8CHgYLoPpHNAriAb957rhgv8269hIDuEiUH_bZkSppAtTjauwa_TJjlTpaO5iFQOaKwWglindmi9gNEx45erLg==
인터파크_상품수정비밀키 = 인터파크_상품수정비밀키 = gAAAAABmVK6v-ch66SVBB3dt0mIpOG799H0Qfo4f3s_lE69ZkORgQZNx3EcCDipKFHfMny1pSgZLNt7Kp-P0G6CStzwiEiQ28w==
인터파크_상품등록인증키 = 인터파크_상품등록인증키 = gAAAAABmVK6vlvqv4WHAnhR8XywNVvKfe89a1pxDRjNO0K0NeIl7QQco3YlEO1je-bho3nG7L9DvnSCbCBFa9UUAYJbsb89iAg==
인터파크_상품등록비밀키 = 인터파크_상품등록비밀키 = gAAAAABmVK6vs6dh0GXyJsBfazGKCgZWWZ03WTu0B3LayKAx8_Afsvy_G5AUB91As_rzdmwHPgkytASNcpHB6vl-L3b0o0VTYw==
인터파크_반품배송지조회인증키 = 인터파크_반품배송지조회인증키 = gAAAAABmVK6vdoDbvW0ivrhjJRR2U035_I7jttknDg6Bl4yWVvtnUH0sNcheS9GcglOzPqhc3T1HKh2P7RGP6OZdPNgDMwz8uQ==
인터파크_반품배송지조회비밀키 = 인터파크_반품배송지조회비밀키 = gAAAAABmVK6vsNWVniHuyMYaOkAGtmVnCVuh-WETgsZHZTeSGAmZbFfmwJraRAnQu7GER1COZCKGJBnyD3Uq7JVdWkrPDr_FbA==
인터파크_반품배송지등록인증키 = 인터파크_반품배송지등록인증키 = gAAAAABmVK6vvz_cpz2oNI-_TxNhsLTSm8ShSNJ13uV-oMwyvriBkuP9ZbXOmKHASFenMHmcq7mTd9DxDOQbr_X_oPTX6cVw4w==
인터파크_반품배송지등록비밀키 = 인터파크_반품배송지등록비밀키 = gAAAAABmVK6vM8k7cpnUp_YRijoN85tIcB3tUFe2_K0H5t0OiMC0RlIR4LgPvyzzd-3JNlZ5BFdjsPQ0P_4cv7RKDq2ui2RnzQ==
인터파크_상품qna등록인증키 = 인터파크_상품qna등록인증키 = gAAAAABmVK6vdwaOhARwhinAcTI625zYfnoNLgfRaXZE1A-vXVb3-rBQVnS3nItKHl6qwdCx_yrGTTzgNBmbTBaO259SXworCg==
인터파크_상품qna등록비밀키 = 인터파크_상품qna등록비밀키 = gAAAAABmVK6vBHsofHIJg3X0Q08rSK4mdkIRR2M_fFkmb6EN37njNfhQmo6UHtcP8cnnbIAhXr4O5Ug6ESud3JdKZeapjpfyIw==
인터파크_상품qna조회인증키 = 인터파크_상품qna조회인증키 = gAAAAABmVK6vXfG5I7MOPnjVwf2QRHuOOVzo2IL-VfSaPjxuVOHrVjn9wpjcYuxHYtpWacKhf_svSnRETSewHQmSuNPYyABjcQ==
인터파크_상품qna조회비밀키 = 인터파크_상품qna조회비밀키 = gAAAAABmVK6vGTfaipGP4DFtsm3cfwPN0r4LaO7UxfdRwqsOaeiR85Go3RmNisftM1p4ZkSZGlqTjrDmdBkiI62ED7-FHO1TDQ==
인터파크_인터파크업체번호 = 인터파크_인터파크업체번호 = gAAAAABmVK6vTLv6WUmp24Lb9sXA4PZs8owSZOTJ0U5cHrgzYqRDDI06wxCzR81Wt_IevOvYYHTJc4phHGG84AYuw9mk1Bd50Q==
인터파크_공급계약일련번호 = 인터파크_공급계약일련번호 = gAAAAABmVK6v6YjRYs58tFdHe7ZrIm0WxOBo4I5kU9OOGojZcSl1WWlxg_m_0KnpBFzF0gSEDYHtirFDaZKgo26v5xz7zkaBlw==
위메프_apikey = 위메프_apikey = gAAAAABmVK6vQGRjSi4w5-hw5TbsMbdJ3AV74n2YO2xpjeEMce6cnAMU1saSlTq3edbyyb4iMEHYeRdMmwSBr8k865nNii70iA==
옥션1.0_apikey = 옥션1.0_apikey = gAAAAABmVK6v8jnGpTwdVFat_n49KLZ2wjMzlul0X-WbLLI3R9YKSzu9yFyfk2huSd2C6XDjkX_8UXR6EgItvW8JeYAUz-sK5g==
옥션1.0_멤버id = 옥션1.0_멤버id = gAAAAABmVK6vQJewWSP16wjDvIxFVMFD4qPdkOD9WHZuZUhY5muntUv0n65gp21tS7QGA_IROiIMANU0WrEnAaoUW-3gRKPJHg==
활성마켓 = 쿠팡:False, 스마트스토어:False, esm:False, 11번가-국내:False, 11번가-글로벌:False, 롯데온:False, 인터파크:False, 위메프:False, 옥션1.0:False
[BUSINESS_4] 기타정보title1 = 기타정보1
사업자별칭 = 기타정보context1 =
사업자등록번호 = 기타정보title2 = 기타정보2
상호명 = 기타정보context2 =
등록날짜 = 기타정보title3 = 기타정보3
응대전화번호 = 기타정보context3 =
etc1_title = 기타정보title4 = 기타정보4
etc1_context = 기타정보context4 =
etc2_title = 기타정보title5 = 기타정보5
etc2_context = 기타정보context5 =
etc3_title =
etc3_context =
etc4_title =
etc4_context =
etc5_title =
etc5_context =
쿠팡_쿠팡id =
쿠팡_업체코드 =
쿠팡_accesskey =
쿠팡_secretkey =
스마트스토어_업로드할스마트스토어계정명 =
스마트스토어_업로드할스마트스토어계정id =
스마트스토어_업로드할스마트스토어계정pw =
스마트스토어_애플리케이션id =
스마트스토어_애플리케이션시크릿 =
esm_옥션id =
esm_지마켓id =
11번가-국내_apikey =
11번가-글로벌_apikey =
롯데온_apikey =
인터파크_상품상태재고수정인증키 =
인터파크_상품상태재고수정비밀키 =
인터파크_상품재고조회인증키 =
인터파크_상품재고조회비밀키 =
인터파크_상품정보조회인증 =
인터파크_상품정보조회비밀키 =
인터파크_상품수정인증키 =
인터파크_상품수정비밀키 =
인터파크_상품등록인증키 =
인터파크_상품등록비밀키 =
인터파크_반품배송지조회인증키 =
인터파크_반품배송지조회비밀키 =
인터파크_반품배송지등록인증키 =
인터파크_반품배송지등록비밀키 =
인터파크_상품qna등록인증키 =
인터파크_상품qna등록비밀키 =
인터파크_상품qna조회인증키 =
인터파크_상품qna조회비밀키 =
인터파크_인터파크업체번호 =
인터파크_공급계약일련번호 =
위메프_apikey =
옥션1.0_apikey =
옥션1.0_멤버id =
[BUSINESS_5]
사업자별칭 =
사업자등록번호 =
상호명 =
등록날짜 =
응대전화번호 =
etc1_title =
etc1_context =
etc2_title =
etc2_context =
etc3_title =
etc3_context =
etc4_title =
etc4_context =
etc5_title =
etc5_context =
쿠팡_쿠팡id =
쿠팡_업체코드 =
쿠팡_accesskey =
쿠팡_secretkey =
스마트스토어_업로드할스마트스토어계정명 =
스마트스토어_업로드할스마트스토어계정id =
스마트스토어_업로드할스마트스토어계정pw =
스마트스토어_애플리케이션id =
스마트스토어_애플리케이션시크릿 =
esm_옥션id =
esm_지마켓id =
11번가-국내_apikey =
11번가-글로벌_apikey =
롯데온_apikey =
인터파크_상품상태재고수정인증키 =
인터파크_상품상태재고수정비밀키 =
인터파크_상품재고조회인증키 =
인터파크_상품재고조회비밀키 =
인터파크_상품정보조회인증 =
인터파크_상품정보조회비밀키 =
인터파크_상품수정인증키 =
인터파크_상품수정비밀키 =
인터파크_상품등록인증키 =
인터파크_상품등록비밀키 =
인터파크_반품배송지조회인증키 =
인터파크_반품배송지조회비밀키 =
인터파크_반품배송지등록인증키 =
인터파크_반품배송지등록비밀키 =
인터파크_상품qna등록인증키 =
인터파크_상품qna등록비밀키 =
인터파크_상품qna조회인증키 =
인터파크_상품qna조회비밀키 =
인터파크_인터파크업체번호 =
인터파크_공급계약일련번호 =
위메프_apikey =
옥션1.0_apikey =
옥션1.0_멤버id =
스마트스토어_업로드할스마트스토어계정 =
[Percenty_Setting] [Percenty_Setting]
user_id = leensoo1nt@gmail.com user_id = leensoo1nt@gmail.com

View File

@ -57,7 +57,6 @@ esm_지마켓id =
위메프_apikey = 위메프_apikey =
옥션1.0_apikey = 옥션1.0_apikey =
옥션1.0_멤버id = 옥션1.0_멤버id =
스마트스토어_업로드할스마트스토어계정 =
[BUSINESS_2] [BUSINESS_2]
사업자별칭 = 사업자별칭 =
@ -112,7 +111,6 @@ esm_지마켓id =
위메프_apikey = 위메프_apikey =
옥션1.0_apikey = 옥션1.0_apikey =
옥션1.0_멤버id = 옥션1.0_멤버id =
스마트스토어_업로드할스마트스토어계정 =
[BUSINESS_3] [BUSINESS_3]
사업자별칭 = 사업자별칭 =
@ -167,8 +165,6 @@ esm_지마켓id =
위메프_apikey = 위메프_apikey =
옥션1.0_apikey = 옥션1.0_apikey =
옥션1.0_멤버id = 옥션1.0_멤버id =
스마트스토어_업로드할스마트스토어계정 =
[BUSINESS_4] [BUSINESS_4]
사업자별칭 = 사업자별칭 =
@ -223,8 +219,6 @@ esm_지마켓id =
위메프_apikey = 위메프_apikey =
옥션1.0_apikey = 옥션1.0_apikey =
옥션1.0_멤버id = 옥션1.0_멤버id =
스마트스토어_업로드할스마트스토어계정 =
[BUSINESS_5] [BUSINESS_5]
사업자별칭 = 사업자별칭 =
@ -279,7 +273,6 @@ esm_지마켓id =
위메프_apikey = 위메프_apikey =
옥션1.0_apikey = 옥션1.0_apikey =
옥션1.0_멤버id = 옥션1.0_멤버id =
스마트스토어_업로드할스마트스토어계정 =
[Percenty_Setting] [Percenty_Setting]
user_id = user_id =

View File

@ -10,6 +10,12 @@ import asyncio
def main(): def main():
config = ConfigManager() config = ConfigManager()
# config.ini 파일이 없을 경우 생성
if not os.path.exists('config.ini'):
config._create_default_config()
print("config.ini 파일이 생성되었습니다.")
# log_level = config.get('DEFAULT', 'log_level', fallback='DEBUG') # log_level = config.get('DEFAULT', 'log_level', fallback='DEBUG')
log_level = 'INFO' log_level = 'INFO'
# 로그 파일 경로 설정 # 로그 파일 경로 설정

View File

@ -260,3 +260,52 @@ id와 pw를 입력 후 로그인버튼을 누르면 일반적으로 로그인이
2. 이메일 인증 보내기 버튼 : "div#root div.TextField_text_field__x1Wtz.TextField_field_email__2BzY5.TextField_disabled__2mxn3 > div > div > div.TextField_btn_box__2TdIe > button[type=\"button\"]" 2. 이메일 인증 보내기 버튼 : "div#root div.TextField_text_field__x1Wtz.TextField_field_email__2BzY5.TextField_disabled__2mxn3 > div > div > div.TextField_btn_box__2TdIe > button[type=\"button\"]"
3. '이메일 인증'이 활성화 된 경우 '휴대전화 번호로 인증' 활성화 버튼 : "div#root li:nth-child(2) > label" 3. '이메일 인증'이 활성화 된 경우 '휴대전화 번호로 인증' 활성화 버튼 : "div#root li:nth-child(2) > label"
4. 휴대전화 번호로 인증 보내기 버튼 : "div#root div.TextField_text_field__x1Wtz.TextField_field_phone__3MV-T.TextField_disabled__2mxn3 > div > div.TextField_ipt_area__3lD1U > div.TextField_btn_box__2TdIe > button[type=\"button\"]" 4. 휴대전화 번호로 인증 보내기 버튼 : "div#root div.TextField_text_field__x1Wtz.TextField_field_phone__3MV-T.TextField_disabled__2mxn3 > div > div.TextField_ipt_area__3lD1U > div.TextField_btn_box__2TdIe > button[type=\"button\"]"
아래의 요소들을 다시 반영해줘.
[2단계인증 관련]
"div#root h2"의 요소의 값이 "2단계 인증" 일 경우 2단계 인증 발생으로 간주
아래의 2개 중 1개로 해결해야 함.
2개중 1개는 활성화 되어 있고, 관련 CSS 요소는 아래와 같아.
2개의 인증방법 중 1개를 선택하고 인증 버튼을 누르면 창 내부에 '인증전송 확인' 팝업이 뜨고, 해당 팝업의 확인 버튼을 누르면 인증번호 입력칸이 생겨.
제한시간이 3분가량 있고, 역으로 카운트 되. 해당시간 내에 정확안 인증번호를 넣으면 확인버튼이 활성화 되고 해당 버튼을 누르면 로그인 절차가 완료되.
[CSS 요소]
활성화된 버튼의 css : "div#root li.TwoStepCertify_choice_item__2qian.TwoStepCertify_on__2Y_8N > label"
1. '휴대전화 인증'이 활성화 된 경우 '이메일 인증' 활성화 버튼 : "div#root li:nth-child(1) > label"
2. 이메일 인증 보내기 버튼 : "div#root div.TextField_text_field__x1Wtz.TextField_field_email__2BzY5.TextField_disabled__2mxn3 > div > div > div.TextField_btn_box__2TdIe > button[type=\"button\"]"
3. '이메일 인증'이 활성화 된 경우 '휴대전화 번호로 인증' 활성화 버튼 : "div#root li:nth-child(2) > label"
4. 휴대전화 번호로 인증 보내기 버튼 : "div#root div.TextField_text_field__x1Wtz.TextField_field_phone__3MV-T.TextField_disabled__2mxn3 > div > div.TextField_ipt_area__3lD1U > div.TextField_btn_box__2TdIe > button[type=\"button\"]"
이메일 인증이 활성화 되었을 때 보이는 '인증용 이메일 주소' : input#auth_id.TextField_ipt__33BFT[placeholder='2단계 인증 이메일']
휴대전화 인증이 활성화 되었을 때 보이는 인증용 휴대전화 번호 : input#phone[placeholder='내용을 입력해주세요']
이메일 인증번호를 전송했을때 전송되었다는 확인팝업의 확인버튼 : div#root button.PopupCommon_btn__33Of5[type='button']
이메일 주소 인증의 인증번호 입력칸 : div#root input.TextField_ipt__33BFT[inputmode='numeric'][placeholder='인증번호 숫자 6자리']
이메일 주소 인증의 인증번호 입력 취소버튼 : "div#root div.TextField_text_field__x1Wtz.TextField_field_email__2BzY5.TextField_disabled__2mxn3 > div > div > div.TextField_btn_box__2TdIe > button[type=\"button\"]"
이메일 주소 인증의 인증 유효시간 :"div#root div.TextField_time__1AWa7 > span"
휴대전화 인증번호를 전송했을때 전송되었다는 확인팝업의 확인버튼 : div#root button.PopupCommon_btn__33Of5[type='button']
휴대전화 인증의 인증번호 입력칸 : div#root input.TextField_ipt__33BFT[inputmode='numeric'][placeholder='인증번호 숫자 6자리']
휴대전화 인증의 인증번호 입력 취소버튼 : "div#root div.TwoStepCertify_certify_num__1m4OX > div > div.TextField_ipt_item__1AOpe > div > div.TextField_btn_box__2TdIe > button[type=\"button\"]"
휴대전화 인증의 인증 유효시간 : "div#root div.TextField_time__1AWa7 > span"
인증번호 입력 후 확인 버튼 : div#root .TwoStepCertify_btn_box__3TSSP .Button_btn_plain__1j7dG[type='button']

View File

@ -4,18 +4,42 @@ from PyQt5.QtWidgets import (QWidget, QVBoxLayout, QHBoxLayout, QGridLayout, QLa
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from PyQt5.Qsci import QsciScintilla, QsciLexerPython from PyQt5.Qsci import QsciScintilla, QsciLexerPython
from qfluentwidgets import CalendarPicker from qfluentwidgets import CalendarPicker, PrimaryPushButton
from qfluentwidgets import FluentIcon as FIF
class BusinessSettings(QDialog): class BusinessSettings(QDialog):
def __init__(self, max_business_count=5, parent=None): def __init__(self, current_api_keys, config_manager, max_business_count=5, parent=None):
super().__init__(parent) super().__init__(parent)
self.setMinimumSize(700, 900) # 설정된 최소 크기
self.setWindowTitle("상세 사업자 설정")
self.config_manager = config_manager
self.max_business_count = max_business_count self.max_business_count = max_business_count
self.etc_number = 5
self.current_api_keys = current_api_keys
self.business_info = [{} for _ in range(max_business_count)] self.business_info = [{} for _ in range(max_business_count)]
self.market_info = [{} for _ in range(max_business_count)] self.market_info = [{} for _ in range(max_business_count)]
self.other_info = [{} for _ in range(max_business_count)] # self.selected_markets = {market: True for market in ["쿠팡", "스마트스토어", "ESM", "11번가-국내", "11번가-글로벌", "롯데온", "인터파크", "위메프", "옥션1.0"]}
self.selected_markets = {market: True for market in ["쿠팡", "스마트스토어", "ESM", "11번가-국내", "11번가-글로벌", "롯데온", "인터파크", "위메프", "옥션1.0"]} self.selected_markets = {market: True for market in self.config_manager.valid_markets}
self.tab_layouts = []
self.business_info_layouts = []
self.market_info_widgets = []
self.alias_edits = []
self.reg_number_edits = []
self.name_edits = []
self.reg_date_edits = []
self.phone_edits = []
self.etc_titles = [[] for _ in range(max_business_count)]
self.etc_contexts = [[] for _ in range(max_business_count)]
self.market_checkboxes = [{} for _ in range(max_business_count)]
self.market_tabs = [[] for _ in range(max_business_count)]
self.initUI() self.initUI()
self.changeButton_Text()
self.load_business_info() # Load business info on initialization
def initUI(self): def initUI(self):
self.setLayout(QVBoxLayout()) self.setLayout(QVBoxLayout())
@ -26,166 +50,338 @@ class BusinessSettings(QDialog):
top_frame.setFrameShape(QFrame.StyledPanel) top_frame.setFrameShape(QFrame.StyledPanel)
top_frame.setFixedHeight(int(self.height() * 0.1)) top_frame.setFixedHeight(int(self.height() * 0.1))
save_button = QPushButton("저장") self.save_button = QPushButton("저장")
save_button.clicked.connect(lambda: print("저장 버튼 클릭됨")) self.save_button.clicked.connect(self.save_business_info) # Connect save button to method
delete_button = QPushButton("삭제")
delete_button.clicked.connect(lambda: print("삭제 버튼 클릭됨"))
cancel_button = QPushButton("취소")
cancel_button.clicked.connect(lambda: print("취소 버튼 클릭됨"))
setup_market_button = QPushButton("설정마켓")
setup_market_button.clicked.connect(self.show_market_setup)
top_layout.addWidget(save_button) self.refersh_button = QPushButton("새로고침")
top_layout.addWidget(delete_button) self.refersh_button.clicked.connect(lambda: self.load_business_info())
top_layout.addWidget(cancel_button) self.cancel_button = QPushButton("취소")
top_layout.addWidget(setup_market_button) self.cancel_button.clicked.connect(lambda: self.reject())
self.setup_market_button = QPushButton("설정마켓")
self.setup_market_button.clicked.connect(self.show_market_setup)
top_layout.addWidget(self.save_button)
top_layout.addWidget(self.refersh_button)
top_layout.addWidget(self.cancel_button)
top_layout.addWidget(self.setup_market_button)
self.layout().addWidget(top_frame) self.layout().addWidget(top_frame)
# QTabWidget 설정 # QTabWidget 설정
# 내용 레이아웃
self.tab_widget = QTabWidget() self.tab_widget = QTabWidget()
self.tab_widget.setTabsClosable(False) self.tab_widget.setTabsClosable(False)
self.layout().addWidget(self.tab_widget) self.layout().addWidget(self.tab_widget)
for i in range(self.max_business_count): for i in range(self.max_business_count):
tab = QWidget() tab = QWidget()
tab.setLayout(QVBoxLayout()) self.tab_layouts.append(QVBoxLayout())
tab.layout().addLayout(self.create_business_info_layout(i))
tab.layout().addWidget(self.create_market_info_widget()) self.business_info_layouts.append(self.create_business_info_layout(i))
tab.layout().setStretch(0, 3) self.market_info_widgets.append(self.create_market_info_widget(i))
tab.layout().setStretch(1, 2) print(f"객체접근 테스트 Init: {self.alias_edits[0].text()}")
self.tab_layouts[i].addLayout(self.business_info_layouts[i])
self.tab_layouts[i].addWidget(self.market_info_widgets[i])
tab.setLayout(self.tab_layouts[i])
self.tab_layouts[i].setStretch(0, 3)
self.tab_layouts[i].setStretch(1, 2)
self.tab_widget.addTab(tab, f"{i + 1}사업자") self.tab_widget.addTab(tab, f"{i + 1}사업자")
self.tab_widget.currentChanged.connect(self.update_tab_styles) self.tab_widget.currentChanged.connect(self.update_tab_styles)
self.tab_widget.currentChanged.connect(self.changeButton_Text)
self.update_tab_styles() self.update_tab_styles()
def load_business_info(self):
# print(f"객체접근 테스트 : {self.alias_edits[0].text()}")
for i in range(self.max_business_count):
section = f"BUSINESS_{i+1}"
business_info = self.config_manager.get_business_info(section)
self.business_info[i] = {
"사업자별칭": business_info.get("사업자별칭", ""),
"사업자등록번호": business_info.get("사업자등록번호", ""),
"상호명": business_info.get("상호명", ""),
"등록날짜": business_info.get("등록날짜", ""),
"응대전화번호": business_info.get("응대전화번호", "")
}
for j in range(self.etc_number):
title_key = f"기타정보Title{j+1}"
context_key = f"기타정보Context{j+1}"
self.business_info[i][title_key] = self.config_manager.get(section, title_key, fallback="")
self.business_info[i][context_key] = self.config_manager.get(section, context_key, fallback="")
# 마켓 정보 불러오기
api_keys = self.config_manager.get_api_keys(section)
for market, fields in self.market_info[i].items():
for label in fields.keys():
key = label.replace(' ', '_')
# print(f"market : {market}")
# print(f"fields : {fields}")
# print(f"key : {key}")
# print(f"label : {label}")
# print(f"api_keys[market][key] : {api_keys.get(market, {}).get(key, '')}")
fields[label].setText(api_keys.get(market, {}).get(key, ''))
self.selected_markets[i] = self.config_manager.get_active_markets(i + 1)
if not self.selected_markets[i]: # 활성화된 마켓 정보가 없을 경우
self.selected_markets[i] = {market: True for market in self.config_manager.valid_markets}
self.update_widgets(i)
def update_widgets(self, index):
business = self.business_info[index]
self.alias_edits[index].setText(business.get("사업자별칭", ""))
self.reg_number_edits[index].setText(business.get("사업자등록번호", ""))
self.name_edits[index].setText(business.get("상호명", ""))
self.reg_date_edits[index].setText(business.get("등록날짜", ""))
self.phone_edits[index].setText(business.get("응대전화번호", ""))
for j in range(self.etc_number):
# self.etc_titles[index][j].setText(business.get(f"etc{j+1}_title", ""))
# self.etc_contexts[index][j].setText(business.get(f"etc{j+1}_context", ""))
self.etc_titles[index][j].setText(business.get(f"기타정보Title{j+1}", ""))
self.etc_contexts[index][j].setText(business.get(f"기타정보Context{j+1}", ""))
def save_business_info(self):
for i in range(self.max_business_count):
section = f"BUSINESS_{i+1}"
self.business_info[i] = {
"사업자별칭": self.alias_edits[i].text(),
"사업자등록번호": self.reg_number_edits[i].text(),
"상호명": self.name_edits[i].text(),
"등록날짜": self.reg_date_edits[i].text(),
"응대전화번호": self.phone_edits[i].text()
}
# 기타정보 저장
for j in range(self.etc_number):
self.business_info[i][f"기타정보Title{j+1}"] = self.etc_titles[i][j].text()
self.business_info[i][f"기타정보Context{j+1}"] = self.etc_contexts[i][j].text()
# 사업자 정보 저장
self.config_manager.set_business_info(i + 1, self.business_info[i])
# 마켓 API 정보 저장
api_keys = {}
for market, fields in self.market_info[i].items():
api_keys[market] = {label: line_edit.text() for label, line_edit in fields.items()}
self.config_manager.set_api_keys(i + 1, api_keys)
# 활성 마켓 정보 저장
self.config_manager.set_active_markets(i + 1, self.selected_markets[i])
self.config_manager.save()
# print("저장된 사업자 정보:", self.business_info)
# print("저장된 마켓 정보:", self.market_info)
def changeButton_Text(self, current_index = 1):
current_index = self.tab_widget.currentIndex()
self.save_button.setText(f"{current_index + 1}사업자 설정 저장")
self.refersh_button.setText(f"{current_index + 1}사업자 새로고침")
self.setup_market_button.setText(f"{current_index + 1}사업자 설정마켓")
def create_business_info_layout(self, index): def create_business_info_layout(self, index):
layout = QGridLayout() business_layout = QGridLayout()
layout.addWidget(QLabel("사업자 별칭"), 0, 0) # print(f"alias_edits 갯수 : {len(self.alias_edits)}")
alias_input = QLineEdit()
alias_input.textChanged.connect(lambda text, idx=index: self.update_tab_title(text, idx))
layout.addWidget(alias_input, 0, 1)
labels = ["사업자 등록번호", "상호명", "등록날짜", "전화번호"]
for i, label in enumerate(labels):
layout.addWidget(QLabel(label, alignment=Qt.AlignCenter), 1, i)
self.bs_number_edit = QLineEdit() alias_label = QLabel("사업자별칭:")
self.bs_number_edit.setMinimumWidth(60) alias_edit = QLineEdit()
layout.addWidget(self.bs_number_edit, 2, 0) alias_edit.textChanged.connect(lambda text, idx=index: self.update_tab_title(text, idx))
self.bs_name_edit = QLineEdit() self.alias_edits.append(alias_edit)
self.bs_name_edit.setMinimumWidth(60) business_layout.addWidget(alias_label, 0, 0)
layout.addWidget(self.bs_name_edit, 2, 1) business_layout.addWidget(alias_edit, 0, 1)
self.datePicker = CalendarPicker(self) # print(f"alias_edits 갯수 : {len(self.alias_edits)}")
self.datePicker.setMinimumWidth(60)
self.datePicker.dateChanged.connect(lambda t: print(t.toString()))
layout.addWidget(self.datePicker, 2, 2)
# set date # print(f"객체접근 테스트 : {self.alias_edits[0].text()}")
# self.picker.setDate(QDate(2023, 5, 30))
# customize date format reg_number_label = QLabel("사업자등록번호:")
# self.picker.setDateFormat(Qt.TextDate) reg_number_label.setAlignment(Qt.AlignCenter)
# self.picker.setDateFormat('yyyy-M-d') reg_number_edit = QLineEdit()
reg_number_edit.setMinimumWidth(60)
self.reg_number_edits.append(reg_number_edit)
business_layout.addWidget(reg_number_label, 1, 0)
business_layout.addWidget(reg_number_edit, 1, 1)
self.bs_call_edit = QLineEdit() name_label = QLabel("상호명:")
self.bs_call_edit.setMinimumWidth(60) name_label.setAlignment(Qt.AlignCenter)
layout.addWidget(self.bs_call_edit, 2, 3) name_edit = QLineEdit()
name_edit.setMinimumWidth(60)
self.name_edits.append(name_edit)
business_layout.addWidget(name_label, 2, 0)
business_layout.addWidget(name_edit, 2, 1)
other_info_labels = ["기타 정보1", "기타 정보2", "기타 정보3", "기타 정보4"] reg_date_label = QLabel("등록날짜:")
for i, label in enumerate(other_info_labels): reg_date_label.setAlignment(Qt.AlignCenter)
button = QPushButton(label) reg_date_edit = CalendarPicker(self)
button.clicked.connect(lambda checked, lbl=label, idx=index, btn=button: self.show_other_info_dialog(lbl, idx, btn)) reg_date_edit.setMinimumWidth(60)
layout.addWidget(button, 3, i) reg_date_edit.dateChanged.connect(lambda t: print(t.toString()))
self.reg_date_edits.append(reg_date_edit)
business_layout.addWidget(reg_date_label, 3, 0)
business_layout.addWidget(reg_date_edit, 3, 1)
return layout phone_label = QLabel("응대전화번호:")
phone_label.setAlignment(Qt.AlignCenter)
phone_edit = QLineEdit()
phone_edit.setMinimumWidth(60)
self.phone_edits.append(phone_edit)
business_layout.addWidget(phone_label, 4, 0)
business_layout.addWidget(phone_edit, 4, 1)
def create_market_info_widget(self): for j in range(self.etc_number):
label = f"기타정보Title{j+1}"
# etc_push_btn = QPushButton(label)
etc_push_btn = PrimaryPushButton(FIF.INFO, label, self)
etc_push_btn.setMinimumWidth(80)
# etc_push_btn.setText(label)
etc_push_btn.clicked.connect(lambda checked, lbl=label, idx=index, btn=etc_push_btn: self.show_other_info_dialog(lbl, idx, btn))
etc_push_btn.setText(label)
self.etc_titles[index].append(etc_push_btn)
# business_layout.addWidget(etc_title_label, 5 + j * 2, 0)
business_layout.addWidget(etc_push_btn, j, 3)
# etc_context_label = QLabel(f"기타정보Context{j+1}:")
# etc_context_edit = QLineEdit()
# self.etc_contexts[index].append(etc_context_edit)
# # business_layout.addWidget(etc_context_label, 6 + j * 2, 0)
# # business_layout.addWidget(etc_context_edit, 6 + j * 2, 1)
etc_context_edit = QsciScintilla()
content_lexer = QsciLexerPython()
etc_context_edit.setLexer(content_lexer)
etc_context_edit.setMargins(1)
self.etc_contexts[index].append(etc_context_edit)
return business_layout
def create_market_info_widget(self, index):
layout = QTabWidget() layout = QTabWidget()
self.market_tabs[index] = layout
market_tabs = { market_tabs = {
"쿠팡": [("쿠팡ID", ""), ("업체코드", ""), ("Access Key", ""), ("Secret Key", "")], "쿠팡": [("쿠팡id", ""), ("업체코드", ""), ("accesskey", ""), ("secretkey", "")],
"스마트스토어": [("계정 ID", ""), ("계정 PW", ""), ("애플리케이션 ID", ""), ("애플리케이션 시크릿", "")], "스마트스토어": [("업로드할스마트스토어계정id", ""), ("업로드할스마트스토어계정pw", ""), ("애플리케이션id", ""), ("애플리케이션시크릿", "")],
"ESM": [("옥션ID", ""), ("G마켓 ID", "")], "esm": [("옥션id", ""), ("지마켓id", "")],
"11번가-국내": [("API KEY", "")], "11번가-국내": [("apikey", "")],
"11번가-글로벌": [("API KEY", "")], "11번가-글로벌": [("apikey", "")],
"롯데온": [("API KEY", "")], "롯데온": [("apikey", "")],
"인터파크": [("상품상태재고수정 인증키", ""), ("상품상태재고수정 비밀키", ""), "인터파크": [("상품상태재고수정인증키", ""), ("상품상태재고수정비밀키", ""),
("상품재고조회 인증키", ""), ("상품재고조회 비밀키", ""), ("상품재고조회인증키", ""), ("상품재고조회비밀키", ""),
("상품정보조회 인증", ""), ("상품정보조회 비밀키", ""), ("상품정보조회인증", ""), ("상품정보조회비밀키", ""),
("상품수정 인증키", ""), ("상품수정 비밀키", ""), ("상품수정인증키", ""), ("상품수정비밀키", ""),
("상품등록 인증키", ""), ("상품등록 비밀키", ""), ("상품등록인증키", ""), ("상품등록비밀키", ""),
("반품배송지조회 인증키", ""), ("반품배송지조회 비밀키", ""), ("반품배송지조회인증키", ""), ("반품배송지조회비밀키", ""),
("반품배송지등록 인증키", ""), ("반품배송지등록 비밀키", ""), ("반품배송지등록인증키", ""), ("반품배송지등록비밀키", ""),
("상품QnA등록 인증키", ""), ("상품QnA등록 비밀키", ""), ("상품QnA등록인증키", ""), ("상품QnA등록비밀키", ""),
("상품QnA조회 인증키", ""), ("상품QnA조회 비밀키", ""), ("상품QnA조회인증키", ""), ("상품QnA조회비밀키", ""),
("인터파크 업체번호", ""), ("공급계약 일련번호", "")], ("인터파크업체번호", ""), ("공급계약일련번호", "")],
"위메프": [("API KEY", "")], "위메프": [("apikey", "")],
"옥션1.0": [("멤버 ID", "")] "옥션1.0": [("멤버id", ""), ("apikey", "")]
} }
for market, fields in market_tabs.items(): for market, fields in market_tabs.items():
tab = QWidget() tab = QWidget()
tab_layout = QGridLayout() tab_layout = QGridLayout()
self.market_info[index][market] = {}
for i, (label_text, placeholder) in enumerate(fields): for i, (label_text, placeholder) in enumerate(fields):
tab_layout.addWidget(QLabel(label_text), i, 0) tab_layout.addWidget(QLabel(label_text), i, 0)
tab_layout.addWidget(QLineEdit(placeholder), i, 1) line_edit = QLineEdit(placeholder)
tab_layout.addWidget(line_edit, i, 1)
self.market_info[index][market][label_text] = line_edit
tab.setLayout(tab_layout) tab.setLayout(tab_layout)
if self.selected_markets[market]:
layout.addTab(tab, market) layout.addTab(tab, market)
return layout return layout
def show_market_setup(self): def show_market_setup(self):
dialog = QDialog(self) set_market_dialog = QDialog(self)
dialog.setWindowTitle("설정 마켓") set_market_dialog.setWindowTitle("설정 마켓")
dialog.setLayout(QVBoxLayout()) set_market_dialog.setLayout(QVBoxLayout())
layout = dialog.layout() layout = set_market_dialog.layout()
current_tab = self.tab_widget.currentIndex()
active_markets = self.selected_markets[current_tab]
print(f"active_markets : {active_markets}")
all_select_checkbox = QCheckBox("전체선택") all_select_checkbox = QCheckBox("전체선택")
all_select_checkbox.setChecked(all(self.selected_markets.values())) all_select_checkbox.setChecked(all(active_markets.values()))
all_select_checkbox.stateChanged.connect(self.toggle_all_markets) all_select_checkbox.stateChanged.connect(lambda state: self.toggle_all_checkboxes(state, current_tab))
layout.addWidget(all_select_checkbox) layout.addWidget(all_select_checkbox)
market_layout = QGridLayout()
markets = list(self.selected_markets.keys()) market_layout = QGridLayout()
self.market_checkboxes = [] markets = list(active_markets.keys())
print(f"markets : {markets}")
self.market_checkboxes[current_tab] = {}
for i, market in enumerate(markets): for i, market in enumerate(markets):
checkbox = QCheckBox(market) checkbox = QCheckBox(market)
checkbox.setChecked(self.selected_markets[market]) print(f"market : {market}")
self.market_checkboxes.append(checkbox) print(f"active_markets[{market}] : {active_markets[market]}")
checkbox.setChecked(active_markets[market])
self.market_checkboxes[current_tab][market] = checkbox
market_layout.addWidget(checkbox, i // 3, i % 3) market_layout.addWidget(checkbox, i // 3, i % 3)
layout.addLayout(market_layout) layout.addLayout(market_layout)
button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
button_box.accepted.connect(dialog.accept) # button_box.accepted.connect(lambda: self.save_market_settings(current_tab))
button_box.rejected.connect(dialog.reject) button_box.accepted.connect(set_market_dialog.accept)
button_box.rejected.connect(set_market_dialog.reject)
layout.addWidget(button_box) layout.addWidget(button_box)
if dialog.exec() == QDialog.Accepted:
for i, checkbox in enumerate(self.market_checkboxes):
self.selected_markets[markets[i]] = checkbox.isChecked()
self.update_market_tabs()
def toggle_all_markets(self, state): if set_market_dialog.exec() == QDialog.Accepted:
for checkbox in self.market_checkboxes: for market, checkbox in self.market_checkboxes[current_tab].items():
checkbox.setChecked(state == Qt.Checked) self.selected_markets[current_tab][market] = checkbox.isChecked()
self.update_market_tabs(current_tab)
def update_market_tabs(self): def update_market_tabs(self, current_tab):
for i in range(self.tab_widget.count()): market_info_widget = self.market_info_widgets[current_tab]
tab = self.tab_widget.widget(i) active_markets = self.selected_markets[current_tab]
market_info_widget = tab.layout().itemAt(1).widget()
for j in range(market_info_widget.count()): for j in range(market_info_widget.count()):
market_tab = market_info_widget.widget(j)
market_name = market_info_widget.tabText(j) market_name = market_info_widget.tabText(j)
market_info_widget.setTabVisible(j, self.selected_markets[market_name]) market_info_widget.setTabVisible(j, active_markets.get(market_name, False))
def toggle_all_checkboxes(self, state, tab_index):
is_checked = state == Qt.Checked
for checkbox in self.market_checkboxes[tab_index].values():
checkbox.setChecked(is_checked)
def save_market_settings(self, tab_index):
active_markets = self.selected_markets[tab_index]
for market, checkbox in self.market_checkboxes[tab_index].items():
active_markets[market] = checkbox.isChecked()
self.config_manager.set_active_markets(tab_index + 1, active_markets)
# def update_market_tabs(self, current_tab):
# # tab = self.tab_widget.widget(current_tab)
# print("update_market_tabs")
# market_info_widget = self.market_info_widgets[current_tab]
# active_markets = self.selected_markets[current_tab]
# for j in range(market_info_widget.count()):
# market_tab = market_info_widget.widget(j)
# market_name = market_info_widget.tabText(j)
# market_tab.setVisible(active_markets.get(market_name, False))
def show_other_info_dialog(self, label, index, button): def show_other_info_dialog(self, label, index, button):
dialog = QDialog(self) info_number = ''.join(filter(str.isdigit, label))
dialog.setWindowTitle(label)
layout = QVBoxLayout(dialog) set_etc_dialog = QDialog(self)
set_etc_dialog.setWindowTitle("기타정보 설정")
set_etc_dialog.setMinimumSize(400,600)
layout = QVBoxLayout(set_etc_dialog)
# 메뉴 바 생성 # 메뉴 바 생성
menu_bar = QMenuBar() menu_bar = QMenuBar()
@ -225,34 +421,51 @@ class BusinessSettings(QDialog):
content_layout = QVBoxLayout() content_layout = QVBoxLayout()
content_layout.addWidget(QLabel("내용")) content_layout.addWidget(QLabel("내용"))
content_editor = QsciScintilla() # content_editor = QsciScintilla()
content_lexer = QsciLexerPython() # content_lexer = QsciLexerPython()
content_editor.setLexer(content_lexer) # content_editor.setLexer(content_lexer)
content_editor.setMargins(1) # content_editor.setMargins(1)
content_editor = self.etc_contexts[index][int(info_number)-1]
content_layout.addWidget(content_editor) content_layout.addWidget(content_editor)
layout.addLayout(content_layout) layout.addLayout(content_layout)
button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
button_box.accepted.connect(lambda: dialog.accept()) button_box.accepted.connect(lambda: set_etc_dialog.accept())
button_box.rejected.connect(lambda: dialog.reject()) button_box.rejected.connect(lambda: set_etc_dialog.reject())
layout.addWidget(button_box) layout.addWidget(button_box)
# 폰트 선택 메뉴 동작 연결 # 폰트 선택 메뉴 동작 연결
select_font_action.triggered.connect(lambda: self.select_font(content_editor)) select_font_action.triggered.connect(lambda: self.select_font(content_editor))
# label에서 숫자만 추출하여 적절한 키 형식으로 변환
info_title_key = f"기타정보Title{info_number}"
info_context_key = f"기타정보Context{info_number}"
# 기존 정보가 없으면 초기화 # 기존 정보가 없으면 초기화
if label not in self.other_info[index]: if info_title_key not in self.business_info[index] or info_context_key not in self.business_info[index]:
self.other_info[index][label] = {"title": "", "content": ""} self.business_info[index][info_title_key] = ""
self.business_info[index][info_context_key] = ""
print(f"기존 값이 없으므로 기타정보 초기화")
# 기존 정보가 있으면 로드 # 기존 정보가 있으면 로드
title_input.setText(self.other_info[index][label].get("title", "")) old_title = self.business_info[index].get(info_title_key, "")
content_editor.setText(self.other_info[index][label].get("content", "")) old_content = self.business_info[index].get(info_context_key, "")
# print(f"self.business_info : {self.business_info}")
print(f"index : {index}")
print(f"info_title_key : {info_title_key}")
print(f"info_context_key : {info_context_key}")
if dialog.exec() == QDialog.Accepted: title_input.setText(old_title)
print(f"기존 값 old_title 입력 : {old_title}")
content_editor.setText(old_content)
print(f"기존 값 old_content 입력 : {old_content}")
if set_etc_dialog.exec() == QDialog.Accepted:
new_title = title_input.text() new_title = title_input.text()
new_content = content_editor.text() new_content = content_editor.text()
old_title = self.other_info[index][label].get("title", "") # old_title = self.other_info[index][label].get("title", "")
old_content = self.other_info[index][label].get("content", "") # old_content = self.other_info[index][label].get("content", "")
if new_title != old_title or new_content != old_content: if new_title != old_title or new_content != old_content:
confirmation = QMessageBox.question(self, "변경 사항 확인", "내용이 변경되었습니다. 저장하시겠습니까?", confirmation = QMessageBox.question(self, "변경 사항 확인", "내용이 변경되었습니다. 저장하시겠습니까?",
@ -260,22 +473,20 @@ class BusinessSettings(QDialog):
if confirmation == QMessageBox.Yes: if confirmation == QMessageBox.Yes:
if new_title == "": if new_title == "":
new_title = label new_title = label
self.other_info[index][label] = { self.business_info[index][info_title_key] = new_title
"title": new_title, self.business_info[index][info_context_key] = new_content
"content": new_content
}
button.setText(new_title) button.setText(new_title)
else: else:
if new_title == "": if new_title == "":
new_title = label new_title = label
self.other_info[index][label] = { self.business_info[index][info_title_key] = new_title
"title": new_title, self.business_info[index][info_context_key] = new_content
"content": new_content
}
button.setText(new_title) button.setText(new_title)
# Print the other_info dictionary for debugging # Print the other_info dictionary for debugging
print(self.other_info) print(self.business_info)
def insert_image(self, content_editor): def insert_image(self, content_editor):
file_name, _ = QFileDialog.getOpenFileName(self, "Insert Image", "", "Images (*.png *.xpm *.jpg)") file_name, _ = QFileDialog.getOpenFileName(self, "Insert Image", "", "Images (*.png *.xpm *.jpg)")

View File

@ -25,6 +25,9 @@ class MainWindow(QMainWindow):
self.api_widget = ApiKeyWidget() self.api_widget = ApiKeyWidget()
self.business_infos = {} self.business_infos = {}
self.bsDialog = BusinessSettings(self.current_api_keys, self.config, self.max_business_number)
self.psDialog = PercentySettingsDialog(self.config)
self.menu = RoundMenu(parent=self) self.menu = RoundMenu(parent=self)
self.menu2 = RoundMenu(parent=self) self.menu2 = RoundMenu(parent=self)
@ -812,12 +815,10 @@ class MainWindow(QMainWindow):
dialog.exec_() dialog.exec_()
def show_percenty_settings(self): def show_percenty_settings(self):
dialog = PercentySettingsDialog(self.config) self.psDialog.exec_()
dialog.exec_()
def show_business_settings(self): def show_business_settings(self):
dialog = BusinessSettings(self.max_business_number) self.bsDialog.current_api_keys = self.current_api_keys
# dialog. self.bsDialog.exec_()
dialog.exec_()

View File

@ -1,12 +1,14 @@
from PyQt5.QtWidgets import (QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, from PyQt5.QtWidgets import (QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,
QRadioButton, QPushButton, QLineEdit, QLabel, QMessageBox) QRadioButton, QPushButton, QLineEdit, QLabel, QMessageBox)
from PyQt5.QtCore import QTimer, QTime from PyQt5.QtCore import QTimer, QTime
import asyncio import asyncio, traceback
class TwoFactorAuthDialog(QMainWindow): class TwoFactorAuthDialog(QMainWindow):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self.login_success_text = ""
self.setWindowTitle("2단계 인증") self.setWindowTitle("2단계 인증")
self.setGeometry(300, 300, 400, 250) self.setGeometry(300, 300, 400, 250)
@ -22,7 +24,7 @@ class TwoFactorAuthDialog(QMainWindow):
# Email Auth Option # Email Auth Option
self.email_radio = QRadioButton("이메일 인증") self.email_radio = QRadioButton("이메일 인증")
self.email_button = QPushButton("인증하기") self.email_button = QPushButton("인증하기")
self.email_button.clicked.connect(self.email_auth_clicked) self.email_button.clicked.connect(lambda: asyncio.ensure_future(self.email_auth()))
self.email_layout.addWidget(self.email_radio) self.email_layout.addWidget(self.email_radio)
self.email_layout.addWidget(self.email_button) self.email_layout.addWidget(self.email_button)
@ -32,7 +34,7 @@ class TwoFactorAuthDialog(QMainWindow):
# Phone Auth Option # Phone Auth Option
self.phone_radio = QRadioButton("휴대폰 인증") self.phone_radio = QRadioButton("휴대폰 인증")
self.phone_button = QPushButton("인증하기") self.phone_button = QPushButton("인증하기")
self.phone_button.clicked.connect(self.phone_auth_clicked) self.phone_button.clicked.connect(lambda: asyncio.ensure_future(self.phone_auth()))
self.phone_layout.addWidget(self.phone_radio) self.phone_layout.addWidget(self.phone_radio)
self.phone_layout.addWidget(self.phone_button) self.phone_layout.addWidget(self.phone_button)
@ -40,12 +42,16 @@ class TwoFactorAuthDialog(QMainWindow):
self.phone_hint.setVisible(False) self.phone_hint.setVisible(False)
# Code Entry # Code Entry
self.codeWidget = QWidget()
self.code_input = QLineEdit() self.code_input = QLineEdit()
self.code_input.setPlaceholderText("인증번호를 입력하세요") self.code_input.setPlaceholderText("인증번호를 입력하세요")
self.submit_button = QPushButton("확인") self.submit_button = QPushButton("확인")
self.submit_button.clicked.connect(self.submit_code) self.submit_button.clicked.connect(lambda: asyncio.ensure_future(self.submit_code()))
self.code_layout.addWidget(self.code_input, 7) self.code_layout.addWidget(self.code_input, 7)
self.code_layout.addWidget(self.submit_button, 3) self.code_layout.addWidget(self.submit_button, 3)
self.codeWidget.setLayout(self.code_layout)
self.codeWidget.setStyleSheet("border: 2px dashed black;")
# Timer Label # Timer Label
self.timer_label = QLabel("인증 유효 시간: 03:00") self.timer_label = QLabel("인증 유효 시간: 03:00")
@ -53,12 +59,12 @@ class TwoFactorAuthDialog(QMainWindow):
self.timer.timeout.connect(self.update_timer) self.timer.timeout.connect(self.update_timer)
self.time_left = QTime(0, 3, 0) self.time_left = QTime(0, 3, 0)
self.layout.addLayout(self.email_layout) self.layout.addLayout(self.email_layout,1)
self.layout.addWidget(self.email_hint) self.layout.addWidget(self.email_hint,1)
self.layout.addLayout(self.phone_layout) self.layout.addLayout(self.phone_layout,1)
self.layout.addWidget(self.phone_hint) self.layout.addWidget(self.phone_hint,1)
self.layout.addLayout(self.code_layout) self.layout.addLayout(self.code_layout,4)
self.layout.addWidget(self.timer_label) self.layout.addWidget(self.timer_label,2)
self.auth_method = None self.auth_method = None
self.code = None self.code = None
@ -112,19 +118,42 @@ class TwoFactorAuthDialog(QMainWindow):
self.start_timer() self.start_timer()
async def submit_code(self): async def submit_code(self):
try:
self.code = self.code_input.text() self.code = self.code_input.text()
if not self.code: if not self.code:
QMessageBox.warning(self, "경고", "인증번호를 입력하세요.") QMessageBox.warning(self, "경고", "인증번호를 입력하세요.")
else: else:
if self.auth_method == 'email': if self.auth_method == 'email':
await self.popup_page.fill('div#root input.TextField_ipt__33BFT[inputmode="numeric"][placeholder="인증번호 숫자 6자리"]', self.code) await self.popup_page.fill('div#root input.TextField_ipt__33BFT[inputmode="numeric"][placeholder="인증번호 숫자 6자리"]', self.code)
await self.popup_page.click('div#root .TwoStepCertify_btn_box__3TSSP .Button_btn_plain__1j7dG[type="button"]') # 확인 버튼 클릭 print(f"인증번호 [{self.code}] 입력")
elif self.auth_method == 'phone': elif self.auth_method == 'phone':
await self.popup_page.fill('div#root input.TextField_ipt__33BFT[inputmode="numeric"][placeholder="인증번호 숫자 6자리"]', self.code) await self.popup_page.fill('div#root input.TextField_ipt__33BFT[inputmode="numeric"][placeholder="인증번호 숫자 6자리"]', self.code)
print(f"인증번호 [{self.code}] 입력")
await self.popup_page.click('div#root .TwoStepCertify_btn_box__3TSSP .Button_btn_plain__1j7dG[type="button"]') # 확인 버튼 클릭 await self.popup_page.click('div#root .TwoStepCertify_btn_box__3TSSP .Button_btn_plain__1j7dG[type="button"]') # 확인 버튼 클릭
print(f"인증 확인버튼 클릭")
self.timer.stop() self.timer.stop()
print(f"타이머 스탑")
# 인증 완료 후 로그인 성공 여부 확인
try:
login_success_check = await self.popup_page.wait_for_selector("ui-view .login-id.text-overflow", timeout=5000)
self.login_success_text = await login_success_check.inner_text()
print(f"로그인 ID : {self.login_success_text}")
if self.login_success_text:
print("로그인 성공")
await self.popup_page.close()
except Exception as e:
print(f"로그인 성공 여부 확인 중 에러 발생: {e}")
traceback.print_exc()
self.setVisible(False) self.setVisible(False)
print(f"setVisible - False")
except Exception as e:
print(f"인증 코드 제출 중 에러 발생: {e}")
traceback.print_exc()
async def show_dialog(self): async def show_dialog(self):
self.setVisible(True) self.setVisible(True)

View File

@ -40,16 +40,17 @@ class ConfigManager:
'상호명': '', '상호명': '',
'등록날짜': '', '등록날짜': '',
'응대전화번호': '', '응대전화번호': '',
'etc1_title': '', '기타정보Title1': '기타정보1',
'etc1_context': '', '기타정보Context1': '',
'etc2_title': '', '기타정보Title2': '기타정보2',
'etc2_context': '', '기타정보Context2': '',
'etc3_title': '', '기타정보Title3': '기타정보3',
'etc3_context': '', '기타정보Context3': '',
'etc4_title': '', '기타정보Title4': '기타정보4',
'etc4_context': '', '기타정보Context4': '',
'etc5_title': '', '기타정보Title5': '기타정보5',
'etc5_context': '' '기타정보Context5': '',
'활성마켓': ', '.join([f"{market}:False" for market in self.valid_markets])
} }
for market in self.valid_markets: for market in self.valid_markets:
if market == '쿠팡': if market == '쿠팡':
@ -120,6 +121,10 @@ class ConfigManager:
with open(self.config_file, 'w', encoding='utf-8') as configfile: with open(self.config_file, 'w', encoding='utf-8') as configfile:
self.config.write(configfile) self.config.write(configfile)
def save(self):
with open(self.config_file, 'w', encoding='utf-8') as configfile:
self.config.write(configfile)
def get(self, section, option, fallback=None): def get(self, section, option, fallback=None):
return self.config.get(section, option, fallback=fallback) return self.config.get(section, option, fallback=fallback)
@ -144,11 +149,21 @@ class ConfigManager:
return None return None
business_info = { business_info = {
'사업자별칭': self.config.get(business_section, 'alias', fallback='설정사업자없음'), '사업자별칭': self.config.get(business_section, '사업자별칭', fallback='설정사업자없음'),
'사업자등록번호': self.config.get(business_section, 'register_number', fallback='000-00-00000'), '사업자등록번호': self.config.get(business_section, '사업자등록번호', fallback='000-00-00000'),
'상호명': self.config.get(business_section, 'name', fallback='설정사업자없음'), '상호명': self.config.get(business_section, '상호명', fallback='설정사업자없음'),
'등록날짜': self.config.get(business_section, 'date', fallback='0000-00-00'), '등록날짜': self.config.get(business_section, '등록날짜', fallback='0000-00-00'),
'응대전화번호': self.config.get(business_section, 'call', fallback='000-000-0000') '응대전화번호': self.config.get(business_section, '응대전화번호', fallback='000-000-0000'),
'기타정보Title1': self.config.get(business_section, '기타정보Title1', fallback=''),
'기타정보Context1': self.config.get(business_section, '기타정보Context1', fallback=''),
'기타정보Title2': self.config.get(business_section, '기타정보Title2', fallback=''),
'기타정보Context2': self.config.get(business_section, '기타정보Context2', fallback=''),
'기타정보Title3': self.config.get(business_section, '기타정보Title3', fallback=''),
'기타정보Context3': self.config.get(business_section, '기타정보Context3', fallback=''),
'기타정보Title4': self.config.get(business_section, '기타정보Title4', fallback=''),
'기타정보Context4': self.config.get(business_section, '기타정보Context4', fallback=''),
'기타정보Title5': self.config.get(business_section, '기타정보Title5', fallback=''),
'기타정보Context5': self.config.get(business_section, '기타정보Context5', fallback='')
} }
return business_info return business_info
@ -163,6 +178,9 @@ class ConfigManager:
self.config.set(business_section, '상호명', '') self.config.set(business_section, '상호명', '')
self.config.set(business_section, '등록날짜', '') self.config.set(business_section, '등록날짜', '')
self.config.set(business_section, '응대전화번호', '') self.config.set(business_section, '응대전화번호', '')
for j in range(1, 6):
self.config.set(business_section, f'기타정보Title{j}', '')
self.config.set(business_section, f'기타정보Context{j}', '')
# 마켓 이름으로 시작하는 모든 키 초기화 # 마켓 이름으로 시작하는 모든 키 초기화
for key in list(self.config[business_section].keys()): for key in list(self.config[business_section].keys()):
@ -181,6 +199,10 @@ class ConfigManager:
self.set(business_section, '상호명', business_info['상호명']) self.set(business_section, '상호명', business_info['상호명'])
self.set(business_section, '등록날짜', business_info['등록날짜']) self.set(business_section, '등록날짜', business_info['등록날짜'])
self.set(business_section, '응대전화번호', business_info['응대전화번호']) self.set(business_section, '응대전화번호', business_info['응대전화번호'])
for j in range(1, 6):
# print(f"j : {j}")
self.set(business_section, f'기타정보Title{j}', business_info[f'기타정보Title{j}'])
self.set(business_section, f'기타정보Context{j}', business_info[f'기타정보Context{j}'])
def get_all_businesses(self): def get_all_businesses(self):
businesses = [] businesses = []
@ -264,3 +286,23 @@ class ConfigManager:
headless = self.get('Percenty_Setting', 'headless', fallback=True) headless = self.get('Percenty_Setting', 'headless', fallback=True)
password = self.decrypt(encrypted_password) if encrypted_password else '' password = self.decrypt(encrypted_password) if encrypted_password else ''
return user_id, password, headless return user_id, password, headless
def get_active_markets(self, business_index):
section = f"BUSINESS_{business_index}"
active_markets = self.config.get(section, "활성마켓", fallback="")
market_dict = {market: False for market in self.valid_markets} # 기본값 False로 초기화
if active_markets:
active_market_list = [market.strip() for market in active_markets.split(',')]
for market_entry in active_market_list:
if ':' in market_entry: # Ensure it has the right format
market_name, status = market_entry.split(':')
market_dict[market_name.strip()] = status.strip().lower() == 'true'
return market_dict
def set_active_markets(self, business_index, active_markets):
business_section = f'BUSINESS_{business_index}'
if not self.config.has_section(business_section):
self.config.add_section(business_section)
active_markets_str = ', '.join([f"{market}:{str(state)}" for market, state in active_markets.items()])
self.config.set(business_section, '활성마켓', active_markets_str)

Binary file not shown.

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:06.880 61c Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension Rules/MANIFEST-000001
2024/05/27-12:01:06.881 61c Recovering log #3
2024/05/27-12:01:06.881 61c Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension Rules/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:00.209 25a0 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension Rules/MANIFEST-000001
2024/05/27-12:01:00.209 25a0 Recovering log #3
2024/05/27-12:01:00.209 25a0 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension Rules/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:06.883 61c Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension Scripts/MANIFEST-000001
2024/05/27-12:01:06.883 61c Recovering log #3
2024/05/27-12:01:06.883 61c Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension Scripts/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:00.211 25a0 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension Scripts/MANIFEST-000001
2024/05/27-12:01:00.212 25a0 Recovering log #3
2024/05/27-12:01:00.212 25a0 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension Scripts/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:06.938 61c Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension State/MANIFEST-000001
2024/05/27-12:01:06.939 61c Recovering log #3
2024/05/27-12:01:06.939 61c Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension State/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:00.274 2f70 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension State/MANIFEST-000001
2024/05/27-12:01:00.274 2f70 Recovering log #3
2024/05/27-12:01:00.275 2f70 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Extension State/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:12.929 5460 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store\Encryption/MANIFEST-000001
2024/05/27-12:01:12.930 5460 Recovering log #3
2024/05/27-12:01:12.930 5460 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store\Encryption/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-11:59:41.253 92c Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store\Encryption/MANIFEST-000001
2024/05/27-11:59:41.254 92c Recovering log #3
2024/05/27-11:59:41.254 92c Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store\Encryption/000003.log

View File

@ -1,3 +1,3 @@
2024/05/26-06:56:05.808 4ae4 Reusing MANIFEST D:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store/MANIFEST-000001 2024/05/27-12:01:12.864 5460 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store/MANIFEST-000001
2024/05/26-06:56:05.808 4ae4 Recovering log #3 2024/05/27-12:01:12.865 5460 Recovering log #3
2024/05/26-06:56:05.808 4ae4 Reusing old log D:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store/000003.log 2024/05/27-12:01:12.865 5460 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store/000003.log

View File

@ -1,3 +1,3 @@
2024/05/26-06:53:25.970 4cec Reusing MANIFEST D:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store/MANIFEST-000001 2024/05/27-11:59:41.195 92c Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store/MANIFEST-000001
2024/05/26-06:53:25.978 4cec Recovering log #3 2024/05/27-11:59:41.195 92c Recovering log #3
2024/05/26-06:53:25.979 4cec Reusing old log D:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store/000003.log 2024/05/27-11:59:41.195 92c Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\GCM Store/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:08.829 24d8 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\IndexedDB\https_www.percenty.co.kr_0.indexeddb.leveldb/MANIFEST-000001
2024/05/27-12:01:08.830 24d8 Recovering log #210
2024/05/27-12:01:08.830 24d8 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\IndexedDB\https_www.percenty.co.kr_0.indexeddb.leveldb/000210.log

View File

@ -0,0 +1,4 @@
2024/05/27-12:01:02.175 2f70 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\IndexedDB\https_www.percenty.co.kr_0.indexeddb.leveldb/MANIFEST-000001
2024/05/27-12:01:02.175 2f70 Recovering log #210
2024/05/27-12:01:02.175 2f70 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\IndexedDB\https_www.percenty.co.kr_0.indexeddb.leveldb/000210.log
2024/05/27-12:01:02.175 2f70 Delete type=2 #208

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:09.294 61c Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Extension Settings\jlcdjppbpplpdgfeknhioedbhfceaben/MANIFEST-000001
2024/05/27-12:01:09.294 61c Recovering log #3
2024/05/27-12:01:09.294 61c Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Extension Settings\jlcdjppbpplpdgfeknhioedbhfceaben/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:02.651 2f70 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Extension Settings\jlcdjppbpplpdgfeknhioedbhfceaben/MANIFEST-000001
2024/05/27-12:01:02.652 2f70 Recovering log #3
2024/05/27-12:01:02.652 2f70 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Extension Settings\jlcdjppbpplpdgfeknhioedbhfceaben/000003.log

View File

@ -1,3 +1,3 @@
2024/05/26-06:55:58.670 5cb4 Reusing MANIFEST D:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Storage\leveldb/MANIFEST-000001 2024/05/27-12:01:06.733 184c Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Storage\leveldb/MANIFEST-000001
2024/05/26-06:55:58.672 5cb4 Recovering log #4 2024/05/27-12:01:06.735 184c Recovering log #9
2024/05/26-06:55:58.674 5cb4 Reusing old log D:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Storage\leveldb/000004.log 2024/05/27-12:01:06.737 184c Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Storage\leveldb/000009.log

View File

@ -1,3 +1,3 @@
2024/05/26-06:53:16.748 5be4 Reusing MANIFEST D:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Storage\leveldb/MANIFEST-000001 2024/05/27-12:01:00.049 41e0 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Storage\leveldb/MANIFEST-000001
2024/05/26-06:53:16.750 5be4 Recovering log #4 2024/05/27-12:01:00.051 41e0 Recovering log #9
2024/05/26-06:53:16.752 5be4 Reusing old log D:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Storage\leveldb/000004.log 2024/05/27-12:01:00.052 41e0 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Local Storage\leveldb/000009.log

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"sts":[{"expiry":1748209660.026642,"host":"M4bfUnCmQAi4PNb3B8aI/2+SVJhHKsMfMMT7fzi6ij4=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716673660.026645},{"expiry":1748181643.712415,"host":"NteMC+H0Eg2L0UIOiUmtgoEf2Sw3LEc26qEaChwkeLI=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1716645643.712418},{"expiry":1748002508.037612,"host":"OuKlWsMW1dkkbI1X/oi6o0Y95ZNSWnSoeaIXAEYPlv4=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716466508.037614},{"expiry":1732442173.198644,"host":"O+vMuXcyHQqrFKJVpY3mVP43CuqHm3sd65XK/Vf0sZY=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1716674173.198647},{"expiry":1748209005.105462,"host":"QsZDQb8QoAl1z86HX2ce5mPXoTo5oqzD0qghhZGylYA=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716673005.105466},{"expiry":1748210162.930688,"host":"SGK3j0zi1vYAjoogPqtWAPLUP9wptIKFYRgbv7MTx/4=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716674162.930693},{"expiry":1748210216.042332,"host":"TZmujbl93Yt3JI8wZ4X/zjkA0WFNGNW44A+o7h4YyHw=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716674216.042335},{"expiry":1727532044.396875,"host":"fJjUrPqhktMfiTHJX3Q0pJi/P12Q72DBgzzJqjlNC4o=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716645644.396882},{"expiry":1748181643.524847,"host":"mJjeTc5tMcEDQO4NQ0ysodeCIM3GviGRXlARjqFjZ7U=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1716645643.52485},{"expiry":1748206736.541742,"host":"qaDeFdT1UTirY0OQe+c5LKw+zjx6vF/+3vFh7CgrAOY=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716670736.541745},{"expiry":1747965553.657415,"host":"5EdUoB7YUY9zZV+2DkgVXgho8WUvp+D+6KpeUOhNQIM=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1716429553.657418},{"expiry":1748210159.308095,"host":"8/RrMmQlCD2Gsp14wUCE1P8r7B2C5+yE0+g79IPyRsc=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716674159.308098},{"expiry":1717278965.032426,"host":"9m9TCYYYAMLjsxSkH3tat2KKTxutFkOh9yTFzKj8slI=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716674165.032429},{"expiry":1748209554.365961,"host":"+loO+DGmT6DTr59JZFAnGSlBAwPkO5M/R9ec1Sw/9KA=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716673554.365967},{"expiry":1748206398.130323,"host":"/Io2PStL7/jvcod3tT0jPo73HDnRILY4Di46SHjGwTk=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1716670398.130327}],"version":2} {"sts":[{"expiry":1748314207.131769,"host":"M4bfUnCmQAi4PNb3B8aI/2+SVJhHKsMfMMT7fzi6ij4=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716778207.131771},{"expiry":1748181643.712415,"host":"NteMC+H0Eg2L0UIOiUmtgoEf2Sw3LEc26qEaChwkeLI=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1716645643.712418},{"expiry":1748314877.649888,"host":"OuKlWsMW1dkkbI1X/oi6o0Y95ZNSWnSoeaIXAEYPlv4=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716778877.649889},{"expiry":1732546877.915505,"host":"O+vMuXcyHQqrFKJVpY3mVP43CuqHm3sd65XK/Vf0sZY=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1716778877.915508},{"expiry":1748314778.153811,"host":"QsZDQb8QoAl1z86HX2ce5mPXoTo5oqzD0qghhZGylYA=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716778778.153814},{"expiry":1748311235.176252,"host":"SGK3j0zi1vYAjoogPqtWAPLUP9wptIKFYRgbv7MTx/4=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716775235.176255},{"expiry":1748314901.834236,"host":"TZmujbl93Yt3JI8wZ4X/zjkA0WFNGNW44A+o7h4YyHw=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716778901.83424},{"expiry":1727532044.396875,"host":"fJjUrPqhktMfiTHJX3Q0pJi/P12Q72DBgzzJqjlNC4o=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716645644.396882},{"expiry":1748311228.669427,"host":"mJjeTc5tMcEDQO4NQ0ysodeCIM3GviGRXlARjqFjZ7U=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1716775228.66943},{"expiry":1748206736.541742,"host":"qaDeFdT1UTirY0OQe+c5LKw+zjx6vF/+3vFh7CgrAOY=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716670736.541745},{"expiry":1747965553.657415,"host":"5EdUoB7YUY9zZV+2DkgVXgho8WUvp+D+6KpeUOhNQIM=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1716429553.657418},{"expiry":1748314867.131126,"host":"8/RrMmQlCD2Gsp14wUCE1P8r7B2C5+yE0+g79IPyRsc=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716778867.131129},{"expiry":1717383672.50067,"host":"9m9TCYYYAMLjsxSkH3tat2KKTxutFkOh9yTFzKj8slI=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716778872.500673},{"expiry":1748314216.325391,"host":"+loO+DGmT6DTr59JZFAnGSlBAwPkO5M/R9ec1Sw/9KA=","mode":"force-https","sts_include_subdomains":true,"sts_observed":1716778216.325394},{"expiry":1748206398.130323,"host":"/Io2PStL7/jvcod3tT0jPo73HDnRILY4Di46SHjGwTk=","mode":"force-https","sts_include_subdomains":false,"sts_observed":1716670398.130327}],"version":2}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"protection":{"super_mac":"BE75A4B51B9C976A72AB45A5A0B0D6DC6DB87DC2FF40E74AA66D2BD4DD9B263A"}} {"protection":{"super_mac":"2CDF4E489559FCB60F96C99F10F56CFC392E018FCF84445000BDAE33775B27DA"}}

View File

@ -1,3 +1,3 @@
2024/05/26-06:55:58.618 474c Reusing MANIFEST D:\py\ChangePercenty2\utils\drivers\user_data\Default\Service Worker\Database/MANIFEST-000001 2024/05/27-12:01:06.688 5060 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Service Worker\Database/MANIFEST-000001
2024/05/26-06:55:58.620 474c Recovering log #3 2024/05/27-12:01:06.689 5060 Recovering log #3
2024/05/26-06:55:58.620 474c Reusing old log D:\py\ChangePercenty2\utils\drivers\user_data\Default\Service Worker\Database/000003.log 2024/05/27-12:01:06.689 5060 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Service Worker\Database/000003.log

View File

@ -1,3 +1,3 @@
2024/05/26-06:53:16.688 58f0 Reusing MANIFEST D:\py\ChangePercenty2\utils\drivers\user_data\Default\Service Worker\Database/MANIFEST-000001 2024/05/27-12:01:00.004 50dc Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Service Worker\Database/MANIFEST-000001
2024/05/26-06:53:16.691 58f0 Recovering log #3 2024/05/27-12:01:00.004 50dc Recovering log #3
2024/05/26-06:53:16.691 58f0 Reusing old log D:\py\ChangePercenty2\utils\drivers\user_data\Default\Service Worker\Database/000003.log 2024/05/27-12:01:00.004 50dc Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Service Worker\Database/000003.log

View File

@ -1,3 +1,3 @@
2024/05/26-06:55:58.824 5cb4 Reusing MANIFEST D:\py\ChangePercenty2\utils\drivers\user_data\Default\Session Storage/MANIFEST-000001 2024/05/27-12:01:06.867 184c Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Session Storage/MANIFEST-000001
2024/05/26-06:55:58.825 5cb4 Recovering log #3 2024/05/27-12:01:06.868 184c Recovering log #4
2024/05/26-06:55:58.827 5cb4 Reusing old log D:\py\ChangePercenty2\utils\drivers\user_data\Default\Session Storage/000003.log 2024/05/27-12:01:06.869 184c Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Session Storage/000004.log

View File

@ -1,3 +1,3 @@
2024/05/26-06:53:18.946 5be4 Reusing MANIFEST D:\py\ChangePercenty2\utils\drivers\user_data\Default\Session Storage/MANIFEST-000001 2024/05/27-12:01:00.190 41e0 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Session Storage/MANIFEST-000001
2024/05/26-06:53:18.947 5be4 Recovering log #3 2024/05/27-12:01:00.191 41e0 Recovering log #4
2024/05/26-06:53:18.949 5be4 Reusing old log D:\py\ChangePercenty2\utils\drivers\user_data\Default\Session Storage/000003.log 2024/05/27-12:01:00.192 41e0 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Session Storage/000004.log

View File

@ -1,3 +1,3 @@
2024/05/26-06:55:58.633 3bc Reusing MANIFEST D:\py\ChangePercenty2\utils\drivers\user_data\Default\Site Characteristics Database/MANIFEST-000001 2024/05/27-12:01:06.700 24d8 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Site Characteristics Database/MANIFEST-000001
2024/05/26-06:55:58.633 3bc Recovering log #3 2024/05/27-12:01:06.701 24d8 Recovering log #3
2024/05/26-06:55:58.634 3bc Reusing old log D:\py\ChangePercenty2\utils\drivers\user_data\Default\Site Characteristics Database/000003.log 2024/05/27-12:01:06.701 24d8 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Site Characteristics Database/000003.log

View File

@ -1,3 +1,3 @@
2024/05/26-06:53:16.702 1580 Reusing MANIFEST D:\py\ChangePercenty2\utils\drivers\user_data\Default\Site Characteristics Database/MANIFEST-000001 2024/05/27-12:01:00.026 2f70 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Site Characteristics Database/MANIFEST-000001
2024/05/26-06:53:16.702 1580 Recovering log #3 2024/05/27-12:01:00.026 2f70 Recovering log #3
2024/05/26-06:53:16.703 1580 Reusing old log D:\py\ChangePercenty2\utils\drivers\user_data\Default\Site Characteristics Database/000003.log 2024/05/27-12:01:00.026 2f70 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Site Characteristics Database/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:06.685 61c Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Sync Data\LevelDB/MANIFEST-000001
2024/05/27-12:01:06.688 61c Recovering log #3
2024/05/27-12:01:06.688 61c Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Sync Data\LevelDB/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:00.001 2f70 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Sync Data\LevelDB/MANIFEST-000001
2024/05/27-12:01:00.004 2f70 Recovering log #3
2024/05/27-12:01:00.004 2f70 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Sync Data\LevelDB/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:06.990 61c Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Sync Extension Settings\jlcdjppbpplpdgfeknhioedbhfceaben/MANIFEST-000001
2024/05/27-12:01:06.990 61c Recovering log #3
2024/05/27-12:01:06.990 61c Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Sync Extension Settings\jlcdjppbpplpdgfeknhioedbhfceaben/000003.log

View File

@ -0,0 +1,3 @@
2024/05/27-12:01:00.322 2f70 Reusing MANIFEST H:\py\ChangePercenty2\utils\drivers\user_data\Default\Sync Extension Settings\jlcdjppbpplpdgfeknhioedbhfceaben/MANIFEST-000001
2024/05/27-12:01:00.322 2f70 Recovering log #3
2024/05/27-12:01:00.322 2f70 Reusing old log H:\py\ChangePercenty2\utils\drivers\user_data\Default\Sync Extension Settings\jlcdjppbpplpdgfeknhioedbhfceaben/000003.log

Some files were not shown because too many files have changed in this diff Show More