feat: PL24 integration + EMEX on-demand parts loading
## Major Changes ### PL24 Integration (PartsLink24 API) - Add PL24 auth service with JWT token management - Add PL24 service for VIN decode and parts catalog - Support for VAG, Mercedes, BMW, Ford, Renault and more - Schema image download with base64 decoding - Image deduplication via SchemaPic table ### EMEX On-Demand Loading - Remove automatic parts scraping during VIN decode - Add fetchCategoryParts() for on-demand loading - Store category URLs in rawResponse for later fetching - Fix Chrome executable path for Puppeteer ### VIN Decode Flow - PL24 first, fallback to EMEX if not available - Both sources now use on-demand parts loading - Faster VIN lookup (no parts scraped upfront) ### Database Schema - Add SchemaPic model for image deduplication - Add schemaPicId to VehicleCategory - Add EMEX models for parallel scraping ### Frontend Improvements - Dark theme with Tailwind CSS - Improved UI components (card, button, input) - Better category and parts display - Schema image viewer Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
39
scripts/pl24auth/captured/01-login-page.html
Normal file
@@ -0,0 +1,39 @@
|
||||
<!DOCTYPE html><html><head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- viewport-fit=cover -> for IOS notch matching -->
|
||||
<!-- maximum-scale=1.0,user-scalable=0 -> no zooming on ios -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=0, viewport-fit=cover">
|
||||
|
||||
<title>partslink24</title>
|
||||
|
||||
<!-- favicons -->
|
||||
<link rel="icon" href="/pl24-app/favicons/favicon.ico" sizes="32x32">
|
||||
<link rel="icon" href="/pl24-app/favicons/favicon.svg" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" href="/pl24-app/favicons/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="/pl24-app/favicons/safari-pinned-tab.svg" color="#000000">
|
||||
|
||||
<meta name="msapplication-TileColor" content="#f7c400">
|
||||
<meta name="msapplication-config" content="/favicons/browserconfig.xml">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
|
||||
<script type="text/plain" data-usercentrics="Matomo (self hosted)" data-metrics-id="653XEPU6" id="metrics" src="/pl24-app/metrics-loader.js"></script>
|
||||
|
||||
<script type="module" crossorigin="" src="/pl24-app/assets/index-e59f85ff.js"></script>
|
||||
<link rel="modulepreload" crossorigin="" href="/pl24-app/assets/__federation_shared_react-a187c2a1.js">
|
||||
<link rel="modulepreload" crossorigin="" href="/pl24-app/assets/__federation_shared_react-dom-435d0037.js">
|
||||
<link rel="stylesheet" href="/pl24-app/assets/index-d2bb7e3e.css">
|
||||
<link rel="manifest" href="/pl24-app/manifest.webmanifest"><style data-emotion="css-global" data-s=""></style><style data-emotion="css-global" data-s=""></style><style data-emotion="css-global" data-s=""></style><style data-emotion="css" data-s=""></style><script id="usercentrics-cmp" src="https://app.usercentrics.eu/browser-ui/latest/bundle.js" data-lang="en" data-settings-id="1dDyIAPUm" async=""></script></head>
|
||||
<body class="overflowHidden">
|
||||
<noscript>You need to enable JavaScript to run this testapp.</noscript>
|
||||
<div id="root"><div class="_container_93u48_9" lang="en" style="height: 1080px;"><div aria-hidden="true" class="MuiBackdrop-root css-ps8t2m" style="opacity: 0; transition: opacity 195ms cubic-bezier(0.4, 0, 0.2, 1); visibility: hidden;"><div class="spinner-wrapper"><div class="spinner"></div></div></div><div class="_container_s5kdw_9" style="visibility: hidden; transform: translateY(55px);"><span class="icon icon--full-screen _icon_skck4_9" data-test-id="fullscreenToggle"></span></div><div class="_headerContainer_1gzni_9"><header class="_header_1gzni_9" data-test-id="header"><div class="_container_1gzni_41"><div class="_content_1gzni_56"><div class="_container_1wqol_9"><div class="_containerLeft_1wqol_16"><img src="/pl24-app/assets/logo-272a932c.png" class="_active_1i0o2_1" style="height: 32px;"></div><div class="_menuContainer_1wqol_28"></div></div></div></div></header></div><div class="_container_1qfhg_9"><div class="_contentContainer_1qfhg_18"><h5>Login</h5><form autocomplete="on"><div class="_formInputFields_1qfhg_38"><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined css-qhqalz" data-shrink="false" for="account" id="account-label">Company ID / partslink24 ID</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl MuiInputBase-sizeSmall css-r8ai5h"><input aria-invalid="false" id="account" type="text" maxlength="16" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-pgotkk" value=""><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-1pbc52w"><span>Company ID / partslink24 ID</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined css-qhqalz" data-shrink="false" for="username" id="username-label">User name</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl MuiInputBase-sizeSmall css-r8ai5h"><input aria-invalid="false" autocomplete="username" id="username" type="text" maxlength="16" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-pgotkk" value=""><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-1pbc52w"><span>User name</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined css-qhqalz" data-shrink="false" for="password" id="password-label">Password</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl MuiInputBase-sizeSmall MuiInputBase-adornedEnd css-1syd95j"><input aria-invalid="false" autocomplete="current-password" id="password" type="password" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedEnd css-18aie37" value=""><div class="MuiInputAdornment-root MuiInputAdornment-positionEnd MuiInputAdornment-outlined MuiInputAdornment-sizeSmall css-10jn56z"><span class="icon icon-btn icon--eye-off _icon_skck4_9" style="background-color: rgb(255, 255, 255);"></span></div><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-1pbc52w"><span>Password</span></legend></fieldset></div></div></div><a href="/partslink24/user/forgottenPassword.do" target="_blank" rel="noopener noreferrer">Password forgotten?</a><button class="_btn_aow59_9 _autoWidth_aow59_24 _desktop_aow59_45 _disabled_aow59_27 _btn-primary_aow59_30" type="submit" data-test-id="loginButton"><div class="_container_aow59_81">Log in</div></button></form></div></div></div>,</div>
|
||||
|
||||
|
||||
|
||||
<div id="usercentrics-root" data-created-at="1769005788451" style=""></div><iframe id="uc-cross-domain-bridge" src="https://app.usercentrics.eu/browser-sdk/4.59.0/cross-domain-bridge.html" style="display: none;"></iframe><style id="uc-overflow-style">.overflowHidden {overflow: hidden !important;}</style></body></html>
|
||||
BIN
scripts/pl24auth/captured/01-login-page.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
scripts/pl24auth/captured/02-form-filled.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
39
scripts/pl24auth/captured/03-after-submit.html
Normal file
@@ -0,0 +1,39 @@
|
||||
<!DOCTYPE html><html><head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- viewport-fit=cover -> for IOS notch matching -->
|
||||
<!-- maximum-scale=1.0,user-scalable=0 -> no zooming on ios -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=0, viewport-fit=cover">
|
||||
|
||||
<title>partslink24</title>
|
||||
|
||||
<!-- favicons -->
|
||||
<link rel="icon" href="/pl24-app/favicons/favicon.ico" sizes="32x32">
|
||||
<link rel="icon" href="/pl24-app/favicons/favicon.svg" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" href="/pl24-app/favicons/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="/pl24-app/favicons/safari-pinned-tab.svg" color="#000000">
|
||||
|
||||
<meta name="msapplication-TileColor" content="#f7c400">
|
||||
<meta name="msapplication-config" content="/favicons/browserconfig.xml">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
|
||||
<script type="text/plain" data-usercentrics="Matomo (self hosted)" data-metrics-id="653XEPU6" id="metrics" src="/pl24-app/metrics-loader.js"></script>
|
||||
|
||||
<script type="module" crossorigin="" src="/pl24-app/assets/index-e59f85ff.js"></script>
|
||||
<link rel="modulepreload" crossorigin="" href="/pl24-app/assets/__federation_shared_react-a187c2a1.js">
|
||||
<link rel="modulepreload" crossorigin="" href="/pl24-app/assets/__federation_shared_react-dom-435d0037.js">
|
||||
<link rel="stylesheet" href="/pl24-app/assets/index-d2bb7e3e.css">
|
||||
<link rel="manifest" href="/pl24-app/manifest.webmanifest"><style data-emotion="css-global" data-s=""></style><style data-emotion="css-global" data-s=""></style><style data-emotion="css-global" data-s=""></style><style data-emotion="css" data-s=""></style><script id="usercentrics-cmp" src="https://app.usercentrics.eu/browser-ui/latest/bundle.js" data-lang="en" data-settings-id="1dDyIAPUm" async=""></script></head>
|
||||
<body class="overflowHidden">
|
||||
<noscript>You need to enable JavaScript to run this testapp.</noscript>
|
||||
<div id="root"><div class="_container_93u48_9" lang="en" style="height: 1080px;"><div aria-hidden="true" class="MuiBackdrop-root css-ps8t2m" style="opacity: 0; transition: opacity 195ms cubic-bezier(0.4, 0, 0.2, 1); visibility: hidden;"><div class="spinner-wrapper"><div class="spinner"></div></div></div><div class="_container_s5kdw_9" style="visibility: hidden; transform: translateY(55px);"><span class="icon icon--full-screen _icon_skck4_9" data-test-id="fullscreenToggle"></span></div><div class="_headerContainer_1gzni_9"><header class="_header_1gzni_9" data-test-id="header"><div class="_container_1gzni_41"><div class="_content_1gzni_56"><div class="_container_1wqol_9"><div class="_containerLeft_1wqol_16"><img src="/pl24-app/assets/logo-272a932c.png" class="_active_1i0o2_1" style="height: 32px;"></div><div class="_menuContainer_1wqol_28"></div></div></div></div></header></div><div class="_container_1qfhg_9"><div class="_contentContainer_1qfhg_18"><h5>Login</h5><form autocomplete="on"><div class="_formInputFields_1qfhg_38"><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary Mui-error MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined css-qhqalz" data-shrink="false" for="account" id="account-label">Company ID / partslink24 ID</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary Mui-error MuiInputBase-formControl MuiInputBase-sizeSmall css-r8ai5h"><input aria-invalid="true" id="account" type="text" maxlength="16" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-pgotkk" value=""><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-1pbc52w"><span>Company ID / partslink24 ID</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary Mui-error MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined css-qhqalz" data-shrink="false" for="username" id="username-label">User name</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary Mui-error MuiInputBase-formControl MuiInputBase-sizeSmall css-r8ai5h"><input aria-invalid="true" autocomplete="username" id="username" type="text" maxlength="16" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-pgotkk" value=""><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-1pbc52w"><span>User name</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary Mui-error MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-sizeSmall MuiInputLabel-outlined css-qhqalz" data-shrink="false" for="password" id="password-label">Password</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary Mui-error MuiInputBase-formControl MuiInputBase-sizeSmall MuiInputBase-adornedEnd css-1syd95j"><input aria-invalid="true" autocomplete="current-password" id="password" type="password" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedEnd css-18aie37" value=""><div class="MuiInputAdornment-root MuiInputAdornment-positionEnd MuiInputAdornment-outlined MuiInputAdornment-sizeSmall css-10jn56z"><span class="icon icon-btn icon--eye-off _icon_skck4_9" style="background-color: rgb(255, 255, 255);"></span></div><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-1pbc52w"><span>Password</span></legend></fieldset></div></div></div><a href="/partslink24/user/forgottenPassword.do" target="_blank" rel="noopener noreferrer">Password forgotten?</a><button class="_btn_aow59_9 _autoWidth_aow59_24 _desktop_aow59_45 _disabled_aow59_27 _btn-primary_aow59_30" type="submit" data-test-id="loginButton"><div class="_container_aow59_81">Log in</div></button></form></div></div></div>,</div>
|
||||
|
||||
|
||||
|
||||
<div id="usercentrics-root" data-created-at="1769005788451" style=""></div><iframe id="uc-cross-domain-bridge" src="https://app.usercentrics.eu/browser-sdk/4.59.0/cross-domain-bridge.html" style="display: none;"></iframe><style id="uc-overflow-style">.overflowHidden {overflow: hidden !important;}</style></body></html>
|
||||
BIN
scripts/pl24auth/captured/03-after-submit.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
1093
scripts/pl24auth/captured/all-network.json
Normal file
198
scripts/pl24auth/captured/api-explore-results.json
Normal file
@@ -0,0 +1,198 @@
|
||||
[
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/vehicle",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:36.683+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/vehicle"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:36.683+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/vehicle\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/vehicles",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:37.054+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/vehicles"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:37.054+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/vehicles\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/vin",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:37.349+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/vin"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:37.349+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/vin\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/vin/WVWZZZ3CZWE123456",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:37.603+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/vin/WVWZZZ3CZWE123456"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:37.603+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/vin/WVWZZZ3CZWE123456\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/vehicle/WVWZZZ3CZWE123456",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:37.855+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/vehicle/WVWZZZ3CZWE123456"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:37.855+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/vehicle/WVWZZZ3CZWE123456\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/catalog",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:38.100+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/catalog"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:38.100+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/catalog\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/catalogs",
|
||||
"status": 400,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:38.345+00:00",
|
||||
"status": 400,
|
||||
"error": "Bad Request",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/catalogs"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:38.345+00:00\",\"status\":400,\"error\":\"Bad Request\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/catalogs\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/brands",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:38.606+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/brands"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:38.606+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/brands\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/search",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:38.875+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/search"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:38.875+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/search\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/user",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:39.124+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/user"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:39.124+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/user\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/account",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:39.376+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/account"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:39.376+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/account\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/parts",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:39.638+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/parts"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:39.638+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/parts\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/groups",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:39.878+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/groups"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:39.878+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/groups\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/categories",
|
||||
"status": 404,
|
||||
"response": {
|
||||
"timestamp": "2026-01-21T14:40:40.116+00:00",
|
||||
"status": 404,
|
||||
"error": "Not Found",
|
||||
"message": "",
|
||||
"path": "/pl24-appgtw/ext/api/1.0/categories"
|
||||
},
|
||||
"raw": "{\"timestamp\":\"2026-01-21T14:40:40.116+00:00\",\"status\":404,\"error\":\"Not Found\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/categories\"}"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/api/1.0/vehicle",
|
||||
"status": 404,
|
||||
"response": null,
|
||||
"raw": "<html><body><h1> 404 Not Found - Client Error - LexCom partslink24 </h1></body></html>\n"
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"path": "/pl24-appgtw/int/api/1.0/vehicle",
|
||||
"status": 404,
|
||||
"response": null,
|
||||
"raw": "<html><body><h1> 404 Not Found - Client Error - LexCom partslink24 </h1></body></html>\n"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"request": {
|
||||
"authentication": {
|
||||
"account": "tr-903645",
|
||||
"user": "admin",
|
||||
"pwd": "Fener900*"
|
||||
},
|
||||
"device": {
|
||||
"id": "0",
|
||||
"os": "Linux x86_64",
|
||||
"offset": "0",
|
||||
"lang": "en-US",
|
||||
"os-version": "0"
|
||||
},
|
||||
"app-version": "",
|
||||
"squeezeOut": false
|
||||
},
|
||||
"response": {
|
||||
"securables": null,
|
||||
"status": "USER_ALREADY_LOGGED_IN",
|
||||
"title": null,
|
||||
"refreshToken": null,
|
||||
"token": null
|
||||
},
|
||||
"headers": {
|
||||
"content-type": "application/json",
|
||||
"cache-control": "no-cache",
|
||||
"expires": "-1",
|
||||
"strict-transport-security": "max-age=63072000",
|
||||
"x-frame-options": "sameorigin",
|
||||
"x-content-type-options": "nosniff",
|
||||
"date": "Wed, 21 Jan 2026 14:33:54 GMT",
|
||||
"content-length": "99",
|
||||
"connection": "keep-alive"
|
||||
},
|
||||
"status": 200
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"request": {
|
||||
"authentication": {
|
||||
"account": "tr-903645",
|
||||
"user": "admin",
|
||||
"pwd": "Fener900*"
|
||||
},
|
||||
"device": {
|
||||
"id": "0",
|
||||
"os": "Linux x86_64",
|
||||
"offset": "0",
|
||||
"lang": "en-US",
|
||||
"os-version": "0"
|
||||
},
|
||||
"app-version": "",
|
||||
"squeezeOut": true
|
||||
},
|
||||
"response": {
|
||||
"securables": null,
|
||||
"status": null,
|
||||
"title": null,
|
||||
"refreshToken": "WO2uXo9RXvC2JEjH4aI-5EGCf57yHP5K",
|
||||
"token": {
|
||||
"access_token": "eyJhcHAiOiJwYXJ0c2xpbmsyNCIsImtpZCI6InByLXBsMjRqd2tzLWtpZDEiLCJ0eXBlIjoiYXV0aG9yaXphdGlvbiIsImFsZyI6IlJTMjU2In0.eyJpYXQiOjE3NjkwMDYwMzQsImV4cCI6MTc2OTAwNjYzNCwic2lkIjoiWDViOXBoVGl2LUFpeGhNYTUyOGR2SHBlWVRjeDd6X1YiLCJhaWQiOjE0OTg1ODMsInVpZCI6MjE0NDA5NCwic2VydmljZXMiOlsibWluaV9wYXJ0cyIsImxhbmRyb3Zlcl9wYXJ0cyIsImJtd21vdG9ycmFkX3BhcnRzIiwic3V6dWtpX3BhcnRzIiwidndjbGFzc2ljX3BhcnRzIiwicGwyNC1mdWxsLXZpbi1kYXRhIiwicG9yc2NoZWNsYXNzaWNfcGFydHMiLCJjaXRyb2VuRHNfcGFydHMiLCJsZXh1c19wYXJ0cyIsImNhcnQiLCJibXdjbGFzc2ljX3BhcnRzIiwiZGFjaWFfcGFydHMiLCJzbWFydF9wYXJ0cyIsImNpdHJvZW5fcGFydHMiLCJ0b3lvdGFfcGFydHMiLCJtZXJjZWRlc3VuaW1vZ19wYXJ0cyIsImJlbnRsZXlfcGFydHMiLCJwZXVnZW90X3BhcnRzIiwiYm13X3BhcnRzIiwiamFndWFyX3BhcnRzIiwibW1jX3BhcnRzIiwidndfcGFydHMiLCJjdXByYV9wYXJ0cyIsImF1ZGlfcGFydHMiLCJwb3JzY2hlX3BhcnRzIiwibWVyY2VkZXN0cnVja3NfcGFydHMiLCJtYW5fcGFydHMiLCJyZW5hdWx0X3BhcnRzIiwibWVyY2VkZXNfcGFydHMiLCJzZWF0X3BhcnRzIiwic2tvZGFfcGFydHMiLCJwbDI0LWFyY2gyLWNhcnQiLCJhbHBpbmVfcGFydHMiLCJ2bl9wYXJ0cyIsIm1lcmNlZGVzdmFuc19wYXJ0cyIsIm1pbmljbGFzc2ljX3BhcnRzIiwiYm13bW90b3JyYWRjbGFzc2ljX3BhcnRzIiwicGwyNC11c2FnZSJdLCJsaWNpZCI6MTk4MzYwNjYsImFwcCI6InBhcnRzbGluazI0IiwidHlwZSI6InBsMjQtYXV0aG9yaXphdGlvbiIsImNvdW50cnkiOiJUUiIsInVsbyI6ImFkbWluIiwiYWxvIjoidHItOTAzNjQ1In0.BGJ04DyNZQBTnmYgZTTOpc6MI3Ua8yHO9px_eNpV1xNTFoPFawolIJsb1AuyqnMgD6ol5yLHOqaUZ2WPX6Na1ZZCFJRCno6izNBfcvN7xTN7qsFRjW1XPdr3LQXvX_WekYixOHKUQfn1bggoVfDiG8FplLQHRVIIQPt7JGWIa7QzDZEBZDr6pkbZWvDog3PxvbLbDaN3F6W2y7LTC-uJQtcQqawzVT8mQseUSgdK5JBnBVUl4dZARUWBPhebDDJJHJgzxbrvTyLLfn0XvtkneOG7h1eLCrZglARZ9IRpbsbcyKFevVjObzPd07qg63veAwItX9R1MoNitrfZEhRCVA",
|
||||
"token_type": "Bearer",
|
||||
"expires_in": 600,
|
||||
"scope": "mini_parts landrover_parts bmwmotorrad_parts suzuki_parts vwclassic_parts pl24-full-vin-data porscheclassic_parts citroenDs_parts lexus_parts cart bmwclassic_parts dacia_parts smart_parts citroen_parts toyota_parts mercedesunimog_parts bentley_parts peugeot_parts bmw_parts jaguar_parts mmc_parts vw_parts cupra_parts audi_parts porsche_parts mercedestrucks_parts man_parts renault_parts mercedes_parts seat_parts skoda_parts pl24-arch2-cart alpine_parts vn_parts mercedesvans_parts miniclassic_parts bmwmotorradclassic_parts pl24-usage"
|
||||
}
|
||||
},
|
||||
"headers": {
|
||||
"content-type": "application/json",
|
||||
"cache-control": "no-cache",
|
||||
"expires": "-1",
|
||||
"strict-transport-security": "max-age=63072000",
|
||||
"x-frame-options": "sameorigin",
|
||||
"x-content-type-options": "nosniff",
|
||||
"date": "Wed, 21 Jan 2026 14:33:54 GMT",
|
||||
"content-length": "2288",
|
||||
"connection": "keep-alive",
|
||||
"set-cookie": [
|
||||
"PL24TOKEN=X5b9phTiv-AixhMa528dvHpeYTcx7z_V; Path=/; Secure; SameSite=Lax"
|
||||
]
|
||||
},
|
||||
"status": 200
|
||||
}
|
||||
137
scripts/pl24auth/captured/auth-traffic.json
Normal file
@@ -0,0 +1,137 @@
|
||||
[
|
||||
{
|
||||
"timestamp": "2026-01-21T14:29:46.891Z",
|
||||
"url": "https://www.partslink24.com/pl24-app/login",
|
||||
"method": "GET",
|
||||
"headers": {
|
||||
"upgrade-insecure-requests": "1",
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||||
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"
|
||||
},
|
||||
"postData": null
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-01-21T14:29:47.113Z",
|
||||
"url": "https://www.partslink24.com/pl24-app/login",
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"accept-ranges": "bytes",
|
||||
"cache-control": "max-age=60",
|
||||
"content-encoding": "gzip",
|
||||
"content-length": "990",
|
||||
"content-security-policy-report-only": "default-src 'self'; script-src 'self' 'unsafe-eval' https://metrics.partslink24.com https://app.usercentrics.eu; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self' data: https:; worker-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; report-uri /pl24-app/csp-report;",
|
||||
"content-type": "text/html",
|
||||
"date": "Wed, 21 Jan 2026 14:29:47 GMT",
|
||||
"etag": "\"693a9d69-737\"",
|
||||
"expires": "Wed, 21 Jan 2026 14:30:47 GMT",
|
||||
"last-modified": "Thu, 11 Dec 2025 10:31:05 GMT",
|
||||
"permissions-policy": "geolocation=(), microphone=(), camera=()",
|
||||
"referrer-policy": "strict-origin-when-cross-origin",
|
||||
"strict-transport-security": "max-age=63072000",
|
||||
"vary": "Accept-Encoding",
|
||||
"x-content-type-options": "nosniff",
|
||||
"x-frame-options": "sameorigin"
|
||||
},
|
||||
"body": "<!doctype html>\n<html>\n <head>\n <meta charset=\"utf-8\" />\n\n <!-- viewport-fit=cover -> for IOS notch matching -->\n <!-- maximum-scale=1.0,user-scalable=0 -> no zooming on ios -->\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=0, viewport-fit=cover\"\n />\n\n <title>partslink24</title>\n\n <!-- favicons -->\n <link rel=\"icon\" href=\"/pl24-app/favicons/favicon.ico\" sizes=\"32x32\">\n <link rel=\"icon\" href=\"/pl24-app/favicons/favicon.svg\" type=\"image/svg+xml\">\n <link rel=\"apple-touch-icon\" href=\"/pl24-app/favicons/apple-touch-icon.png\">\n <link rel=\"mask-icon\" href=\"/pl24-app/favicons/safari-pinned-tab.svg\" color=\"#000000\">\n\n <meta name=\"msapplication-TileColor\" content=\"#f7c400\">\n <meta name=\"msapplication-config\" content=\"/favicons/browserconfig.xml\">\n <meta name=\"theme-color\" content=\"#ffffff\">\n\n <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"default\" />\n\n <meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n\n <meta name=\"format-detection\" content=\"telephone=no\" />\n\n <script type=\"text/plain\" data-usercentrics=\"Matomo (self hosted)\" data-metrics-id=\"undefined\" id=\"metrics\" src=\"/pl24-app/metrics-loader.js\"></script>\n\n <script type=\"module\" crossorigin src=\"/pl24-app/assets/index-e59f85ff.js\"></script>\n <link rel=\"modulepreload\" crossorigin href=\"/pl24-app/assets/__federation_shared_react-a187c2a1.js\">\n <link rel=\"modulepreload\" crossorigin href=\"/pl24-app/assets/__federation_shared_react-dom-435d0037.js\">\n <link rel=\"stylesheet\" href=\"/pl24-app/assets/index-d2bb7e3e.css\">\n <link rel=\"manifest\" href=\"/pl24-app/manifest.webmanifest\"></head>\n <body>\n <noscript>You need to enable JavaScript to run this testapp.</noscript>\n <div id=\"root\"></div>\n \n </body>\n</html>\n"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-01-21T14:29:48.361Z",
|
||||
"url": "https://www.partslink24.com/pl24-appgtw/ext/api/1.0/legal/en",
|
||||
"method": "GET",
|
||||
"headers": {
|
||||
"referer": "https://www.partslink24.com/pl24-app/login",
|
||||
"accept-language": "en",
|
||||
"accept": "application/json",
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
|
||||
},
|
||||
"postData": null
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-01-21T14:29:48.594Z",
|
||||
"url": "https://www.partslink24.com/pl24-appgtw/ext/api/1.0/legal/en",
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"cache-control": "no-cache",
|
||||
"content-encoding": "gzip",
|
||||
"content-length": "204",
|
||||
"content-type": "application/json",
|
||||
"date": "Wed, 21 Jan 2026 14:29:48 GMT",
|
||||
"expires": "-1",
|
||||
"strict-transport-security": "max-age=63072000",
|
||||
"vary": "Accept-Encoding",
|
||||
"x-content-type-options": "nosniff",
|
||||
"x-frame-options": "sameorigin"
|
||||
},
|
||||
"body": "{\"legalDocuments\":[{\"name\":\"partslink24-privacy\",\"url\":\"https://www.lexcom.de/legal/partslink24-privacy/en/en/partslink24-privacy.html\"},{\"name\":\"partslink24-tos\",\"url\":\"https://www.lexcom.de/legal/partslink24-tos/en/en/partslink24-tos.html\"},{\"name\":\"general-dataprocessing\",\"url\":\"https://www.lexcom.de/legal/general-dataprocessing/en/en/general-dataprocessing.html\"},{\"name\":\"partslink24-legalnotice\",\"url\":\"https://www.lexcom.de/legal/partslink24-legalnotice/en/en/partslink24-legalnotice.html\"}]}"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-01-21T14:29:48.784Z",
|
||||
"url": "https://app.usercentrics.eu/session/1px.png?settingsId=1dDyIAPUm",
|
||||
"method": "GET",
|
||||
"headers": {
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||||
"referer": "https://www.partslink24.com/",
|
||||
"accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"
|
||||
},
|
||||
"postData": null
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-01-21T14:29:48.820Z",
|
||||
"url": "https://app.usercentrics.eu/session/1px.png?settingsId=1dDyIAPUm",
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"accept-ranges": "bytes",
|
||||
"age": "686",
|
||||
"alt-svc": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000",
|
||||
"cache-control": "public,max-age=1800,no-transform",
|
||||
"content-encoding": "gzip",
|
||||
"content-length": "522",
|
||||
"content-type": "image/png",
|
||||
"cross-origin-resource-policy": "cross-origin",
|
||||
"date": "Wed, 21 Jan 2026 14:18:22 GMT",
|
||||
"etag": "\"3702ada73b8951017b8451cbd6a96523\"",
|
||||
"expires": "Wed, 21 Jan 2026 14:48:22 GMT",
|
||||
"last-modified": "Fri, 08 May 2020 09:06:13 GMT",
|
||||
"server": "UploadServer",
|
||||
"strict-transport-security": "max-age=7776000",
|
||||
"x-goog-generation": "1588928773413784",
|
||||
"x-goog-hash": "crc32c=pFwm0Q==\nmd5=NwKtpzuJUQF7hFHL1qllIw==",
|
||||
"x-goog-metageneration": "1",
|
||||
"x-goog-storage-class": "STANDARD",
|
||||
"x-goog-stored-content-encoding": "gzip",
|
||||
"x-goog-stored-content-length": "522",
|
||||
"x-guploader-uploadid": "AJRbA5Vl28EBPhzUA7DV461ZDdyWmAQvjC1LwepT-mBiIaY8ftU4obPhfnGtLl0dHxgFsIDU"
|
||||
},
|
||||
"body": null
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-01-21T14:29:49.035Z",
|
||||
"url": "https://uct.service.usercentrics.eu/uct?v=1&sid=1dDyIAPUm&t=1&abv=&r=https%3A%2F%2Fwww.partslink24.com%2Fpl24-app%2Flogin&cb=1769005789031",
|
||||
"method": "GET",
|
||||
"headers": {
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||||
"referer": "https://www.partslink24.com/",
|
||||
"accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"
|
||||
},
|
||||
"postData": null
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-01-21T14:29:49.179Z",
|
||||
"url": "https://uct.service.usercentrics.eu/uct?v=1&sid=1dDyIAPUm&t=1&abv=&r=https%3A%2F%2Fwww.partslink24.com%2Fpl24-app%2Flogin&cb=1769005789031",
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"alt-svc": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000",
|
||||
"cache-control": "no-store",
|
||||
"content-length": "35",
|
||||
"content-type": "image/gif",
|
||||
"cross-origin-resource-policy": "cross-origin",
|
||||
"date": "Wed, 21 Jan 2026 14:29:49 GMT",
|
||||
"function-execution-id": "avjctwvu3d1x",
|
||||
"server": "Google Frontend",
|
||||
"strict-transport-security": "max-age=7776000",
|
||||
"via": "1.1 google",
|
||||
"x-cloud-trace-context": "a177258755828607934851c19027a6f5"
|
||||
},
|
||||
"body": null
|
||||
}
|
||||
]
|
||||
100
scripts/pl24auth/captured/brand-test-results.json
Normal file
@@ -0,0 +1,100 @@
|
||||
[
|
||||
{
|
||||
"brand": "Volkswagen",
|
||||
"serviceName": "vw_parts",
|
||||
"catalogBase": "/p5vwag",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "Audi",
|
||||
"serviceName": "audi_parts",
|
||||
"catalogBase": "/p5vwag",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "Skoda",
|
||||
"serviceName": "skoda_parts",
|
||||
"catalogBase": "/p5vwag",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "SEAT",
|
||||
"serviceName": "seat_parts",
|
||||
"catalogBase": "/p5vwag",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "BMW",
|
||||
"serviceName": "bmw_parts",
|
||||
"catalogBase": "/p5bmw",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "MINI",
|
||||
"serviceName": "mini_parts",
|
||||
"catalogBase": "/p5bmw",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "Mercedes-Benz",
|
||||
"serviceName": "mercedes_parts",
|
||||
"catalogBase": "/p5daimler",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "Porsche",
|
||||
"serviceName": "porsche_parts",
|
||||
"catalogBase": "/p5porsche",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "Toyota",
|
||||
"serviceName": "toyota_parts",
|
||||
"catalogBase": "/p5toyota",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "Lexus",
|
||||
"serviceName": "lexus_parts",
|
||||
"catalogBase": "/p5toyota",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "Renault",
|
||||
"serviceName": "renault_parts",
|
||||
"catalogBase": "/p5renault",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "Dacia",
|
||||
"serviceName": "dacia_parts",
|
||||
"catalogBase": "/p5renault",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "Jaguar",
|
||||
"serviceName": "jaguar_parts",
|
||||
"catalogBase": "/p5jlr",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
},
|
||||
{
|
||||
"brand": "Land Rover",
|
||||
"serviceName": "landrover_parts",
|
||||
"catalogBase": "/p5jlr",
|
||||
"success": false,
|
||||
"error": "No valid VIN found"
|
||||
}
|
||||
]
|
||||
206
scripts/pl24auth/captured/categories-structure.json
Normal file
@@ -0,0 +1,206 @@
|
||||
{
|
||||
"crumbs": [
|
||||
{
|
||||
"name": "Volkswagen",
|
||||
"link": {
|
||||
"wid": "modelFamiliesTable",
|
||||
"path": "/p5vwag/extern/vehicle/modelfamilies?lang=en&serviceName=vw_parts&upds=2026-01-16--00-01"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Golf 2012 WVWZZZ1KZCW123456",
|
||||
"link": {
|
||||
"wid": "mainGroupsTable",
|
||||
"path": "/p5vwag/extern/groups/vin_maingroups?lang=en&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456",
|
||||
"vq": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"search": {
|
||||
"wid": "searchresult",
|
||||
"path": "/p5vwag/extern/search/vin?lang=en&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456&q="
|
||||
},
|
||||
"demo": false,
|
||||
"data": {
|
||||
"records": [
|
||||
{
|
||||
"id": "1",
|
||||
"link": {
|
||||
"wid": "subGroupsIllusTable",
|
||||
"path": "/p5vwag/extern/groups/vin_subgroups_illus?lang=en&maingroup=1&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "1 Engine"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "2",
|
||||
"link": {
|
||||
"wid": "subGroupsIllusTable",
|
||||
"path": "/p5vwag/extern/groups/vin_subgroups_illus?lang=en&maingroup=2&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "2 Fuel, exhaust, cooling"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "3",
|
||||
"link": {
|
||||
"wid": "subGroupsIllusTable",
|
||||
"path": "/p5vwag/extern/groups/vin_subgroups_illus?lang=en&maingroup=3&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "3 Gearbox"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "4",
|
||||
"link": {
|
||||
"wid": "subGroupsIllusTable",
|
||||
"path": "/p5vwag/extern/groups/vin_subgroups_illus?lang=en&maingroup=4&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "4 Front axle, steering"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "5",
|
||||
"link": {
|
||||
"wid": "subGroupsIllusTable",
|
||||
"path": "/p5vwag/extern/groups/vin_subgroups_illus?lang=en&maingroup=5&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "5 Rear axle"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "6",
|
||||
"link": {
|
||||
"wid": "subGroupsIllusTable",
|
||||
"path": "/p5vwag/extern/groups/vin_subgroups_illus?lang=en&maingroup=6&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "6 Wheels, brakes"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "7",
|
||||
"link": {
|
||||
"wid": "subGroupsIllusTable",
|
||||
"path": "/p5vwag/extern/groups/vin_subgroups_illus?lang=en&maingroup=7&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "7 Pedals"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "8",
|
||||
"link": {
|
||||
"wid": "subGroupsIllusTable",
|
||||
"path": "/p5vwag/extern/groups/vin_subgroups_illus?lang=en&maingroup=8&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "8 Body"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "9",
|
||||
"link": {
|
||||
"wid": "subGroupsIllusTable",
|
||||
"path": "/p5vwag/extern/groups/vin_subgroups_illus?lang=en&maingroup=9&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "9 Electrics"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "0",
|
||||
"link": {
|
||||
"wid": "subGroupsIllusTable",
|
||||
"path": "/p5vwag/extern/groups/vin_subgroups_illus?lang=en&maingroup=0&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "0 Access.,Infotainment,Miscell."
|
||||
}
|
||||
},
|
||||
{
|
||||
"characteristic": "sectionrow",
|
||||
"id": "_CATINFO_",
|
||||
"important": true,
|
||||
"values": {
|
||||
"caption": "Catalogue Information"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "_VPAGES_",
|
||||
"link": {
|
||||
"wid": "vPagesGroupsTable",
|
||||
"path": "/p5vwag/extern/vpages/vin_groups?lang=en&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "V\\-Pages"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "_MSPPAGES_",
|
||||
"link": {
|
||||
"wid": "mspPagesGroupsTable",
|
||||
"path": "/p5vwag/extern/msppages/vin_groups?lang=en&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "MSP pages"
|
||||
}
|
||||
},
|
||||
{
|
||||
"characteristic": "sectionrow",
|
||||
"id": "_SPECIAL_",
|
||||
"important": true,
|
||||
"values": {
|
||||
"caption": "Special Catalogues"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "_CHEMICALS_",
|
||||
"link": {
|
||||
"wid": "chemicalsGroupsTable",
|
||||
"path": "/p5vwag/extern/chemicals/vin_groups?lang=en&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "Chemical Materials"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "10001",
|
||||
"link": {
|
||||
"wid": "servicePartsGroupsTable",
|
||||
"path": "/p5vwag/extern/servicepart/vin_groups?lang=en&serviceName=vw_parts&servicePartsId=10001&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "Service parts"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "20001",
|
||||
"link": {
|
||||
"wid": "servicePartsGroupsTable",
|
||||
"path": "/p5vwag/extern/servicepart/vin_groups?lang=en&serviceName=vw_parts&servicePartsId=20001&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"values": {
|
||||
"caption": "wear parts"
|
||||
}
|
||||
}
|
||||
],
|
||||
"topRightButton": {
|
||||
"type": "GRAPH_NAV",
|
||||
"wid": "graphnavCategories",
|
||||
"path": "/p5vwag/extern/graphnav/categories/vin?lang=en&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456",
|
||||
"hint": "Graphical Navigation"
|
||||
}
|
||||
},
|
||||
"catalogContext": {
|
||||
"lang": "en",
|
||||
"serviceName": "vw_parts",
|
||||
"upds": "2026-01-16--00-01",
|
||||
"vin": "WVWZZZ1KZCW123456"
|
||||
}
|
||||
}
|
||||
1
scripts/pl24auth/captured/cookies.json
Normal file
@@ -0,0 +1 @@
|
||||
[]
|
||||
BIN
scripts/pl24auth/captured/final-01-vin-entered.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
39
scripts/pl24auth/captured/final-02-search-results.html
Normal file
BIN
scripts/pl24auth/captured/final-02-search-results.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
1235
scripts/pl24auth/captured/final-api-calls.json
Normal file
44
scripts/pl24auth/captured/form-analysis.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"formCount": 1,
|
||||
"forms": [
|
||||
{
|
||||
"id": "",
|
||||
"action": "https://www.partslink24.com/pl24-app/login",
|
||||
"method": "get"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"id": "account",
|
||||
"name": "",
|
||||
"type": "text",
|
||||
"placeholder": "",
|
||||
"aria-label": null,
|
||||
"autocomplete": ""
|
||||
},
|
||||
{
|
||||
"id": "username",
|
||||
"name": "",
|
||||
"type": "text",
|
||||
"placeholder": "",
|
||||
"aria-label": null,
|
||||
"autocomplete": "username"
|
||||
},
|
||||
{
|
||||
"id": "password",
|
||||
"name": "",
|
||||
"type": "password",
|
||||
"placeholder": "",
|
||||
"aria-label": null,
|
||||
"autocomplete": "current-password"
|
||||
}
|
||||
],
|
||||
"buttons": [
|
||||
{
|
||||
"id": "",
|
||||
"type": "submit",
|
||||
"text": "Log in",
|
||||
"className": "_btn_aow59_9 _autoWidth_aow59_24 _desktop_aow59_45 _disabled_aow59_27 _btn-primary_aow59_30"
|
||||
}
|
||||
]
|
||||
}
|
||||
5
scripts/pl24auth/captured/fresh-tokens.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"accessToken": "eyJhcHAiOiJwYXJ0c2xpbmsyNCIsImtpZCI6InByLXBsMjRqd2tzLWtpZDEiLCJ0eXBlIjoiYXV0aG9yaXphdGlvbiIsImFsZyI6IlJTMjU2In0.eyJpYXQiOjE3NjkwMDY0MzYsImV4cCI6MTc2OTAwNzAzNiwic2lkIjoiOUZOazhpRUhJN1JRNzl0UjYyRmg0Z19kai02bXAtMmEiLCJhaWQiOjE0OTg1ODMsInVpZCI6MjE0NDA5NCwic2VydmljZXMiOlsibWluaV9wYXJ0cyIsImxhbmRyb3Zlcl9wYXJ0cyIsImJtd21vdG9ycmFkX3BhcnRzIiwic3V6dWtpX3BhcnRzIiwidndjbGFzc2ljX3BhcnRzIiwicGwyNC1mdWxsLXZpbi1kYXRhIiwicG9yc2NoZWNsYXNzaWNfcGFydHMiLCJjaXRyb2VuRHNfcGFydHMiLCJsZXh1c19wYXJ0cyIsImNhcnQiLCJibXdjbGFzc2ljX3BhcnRzIiwiZGFjaWFfcGFydHMiLCJzbWFydF9wYXJ0cyIsImNpdHJvZW5fcGFydHMiLCJ0b3lvdGFfcGFydHMiLCJtZXJjZWRlc3VuaW1vZ19wYXJ0cyIsImJlbnRsZXlfcGFydHMiLCJwZXVnZW90X3BhcnRzIiwiYm13X3BhcnRzIiwiamFndWFyX3BhcnRzIiwibW1jX3BhcnRzIiwidndfcGFydHMiLCJjdXByYV9wYXJ0cyIsImF1ZGlfcGFydHMiLCJwb3JzY2hlX3BhcnRzIiwibWVyY2VkZXN0cnVja3NfcGFydHMiLCJtYW5fcGFydHMiLCJyZW5hdWx0X3BhcnRzIiwibWVyY2VkZXNfcGFydHMiLCJzZWF0X3BhcnRzIiwic2tvZGFfcGFydHMiLCJwbDI0LWFyY2gyLWNhcnQiLCJhbHBpbmVfcGFydHMiLCJ2bl9wYXJ0cyIsIm1lcmNlZGVzdmFuc19wYXJ0cyIsIm1pbmljbGFzc2ljX3BhcnRzIiwiYm13bW90b3JyYWRjbGFzc2ljX3BhcnRzIiwicGwyNC11c2FnZSJdLCJsaWNpZCI6MTk4MzYwNjYsImFwcCI6InBhcnRzbGluazI0IiwidHlwZSI6InBsMjQtYXV0aG9yaXphdGlvbiIsImNvdW50cnkiOiJUUiIsInVsbyI6ImFkbWluIiwiYWxvIjoidHItOTAzNjQ1In0.rGKyQRHRyeZpvK6Uwr3x24cowUCvOXtOUlVshM3JYyUsrT9NqzYUMvk029WCjCy7KK8bs3CVZ2LBA1wERY033GaV6cMlgeUMnWRaS1dEb9n9lSC8mqBXrVDbMufMPbWZBrx8oenmZJydPQhWKV9QfYqaffCyYBWUyXeqDB_QfOYmQ0-1uFqBu_l42pRNMax02BfoqJw6EE70a-mM9OCIgGU5Y34jd4_t8uvu5C0bxgME0QOxuncx7ALFX0LPtfXZN6yU5rXnrAcP_SOP-ImcTDbEg3zAtMfSxsUfL_54lumjlZOmjKLt5lNBcx1hl4o4DdbA30uWKfgiyUmKPekd5Q",
|
||||
"refreshToken": "d_y4_DQK1bjPjMKL-O4PjHgF7486OIYE",
|
||||
"sessionCookie": "PL24TOKEN=9FNk8iEHI7RQ79tR62Fh4g_dj-6mp-2a"
|
||||
}
|
||||
BIN
scripts/pl24auth/captured/full-01-login.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
scripts/pl24auth/captured/full-02-filled.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
scripts/pl24auth/captured/full-03-after-click.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
scripts/pl24auth/captured/full-03-after-login.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
39
scripts/pl24auth/captured/full-03-home.html
Normal file
BIN
scripts/pl24auth/captured/full-04-home.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
scripts/pl24auth/captured/full-05-after-vw-click.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
scripts/pl24auth/captured/full-07-after-vin-search.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
39
scripts/pl24auth/captured/full-07-final.html
Normal file
142
scripts/pl24auth/captured/full-api-calls.json
Normal file
47
scripts/pl24auth/captured/full-cookies.json
Normal file
@@ -0,0 +1,47 @@
|
||||
[
|
||||
{
|
||||
"name": "PL24TOKEN",
|
||||
"value": "5rg6uGtk79AnpHpWwgpB6-z2sV941cha",
|
||||
"domain": "www.partslink24.com",
|
||||
"path": "/",
|
||||
"expires": -1,
|
||||
"size": 41,
|
||||
"httpOnly": false,
|
||||
"secure": true,
|
||||
"session": true,
|
||||
"sameSite": "Lax",
|
||||
"priority": "Medium",
|
||||
"sameParty": false,
|
||||
"sourceScheme": "Secure"
|
||||
},
|
||||
{
|
||||
"name": "_pk_ses.6.c77c",
|
||||
"value": "1",
|
||||
"domain": "www.partslink24.com",
|
||||
"path": "/",
|
||||
"expires": 1769021072,
|
||||
"size": 15,
|
||||
"httpOnly": false,
|
||||
"secure": false,
|
||||
"session": false,
|
||||
"sameSite": "Lax",
|
||||
"priority": "Medium",
|
||||
"sameParty": false,
|
||||
"sourceScheme": "Secure"
|
||||
},
|
||||
{
|
||||
"name": "_pk_id.6.c77c",
|
||||
"value": "6a35a5b5a18b914e.1769019272.",
|
||||
"domain": "www.partslink24.com",
|
||||
"path": "/",
|
||||
"expires": 1802974472,
|
||||
"size": 41,
|
||||
"httpOnly": false,
|
||||
"secure": false,
|
||||
"session": false,
|
||||
"sameSite": "Lax",
|
||||
"priority": "Medium",
|
||||
"sameParty": false,
|
||||
"sourceScheme": "Secure"
|
||||
}
|
||||
]
|
||||
BIN
scripts/pl24auth/captured/full-error.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
13
scripts/pl24auth/captured/full-storage.json
Normal file
163
scripts/pl24auth/captured/parts-structure.json
Normal file
@@ -0,0 +1,163 @@
|
||||
{
|
||||
"crumbs": [
|
||||
{
|
||||
"name": "Volkswagen",
|
||||
"link": {
|
||||
"wid": "modelFamiliesTable",
|
||||
"path": "/p5vwag/extern/vehicle/modelfamilies?lang=en&serviceName=vw_parts&upds=2026-01-16--00-01"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Golf 2012 WVWZZZ1KZCW123456",
|
||||
"link": {
|
||||
"wid": "mainGroupsTable",
|
||||
"path": "/p5vwag/extern/groups/vin_maingroups?lang=en&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456",
|
||||
"vq": true,
|
||||
"id": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Engine",
|
||||
"link": {
|
||||
"wid": "subGroupsIllusTable",
|
||||
"path": "/p5vwag/extern/groups/vin_subgroups_illus?lang=en&maingroup=1&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456",
|
||||
"vq": true,
|
||||
"id": "22786786"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "100-005",
|
||||
"link": {
|
||||
"wid": "bomlist",
|
||||
"path": "/p5vwag/extern/bom/vin?illustrationId=22786786&lang=en&maingroup=1&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456",
|
||||
"vq": true
|
||||
},
|
||||
"next": {
|
||||
"name": "Base engine",
|
||||
"link": {
|
||||
"wid": "bomlist",
|
||||
"path": "/p5vwag/extern/bom/vin?illustrationId=22786805&lang=en&maingroup=1&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456",
|
||||
"vq": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"search": {
|
||||
"wid": "searchresult",
|
||||
"path": "/p5vwag/extern/search/vin?illustrationId=22786786&lang=en&maingroup=1&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456&q="
|
||||
},
|
||||
"demo": false,
|
||||
"data": {
|
||||
"records": [
|
||||
{
|
||||
"characteristic": "sectionrow",
|
||||
"id": "22786788",
|
||||
"description": "Base engine",
|
||||
"values": {
|
||||
"partno": " ",
|
||||
"remark": "1.2 Ltr.",
|
||||
"modelDescription": "Petrol eng.\\+\r\nCBZA,CBZB",
|
||||
"deploymentTime": " ",
|
||||
"description": "Base engine"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "22786791",
|
||||
"partno": "03F100091A",
|
||||
"description": "Base engine",
|
||||
"link": {
|
||||
"wid": "partinfo",
|
||||
"path": "/p5vwag/extern/partinfo/vin?fiValidity=VALID&illustration=100-005&illustrationId=22786786&illustrationNormalized=100005&lang=en&maingroup=1&position=1&positionId=22786791&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"presel": true,
|
||||
"pos": "1",
|
||||
"hotspotImageIds": [
|
||||
"_DFLT_"
|
||||
],
|
||||
"hotspotId": "1",
|
||||
"values": {
|
||||
"partno": " 03F 100 091 A ",
|
||||
"qty": " 1",
|
||||
"remark": "1.2 Ltr.",
|
||||
"pos": "1",
|
||||
"deploymentTime": " ",
|
||||
"description": "Base engine"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "22786794",
|
||||
"partno": "03F100091AX",
|
||||
"description": "Base engine",
|
||||
"link": {
|
||||
"wid": "partinfo",
|
||||
"path": "/p5vwag/extern/partinfo/vin?fiValidity=VALID&illustration=100-005&illustrationId=22786786&illustrationNormalized=100005&lang=en&maingroup=1&position=%281%29&positionId=22786794&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"pos": "(1)",
|
||||
"hotspotImageIds": [
|
||||
"_DFLT_"
|
||||
],
|
||||
"hotspotId": "1",
|
||||
"values": {
|
||||
"partno": " 03F 100 091 AX",
|
||||
"qty": " 1",
|
||||
"remark": "1.2 Ltr.",
|
||||
"pos": "(1)",
|
||||
"deploymentTime": " ",
|
||||
"description": "Base engine"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "22786804",
|
||||
"partno": "06B105313D",
|
||||
"description": "needle bearing -",
|
||||
"link": {
|
||||
"wid": "partinfo",
|
||||
"path": "/p5vwag/extern/partinfo/vin?fiValidity=INVALID&illustration=100-005&illustrationId=22786786&illustrationNormalized=100005&lang=en&maingroup=1&position=-&positionId=22786804&serviceName=vw_parts&upds=2026-01-16--00-01&vin=WVWZZZ1KZCW123456"
|
||||
},
|
||||
"unavailable": true,
|
||||
"pos": "-",
|
||||
"values": {
|
||||
"partno": " 06B 105 313 D ",
|
||||
"qty": " 1",
|
||||
"remark": "15X21X23,6",
|
||||
"pos": "\\-",
|
||||
"modelDescription": "Dual clutch\r\ngearbox",
|
||||
"deploymentTime": " ",
|
||||
"description": "needle bearing \\-"
|
||||
}
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"id": "_DFLT_",
|
||||
"uri": "/imageserver/ext/api/images/460100150?type=ZGDG&token=-WuNjf-U5cSddQlutaUpVKCfcWDbswSmBdUinc2u7Qs.AAABm-HJKCk.AAABm-HNw9k.6M_Y__0B0dCBs_hEHr_UvcAaUaIkw883wg3T4K-dggk&wait=0&size=",
|
||||
"name": "100-005: Base engine"
|
||||
}
|
||||
]
|
||||
},
|
||||
"catalogContext": {
|
||||
"bidata_account_id": "1498583",
|
||||
"bidata_brand": "VW",
|
||||
"bidata_bt_page": "100-005",
|
||||
"bidata_catalog": "729",
|
||||
"bidata_country_code2": "TR",
|
||||
"bidata_group_hierarchy": [
|
||||
{
|
||||
"id": "1",
|
||||
"type": "maingroup",
|
||||
"description": "Engine"
|
||||
},
|
||||
{
|
||||
"id": "00",
|
||||
"type": "subgroup",
|
||||
"description": "Base engine"
|
||||
}
|
||||
],
|
||||
"bidata_illustration": "460100150",
|
||||
"bidata_lang": "en",
|
||||
"bidata_market": "RDW",
|
||||
"bidata_service": "vw_parts",
|
||||
"bidata_session_id": "Vzn5I0m9WZariySxbr1bozHAsLZZ9_7z",
|
||||
"bidata_vin": "WVWZZZ1KZCW123456"
|
||||
}
|
||||
}
|
||||
12
scripts/pl24auth/captured/pl24-tokens.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": {
|
||||
"access_token": "eyJhcHAiOiJwYXJ0c2xpbmsyNCIsImtpZCI6InByLXBsMjRqd2tzLWtpZDEiLCJ0eXBlIjoiYXV0aG9yaXphdGlvbiIsImFsZyI6IlJTMjU2In0.eyJpYXQiOjE3NjkwMDYwMzQsImV4cCI6MTc2OTAwNjYzNCwic2lkIjoiWDViOXBoVGl2LUFpeGhNYTUyOGR2SHBlWVRjeDd6X1YiLCJhaWQiOjE0OTg1ODMsInVpZCI6MjE0NDA5NCwic2VydmljZXMiOlsibWluaV9wYXJ0cyIsImxhbmRyb3Zlcl9wYXJ0cyIsImJtd21vdG9ycmFkX3BhcnRzIiwic3V6dWtpX3BhcnRzIiwidndjbGFzc2ljX3BhcnRzIiwicGwyNC1mdWxsLXZpbi1kYXRhIiwicG9yc2NoZWNsYXNzaWNfcGFydHMiLCJjaXRyb2VuRHNfcGFydHMiLCJsZXh1c19wYXJ0cyIsImNhcnQiLCJibXdjbGFzc2ljX3BhcnRzIiwiZGFjaWFfcGFydHMiLCJzbWFydF9wYXJ0cyIsImNpdHJvZW5fcGFydHMiLCJ0b3lvdGFfcGFydHMiLCJtZXJjZWRlc3VuaW1vZ19wYXJ0cyIsImJlbnRsZXlfcGFydHMiLCJwZXVnZW90X3BhcnRzIiwiYm13X3BhcnRzIiwibWphZ3Vhcl9wYXJ0cyIsIm1tY19wYXJ0cyIsInZ3X3BhcnRzIiwiY3VwcmFfcGFydHMiLCJhdWRpX3BhcnRzIiwicG9yc2NoZV9wYXJ0cyIsIm1lcmNlZGVzdHJ1Y2tzX3BhcnRzIiwibWFuX3BhcnRzIiwicmVuYXVsdF9wYXJ0cyIsIm1lcmNlZGVzX3BhcnRzIiwic2VhdF9wYXJ0cyIsInNrb2RhX3BhcnRzIiwicGwyNC1hcmNoMi1jYXJ0IiwiYWxwaW5lX3BhcnRzIiwidm5fcGFydHMiLCJtZXJjZWRlc3ZhbnNfcGFydHMiLCJtaW5pY2xhc3NpY19wYXJ0cyIsImJtd21vdG9ycmFkY2xhc3NpY19wYXJ0cyIsInBsMjQtdXNhZ2UiXSwibGljaWQiOjE5ODM2MDY2LCJhcHAiOiJwYXJ0c2xpbmsyNCIsInR5cGUiOiJwbDI0LWF1dGhvcml6YXRpb24iLCJjb3VudHJ5IjoiVFIiLCJ1bG8iOiJhZG1pbiIsImFsbyI6InRyLTkwMzY0NSJ9.BGJ04DyNZQBTnmYgZTTOpc6MI3Ua8yHO9px_eNpV1xNTFoPFawolIJsb1AuyqnMgD6ol5yLHOqaUZ2WPX6Na1ZZCFJRCno6izNBfcvN7xTN7qsFRjW1XPdr3LQXvX_WekYixOHKUQfn1bggoVfDiG8FplLQHRVIIQPt7JGWIa7QzDZEBZDr6pkbZWvDog3PxvbLbDaN3F6W2y7LTC-uJQtcQqawzVT8mQseUSgdK5JBnBVUl4dZARUWBPhebDDJJHJgzxbrvTyLLfn0XvtkneOG7h1eLCrZglARZ9IRpbsbcyKFevVjObzPd07qg63veAwItX9R1MoNitrfZEhRCVA",
|
||||
"token_type": "Bearer",
|
||||
"expires_in": 600,
|
||||
"scope": "mini_parts landrover_parts bmwmotorrad_parts suzuki_parts vwclassic_parts pl24-full-vin-data porscheclassic_parts citroenDs_parts lexus_parts cart bmwclassic_parts dacia_parts smart_parts citroen_parts toyota_parts mercedesunimog_parts bentley_parts peugeot_parts bmw_parts jaguar_parts mmc_parts vw_parts cupra_parts audi_parts porsche_parts mercedestrucks_parts man_parts renault_parts mercedes_parts seat_parts skoda_parts pl24-arch2-cart alpine_parts vn_parts mercedesvans_parts miniclassic_parts bmwmotorradclassic_parts pl24-usage"
|
||||
},
|
||||
"refreshToken": "WO2uXo9RXvC2JEjH4aI-5EGCf57yHP5K",
|
||||
"sessionCookie": "PL24TOKEN=X5b9phTiv-AixhMa528dvHpeYTcx7z_V",
|
||||
"timestamp": "2026-01-21T14:33:54.000Z",
|
||||
"expiresAt": "2026-01-21T14:43:54.000Z"
|
||||
}
|
||||
21
scripts/pl24auth/captured/storage.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"localStorage": {
|
||||
"i18nextLng": "en",
|
||||
"uc_user_interaction": "false",
|
||||
"persist:vehicleSearch": "{\"selectedVehicles\":\"{}\",\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:cart": "{\"catalogCartIdMap\":\"{}\",\"_persist\":\"{\\\"version\\\":2,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:order": "{\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:metrics": "{\"nonDemoModel\":\"false\",\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:app": "{\"fullscreen\":\"false\",\"mobileApp\":\"true\",\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\",\"language\":\"\\\"en\\\"\"}",
|
||||
"persist:catalog": "{\"graphNavSelected\":\"false\",\"graphNavDetailView\":\"\\\"tiles\\\"\",\"_persist\":\"{\\\"version\\\":1,\\\"rehydrated\\\":true}\"}",
|
||||
"uc_settings": "{\"controllerId\":\"1db97ae523b0adaed3233d0e18808d5eda9dabb25546f9527edf176693b82057\",\"id\":\"1dDyIAPUm\",\"language\":\"en\",\"services\":[{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":false,\"timestamp\":1769005788969,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"23.12.22\",\"settings\":\"14.32.108\"}}],\"id\":\"ko1w5PpFl\",\"processorId\":\"870ed71844976125fc8473e9e19477a9d58c619ecd97a911b16bbad12e83a52d\",\"status\":false},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":false,\"timestamp\":1769005788969,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"9.6.4\",\"settings\":\"14.32.108\"}}],\"id\":\"XYQZBUojc\",\"processorId\":\"d51b7dc6545e95172f999c46ecf3e9b54d02885f2a0b29fbd332c95c685d6159\",\"status\":false},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":false,\"timestamp\":1769005788969,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"15.9.15\",\"settings\":\"14.32.108\"}}],\"id\":\"twMyStLkn\",\"processorId\":\"b105d0caff435ce465a66ebb0000baa8f2b0b60dcad593a914fed94c44756a1e\",\"status\":false},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":false,\"timestamp\":1769005788969,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"22.3.3\",\"settings\":\"14.32.108\"}}],\"id\":\"u6fxocwTs\",\"processorId\":\"cdf9481f72a3ede3465d29b2677132f88f628e7cd915078c89cc2b6f848630b9\",\"status\":false},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":false,\"timestamp\":1769005788969,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"21.10.10\",\"settings\":\"14.32.108\"}}],\"id\":\"S1pcEj_jZX\",\"processorId\":\"d982beb5506558e56fbe38bdb04561c032cde8b8c7f199a45ad593b3b106861e\",\"status\":false},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":true,\"timestamp\":1769005788969,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"40.18.46\",\"settings\":\"14.32.108\"}}],\"id\":\"H1Vl5NidjWX\",\"processorId\":\"7a3d8f007d40a658a14bb2c918ef5c66c2dba9a35cdfe8ab19d9ace45bb3ca13\",\"status\":true},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":true,\"timestamp\":1769005788969,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"5.2.0\",\"settings\":\"14.32.108\"}}],\"id\":\"rGZdn1pQ5\",\"processorId\":\"c06bedf0edcc885bef8901f56c0ea1b75224959713b907e259507145e30ba4c4\",\"status\":true}],\"version\":\"14.32.108\"}",
|
||||
"persist:root": "{\"dealer\":\"{\\\"lastDealers\\\":[],\\\"selectedDealersList\\\":[]}\",\"promotions\":\"{}\",\"_persist\":\"{\\\"version\\\":2,\\\"rehydrated\\\":true}\"}"
|
||||
},
|
||||
"sessionStorage": {
|
||||
"uc_user_country": "{\"countryCode\":\"DE\",\"countryName\":\"DE\",\"regionCode\":\"\"}",
|
||||
"persist:purchaseOrder": "{\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:authSession": "{\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:catalogSession": "{\"selectedFilterRecords\":\"[]\",\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:appSession": "{\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}"
|
||||
}
|
||||
}
|
||||
3191
scripts/pl24auth/captured/subcategory-structure.json
Normal file
BIN
scripts/pl24auth/captured/v2-01-initial.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
scripts/pl24auth/captured/v2-01-login-filled.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
scripts/pl24auth/captured/v2-02-after-cookie.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
39
scripts/pl24auth/captured/v2-02-after-login.html
Normal file
BIN
scripts/pl24auth/captured/v2-02-after-login.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
scripts/pl24auth/captured/v2-03-form-filled.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
39
scripts/pl24auth/captured/v2-04-after-submit.html
Normal file
@@ -0,0 +1,39 @@
|
||||
<!DOCTYPE html><html><head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- viewport-fit=cover -> for IOS notch matching -->
|
||||
<!-- maximum-scale=1.0,user-scalable=0 -> no zooming on ios -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=0, viewport-fit=cover">
|
||||
|
||||
<title>partslink24</title>
|
||||
|
||||
<!-- favicons -->
|
||||
<link rel="icon" href="/pl24-app/favicons/favicon.ico" sizes="32x32">
|
||||
<link rel="icon" href="/pl24-app/favicons/favicon.svg" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" href="/pl24-app/favicons/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="/pl24-app/favicons/safari-pinned-tab.svg" color="#000000">
|
||||
|
||||
<meta name="msapplication-TileColor" content="#f7c400">
|
||||
<meta name="msapplication-config" content="/favicons/browserconfig.xml">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
|
||||
<script type="text/plain" data-usercentrics="Matomo (self hosted)" data-metrics-id="653XEPU6" id="metrics" src="/pl24-app/metrics-loader.js"></script>
|
||||
|
||||
<script type="module" crossorigin="" src="/pl24-app/assets/index-e59f85ff.js"></script>
|
||||
<link rel="modulepreload" crossorigin="" href="/pl24-app/assets/__federation_shared_react-a187c2a1.js">
|
||||
<link rel="modulepreload" crossorigin="" href="/pl24-app/assets/__federation_shared_react-dom-435d0037.js">
|
||||
<link rel="stylesheet" href="/pl24-app/assets/index-d2bb7e3e.css">
|
||||
<link rel="manifest" href="/pl24-app/manifest.webmanifest"><style data-emotion="css-global" data-s=""></style><style data-emotion="css-global" data-s=""></style><style data-emotion="css-global" data-s=""></style><style data-emotion="css" data-s=""></style><script id="usercentrics-cmp" src="https://app.usercentrics.eu/browser-ui/latest/bundle.js" data-lang="en" data-settings-id="1dDyIAPUm" async=""></script></head>
|
||||
<body class="overflowHidden">
|
||||
<noscript>You need to enable JavaScript to run this testapp.</noscript>
|
||||
<div id="root"><div class="_container_93u48_9" lang="en" style="height: 1080px;"><div aria-hidden="true" class="MuiBackdrop-root css-ps8t2m" style="opacity: 0; transition: opacity 195ms cubic-bezier(0.4, 0, 0.2, 1); visibility: hidden;"><div class="spinner-wrapper"><div class="spinner"></div></div></div><div class="_container_s5kdw_9" style="visibility: hidden; transform: translateY(55px);"><span class="icon icon--full-screen _icon_skck4_9" data-test-id="fullscreenToggle"></span></div><div class="_headerContainer_1gzni_9"><header class="_header_1gzni_9" data-test-id="header"><div class="_container_1gzni_41"><div class="_content_1gzni_56"><div class="_container_1wqol_9"><div class="_containerLeft_1wqol_16"><img src="/pl24-app/assets/logo-272a932c.png" class="_active_1i0o2_1" style="height: 32px;"></div><div class="_menuContainer_1wqol_28"></div></div></div></div></header></div><div class="_container_1qfhg_9"><div class="_contentContainer_1qfhg_18"><h5>Login</h5><form autocomplete="on"><div class="_formInputFields_1qfhg_38"><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined css-6pmd2t" data-shrink="true" for="account" id="account-label">Company ID / partslink24 ID</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl MuiInputBase-sizeSmall css-r8ai5h"><input aria-invalid="false" id="account" type="text" maxlength="16" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-pgotkk" value="tr-903645"><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-kg5swy"><span>Company ID / partslink24 ID</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined css-6pmd2t" data-shrink="true" for="username" id="username-label">User name</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl MuiInputBase-sizeSmall css-r8ai5h"><input aria-invalid="false" autocomplete="username" id="username" type="text" maxlength="16" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-pgotkk" value="admin"><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-kg5swy"><span>User name</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined css-6pmd2t" data-shrink="true" for="password" id="password-label">Password</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl MuiInputBase-sizeSmall MuiInputBase-adornedEnd css-1syd95j"><input aria-invalid="false" autocomplete="current-password" id="password" type="password" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedEnd css-18aie37" value="Fener900*"><div class="MuiInputAdornment-root MuiInputAdornment-positionEnd MuiInputAdornment-outlined MuiInputAdornment-sizeSmall css-10jn56z"><span class="icon icon-btn icon--eye-off _icon_skck4_9" style="background-color: rgb(255, 255, 255);"></span></div><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-kg5swy"><span>Password</span></legend></fieldset></div></div></div><a href="/partslink24/user/forgottenPassword.do" target="_blank" rel="noopener noreferrer">Password forgotten?</a><button class="_btn_aow59_9 _autoWidth_aow59_24 _desktop_aow59_45 _btn-primary_aow59_30" type="submit" data-test-id="loginButton"><div class="_container_aow59_81">Log in</div></button></form></div></div></div>,</div>
|
||||
|
||||
|
||||
|
||||
<div id="usercentrics-root" data-created-at="1769005875714" style=""></div><iframe id="uc-cross-domain-bridge" src="https://app.usercentrics.eu/browser-sdk/4.59.0/cross-domain-bridge.html" style="display: none;"></iframe><style id="uc-overflow-style">.overflowHidden {overflow: hidden !important;}</style></body></html>
|
||||
BIN
scripts/pl24auth/captured/v2-04-after-submit.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
56
scripts/pl24auth/captured/v2-api-calls.json
Normal file
141
scripts/pl24auth/captured/v2-auth-traffic.json
Normal file
@@ -0,0 +1,141 @@
|
||||
[
|
||||
{
|
||||
"type": "request",
|
||||
"timestamp": "2026-01-21T14:31:14.284Z",
|
||||
"url": "https://www.partslink24.com/pl24-app/login",
|
||||
"method": "GET",
|
||||
"headers": {
|
||||
"upgrade-insecure-requests": "1",
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||||
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"timestamp": "2026-01-21T14:31:14.445Z",
|
||||
"url": "https://www.partslink24.com/pl24-app/login",
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"accept-ranges": "bytes",
|
||||
"cache-control": "max-age=60",
|
||||
"content-encoding": "gzip",
|
||||
"content-length": "990",
|
||||
"content-security-policy-report-only": "default-src 'self'; script-src 'self' 'unsafe-eval' https://metrics.partslink24.com https://app.usercentrics.eu; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self' data: https:; worker-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; report-uri /pl24-app/csp-report;",
|
||||
"content-type": "text/html",
|
||||
"date": "Wed, 21 Jan 2026 14:31:14 GMT",
|
||||
"etag": "\"693a9d69-737\"",
|
||||
"expires": "Wed, 21 Jan 2026 14:32:14 GMT",
|
||||
"last-modified": "Thu, 11 Dec 2025 10:31:05 GMT",
|
||||
"permissions-policy": "geolocation=(), microphone=(), camera=()",
|
||||
"referrer-policy": "strict-origin-when-cross-origin",
|
||||
"strict-transport-security": "max-age=63072000",
|
||||
"vary": "Accept-Encoding",
|
||||
"x-content-type-options": "nosniff",
|
||||
"x-frame-options": "sameorigin"
|
||||
},
|
||||
"body": "<!doctype html>\n<html>\n <head>\n <meta charset=\"utf-8\" />\n\n <!-- viewport-fit=cover -> for IOS notch matching -->\n <!-- maximum-scale=1.0,user-scalable=0 -> no zooming on ios -->\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=0, viewport-fit=cover\"\n />\n\n <title>partslink24</title>\n\n <!-- favicons -->\n <link rel=\"icon\" href=\"/pl24-app/favicons/favicon.ico\" sizes=\"32x32\">\n <link rel=\"icon\" href=\"/pl24-app/favicons/favicon.svg\" type=\"image/svg+xml\">\n <link rel=\"apple-touch-icon\" href=\"/pl24-app/favicons/apple-touch-icon.png\">\n <link rel=\"mask-icon\" href=\"/pl24-app/favicons/safari-pinned-tab.svg\" color=\"#000000\">\n\n <meta name=\"msapplication-TileColor\" content=\"#f7c400\">\n <meta name=\"msapplication-config\" content=\"/favicons/browserconfig.xml\">\n <meta name=\"theme-color\" content=\"#ffffff\">\n\n <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"default\" />\n\n <meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n\n <meta name=\"format-detection\" content=\"telephone=no\" />\n\n <script type=\"text/plain\" data-usercentrics=\"Matomo (self hosted)\" data-metrics-id=\"undefined\" id=\"metrics\" src=\"/pl24-app/metrics-loader.js\"></script>\n\n <script type=\"module\" crossorigin src=\"/pl24-app/assets/index-e59f85ff.js\"></script>\n <link rel=\"modulepreload\" crossorigin href=\"/pl24-app/assets/__federation_shared_react-a187c2a1.js\">\n <link rel=\"modulepreload\" crossorigin href=\"/pl24-app/assets/__federation_shared_react-dom-435d0037.js\">\n <link rel=\"stylesheet\" href=\"/pl24-app/assets/index-d2bb7e3e.css\">\n <link rel=\"manifest\" href=\"/pl24-app/manifest.webmanifest\"></head>\n <body>\n <noscript>You need to enable JavaScript to run this testapp.</noscript>\n <div id=\"root\"></div>\n \n </body>\n</html>\n"
|
||||
},
|
||||
{
|
||||
"type": "request",
|
||||
"timestamp": "2026-01-21T14:31:15.556Z",
|
||||
"url": "https://www.partslink24.com/pl24-appgtw/ext/api/1.0/legal/en",
|
||||
"method": "GET",
|
||||
"headers": {
|
||||
"referer": "https://www.partslink24.com/pl24-app/login",
|
||||
"accept-language": "en",
|
||||
"accept": "application/json",
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"timestamp": "2026-01-21T14:31:15.757Z",
|
||||
"url": "https://www.partslink24.com/pl24-appgtw/ext/api/1.0/legal/en",
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"cache-control": "no-cache",
|
||||
"content-encoding": "gzip",
|
||||
"content-length": "199",
|
||||
"content-type": "application/json",
|
||||
"date": "Wed, 21 Jan 2026 14:31:15 GMT",
|
||||
"expires": "-1",
|
||||
"strict-transport-security": "max-age=63072000",
|
||||
"vary": "Accept-Encoding",
|
||||
"x-content-type-options": "nosniff",
|
||||
"x-frame-options": "sameorigin"
|
||||
},
|
||||
"body": "{\"legalDocuments\":[{\"name\":\"partslink24-privacy\",\"url\":\"https://www.lexcom.de/legal/partslink24-privacy/en/en/partslink24-privacy.html\"},{\"name\":\"partslink24-tos\",\"url\":\"https://www.lexcom.de/legal/partslink24-tos/en/en/partslink24-tos.html\"},{\"name\":\"general-dataprocessing\",\"url\":\"https://www.lexcom.de/legal/general-dataprocessing/en/en/general-dataprocessing.html\"},{\"name\":\"partslink24-legalnotice\",\"url\":\"https://www.lexcom.de/legal/partslink24-legalnotice/en/en/partslink24-legalnotice.html\"}]}"
|
||||
},
|
||||
{
|
||||
"type": "request",
|
||||
"timestamp": "2026-01-21T14:31:16.547Z",
|
||||
"url": "https://app.usercentrics.eu/session/1px.png?settingsId=1dDyIAPUm",
|
||||
"method": "GET",
|
||||
"headers": {
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||||
"referer": "https://www.partslink24.com/",
|
||||
"accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"timestamp": "2026-01-21T14:31:16.594Z",
|
||||
"url": "https://app.usercentrics.eu/session/1px.png?settingsId=1dDyIAPUm",
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"accept-ranges": "bytes",
|
||||
"age": "774",
|
||||
"alt-svc": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000",
|
||||
"cache-control": "public,max-age=1800,no-transform",
|
||||
"content-encoding": "gzip",
|
||||
"content-length": "522",
|
||||
"content-type": "image/png",
|
||||
"cross-origin-resource-policy": "cross-origin",
|
||||
"date": "Wed, 21 Jan 2026 14:18:22 GMT",
|
||||
"etag": "\"3702ada73b8951017b8451cbd6a96523\"",
|
||||
"expires": "Wed, 21 Jan 2026 14:48:22 GMT",
|
||||
"last-modified": "Fri, 08 May 2020 09:06:13 GMT",
|
||||
"server": "UploadServer",
|
||||
"strict-transport-security": "max-age=7776000",
|
||||
"x-goog-generation": "1588928773413784",
|
||||
"x-goog-hash": "crc32c=pFwm0Q==\nmd5=NwKtpzuJUQF7hFHL1qllIw==",
|
||||
"x-goog-metageneration": "1",
|
||||
"x-goog-storage-class": "STANDARD",
|
||||
"x-goog-stored-content-encoding": "gzip",
|
||||
"x-goog-stored-content-length": "522",
|
||||
"x-guploader-uploadid": "AJRbA5Vl28EBPhzUA7DV461ZDdyWmAQvjC1LwepT-mBiIaY8ftU4obPhfnGtLl0dHxgFsIDU"
|
||||
},
|
||||
"body": null
|
||||
},
|
||||
{
|
||||
"type": "request",
|
||||
"timestamp": "2026-01-21T14:31:16.881Z",
|
||||
"url": "https://uct.service.usercentrics.eu/uct?v=1&sid=1dDyIAPUm&t=1&abv=&r=https%3A%2F%2Fwww.partslink24.com%2Fpl24-app%2Flogin&cb=1769005876870",
|
||||
"method": "GET",
|
||||
"headers": {
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||||
"referer": "https://www.partslink24.com/",
|
||||
"accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"timestamp": "2026-01-21T14:31:16.976Z",
|
||||
"url": "https://uct.service.usercentrics.eu/uct?v=1&sid=1dDyIAPUm&t=1&abv=&r=https%3A%2F%2Fwww.partslink24.com%2Fpl24-app%2Flogin&cb=1769005876870",
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"alt-svc": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000",
|
||||
"cache-control": "no-store",
|
||||
"content-length": "35",
|
||||
"content-type": "image/gif",
|
||||
"cross-origin-resource-policy": "cross-origin",
|
||||
"date": "Wed, 21 Jan 2026 14:31:16 GMT",
|
||||
"function-execution-id": "be36kcw4e6n0",
|
||||
"server": "Google Frontend",
|
||||
"strict-transport-security": "max-age=7776000",
|
||||
"via": "1.1 google",
|
||||
"x-cloud-trace-context": "d3af4ac21cb101f564301a9d7440ebcf"
|
||||
},
|
||||
"body": null
|
||||
}
|
||||
]
|
||||
1
scripts/pl24auth/captured/v2-cookies.json
Normal file
@@ -0,0 +1 @@
|
||||
[]
|
||||
22
scripts/pl24auth/captured/v2-storage.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"localStorage": {
|
||||
"i18nextLng": "en",
|
||||
"uc_user_interaction": "false",
|
||||
"persist:vehicleSearch": "{\"selectedVehicles\":\"{}\",\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:cart": "{\"catalogCartIdMap\":\"{}\",\"_persist\":\"{\\\"version\\\":2,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:order": "{\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:metrics": "{\"nonDemoModel\":\"false\",\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:app": "{\"fullscreen\":\"false\",\"mobileApp\":\"true\",\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\",\"language\":\"\\\"en\\\"\"}",
|
||||
"persist:catalog": "{\"graphNavSelected\":\"false\",\"graphNavDetailView\":\"\\\"tiles\\\"\",\"_persist\":\"{\\\"version\\\":1,\\\"rehydrated\\\":true}\"}",
|
||||
"uc_settings": "{\"controllerId\":\"5f39d1983f3d4f53926cba7bf65a0c946095085d60f2cddcaa7fc7e369e40b8b\",\"id\":\"1dDyIAPUm\",\"language\":\"en\",\"services\":[{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":false,\"timestamp\":1769005876815,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"23.12.22\",\"settings\":\"14.32.108\"}}],\"id\":\"ko1w5PpFl\",\"processorId\":\"517cd282f080a51cfbe706cfc5718871ede151608b1366a2686df6b602f0ec63\",\"status\":false},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":false,\"timestamp\":1769005876815,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"9.6.4\",\"settings\":\"14.32.108\"}}],\"id\":\"XYQZBUojc\",\"processorId\":\"e38a9b292612705098e8671af628902fd3ffd54293ef5ed424de362af2cf7343\",\"status\":false},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":false,\"timestamp\":1769005876815,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"15.9.15\",\"settings\":\"14.32.108\"}}],\"id\":\"twMyStLkn\",\"processorId\":\"e6071f874b81ea48f73187eb85383a8c8060fde2de764c942cf1e26c3d184635\",\"status\":false},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":false,\"timestamp\":1769005876815,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"22.3.3\",\"settings\":\"14.32.108\"}}],\"id\":\"u6fxocwTs\",\"processorId\":\"bfa0057e332db6490bb177705e900cb3ffca750a29dd0497e3239474869f8c62\",\"status\":false},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":false,\"timestamp\":1769005876815,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"21.10.10\",\"settings\":\"14.32.108\"}}],\"id\":\"S1pcEj_jZX\",\"processorId\":\"56c7bcf68378d1bf41f8cf59dd689fa102e2152c79ba5cc7659a072ef9122135\",\"status\":false},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":true,\"timestamp\":1769005876815,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"40.18.46\",\"settings\":\"14.32.108\"}}],\"id\":\"H1Vl5NidjWX\",\"processorId\":\"3091ba51ba81d6f1752aac686df7bfc3762d4495e07f8dc3e113b2a0c1329ab7\",\"status\":true},{\"history\":[{\"action\":\"onInitialPageLoad\",\"language\":\"en\",\"status\":true,\"timestamp\":1769005876815,\"type\":\"implicit\",\"versions\":{\"application\":\"SDK-4.59.0\",\"service\":\"5.2.0\",\"settings\":\"14.32.108\"}}],\"id\":\"rGZdn1pQ5\",\"processorId\":\"c3d6a8b317fb0a900bb0d4dc19578b2cd0be6244851d824926566ad2ea43c85e\",\"status\":true}],\"version\":\"14.32.108\"}",
|
||||
"accountId": "tr-903645",
|
||||
"persist:root": "{\"dealer\":\"{\\\"lastDealers\\\":[],\\\"selectedDealersList\\\":[]}\",\"promotions\":\"{}\",\"_persist\":\"{\\\"version\\\":2,\\\"rehydrated\\\":true}\"}"
|
||||
},
|
||||
"sessionStorage": {
|
||||
"uc_user_country": "{\"countryCode\":\"DE\",\"countryName\":\"DE\",\"regionCode\":\"\"}",
|
||||
"persist:purchaseOrder": "{\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:authSession": "{\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:catalogSession": "{\"selectedFilterRecords\":\"[]\",\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}",
|
||||
"persist:appSession": "{\"_persist\":\"{\\\"version\\\":0,\\\"rehydrated\\\":true}\"}"
|
||||
}
|
||||
}
|
||||
BIN
scripts/pl24auth/captured/v3-01-after-login.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
scripts/pl24auth/captured/v3-01-form-filled.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
39
scripts/pl24auth/captured/v3-02-after-submit.html
Normal file
@@ -0,0 +1,39 @@
|
||||
<!DOCTYPE html><html><head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- viewport-fit=cover -> for IOS notch matching -->
|
||||
<!-- maximum-scale=1.0,user-scalable=0 -> no zooming on ios -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=0, viewport-fit=cover">
|
||||
|
||||
<title>partslink24</title>
|
||||
|
||||
<!-- favicons -->
|
||||
<link rel="icon" href="/pl24-app/favicons/favicon.ico" sizes="32x32">
|
||||
<link rel="icon" href="/pl24-app/favicons/favicon.svg" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" href="/pl24-app/favicons/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="/pl24-app/favicons/safari-pinned-tab.svg" color="#000000">
|
||||
|
||||
<meta name="msapplication-TileColor" content="#f7c400">
|
||||
<meta name="msapplication-config" content="/favicons/browserconfig.xml">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
|
||||
<script type="text/javascript" data-metrics-id="653XEPU6" id="metrics" src="/pl24-app/metrics-loader.js"></script>
|
||||
|
||||
<script type="module" crossorigin="" src="/pl24-app/assets/index-e59f85ff.js"></script>
|
||||
<link rel="modulepreload" crossorigin="" href="/pl24-app/assets/__federation_shared_react-a187c2a1.js">
|
||||
<link rel="modulepreload" crossorigin="" href="/pl24-app/assets/__federation_shared_react-dom-435d0037.js">
|
||||
<link rel="stylesheet" href="/pl24-app/assets/index-d2bb7e3e.css">
|
||||
<link rel="manifest" href="/pl24-app/manifest.webmanifest"><style data-emotion="css-global" data-s=""></style><style data-emotion="css-global" data-s=""></style><style data-emotion="css-global" data-s=""></style><style data-emotion="css" data-s=""></style><script id="usercentrics-cmp" src="https://app.usercentrics.eu/browser-ui/latest/bundle.js" data-lang="en" data-settings-id="1dDyIAPUm" async=""></script><script async="" src="https://metrics.partslink24.com/js/container_653XEPU6.js"></script></head>
|
||||
<body class="" style="">
|
||||
<noscript>You need to enable JavaScript to run this testapp.</noscript>
|
||||
<div id="root"><div class="_container_93u48_9" lang="en" style="height: 1080px;"><div aria-hidden="true" class="MuiBackdrop-root css-ps8t2m" style="opacity: 0; transition: opacity 195ms cubic-bezier(0.4, 0, 0.2, 1); visibility: hidden;"><div class="spinner-wrapper"><div class="spinner"></div></div></div><div class="_container_s5kdw_9" style="visibility: hidden; transform: translateY(55px);"><span class="icon icon--full-screen _icon_skck4_9" data-test-id="fullscreenToggle"></span></div><div class="_headerContainer_1gzni_9"><header class="_header_1gzni_9" data-test-id="header"><div class="_container_1gzni_41"><div class="_content_1gzni_56"><div class="_container_1wqol_9"><div class="_containerLeft_1wqol_16"><img src="/pl24-app/assets/logo-272a932c.png" class="_active_1i0o2_1" style="height: 32px;"></div><div class="_menuContainer_1wqol_28"></div></div></div></div></header></div><div class="_container_1qfhg_9"><div class="_contentContainer_1qfhg_18"><h5>Login</h5><form autocomplete="on"><div class="_formInputFields_1qfhg_38"><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined css-6pmd2t" data-shrink="true" for="account" id="account-label">Company ID / partslink24 ID</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl MuiInputBase-sizeSmall css-r8ai5h"><input aria-invalid="false" id="account" type="text" maxlength="16" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-pgotkk" value="tr-903645"><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-kg5swy"><span>Company ID / partslink24 ID</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined css-6pmd2t" data-shrink="true" for="username" id="username-label">User name</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl MuiInputBase-sizeSmall css-r8ai5h"><input aria-invalid="false" autocomplete="username" id="username" type="text" maxlength="16" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-pgotkk" value="admin"><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-kg5swy"><span>User name</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled Mui-focused MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined css-6pmd2t" data-shrink="true" for="password" id="password-label">Password</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary Mui-focused MuiInputBase-formControl MuiInputBase-sizeSmall MuiInputBase-adornedEnd css-1syd95j"><input aria-invalid="false" autocomplete="current-password" id="password" type="password" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedEnd css-18aie37" value="Fener900*"><div class="MuiInputAdornment-root MuiInputAdornment-positionEnd MuiInputAdornment-outlined MuiInputAdornment-sizeSmall css-10jn56z"><span class="icon icon-btn icon--eye-off _icon_skck4_9" style="background-color: rgb(255, 255, 255);"></span></div><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-kg5swy"><span>Password</span></legend></fieldset></div></div></div><a href="/partslink24/user/forgottenPassword.do" target="_blank" rel="noopener noreferrer">Password forgotten?</a><button class="_btn_aow59_9 _autoWidth_aow59_24 _desktop_aow59_45 _btn-primary_aow59_30" type="submit" data-test-id="loginButton"><div class="_container_aow59_81">Log in</div></button></form></div></div></div>,</div>
|
||||
|
||||
|
||||
|
||||
<div id="usercentrics-root" data-created-at="1769005969336" style=""></div><iframe id="uc-cross-domain-bridge" src="https://app.usercentrics.eu/browser-sdk/4.59.0/cross-domain-bridge.html" style="display: none;"></iframe><style id="uc-overflow-style">.overflowHidden {overflow: hidden !important;}</style></body></html>
|
||||
BIN
scripts/pl24auth/captured/v3-02-after-submit.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
39
scripts/pl24auth/captured/v3-02-vehicle-menu.html
Normal file
BIN
scripts/pl24auth/captured/v3-02-vehicle-menu.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
820
scripts/pl24auth/captured/v3-all-data.json
Normal file
56
scripts/pl24auth/captured/v3-api-calls.json
Normal file
39
scripts/pl24auth/captured/v4-01-vw-selected.html
Normal file
BIN
scripts/pl24auth/captured/v4-01-vw-selected.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
39
scripts/pl24auth/captured/v4-02-after-vw.html
Normal file
BIN
scripts/pl24auth/captured/v4-02-after-vw.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
scripts/pl24auth/captured/v4-error.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
39
scripts/pl24auth/captured/vin-01-after-login.html
Normal file
@@ -0,0 +1,39 @@
|
||||
<!DOCTYPE html><html><head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- viewport-fit=cover -> for IOS notch matching -->
|
||||
<!-- maximum-scale=1.0,user-scalable=0 -> no zooming on ios -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=0, viewport-fit=cover">
|
||||
|
||||
<title>partslink24</title>
|
||||
|
||||
<!-- favicons -->
|
||||
<link rel="icon" href="/pl24-app/favicons/favicon.ico" sizes="32x32">
|
||||
<link rel="icon" href="/pl24-app/favicons/favicon.svg" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" href="/pl24-app/favicons/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="/pl24-app/favicons/safari-pinned-tab.svg" color="#000000">
|
||||
|
||||
<meta name="msapplication-TileColor" content="#f7c400">
|
||||
<meta name="msapplication-config" content="/favicons/browserconfig.xml">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="default">
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
|
||||
<script type="text/javascript" data-metrics-id="653XEPU6" id="metrics" src="/pl24-app/metrics-loader.js"></script>
|
||||
|
||||
<script type="module" crossorigin="" src="/pl24-app/assets/index-e59f85ff.js"></script>
|
||||
<link rel="modulepreload" crossorigin="" href="/pl24-app/assets/__federation_shared_react-a187c2a1.js">
|
||||
<link rel="modulepreload" crossorigin="" href="/pl24-app/assets/__federation_shared_react-dom-435d0037.js">
|
||||
<link rel="stylesheet" href="/pl24-app/assets/index-d2bb7e3e.css">
|
||||
<link rel="manifest" href="/pl24-app/manifest.webmanifest"><style data-emotion="css-global" data-s=""></style><style data-emotion="css-global" data-s=""></style><style data-emotion="css-global" data-s=""></style><style data-emotion="css" data-s=""></style><script id="usercentrics-cmp" src="https://app.usercentrics.eu/browser-ui/latest/bundle.js" data-lang="en" data-settings-id="1dDyIAPUm" async=""></script><script async="" src="https://metrics.partslink24.com/js/container_653XEPU6.js"></script></head>
|
||||
<body class="" style="">
|
||||
<noscript>You need to enable JavaScript to run this testapp.</noscript>
|
||||
<div id="root"><div class="_container_93u48_9" lang="en" style="height: 1080px;"><div aria-hidden="true" class="MuiBackdrop-root css-ps8t2m" style="opacity: 0; transition: opacity 195ms cubic-bezier(0.4, 0, 0.2, 1); visibility: hidden;"><div class="spinner-wrapper"><div class="spinner"></div></div></div><div class="_container_s5kdw_9" style="visibility: hidden; transform: translateY(55px);"><span class="icon icon--full-screen _icon_skck4_9" data-test-id="fullscreenToggle"></span></div><div class="_headerContainer_1gzni_9"><header class="_header_1gzni_9" data-test-id="header"><div class="_container_1gzni_41"><div class="_content_1gzni_56"><div class="_container_1wqol_9"><div class="_containerLeft_1wqol_16"><img src="/pl24-app/assets/logo-272a932c.png" class="_active_1i0o2_1" style="height: 32px;"></div><div class="_menuContainer_1wqol_28"></div></div></div></div></header></div><div class="_container_1qfhg_9"><div class="_contentContainer_1qfhg_18"><h5>Login</h5><form autocomplete="on"><div class="_formInputFields_1qfhg_38"><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined css-6pmd2t" data-shrink="true" for="account" id="account-label">Company ID / partslink24 ID</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl MuiInputBase-sizeSmall css-r8ai5h"><input aria-invalid="false" id="account" type="text" maxlength="16" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-pgotkk" value="tr-903645"><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-kg5swy"><span>Company ID / partslink24 ID</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined css-6pmd2t" data-shrink="true" for="username" id="username-label">User name</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-formControl MuiInputBase-sizeSmall css-r8ai5h"><input aria-invalid="false" autocomplete="username" id="username" type="text" maxlength="16" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall css-pgotkk" value="admin"><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-kg5swy"><span>User name</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiTextField-root css-feqhe6"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled Mui-focused MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-sizeSmall MuiInputLabel-outlined css-6pmd2t" data-shrink="true" for="password" id="password-label">Password</label><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary Mui-focused MuiInputBase-formControl MuiInputBase-sizeSmall MuiInputBase-adornedEnd css-1syd95j"><input aria-invalid="false" autocomplete="current-password" id="password" type="password" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedEnd css-18aie37" value="Fener900*"><div class="MuiInputAdornment-root MuiInputAdornment-positionEnd MuiInputAdornment-outlined MuiInputAdornment-sizeSmall css-10jn56z"><span class="icon icon-btn icon--eye-off _icon_skck4_9" style="background-color: rgb(255, 255, 255);"></span></div><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-kg5swy"><span>Password</span></legend></fieldset></div></div></div><a href="/partslink24/user/forgottenPassword.do" target="_blank" rel="noopener noreferrer">Password forgotten?</a><button class="_btn_aow59_9 _autoWidth_aow59_24 _desktop_aow59_45 _btn-primary_aow59_30" type="submit" data-test-id="loginButton"><div class="_container_aow59_81">Log in</div></button></form></div></div></div>,</div>
|
||||
|
||||
|
||||
|
||||
<div id="usercentrics-root" data-created-at="1769006495330" style=""></div><iframe id="uc-cross-domain-bridge" src="https://app.usercentrics.eu/browser-sdk/4.59.0/cross-domain-bridge.html" style="display: none;"></iframe><style id="uc-overflow-style">.overflowHidden {overflow: hidden !important;}</style></body></html>
|
||||
BIN
scripts/pl24auth/captured/vin-01-after-login.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
39
scripts/pl24auth/captured/vin-02-after-search.html
Normal file
BIN
scripts/pl24auth/captured/vin-02-after-search.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
scripts/pl24auth/captured/vin-03-final.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
466
scripts/pl24auth/captured/vin-all-api-calls.json
Normal file
101
scripts/pl24auth/captured/vin-relevant-api-calls.json
Normal file
@@ -0,0 +1,101 @@
|
||||
[
|
||||
{
|
||||
"type": "request",
|
||||
"timestamp": "2026-01-21T14:41:35.202Z",
|
||||
"url": "https://www.partslink24.com/pl24-appgtw/ext/api/1.0/legal/en",
|
||||
"method": "GET",
|
||||
"headers": {
|
||||
"referer": "https://www.partslink24.com/pl24-app/login",
|
||||
"accept-language": "en",
|
||||
"accept": "application/json",
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"timestamp": "2026-01-21T14:41:35.395Z",
|
||||
"url": "https://www.partslink24.com/pl24-appgtw/ext/api/1.0/legal/en",
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"cache-control": "no-cache",
|
||||
"content-encoding": "gzip",
|
||||
"content-length": "199",
|
||||
"content-type": "application/json",
|
||||
"date": "Wed, 21 Jan 2026 14:41:35 GMT",
|
||||
"expires": "-1",
|
||||
"strict-transport-security": "max-age=63072000",
|
||||
"vary": "Accept-Encoding",
|
||||
"x-content-type-options": "nosniff",
|
||||
"x-frame-options": "sameorigin"
|
||||
},
|
||||
"body": "{\"legalDocuments\":[{\"name\":\"partslink24-privacy\",\"url\":\"https://www.lexcom.de/legal/partslink24-privacy/en/en/partslink24-privacy.html\"},{\"name\":\"partslink24-tos\",\"url\":\"https://www.lexcom.de/legal/partslink24-tos/en/en/partslink24-tos.html\"},{\"name\":\"general-dataprocessing\",\"url\":\"https://www.lexcom.de/legal/general-dataprocessing/en/en/general-dataprocessing.html\"},{\"name\":\"partslink24-legalnotice\",\"url\":\"https://www.lexcom.de/legal/partslink24-legalnotice/en/en/partslink24-legalnotice.html\"}]}"
|
||||
},
|
||||
{
|
||||
"type": "request",
|
||||
"timestamp": "2026-01-21T14:41:42.669Z",
|
||||
"url": "https://www.partslink24.com/pl24-appgtw/ext/api/1.0/login",
|
||||
"method": "POST",
|
||||
"headers": {
|
||||
"referer": "https://www.partslink24.com/pl24-app/login",
|
||||
"accept-language": "en",
|
||||
"accept": "application/json",
|
||||
"content-type": "application/json",
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||||
"cookie": "_pk_id.6.c77c=d3575a203229c67a.1769006500.; _pk_ses.6.c77c=1",
|
||||
"origin": "https://www.partslink24.com"
|
||||
},
|
||||
"postData": "{\"authentication\":{\"account\":\"tr-903645\",\"user\":\"admin\",\"pwd\":\"Fener900*\"},\"device\":{\"id\":\"0\",\"os\":\"Linux x86_64\",\"offset\":\"0\",\"lang\":\"en-US\",\"os-version\":\"0\"},\"app-version\":\"\",\"squeezeOut\":false}"
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"timestamp": "2026-01-21T14:41:42.802Z",
|
||||
"url": "https://www.partslink24.com/pl24-appgtw/ext/api/1.0/login",
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"cache-control": "no-cache",
|
||||
"content-encoding": "gzip",
|
||||
"content-length": "100",
|
||||
"content-type": "application/json",
|
||||
"date": "Wed, 21 Jan 2026 14:41:42 GMT",
|
||||
"expires": "-1",
|
||||
"strict-transport-security": "max-age=63072000",
|
||||
"vary": "Accept-Encoding",
|
||||
"x-content-type-options": "nosniff",
|
||||
"x-frame-options": "sameorigin"
|
||||
},
|
||||
"body": "{\"securables\":null,\"status\":\"USER_ALREADY_LOGGED_IN\",\"title\":null,\"refreshToken\":null,\"token\":null}"
|
||||
},
|
||||
{
|
||||
"type": "request",
|
||||
"timestamp": "2026-01-21T14:42:00.200Z",
|
||||
"url": "https://www.partslink24.com/pl24-appgtw/ext/api/1.0/login",
|
||||
"method": "POST",
|
||||
"headers": {
|
||||
"referer": "https://www.partslink24.com/pl24-app/login",
|
||||
"accept-language": "en",
|
||||
"accept": "application/json",
|
||||
"content-type": "application/json",
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||||
"cookie": "_pk_id.6.c77c=d3575a203229c67a.1769006500.; _pk_ses.6.c77c=1",
|
||||
"origin": "https://www.partslink24.com"
|
||||
},
|
||||
"postData": "{\"authentication\":{\"account\":\"WVWZZZ3CZWE16437\",\"user\":\"admin\",\"pwd\":\"Fener900*\"},\"device\":{\"id\":\"0\",\"os\":\"Linux x86_64\",\"offset\":\"0\",\"lang\":\"en-US\",\"os-version\":\"0\"},\"app-version\":\"\",\"squeezeOut\":false}"
|
||||
},
|
||||
{
|
||||
"type": "response",
|
||||
"timestamp": "2026-01-21T14:42:00.280Z",
|
||||
"url": "https://www.partslink24.com/pl24-appgtw/ext/api/1.0/login",
|
||||
"status": 401,
|
||||
"headers": {
|
||||
"cache-control": "no-cache",
|
||||
"content-length": "134",
|
||||
"content-type": "application/json",
|
||||
"date": "Wed, 21 Jan 2026 14:42:00 GMT",
|
||||
"expires": "-1",
|
||||
"strict-transport-security": "max-age=63072000",
|
||||
"x-content-type-options": "nosniff",
|
||||
"x-frame-options": "sameorigin"
|
||||
},
|
||||
"body": "{\"timestamp\":\"2026-01-21T14:42:00.235+00:00\",\"status\":401,\"error\":\"Unauthorized\",\"message\":\"\",\"path\":\"/pl24-appgtw/ext/api/1.0/login\"}"
|
||||
}
|
||||
]
|
||||