Files
shopPRO/updates/changelog.php
Jacek Pyziak e6c8bdf63f ver. 0.319: usunięcie shopPRO eksportu produktów + rozszerzenie API o custom_fields i security_information
- Usunięto shopproExportProduct() z IntegrationsRepository
- Usunięto shoppro_product_export() z IntegrationsController
- Usunięto przycisk "Eksportuj do shopPRO" z ShopProductController
- ProductRepository: dodano custom_fields i security_information do odpowiedzi API
- Zaktualizowano docs/API.md i testy

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 12:29:13 +01:00

109 lines
8.5 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<b>ver. 0.318 - 24.02.2026</b><br />
NEW - shopPRO export produktów + API endpoints (ensure_attribute, ensure_attribute_value, upload_image)
<hr>
<b>ver. 0.317 - 23.02.2026</b><br />
FIX - klucz API: fix zapisu (brakowalo w whiteliĹcie), przycisk Generuj losowy klucz, ulepszony routing API
<hr>
<b>ver. 0.316 - 23.02.2026</b><br />
FIX - migracja brakujacej kolumny type w pp_shop_products_custom_fields
<hr>
<b>ver. 0.315 - 23.02.2026</b><br />
FIX - PDOException w listowaniu atrybutow admin (SQLSTATE HY093)
<hr>
<b>ver. 0.314 - 23.02.2026</b><br />
FIX - naprawa globalnej wyszukiwarki admin (Content-Type, Cache-Control, POST, try/catch), NEW - title strony z numerem zamÄ„ââ¬ĹˇĂ„ąââ¬Ĺˇwienia
<hr>
<b>ver. 0.313 - 23.02.2026</b><br />
FIX - sync pÄ‚ââ¬ĹľÄ„ââ¬Â¦Ă„‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąĂ‡atnoÄ‚ââ¬ĹľÄ„ââ¬Â¦Ă„‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąĹşci Apilo (int cast na apilo_order_id PPxxxxxx dawaÄ‚ââ¬ĹľÄ„ââ¬Â¦Ă„‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąĂ‡ 0) + logowanie decyzji sync do pp_log
<hr>
<b>ver. 0.312 - 23.02.2026</b><br />
FIX - krytyczne bugi integracji Apilo: curl_getinfo po curl_close, nieskoÄ„ââ¬ĹˇÄ˘â‚¬ĹľÄ‚ââ¬ĹľÄ˘â‚¬Ă¦Ä„ââ¬ĹˇÄ‹Ă˜Ä‚Ă˜Ä˘â‚¬ĹˇÄ‚Ă¬Ä„Ä…Ä„Äľczona pÄ‚ââ¬ĹľÄ˘â‚¬ĹˇÄ‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąÄľÄ„ââ¬ĹˇÄ‹Ă˜Ä‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąÄľÄ‚ââ¬Ä…Ä‚Ă˜tla wysyÄ„ââ¬ĹˇÄ˘â‚¬ĹľÄ‚ââ¬ĹľÄ˘â‚¬Ă¦Ä„ââ¬ĹˇÄ‹Ă˜Ä‚Ă˜Ä˘â‚¬ĹˇÄ‚Ă¬Ä„Ä…Ä‹ââ¬Ë‡ki, ceny 0.00 PLN, walidacja cen
<hr>
<b>ver. 0.311 - 23.02.2026</b><br />
FIX - race condition callback pÄ‚ââ¬ĹľÄ˘â‚¬ĹˇÄ‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąÄľÄ„ââ¬ĹˇÄ˘â‚¬ĹľÄ‚Ă˜Ä˘ââ¬ĹˇĂ¬Ä‚æĂââ¬ĹľÄ˘â‚¬ĹˇÄ‚ââ¬Ä…Ä‚Ă˜Ä„ââ¬ĹˇÄ‹Ă˜Ä‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąĂ‡Ä‚ââ¬ĹˇÄ‚ìĂââ¬ĹľÄ„ââ¬Â¦Ă„‚ââ¬Ä…Ģ€ÇatnoÄ‚ââ¬ĹľÄ˘â‚¬ĹˇÄ‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąÄľÄ„ââ¬ĹˇÄ˘â‚¬ĹľÄ‚Ă˜Ä˘ââ¬ĹˇĂ¬Ä‚æĂââ¬ĹľÄ˘â‚¬ĹˇÄ‚ââ¬Ä…Ä‚Ă˜Ä„ââ¬ĹˇÄ‹Ă˜Ä‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąĂ‡Ä‚ââ¬ĹˇÄ‚ìĂââ¬ĹľÄ„ââ¬Â¦Ä„ąĹźci Apilo, persistence filtrÄ‚ââ¬ĹľÄ˘â‚¬ĹˇÄ‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąÄľÄ„ââ¬ĹˇÄ‹Ă˜Ä‚Ă˜Ä˘â‚¬ĹˇÄ‚Ă¬Ä„Ä…Ä‹ââ¬Ë‡Ä„ââ¬ĹˇÄ˘â‚¬ĹľÄ‚ââ¬ĹľÄ˘â‚¬Ă¦Ä„ââ¬ĹˇÄ‹Ă˜Ä‚Ă˜Ä˘â‚¬ĹˇÄ‚Ă¬Ä„Ä…Ä‹ââ¬Ë‡w tabel admin, poprawki cen zamÄ‚ââ¬ĹľÄ˘â‚¬ĹˇÄ‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąÄľÄ„ââ¬ĹˇÄ‹Ă˜Ä‚Ă˜Ä˘â‚¬ĹˇÄ‚Ă¬Ä„Ä…Ä‹ââ¬Ë‡Ä„ââ¬ĹˇÄ˘â‚¬ĹľÄ‚ââ¬ĹľÄ˘â‚¬Ă¦Ä„ââ¬ĹˇÄ‹Ă˜Ä‚Ă˜Ä˘â‚¬ĹˇÄ‚Ă¬Ä„Ä…Ä‹ââ¬Ë‡wieÄ‚ââ¬ĹľÄ˘â‚¬ĹˇÄ‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąÄľÄ„ââ¬ĹˇÄ˘â‚¬ĹľÄ‚Ă˜Ä˘ââ¬ĹˇĂ¬Ä‚æĂââ¬ĹľÄ˘â‚¬ĹˇÄ‚ââ¬Ä…Ä‚Ă˜Ä„ââ¬ĹˇÄ‹Ă˜Ä‚Ă˜Ä˘ââ¬ĹˇĂ¬ÄąĂ‡Ä‚ââ¬ĹˇÄ‚ìĂââ¬ĹľÄ„ââ¬Â¦Ă„‚ââ¬ĹľÄ„Äľ
<hr>
<b>ver. 0.310 - 23.02.2026</b><br />
NEW - Zakladka Logi w sekcji Integracje (podglad pp_log z paginacja, sortowaniem, filtrami)
<hr>
<b>ver. 0.309 - 23.02.2026</b><br />
NEW - ApiloLogger (logowanie operacji Apilo do pp_log), cache-busting CSS/JS w admin panelu, poprawki UI listy produktow, clipboard API
<hr>
<b>ver. 0.308 - 22.02.2026</b><br />
NEW - kolorowe badge statusow zamowien, walidacja hex, sanityzacja HTML transport, optymalizacja SQL
<hr>
<b>ver. 0.308 - 22.02.2026</b><br />
NEW - kolorowe badge statusow zamowien, walidacja hex, sanityzacja HTML transport, optymalizacja SQL
<hr>
<?php
// Auto-generated changelog from manifest files + legacy entries.
// Scans manifest JSON files, merges with changelog-legacy.json, sorts descending, outputs HTML.
$entries = [];
// 1. Scan manifest files
$manifests = glob( __DIR__ . '/0.*/ver_*_manifest.json' );
if ( $manifests ) {
foreach ( $manifests as $file ) {
$json = @file_get_contents( $file );
if ( !$json ) continue;
// Strip UTF-8 BOM if present
if ( substr( $json, 0, 3 ) === "\xEF\xBB\xBF" ) {
$json = substr( $json, 3 );
}
$data = @json_decode( $json, true );
if ( !$data || empty( $data['version'] ) || empty( $data['changelog'] ) ) continue;
$date = isset( $data['date'] ) ? $data['date'] : '';
// Convert YYYY-MM-DD to DD.MM.YYYY
if ( $date && preg_match( '/^(\d{4})-(\d{2})-(\d{2})$/', $date, $m ) ) {
$date = $m[3] . '.' . $m[2] . '.' . $m[1];
}
$entries[] = [
'version' => (float) $data['version'],
'ver_str' => $data['version'],
'date' => $date,
'text' => $data['changelog'],
];
}
}
// 2. Load legacy entries
$legacyFile = __DIR__ . '/changelog-legacy.json';
if ( file_exists( $legacyFile ) ) {
$legacyJson = @file_get_contents( $legacyFile );
if ( $legacyJson ) {
$legacy = @json_decode( $legacyJson, true );
if ( is_array( $legacy ) ) {
foreach ( $legacy as $item ) {
if ( empty( $item['version'] ) ) continue;
$entries[] = [
'version' => (float) $item['version'],
'ver_str' => $item['version'],
'date' => isset( $item['date'] ) ? $item['date'] : '',
'text' => isset( $item['text'] ) ? $item['text'] : '',
];
}
}
}
}
// 3. Sort descending by version
usort( $entries, function ( $a, $b ) {
if ( $a['version'] == $b['version'] ) return 0;
return ( $a['version'] > $b['version'] ) ? -1 : 1;
} );
// 4. Output HTML
foreach ( $entries as $entry ) {
$header = 'ver. ' . htmlspecialchars( $entry['ver_str'] );
if ( $entry['date'] ) {
$header .= ' - ' . htmlspecialchars( $entry['date'] );
}
$text = nl2br( htmlspecialchars( $entry['text'] ) );
echo '<b>' . $header . '</b><br />' . "\n";
echo $text . "\n";
echo '<hr>' . "\n";
}