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.
А есть файлы интеграции с Opencart 3Обновил, пробуйте
*** Скрытый текст не может быть процитирован. ***
Можна додати ще додаткові характеристики (включити за потреби в адмін панелі)<?php
///керування///
// Змінна для таймінгу підключення
$connectTimeout = 2;
// Валюта
$currency = "UAH";
// Включення/виключення кешування
$useCache = true; // За замовчуванням кешування включене
// Націнка
$markup = 0.35; // Націнка 35%
// Вибір типу округлення ціни
$priceRoundMode = 'to_10'; // Можливі варіанти: 'no_round', 'no_decimal', 'to_5', 'to_10'
// Змінна для зміни днів доставки
$deliveryOffset = 1; // За замовчуванням доставка через
+1 день
///керування//
if (!defined("TDM_PROLOG_INCLUDED") || TDM_PROLOG_INCLUDED !== true) {
die();
}
// Функція для виправлення кодування
function fix_encoding($str)
{
return iconv(mb_detect_encoding($str, mb_detect_order(), true), "UTF-8", $str);
}
// Функція для округлення ціни
function round_price($price, $mode = 'default')
{
switch ($mode) {
case 'no_round':
return ceil($price);
case 'no_decimal':
return ceil($price);
case 'to_5':
return ceil($price / 5) * 5;
case 'to_10':
return ceil($price / 10) * 10;
default:
return ceil($price);
}
}
// Функція для отримання ціни товару за артикулом і брендом
function get_price($article, $brand, $token, &$cache, $useCache = true)
{
global $connectTimeout, $currency, $markup, $priceRoundMode; // Включення валюти та націнки
if ($useCache && isset($cache[$article][$brand])) {
return $cache[$article][$brand];
}
$url = "Для просмотра ссылки Войдиили Зарегистрируйся";
$postdata = array(
"apiToken" => $token,
"code" => $article,
"isShowAnalogs" => 1,
"currency" => "UAH", // Використання змінної валюти
);
if (!empty($brand)) {
$postdata['brandId'] = $brand;
}
$postdata = json_encode($postdata);
$headers = array(
"Content-Type: application/json",
"accept: application/json"
);
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HEADER => false,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2',
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_POSTFIELDS => $postdata,
CURLOPT_VERBOSE => false,
CURLOPT_CONNECTTIMEOUT => $connectTimeout // Використання глобальної змінної для таймінгу підключення
));
$execute = curl_exec($ch);
// Додавання логу API-запиту
if ($DocpartSuppliersAPI_Debug->suppliers_api_debug) {
$DocpartSuppliersAPI_Debug->log_api_request("Отримання переліку товарів", $url, $execute, print_r(json_decode($execute, true), true));
}
$data = json_decode($execute, true);
curl_close($ch);
if ($data['success'] !== false) {
if ($useCache) {
$cache[$article][$brand] = $data['data'];
}
return $data['data'];
} else {
return array();
}
}
// Функція для отримання інформації про продукт
function get_product_info($article, $brandId, $token)
{
global $connectTimeout;
$url = "Для просмотра ссылки Войдиили Зарегистрируйся";
$postdata = array(
"apiToken" => $token,
"brandId" => $brandId,
"code" => $article
);
$postdata = json_encode($postdata);
$headers = array(
"Content-Type: application/json",
"accept: application/json"
);
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HEADER => false,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2',
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_POSTFIELDS => $postdata,
CURLOPT_VERBOSE => false,
CURLOPT_CONNECTTIMEOUT => $connectTimeout // Використання глобальної змінної для таймінгу підключення
));
$execute = curl_exec($ch);
curl_close($ch);
$data = json_decode($execute, true);
if ($data['success'] !== false) {
return $data['data'];
} else {
return array();
}
}
// Отримання API токену
$token = "You API Key"; // Замість You API Key вставте ваш API токен
// Кеш для результатів запитів
$cache = [];
// Перебір кожного товару
foreach ($arWsParts as $arPart) {
// Отримання бренду за артикулом
if (!isset($cache['brands'][$arPart['ARTICLE']])) {
$url = "Для просмотра ссылки Войдиили Зарегистрируйся";
$postdata = array(
"apiToken" => $token,
"code" => $arPart['ARTICLE']
);
$postdata = json_encode($postdata);
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HEADER => false,
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"accept: application/json"
),
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2',
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_POSTFIELDS => $postdata,
CURLOPT_VERBOSE => false,
CURLOPT_CONNECTTIMEOUT => $connectTimeout // Використання глобальної змінної для таймінгу підключення
));
$execute = curl_exec($ch);
curl_close($ch);
$data = json_decode($execute, true);
if ($data['success'] !== false) {
$cache['brands'][$arPart['ARTICLE']] = $data['data'];
} else {
$cache['brands'][$arPart['ARTICLE']] = array();
}
}
$manufacturers = $cache['brands'][$arPart['ARTICLE']];
foreach ($manufacturers as $manufacturer) {
$brandId = $manufacturer['brandId'];
// Отримання інформації про продукт
$productInfo = get_product_info($arPart['ARTICLE'], $brandId, $token);
// Перевірка чи інформація була успішно отримана
if (!empty($productInfo)) {
// Отримання зображення продукту
$images = $productInfo['images'];
$imageSrc = !empty($images) ? $images[0]['image'] : '';
// Отримання ціни за артикулом і брендом
$products = get_price($arPart['ARTICLE'], $brandId, $token, $cache, $useCache);
foreach ($products as $product) {
foreach ($product['rests'] as $product_rest) {
$price = (float)$product_rest["price"] * (1 + $markup); // Націнка
// Обчислення терміну доставки
$deliveryDate = new DateTime($product_rest["deliveryDate"]);
$currentDate = new DateTime();
$deliveryInterval = $deliveryDate->diff($currentDate);
$deliveryDays = $deliveryInterval->days;
// Додаткові операції та обробка ціни
$price = round_price($price, $priceRoundMode);
// Додавання товару у список
$arPrice = TDMPriceArray();
$arPrice["LINK_TO_BKEY"] = $arPart['BKEY'];
$arPrice["LINK_TO_AKEY"] = $arPart['AKEY'];
$arPrice["ARTICLE"] = $product["code"];
$arPrice["ALT_NAME"] = fix_encoding($product["descriptionUa"]);
$arPrice["BRAND"] = $manufacturer['brand'];
$arPrice["PRICE"] = $price;
$arPrice["CURRENCY"] = "UAH"; // Використання змінної валюти
$arPrice["DAY"] = $deliveryDays + $deliveryOffset; // Встановлення часу доставки
$arPrice["AVAILABLE"] = $product_rest['quantity'];
$arPrice["STOCK"] = $product_rest['priceLogo'];
$arPrice["IMG_SRC"] = $imageSrc; // Додавання зображення
$arOps = Array();
$arPrice["OPTIONS"] = TDMOptionsImplode($arOps,$arPrice);
$arPrices[] = $arPrice;
}
}
}
}
}
// Якщо кешування включено, збережемо результати у файл
//if ($useCache) {
// file_put_contents('cache.json', json_encode($cache));
//}
?>
if($product['weight']>0){$arOps['WEIGHT']=($product['weight']*1000);}
if($probability>0){$arOps['PERCENTGIVE']=intval($probability);}
if($product_rest['isReturn']>0){$arOps['NORETURN']=$product_rest['isReturn'];}
if($imageSrc>0){$arOps["IMG_SRC"]=$imageSrc;}
if($imageSrc>0){$arOps["IMG_SRC"]=$imageSrc; реалізовано $arPrice["IMG_SRC"] = $imageSrc; // Додавання зображенняМожна додати ще додаткові характеристики (включити за потреби в адмін панелі)
Код:if($product['weight']>0){$arOps['WEIGHT']=($product['weight']*1000);} if($probability>0){$arOps['PERCENTGIVE']=intval($probability);} if($product_rest['isReturn']>0){$arOps['NORETURN']=$product_rest['isReturn'];} if($imageSrc>0){$arOps["IMG_SRC"]=$imageSrc;}