{ "pipeline": "pipeline_from_oxid", "runId": "20260924-194931-3154db55", "status": "done", "startedAt": "2026-09-24T19:49:31+02:00", "updatedAt": "2026-09-24T19:58:18+02:00", "currentStep": null, "results": [ { "step": "sync_categories", "ok": true, "continuedAfterError": false, "exitCode": 0, "durationSeconds": 0.947, "command": "'/usr/bin/php' '/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/scripts/shopware_category_sync.php' --config='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/config/import_config.json'", "output": "[2026-09-24 19:49:32] INFO Category upsert chunk done {\"chunk\":1,\"count\":121}\n[2026-09-24 19:49:32] INFO SUMMARY category sync finished {\"sourceCategories\":121,\"upserted\":121,\"deactivatedMissing\":0,\"registry\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/output_2phase/category_registry.json\",\"report\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/logs/reports/category_sync_report.json\"}", "finishedAt": "2026-09-24T19:49:32+02:00" }, { "step": "resolver", "ok": true, "continuedAfterError": false, "exitCode": 0, "durationSeconds": 119.184, "command": "'/usr/bin/php' '/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/scripts/oxid_to_shopware_resolver.php' --config='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/config/import_config.json'", "output": "Step erfolgreich abgeschlossen. Detail-Log siehe jeweilige Logdatei.", "finishedAt": "2026-09-24T19:51:31+02:00" }, { "step": "csv_to_json", "ok": true, "continuedAfterError": false, "exitCode": 0, "durationSeconds": 1.848, "command": "'/usr/bin/php' '/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/scripts/csv_to_json_2phase_media.php' --config='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/config/import_config.json'", "output": "[2026-09-24 19:51:32] INFO WARNING local media file missing; media skipped {\"sourceId\":\"00074366\",\"path\":\"import_files/media/product/979_01006-payper-berufsbekleidung-christina-meran-suedtirol_02.jpg\",\"fullPath\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/import_files/media/product/979_01006-payper-berufsbekleidung-christina-meran-suedtirol_02.jpg\"}\n[2026-09-24 19:51:32] INFO WARNING local media file missing; media skipped {\"sourceId\":\"00074366\",\"path\":\"import_files/media/product/979_01006-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\",\"fullPath\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/import_files/media/product/979_01006-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\"}\n[2026-09-24 19:51:32] INFO WARNING local media file missing; media skipped {\"sourceId\":\"00074367\",\"path\":\"import_files/media/product/987_01014-payper-berufsbekleidung-christina-meran-suedtirol_02.jpg\",\"fullPath\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/import_files/media/product/987_01014-payper-berufsbekleidung-christina-meran-suedtirol_02.jpg\"}\n[2026-09-24 19:51:32] INFO WARNING local media file missing; media skipped {\"sourceId\":\"00074367\",\"path\":\"import_files/media/product/987_01014-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\",\"fullPath\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/import_files/media/product/987_01014-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\"}\n[2026-09-24 19:51:32] INFO WARNING local media file missing; media skipped {\"sourceId\":\"00074368\",\"path\":\"import_files/media/product/990_01006-payper-berufsbekleidung-christina-meran-suedtirol_02.jpg\",\"fullPath\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/import_files/media/product/990_01006-payper-berufsbekleidung-christina-meran-suedtirol_02.jpg\"}\n[2026-09-24 19:51:32] INFO WARNING local media file missing; media skipped {\"sourceId\":\"00074368\",\"path\":\"import_files/media/product/990_01006-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\",\"fullPath\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/import_files/media/product/990_01006-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\"}\n[2026-09-24 19:51:32] INFO WARNING local media file missing; media skipped {\"sourceId\":\"00074369\",\"path\":\"import_files/media/product/991_01006-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\",\"fullPath\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/import_files/media/product/991_01006-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\"}\n[2026-09-24 19:51:32] INFO WARNING local media file missing; media skipped {\"sourceId\":\"00074370\",\"path\":\"import_files/media/product/982_01006-payper-berufsbekleidung-christina-meran-suedtirol_02.jpg\",\"fullPath\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/import_files/media/product/982_01006-payper-berufsbekleidung-christina-meran-suedtirol_02.jpg\"}\n[2026-09-24 19:51:32] INFO WARNING local media file missing; media skipped {\"sourceId\":\"00074370\",\"path\":\"import_files/media/product/982_01006-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\",\"fullPath\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/import_files/media/product/982_01006-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\"}\n[2026-09-24 19:51:32] INFO WARNING local media file missing; media skipped {\"sourceId\":\"00074371\",\"path\":\"import_files/media/product/986_01006-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\",\"fullPath\":\"/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/import_files/media/product/986_01006-payper-berufsbekleidung-christina-meran-suedtirol_04.jpg\"}\n[2026-09-24 19:51:32] INFO WARNING local media file missing; media skipped {\"sourceId\":\"00074395\",\"path\":\"import_files/media/product/1111_01014-payper-berufsbekleidung-ch\n... [truncated]", "finishedAt": "2026-09-24T19:51:33+02:00" }, { "step": "batch_import_media", "ok": true, "continuedAfterError": false, "exitCode": 0, "durationSeconds": 13.495, "command": "'/usr/bin/php' '/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/scripts/shopware_sync_batch_import.php' --base-url='https://www.practical-villani.82-165-184-4.plesk.page' --client-id='SWIABZLDMKXTQTFWC2ZFEK42NA' --client-secret='QWxHcXl6WHZXa3I3MGo0d1hIZ2pSVm4zQUtaRVM4akF6ZUFja3o' --input='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/output_2phase/sync_MEDIA_PHASE1.json' --state='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/output_2phase/state/media.batch_state.json' --batch-size='250' --retries='4' --connect-timeout='20' --timeout='600' --fresh-state", "output": "Step erfolgreich abgeschlossen. Detail-Log siehe jeweilige Logdatei.", "finishedAt": "2026-09-24T19:51:47+02:00" }, { "step": "upload_media", "ok": true, "continuedAfterError": false, "exitCode": 0, "durationSeconds": 21.065, "command": "'/usr/bin/php' '/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/scripts/shopware_media_url_uploader_verify.php' --base-url='https://www.practical-villani.82-165-184-4.plesk.page' --client-id='SWIABZLDMKXTQTFWC2ZFEK42NA' --client-secret='QWxHcXl6WHZXa3I3MGo0d1hIZ2pSVm4zQUtaRVM4akF6ZUFja3o' --plan='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/output_2phase/media_upload_plan.json' --concurrency='3' --retries='5' --connect-timeout='20' --timeout='600' --log='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/logs/media_upload_verify.log' --state='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/output_2phase/state/media_upload_state.json' --fail-report='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/logs/reports/media_upload_failures.json' --verify-report='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/logs/reports/media_verify_report.json' --allow-failures", "output": "Step erfolgreich abgeschlossen. Detail-Log siehe jeweilige Logdatei.", "finishedAt": "2026-09-24T19:52:08+02:00" }, { "step": "batch_import_products", "ok": true, "continuedAfterError": false, "exitCode": 0, "durationSeconds": 150.212, "command": "'/usr/bin/php' '/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/scripts/shopware_sync_batch_import.php' --base-url='https://www.practical-villani.82-165-184-4.plesk.page' --client-id='SWIABZLDMKXTQTFWC2ZFEK42NA' --client-secret='QWxHcXl6WHZXa3I3MGo0d1hIZ2pSVm4zQUtaRVM4akF6ZUFja3o' --input='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/output_2phase/sync_PRODUCTS_PHASE2.json' --state='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/output_2phase/state/products.batch_state.json' --batch-size='250' --retries='4' --connect-timeout='20' --timeout='600' --fresh-state", "output": "Step erfolgreich abgeschlossen. Detail-Log siehe jeweilige Logdatei.", "finishedAt": "2026-09-24T19:54:38+02:00" }, { "step": "sync_product_media", "ok": true, "continuedAfterError": false, "exitCode": 0, "durationSeconds": 209.194, "command": "'/usr/bin/php' '/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/scripts/shopware_product_media_sync.php' --base-url='https://www.practical-villani.82-165-184-4.plesk.page' --client-id='SWIABZLDMKXTQTFWC2ZFEK42NA' --client-secret='QWxHcXl6WHZXa3I3MGo0d1hIZ2pSVm4zQUtaRVM4akF6ZUFja3o' --input='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/output_2phase/sync_PRODUCTS_PHASE2.json' --state='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/output_2phase/state/product_media_sync_state.json' --report='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/logs/reports/product_media_sync_report.json' --product-batch-size='50' --retries='4' --connect-timeout='20' --timeout='600' --verbose", "output": "[2026-09-24 17:58:07] INFO Product media sync finished {\"products\":28942,\"processed\":28942,\"deleted\":0,\"added\":0,\"updatedCover\":0,\"skippedMissingProducts\":0,\"skippedByState\":0}", "finishedAt": "2026-09-24T19:58:07+02:00" }, { "step": "sync_customers", "ok": true, "continuedAfterError": false, "exitCode": 0, "durationSeconds": 11.066, "command": "'/usr/bin/php' '/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/scripts/shopware_customer_sync.php' --config='/var/www/vhosts/practical-villani.82-165-184-4.plesk.page/httpdocs/import/config/import_config.json'", "output": "[2026-09-24 19:58:09] INFO Customer batch imported {\"batch\":1,\"count\":200,\"done\":200,\"total\":1663}\nCustomer batch imported {\"batch\":1,\"count\":200,\"done\":200,\"total\":1663}\n[2026-09-24 19:58:09] INFO Customer batch imported {\"batch\":2,\"count\":200,\"done\":400,\"total\":1663}\nCustomer batch imported {\"batch\":2,\"count\":200,\"done\":400,\"total\":1663}\n[2026-09-24 19:58:10] INFO Customer batch imported {\"batch\":3,\"count\":200,\"done\":600,\"total\":1663}\nCustomer batch imported {\"batch\":3,\"count\":200,\"done\":600,\"total\":1663}\n[2026-09-24 19:58:10] INFO Customer batch imported {\"batch\":4,\"count\":200,\"done\":800,\"total\":1663}\nCustomer batch imported {\"batch\":4,\"count\":200,\"done\":800,\"total\":1663}\n[2026-09-24 19:58:10] INFO Customer batch imported {\"batch\":5,\"count\":200,\"done\":1000,\"total\":1663}\nCustomer batch imported {\"batch\":5,\"count\":200,\"done\":1000,\"total\":1663}\n[2026-09-24 19:58:11] INFO Customer batch imported {\"batch\":6,\"count\":200,\"done\":1200,\"total\":1663}\nCustomer batch imported {\"batch\":6,\"count\":200,\"done\":1200,\"total\":1663}\n[2026-09-24 19:58:11] INFO Customer batch imported {\"batch\":7,\"count\":200,\"done\":1400,\"total\":1663}\nCustomer batch imported {\"batch\":7,\"count\":200,\"done\":1400,\"total\":1663}\n[2026-09-24 19:58:11] INFO Customer batch imported {\"batch\":8,\"count\":200,\"done\":1600,\"total\":1663}\nCustomer batch imported {\"batch\":8,\"count\":200,\"done\":1600,\"total\":1663}\n[2026-09-24 19:58:18] INFO Customer batch imported {\"batch\":9,\"count\":63,\"done\":1663,\"total\":1663}\nCustomer batch imported {\"batch\":9,\"count\":63,\"done\":1663,\"total\":1663}", "finishedAt": "2026-09-24T19:58:18+02:00" } ], "durationSeconds": 527.324 }