Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
<?php
// Налаштування керування
$settings = [
'enableCache' => true, // Увімкнення або вимкнення кешування
'connectTimeout' => 50, // Час з'єднання за замовчуванням
'markupPercentage' => 0.35, // Націнка у відсотках (35%)
'roundingOption' => 4, // Опція округлення: 1 - без округлення, 2 - без дробової частини, 3 - до 5, 4 - до 10 (за замовчуванням)
'executionTimes' => [
'Львів' => 1, //Склад Львів
'Kиїв Правий' => 2, //Склад Kиїв Правий
'Рівне' => 2, //Склад Рівне
'Kиїв Лівий' => 2, //Склад Kиїв Лівий
'Одеса' => 2, //Склад Одеса
'Миколаїв' => 2, //Склад Миколаїв
'Дніпро' => 2, //Склад Дніпро
'Харків' => 2, //Склад Харків
'Запоріжжя' => 2, //Склад Запоріжжя
'Хмельницький' => 2, //Склад Хмельницький
'Під замовлення (2-4 дні)' => 5, //Склад Під замовлення (2-4 дні)
], // Час доставки за іменем складу
'defaultExecutionTime' => 30, // Час доставки за замовчуванням
'email' => 'Ваш Логін',
'password' => 'Ваш Пароль',
'uniqueKey' => 'some-unique-key-here',
'token' => '',
'tokenExpiration' => 0
];
if (!defined("TDM_PROLOG_INCLUDED") || TDM_PROLOG_INCLUDED !== true) {
die();
}
// Ініціалізація масиву цін
$arPrices = [];
// Кешування результатів запитів
$apiCache = [];
// Отримання токену доступу
function getAccessToken(&$settings) {
// Перевірка чи токен ще дійсний
if ($settings['tokenExpiration'] > time()) {
return $settings['token'];
}
$url = "https://order24-api.utr.ua/api/login_check";
$data = json_encode([
"email" => $settings['email'],
"password" => $settings['password'],
"browser_fingerprint" => md5($settings['uniqueKey'])
]);
$headers = ["Content-Type: application/json"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ($info['http_code'] == 200) {
$responseData = json_decode($response, true);
$settings['token'] = $responseData['token'];
$settings['tokenExpiration'] = strtotime($responseData['expires_at']);
return $settings['token'];
} else {
die("Не вдалося отримати токен доступу: HTTP Error {$info['http_code']}");
}
}
// Виконання запитів до API
function fetchFromApi($url, $accessToken, $connectTimeout) {
$headers = ["Authorization: Bearer $accessToken"];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HEADER => 0,
CURLOPT_ENCODING => 'utf-8',
CURLOPT_CONNECTTIMEOUT => $connectTimeout
]);
$curlResult = curl_exec($ch);
curl_close($ch);
return $curlResult;
}
// Функція для виправлення URL зображення
function fixImageUrl($url) {
return str_replace("//images", "/images", $url);
}
// Отримання токену доступу
$accessToken = getAccessToken($settings);
// Основний цикл обробки часток
foreach ($arWsParts as $arPart) {
$article = $arPart['ARTICLE'];
// Перевірка кешу та виконання запиту до API
if ($settings['enableCache'] && isset($apiCache[$article])) {
$curlResult = $apiCache[$article];
} else {
$url = "https://order24-api.utr.ua/api/search/" . urlencode($article) . "?info=1";
$curlResult = fetchFromApi($url, $accessToken, $settings['connectTimeout']);
if ($settings['enableCache']) {
$apiCache[$article] = $curlResult;
}
}
// Обробка результатів запиту
if ($curlResult !== false) {
$curlResult = json_decode($curlResult, true);
if (!empty($curlResult['details'])) {
foreach ($curlResult['details'] as $detail) {
$detailId = $detail['id'];
$brandName = $detail['brand']['name'];
$detailUrl = "https://order24-api.utr.ua/api/detail/$detailId";
$detailResult = fetchFromApi($detailUrl, $accessToken, $settings['connectTimeout']);
if ($detailResult !== false) {
$detailInfo = json_decode($detailResult, true);
$images = !empty($detailInfo['images']) ? $detailInfo['images'] : [];
$imageSrc = !empty($images) ? fixImageUrl($images[0]['fullImagePath']) : '';
foreach ($detailInfo['remains'] as $remain) {
$arPrice = TDMPriceArray($arPart);
$arPrice["ARTICLE"] = $detail['article'];
$arPrice["ALT_NAME"] = $detail['title'];
$arPrice["BRAND"] = $detail['brand']['name'];
$arPrice["PRICE"] = $detail['yourPrice']['amount'];
$arPrice["AVAILABLE"] = $remain['remain'];
$arPrice['IMG_SRC'] = $imageSrc;
$arPrice["CURRENCY"] = $detail['yourPrice']['currency']['code'];
$arPrice["DAY"] = $settings['executionTimes'][$remain['storage']['name']] ?? $settings['defaultExecutionTime'];
$arPrice["STOCK"] = $remain['storage']['name'];
$arPrice["OPTIONS"] = ''; // Опції - поки не вказано
$arOps = Array();
$arPrice["OPTIONS"] = TDMOptionsImplode($arOps, $arPrice);
$arPrices[] = $arPrice;
}
// Пошук аналогів
$analogsUrl = "https://order24-api.utr.ua/api/analogs/" . urlencode($brandName) . "/" . urlencode($article);
$analogsResult = fetchFromApi($analogsUrl, $accessToken, $settings['connectTimeout']);
if ($analogsResult !== false) {
$analogs = json_decode($analogsResult, true);
foreach ($analogs as $analog) {
foreach ($analog['remains'] as $analogRemain) {
$analogPrice = TDMPriceArray($arPart);
$analogPrice["ARTICLE"] = $analog['article'];
$analogPrice["ALT_NAME"] = $analog['title'];
$analogPrice["BRAND"] = $analog['brand']['name'];
$analogPrice["PRICE"] = $analog['yourPrice']['amount'];
$analogPrice["AVAILABLE"] = $analogRemain['remain'];
$analogPrice['IMG_SRC'] = $imageSrc; // Використовуємо одне й те ж зображення
$analogPrice["CURRENCY"] = $analog['yourPrice']['currency']['code'];
$analogPrice["DAY"] = $settings['executionTimes'][$analogRemain['storage']['name']] ?? $settings['defaultExecutionTime'];
$analogPrice["STOCK"] = $analogRemain['storage']['name'];
$analogPrice["OPTIONS"] = ''; // Опції - поки не вказано
$analogOps = Array();
$analogPrice["OPTIONS"] = TDMOptionsImplode($analogOps, $analogPrice);
$arPrices[] = $analogPrice;
}
}
}
}
}
}
}
}
echo '<pre>'; print_r($arPrices); echo '</pre>';
?>
або
<?php
// Налаштування керування
$settings = [
'enableCache' => true, // Увімкнення або вимкнення кешування
'connectTimeout' => 50, // Час з'єднання за замовчуванням
'markupPercentage' => 0.35, // Націнка у відсотках (35%)
'roundingOption' => 4, // Опція округлення: 1 - без округлення, 2 - без дробової частини, 3 - до 5, 4 - до 10 (за замовчуванням)
'executionTimes' => [
'Львів' => 1, //Склад Львів
'Kиїв Правий' => 2, //Склад Kиїв Правий
'Рівне' => 2, //Склад Рівне
'Kиїв Лівий' => 2, //Склад Kиїв Лівий
'Одеса' => 2, //Склад Одеса
'Миколаїв' => 2, //Склад Миколаїв
'Дніпро' => 2, //Склад Дніпро
'Харків' => 2, //Склад Харків
'Запоріжжя' => 2, //Склад Запоріжжя
'Хмельницький' => 2, //Склад Хмельницький
'Під замовлення (2-4 дні)' => 5, //Склад Під замовлення (2-4 дні)
], // Час доставки за іменем складу
'defaultExecutionTime' => 30, // Час доставки за замовчуванням
'email' => ' Ваш Логін ',
'password' => ' Ваш Пароль ',
'uniqueKey' => 'some-unique-key-here',
'token' => '',
'tokenExpiration' => 0
];
if (!defined("TDM_PROLOG_INCLUDED") || TDM_PROLOG_INCLUDED !== true) {
die();
}
// Ініціалізація масиву цін
$arPrices = [];
// Кешування результатів запитів
$apiCache = [];
// Отримання токену доступу
function getAccessToken(&$settings) {
// Перевірка чи токен ще дійсний
if ($settings['tokenExpiration'] > time()) {
return $settings['token'];
}
$url = "https://order24-api.utr.ua/api/login_check";
$data = json_encode([
"email" => $settings['email'],
"password" => $settings['password'],
"browser_fingerprint" => md5($settings['uniqueKey'])
]);
$headers = ["Content-Type: application/json"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ($info['http_code'] == 200) {
$responseData = json_decode($response, true);
$settings['token'] = $responseData['token'];
$settings['tokenExpiration'] = strtotime($responseData['expires_at']);
return $settings['token'];
} else {
die("Не вдалося отримати токен доступу: HTTP Error {$info['http_code']}");
}
}
// Виконання запитів до API
function fetchFromApi($url, $accessToken, $connectTimeout) {
$headers = ["Authorization: Bearer $accessToken"];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HEADER => 0,
CURLOPT_ENCODING => 'utf-8',
CURLOPT_CONNECTTIMEOUT => $connectTimeout
]);
$curlResult = curl_exec($ch);
curl_close($ch);
return $curlResult;
}
// Функція для виправлення URL зображення
function fixImageUrl($url) {
return str_replace("//images", "/images", $url);
}
// Отримання токену доступу
$accessToken = getAccessToken($settings);
// Основний цикл обробки часток
foreach ($arWsParts as $arPart) {
$article = $arPart['ARTICLE'];
// Перевірка кешу та виконання запиту до API
if ($settings['enableCache'] && isset($apiCache[$article])) {
$curlResult = $apiCache[$article];
} else {
$url = "https://order24-api.utr.ua/api/search/" . urlencode($article) . "?info=1";
$curlResult = fetchFromApi($url, $accessToken, $settings['connectTimeout']);
if ($settings['enableCache']) {
$apiCache[$article] = $curlResult;
}
}
// Обробка результатів запиту
if ($curlResult !== false) {
$curlResult = json_decode($curlResult, true);
if (!empty($curlResult['details'])) {
foreach ($curlResult['details'] as $detail) {
$detailId = $detail['id'];
$brandName = $detail['brand']['name'];
$detailUrl = "https://order24-api.utr.ua/api/detail/$detailId";
$detailResult = fetchFromApi($detailUrl, $accessToken, $settings['connectTimeout']);
if ($detailResult !== false) {
$detailInfo = json_decode($detailResult, true);
$images = !empty($detailInfo['images']) ? $detailInfo['images'] : [];
$imageSrc = !empty($images) ? fixImageUrl($images[0]['fullImagePath']) : '';
foreach ($detailInfo['remains'] as $remain) {
$arPrice = TDMPriceArray($arPart);
$arPrice["ARTICLE"] = $detail['article'];
$arPrice["ALT_NAME"] = $detail['title'];
$arPrice["BRAND"] = $detail['brand']['name'];
$arPrice["PRICE"] = $detail['yourPrice']['amount'];
$arPrice["AVAILABLE"] = $remain['remain'];
$arPrice['IMG_SRC'] = $imageSrc;
$arPrice["CURRENCY"] = $detail['yourPrice']['currency']['code'];
$arPrice["DAY"] = $settings['executionTimes'][$remain['storage']['name']] ?? $settings['defaultExecutionTime'];
$arPrice["STOCK"] = $remain['storage']['name'];
$arPrice["OPTIONS"] = ''; // Опції - поки не вказано
$arOps = Array();
$arPrice["OPTIONS"] = TDMOptionsImplode($arOps, $arPrice);
$arPrices[] = $arPrice;
}
// Пошук аналогів
$analogsUrl = "https://order24-api.utr.ua/api/analogs/" . urlencode($brandName) . "/" . urlencode($article);
$analogsResult = fetchFromApi($analogsUrl, $accessToken, $settings['connectTimeout']);
if ($analogsResult !== false) {
$analogs = json_decode($analogsResult, true);
foreach ($analogs as $analog) {
foreach ($analog['remains'] as $analogRemain) {
$arPrice = TDMPriceArray($arPart);
$arPrice["ARTICLE"] = $analog['article'];
$arPrice["ALT_NAME"] = $analog['title'];
$arPrice["BRAND"] = $analog['brand']['name'];
$arPrice["PRICE"] = $analog['yourPrice']['amount'];
$arPrice["AVAILABLE"] = $analogRemain['remain'];
// $arPrice['IMG_SRC'] = $imageSrc; // Використовуємо одне й те ж зображення
$arPrice["CURRENCY"] = $analog['yourPrice']['currency']['code'];
$arPrice["DAY"] = $settings['executionTimes'][$analogRemain['storage']['name']] ?? $settings['defaultExecutionTime'];
$arPrice["STOCK"] = $analogRemain['storage']['name'];
$arPrice["OPTIONS"] = ''; // Опції - поки не вказано
$arOps = Array();
$arPrice["OPTIONS"] = TDMOptionsImplode($arOps, $arPrice);
$arPrices[] = $arPrice;
}
}
}
}
}
}
}
}
echo '<pre>'; print_r($arPrices); echo '</pre>';
?>
В мене вибиває помилкуСклади поправив додав пошук по аналогам тестуйте будуть якісь баги пишіть постараюсь виправити.PHP:<?php // Налаштування керування $settings = [ 'enableCache' => true, // Увімкнення або вимкнення кешування 'connectTimeout' => 50, // Час з'єднання за замовчуванням 'markupPercentage' => 0.35, // Націнка у відсотках (35%) 'roundingOption' => 4, // Опція округлення: 1 - без округлення, 2 - без дробової частини, 3 - до 5, 4 - до 10 (за замовчуванням) 'executionTimes' => [ 'Львів' => 1, //Склад Львів 'Kиїв Правий' => 2, //Склад Kиїв Правий 'Рівне' => 2, //Склад Рівне 'Kиїв Лівий' => 2, //Склад Kиїв Лівий 'Одеса' => 2, //Склад Одеса 'Миколаїв' => 2, //Склад Миколаїв 'Дніпро' => 2, //Склад Дніпро 'Харків' => 2, //Склад Харків 'Запоріжжя' => 2, //Склад Запоріжжя 'Хмельницький' => 2, //Склад Хмельницький 'Під замовлення (2-4 дні)' => 5, //Склад Під замовлення (2-4 дні) ], // Час доставки за іменем складу 'defaultExecutionTime' => 30, // Час доставки за замовчуванням 'email' => 'Ваш Логін', 'password' => 'Ваш Пароль', 'uniqueKey' => 'some-unique-key-here', 'token' => '', 'tokenExpiration' => 0 ]; if (!defined("TDM_PROLOG_INCLUDED") || TDM_PROLOG_INCLUDED !== true) { die(); } // Ініціалізація масиву цін $arPrices = []; // Кешування результатів запитів $apiCache = []; // Отримання токену доступу function getAccessToken(&$settings) { // Перевірка чи токен ще дійсний if ($settings['tokenExpiration'] > time()) { return $settings['token']; } $url = "https://order24-api.utr.ua/api/login_check"; $data = json_encode([ "email" => $settings['email'], "password" => $settings['password'], "browser_fingerprint" => md5($settings['uniqueKey']) ]); $headers = ["Content-Type: application/json"]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); if ($info['http_code'] == 200) { $responseData = json_decode($response, true); $settings['token'] = $responseData['token']; $settings['tokenExpiration'] = strtotime($responseData['expires_at']); return $settings['token']; } else { die("Не вдалося отримати токен доступу: HTTP Error {$info['http_code']}"); } } // Виконання запитів до API function fetchFromApi($url, $accessToken, $connectTimeout) { $headers = ["Authorization: Bearer $accessToken"]; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => 1, CURLOPT_HEADER => 0, CURLOPT_ENCODING => 'utf-8', CURLOPT_CONNECTTIMEOUT => $connectTimeout ]); $curlResult = curl_exec($ch); curl_close($ch); return $curlResult; } // Функція для виправлення URL зображення function fixImageUrl($url) { return str_replace("//images", "/images", $url); } // Отримання токену доступу $accessToken = getAccessToken($settings); // Основний цикл обробки часток foreach ($arWsParts as $arPart) { $article = $arPart['ARTICLE']; // Перевірка кешу та виконання запиту до API if ($settings['enableCache'] && isset($apiCache[$article])) { $curlResult = $apiCache[$article]; } else { $url = "https://order24-api.utr.ua/api/search/" . urlencode($article) . "?info=1"; $curlResult = fetchFromApi($url, $accessToken, $settings['connectTimeout']); if ($settings['enableCache']) { $apiCache[$article] = $curlResult; } } // Обробка результатів запиту if ($curlResult !== false) { $curlResult = json_decode($curlResult, true); if (!empty($curlResult['details'])) { foreach ($curlResult['details'] as $detail) { $detailId = $detail['id']; $brandName = $detail['brand']['name']; $detailUrl = "https://order24-api.utr.ua/api/detail/$detailId"; $detailResult = fetchFromApi($detailUrl, $accessToken, $settings['connectTimeout']); if ($detailResult !== false) { $detailInfo = json_decode($detailResult, true); $images = !empty($detailInfo['images']) ? $detailInfo['images'] : []; $imageSrc = !empty($images) ? fixImageUrl($images[0]['fullImagePath']) : ''; foreach ($detailInfo['remains'] as $remain) { $arPrice = TDMPriceArray($arPart); $arPrice["ARTICLE"] = $detail['article']; $arPrice["ALT_NAME"] = $detail['title']; $arPrice["BRAND"] = $detail['brand']['name']; $arPrice["PRICE"] = $detail['yourPrice']['amount']; $arPrice["AVAILABLE"] = $remain['remain']; $arPrice['IMG_SRC'] = $imageSrc; $arPrice["CURRENCY"] = $detail['yourPrice']['currency']['code']; $arPrice["DAY"] = $settings['executionTimes'][$remain['storage']['name']] ?? $settings['defaultExecutionTime']; $arPrice["STOCK"] = $remain['storage']['name']; $arPrice["OPTIONS"] = ''; // Опції - поки не вказано $arOps = Array(); $arPrice["OPTIONS"] = TDMOptionsImplode($arOps, $arPrice); $arPrices[] = $arPrice; } // Пошук аналогів $analogsUrl = "https://order24-api.utr.ua/api/analogs/" . urlencode($brandName) . "/" . urlencode($article); $analogsResult = fetchFromApi($analogsUrl, $accessToken, $settings['connectTimeout']); if ($analogsResult !== false) { $analogs = json_decode($analogsResult, true); foreach ($analogs as $analog) { foreach ($analog['remains'] as $analogRemain) { $analogPrice = TDMPriceArray($arPart); $analogPrice["ARTICLE"] = $analog['article']; $analogPrice["ALT_NAME"] = $analog['title']; $analogPrice["BRAND"] = $analog['brand']['name']; $analogPrice["PRICE"] = $analog['yourPrice']['amount']; $analogPrice["AVAILABLE"] = $analogRemain['remain']; $analogPrice['IMG_SRC'] = $imageSrc; // Використовуємо одне й те ж зображення $analogPrice["CURRENCY"] = $analog['yourPrice']['currency']['code']; $analogPrice["DAY"] = $settings['executionTimes'][$analogRemain['storage']['name']] ?? $settings['defaultExecutionTime']; $analogPrice["STOCK"] = $analogRemain['storage']['name']; $analogPrice["OPTIONS"] = ''; // Опції - поки не вказано $analogOps = Array(); $analogPrice["OPTIONS"] = TDMOptionsImplode($analogOps, $analogPrice); $arPrices[] = $analogPrice; } } } } } } } } echo '<pre>'; print_r($arPrices); echo '</pre>'; ?> або <?php // Налаштування керування $settings = [ 'enableCache' => true, // Увімкнення або вимкнення кешування 'connectTimeout' => 50, // Час з'єднання за замовчуванням 'markupPercentage' => 0.35, // Націнка у відсотках (35%) 'roundingOption' => 4, // Опція округлення: 1 - без округлення, 2 - без дробової частини, 3 - до 5, 4 - до 10 (за замовчуванням) 'executionTimes' => [ 'Львів' => 1, //Склад Львів 'Kиїв Правий' => 2, //Склад Kиїв Правий 'Рівне' => 2, //Склад Рівне 'Kиїв Лівий' => 2, //Склад Kиїв Лівий 'Одеса' => 2, //Склад Одеса 'Миколаїв' => 2, //Склад Миколаїв 'Дніпро' => 2, //Склад Дніпро 'Харків' => 2, //Склад Харків 'Запоріжжя' => 2, //Склад Запоріжжя 'Хмельницький' => 2, //Склад Хмельницький 'Під замовлення (2-4 дні)' => 5, //Склад Під замовлення (2-4 дні) ], // Час доставки за іменем складу 'defaultExecutionTime' => 30, // Час доставки за замовчуванням 'email' => ' Ваш Логін ', 'password' => ' Ваш Пароль ', 'uniqueKey' => 'some-unique-key-here', 'token' => '', 'tokenExpiration' => 0 ]; if (!defined("TDM_PROLOG_INCLUDED") || TDM_PROLOG_INCLUDED !== true) { die(); } // Ініціалізація масиву цін $arPrices = []; // Кешування результатів запитів $apiCache = []; // Отримання токену доступу function getAccessToken(&$settings) { // Перевірка чи токен ще дійсний if ($settings['tokenExpiration'] > time()) { return $settings['token']; } $url = "https://order24-api.utr.ua/api/login_check"; $data = json_encode([ "email" => $settings['email'], "password" => $settings['password'], "browser_fingerprint" => md5($settings['uniqueKey']) ]); $headers = ["Content-Type: application/json"]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); if ($info['http_code'] == 200) { $responseData = json_decode($response, true); $settings['token'] = $responseData['token']; $settings['tokenExpiration'] = strtotime($responseData['expires_at']); return $settings['token']; } else { die("Не вдалося отримати токен доступу: HTTP Error {$info['http_code']}"); } } // Виконання запитів до API function fetchFromApi($url, $accessToken, $connectTimeout) { $headers = ["Authorization: Bearer $accessToken"]; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => 1, CURLOPT_HEADER => 0, CURLOPT_ENCODING => 'utf-8', CURLOPT_CONNECTTIMEOUT => $connectTimeout ]); $curlResult = curl_exec($ch); curl_close($ch); return $curlResult; } // Функція для виправлення URL зображення function fixImageUrl($url) { return str_replace("//images", "/images", $url); } // Отримання токену доступу $accessToken = getAccessToken($settings); // Основний цикл обробки часток foreach ($arWsParts as $arPart) { $article = $arPart['ARTICLE']; // Перевірка кешу та виконання запиту до API if ($settings['enableCache'] && isset($apiCache[$article])) { $curlResult = $apiCache[$article]; } else { $url = "https://order24-api.utr.ua/api/search/" . urlencode($article) . "?info=1"; $curlResult = fetchFromApi($url, $accessToken, $settings['connectTimeout']); if ($settings['enableCache']) { $apiCache[$article] = $curlResult; } } // Обробка результатів запиту if ($curlResult !== false) { $curlResult = json_decode($curlResult, true); if (!empty($curlResult['details'])) { foreach ($curlResult['details'] as $detail) { $detailId = $detail['id']; $brandName = $detail['brand']['name']; $detailUrl = "https://order24-api.utr.ua/api/detail/$detailId"; $detailResult = fetchFromApi($detailUrl, $accessToken, $settings['connectTimeout']); if ($detailResult !== false) { $detailInfo = json_decode($detailResult, true); $images = !empty($detailInfo['images']) ? $detailInfo['images'] : []; $imageSrc = !empty($images) ? fixImageUrl($images[0]['fullImagePath']) : ''; foreach ($detailInfo['remains'] as $remain) { $arPrice = TDMPriceArray($arPart); $arPrice["ARTICLE"] = $detail['article']; $arPrice["ALT_NAME"] = $detail['title']; $arPrice["BRAND"] = $detail['brand']['name']; $arPrice["PRICE"] = $detail['yourPrice']['amount']; $arPrice["AVAILABLE"] = $remain['remain']; $arPrice['IMG_SRC'] = $imageSrc; $arPrice["CURRENCY"] = $detail['yourPrice']['currency']['code']; $arPrice["DAY"] = $settings['executionTimes'][$remain['storage']['name']] ?? $settings['defaultExecutionTime']; $arPrice["STOCK"] = $remain['storage']['name']; $arPrice["OPTIONS"] = ''; // Опції - поки не вказано $arOps = Array(); $arPrice["OPTIONS"] = TDMOptionsImplode($arOps, $arPrice); $arPrices[] = $arPrice; } // Пошук аналогів $analogsUrl = "https://order24-api.utr.ua/api/analogs/" . urlencode($brandName) . "/" . urlencode($article); $analogsResult = fetchFromApi($analogsUrl, $accessToken, $settings['connectTimeout']); if ($analogsResult !== false) { $analogs = json_decode($analogsResult, true); foreach ($analogs as $analog) { foreach ($analog['remains'] as $analogRemain) { $arPrice = TDMPriceArray($arPart); $arPrice["ARTICLE"] = $analog['article']; $arPrice["ALT_NAME"] = $analog['title']; $arPrice["BRAND"] = $analog['brand']['name']; $arPrice["PRICE"] = $analog['yourPrice']['amount']; $arPrice["AVAILABLE"] = $analogRemain['remain']; // $arPrice['IMG_SRC'] = $imageSrc; // Використовуємо одне й те ж зображення $arPrice["CURRENCY"] = $analog['yourPrice']['currency']['code']; $arPrice["DAY"] = $settings['executionTimes'][$analogRemain['storage']['name']] ?? $settings['defaultExecutionTime']; $arPrice["STOCK"] = $analogRemain['storage']['name']; $arPrice["OPTIONS"] = ''; // Опції - поки не вказано $arOps = Array(); $arPrice["OPTIONS"] = TDMOptionsImplode($arOps, $arPrice); $arPrices[] = $arPrice; } } } } } } } } echo '<pre>'; print_r($arPrices); echo '</pre>'; ?>
Скоріш за усе ви скопірували і вставили код повністю із спойрела а під спйрелом 2 варіанти коду UTR.ua.В мене вибиває помилку
Fatal error: Cannot redeclare getAccessToken() (previously declared in F:\OSPanel\domains\localhost\autoparts\tdmcore\webservices\Unique2.php:41) in F:\OSPanel\domains\localhost\autoparts\tdmcore\webservices\Unique2.php on line 255
В мене таке не відбуваєтьсяПриветствую!
Подскажет ли кто - как побороть пропадание картинок товаров при отключении показа товаров без цен?
З тим модулем, що я виклав? Чи в Вас свій?В мене таке не відбувається
Потрібно $arPrice['IMG_SRC'] = $imageSrc;Доброго дня, Підкажіть по цій помилці, яку і куди таблицю добавити?
MySQL Error: Unknown column 'IMG_SRC' in 'field list'
Це ж по відношенню до вебсервісу.До речі з пропаданням фото теж повинно допомогти...