Dodano obsługę duplikatów zamówień w Apilo oraz zaktualizowano dokumentację i wersję do 0.236
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(powershell -Command \"Compress-Archive -Path ''*'' -DestinationPath ''../ver_0.234.zip'' -Force\")"
|
||||
"Bash(powershell -Command \"Compress-Archive -Path ''*'' -DestinationPath ''../ver_0.234.zip'' -Force\")",
|
||||
"Bash(powershell -Command:*)"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ Aktualizacje znajdują się w folderze `updates/0.XX/` gdzie XX oznacza dziesią
|
||||
### Pliki aktualizacji:
|
||||
- `ver_X.XXX.zip` - paczka ZIP ze zmienionymi plikami (BEZ folderu wersji, bezpośrednio struktura katalogów)
|
||||
- `ver_X.XXX_sql.txt` - opcjonalny plik z zapytaniami SQL (jeśli wymagane zmiany w bazie)
|
||||
- `ver_X.XXX_files.txt` - opcjonalny plik z listą plików do **USUNIĘCIA** przy aktualizacji (format: `F: ../sciezka/do/pliku.php`)
|
||||
- `changelog.php` - historia zmian
|
||||
- `versions.php` - konfiguracja wersji (zmienna `$current_ver`)
|
||||
|
||||
@@ -61,6 +62,14 @@ $current_ver = 234; // dla wersji 0.234
|
||||
### 8. (Opcjonalnie) Utwórz plik SQL
|
||||
Jeśli aktualizacja wymaga zmian w bazie danych, utwórz plik `ver_X.XXX_sql.txt` z zapytaniami SQL.
|
||||
|
||||
### 9. (Opcjonalnie) Utwórz plik z listą plików do usunięcia
|
||||
Jeśli aktualizacja wymaga usunięcia przestarzałych plików, utwórz plik `ver_X.XXX_files.txt`:
|
||||
```
|
||||
F: ../sciezka/do/pliku1.php
|
||||
F: ../sciezka/do/pliku2.php
|
||||
```
|
||||
**UWAGA:** Pliki wymienione w tym pliku zostaną USUNIĘTE z systemu podczas aktualizacji.
|
||||
|
||||
## Przykład - aktualizacja 0.234
|
||||
|
||||
Zmienione pliki:
|
||||
|
||||
66
cron.php
66
cron.php
@@ -672,14 +672,66 @@ if ( $apilo_settings['enabled'] and $apilo_settings['sync_orders'] and $apilo_se
|
||||
}
|
||||
elseif ( $response['message'] == 'Validation error' )
|
||||
{
|
||||
echo '<pre>';
|
||||
echo print_r( $response, true );
|
||||
echo print_r( $postData, true );
|
||||
echo '</pre>';
|
||||
// sprawdzanie czy błąd dotyczy duplikatu idExternal
|
||||
$is_duplicate_idexternal = false;
|
||||
if ( isset( $response['errors'] ) and is_array( $response['errors'] ) )
|
||||
{
|
||||
foreach ( $response['errors'] as $error )
|
||||
{
|
||||
if ( isset( $error['field'] ) and $error['field'] == 'idExternal' and
|
||||
( strpos( $error['message'], 'już wykorzystywana' ) !== false or
|
||||
strpos( $error['message'], 'already' ) !== false ) )
|
||||
{
|
||||
$is_duplicate_idexternal = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$email_data = print_r( $response, true );
|
||||
$email_data .= print_r( $postData, true );
|
||||
\S::send_email( 'biuro@project-pro.pl', 'Błąd wysyłania zamówienia do apilo.com', $email_data );
|
||||
if ( $is_duplicate_idexternal )
|
||||
{
|
||||
// próba pobrania zamówienia z Apilo na podstawie idExternal
|
||||
$ch_get = curl_init();
|
||||
curl_setopt( $ch_get, CURLOPT_URL, "https://projectpro.apilo.com/rest/api/orders/?idExternal=" . $order['id'] );
|
||||
curl_setopt( $ch_get, CURLOPT_RETURNTRANSFER, true );
|
||||
curl_setopt( $ch_get, CURLOPT_HTTPHEADER, array(
|
||||
"Authorization: Bearer " . $access_token,
|
||||
"Accept: application/json"
|
||||
));
|
||||
$get_response = curl_exec( $ch_get );
|
||||
curl_close( $ch_get );
|
||||
|
||||
$get_response_data = json_decode( $get_response, true );
|
||||
|
||||
if ( isset( $get_response_data['list'] ) and count( $get_response_data['list'] ) > 0 )
|
||||
{
|
||||
$apilo_order_id = $get_response_data['list'][0]['id'];
|
||||
$mdb -> update( 'pp_shop_orders', [ 'apilo_order_id' => $apilo_order_id ], [ 'id' => $order['id'] ] );
|
||||
echo '<p>Zamówienie już istnieje w Apilo. Zaktualizowano ID zamówienia: ' . $apilo_order_id . '</p>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<pre>';
|
||||
echo print_r( $response, true );
|
||||
echo print_r( $postData, true );
|
||||
echo '</pre>';
|
||||
|
||||
$email_data = print_r( $response, true );
|
||||
$email_data .= print_r( $postData, true );
|
||||
\S::send_email( 'biuro@project-pro.pl', 'Błąd wysyłania zamówienia do apilo.com - nie znaleziono zamówienia', $email_data );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<pre>';
|
||||
echo print_r( $response, true );
|
||||
echo print_r( $postData, true );
|
||||
echo '</pre>';
|
||||
|
||||
$email_data = print_r( $response, true );
|
||||
$email_data .= print_r( $postData, true );
|
||||
\S::send_email( 'biuro@project-pro.pl', 'Błąd wysyłania zamówienia do apilo.com', $email_data );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
BIN
updates/0.20/ver_0.236.zip
Normal file
BIN
updates/0.20/ver_0.236.zip
Normal file
Binary file not shown.
@@ -1,3 +1,6 @@
|
||||
<b>ver. 0.236</b><br />
|
||||
- FIX - zabezpieczenie przed duplikatami zamówień w Apilo - automatyczne pobieranie ID zamówienia przy błędzie "idExternal już wykorzystywany"
|
||||
<hr>
|
||||
<b>ver. 0.235</b><br />
|
||||
- FIX - poprawka funkcji aktualizacji
|
||||
<hr>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?
|
||||
$current_ver = 235;
|
||||
$current_ver = 236;
|
||||
|
||||
for ($i = 1; $i <= $current_ver; $i++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user