yurabr
-
Публікації
451 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем yurabr
-
-
08.04.2024 в 15:34, zhizherinv сказал:
подскажите запрос для поднятия всех цен товаров + цен опций товаров на %
Чат жпт нормально на таке відповідає
-
Цей, здається, таке може
- 1
-
Це два файлики, які створюють простенький сайтик:)
Кидаєш в піддомен на хості чи як воно там у тебе робиться... спочатку створюєш піддомен
Приблизно вийде customer.mysite.ua
Користуєшся. Дороблюєш, як дозволить фантазія.
-
Тримай (собі робив для того ж).
php
Скрытый текст<?php // З'єднання з базою даних $host = "Пишіть своє"; $username = "Пишіть своє"; $password = "Пишіть своє"; $database = "Пишіть своє"; $connection = new mysqli($host, $username, $password, $database); if ($connection->connect_error) { die("Connection failed: " . $connection->connect_error); } $connection->set_charset("utf8"); // Отримання даних з форми $minOrderTotal = $_POST["min_order_total"]; $minOrderCount = $_POST["min_order_count"]; $intervalMonth = $_POST["interval_month"]; // Підготовка та виконання SQL-запиту $sql = "SELECT c.customer_id, c.firstname, c.lastname, COUNT(o.order_id) AS order_count, SUM(o.total) AS total_order_amount, MAX(o.date_added) AS last_order_date FROM oc_customer c JOIN oc_order o ON c.customer_id = o.customer_id GROUP BY c.customer_id HAVING (order_count > $minOrderCount OR total_order_amount > $minOrderTotal) AND last_order_date <= NOW() - INTERVAL $intervalMonth MONTH ORDER BY `order_count` ASC"; $result = $connection->query($sql); // Формування HTML-виводу $output = '<table> <tr> <th onclick="sortTable(1)">Customer ID</th> <th onclick="sortTable(2)">Ім*я</th> <th onclick="sortTable(3)">Прізвище</th> <th onclick="sortTable(4)">Кількість замовлень</th> <th onclick="sortTable(5)">Сума замовлень</th> <th onclick="sortTable(6)">Дата останнього замовлення</th> </tr>'; if ($result->num_rows > 0) { $customerCount = 0; while ($row = $result->fetch_assoc()) { $customerCount++; $output .= '<tr> <td>' . $row["customer_id"] . '</td> <td>' . $row["firstname"] . '</td> <td>' . $row["lastname"] . '</td> <td>' . $row["order_count"] . '</td> <td>' . $row["total_order_amount"] . '</td> <td>' . $row["last_order_date"] . '</td> </tr>'; } } $output .= '<p>Total Customers: ' . $customerCount . '</p>'; $output .= '</table>'; echo $output; // Закриття з'єднання $connection->close(); ?> <script> function sortTable(n) { var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0; table = document.querySelector("table"); switching = true; //Set the sorting direction to ascending: dir = "asc"; /*Make a loop that will continue until no switching has been done:*/ while (switching) { //start by saying: no switching is done: switching = false; rows = table.rows; /*Loop through all table rows (except the first, which contains table headers):*/ for (i = 1; i < (rows.length - 1); i++) { //start by saying there should be no switching: shouldSwitch = false; /*Get the two elements you want to compare, one from current row and one from the next:*/ x = rows[i].getElementsByTagName("td")[n]; y = rows[i + 1].getElementsByTagName("td")[n]; /*check if the two rows should switch place, based on the direction, asc or desc:*/ if (dir == "asc") { if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) { //if so, mark as a switch and break the loop: shouldSwitch = true; break; } } else if (dir == "desc") { if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) { //if so, mark as a switch and break the loop: shouldSwitch = true; break; } } } if (shouldSwitch) { /*If a switch has been marked, make the switch and mark that a switch has been done:*/ rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); switching = true; //Each time a switch is done, increase this count by 1: switchcount++; } else { /*If no switching has been done AND the direction is "asc", set the direction to "desc" and run the while loop again.*/ if (switchcount == 0 && dir == "asc") { dir = "desc"; switching = true; } } } } </script>
html
Скрытый текст<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Customer Information</title> <style> body { font-family: 'Arial', sans-serif; background-color: #f8f8f8; margin: 0; padding: 0; } h2 { color: #333; text-align: center; margin-top: 20px; } form { max-width: 400px; margin: 20px auto; background-color: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } label { display: block; margin-bottom: 8px; color: #555; } input { width: 100%; padding: 10px; margin-bottom: 15px; border: 1px solid #ddd; border-radius: 4px; box-sizing: border-box; } input[type="submit"] { background-color: #4CAF50; color: #fff; cursor: pointer; } input[type="submit"]:hover { background-color: #45a049; } #customerInfo { max-width: 800px; margin: 20px auto; } table { width: 100%; border-collapse: collapse; margin-top: 20px; border-radius: 8px; overflow: hidden; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } th, td { padding: 15px; text-align: left; border-bottom: 1px solid #ddd; } th { background-color: #4CAF50; color: white; cursor: pointer; } th:hover { background-color: #45a049; } </style> </head> <body> <h2>Інформація про клієнтів</h2> <form method="post" onsubmit="submitForm(event)"> <label for="min_order_total">Сума замовлень:</label> <input type="number" name="min_order_total" value="10000" required> <label for="min_order_count">Кількість замовлень:</label> <input type="number" name="min_order_count" value="3" required> <label for="interval_month">Останнє замовлення місяців тому:</label> <input type="number" name="interval_month" value="2" required> <input type="submit" value="Submit"> </form> <div id="customerInfo"></div> <script> function submitForm(event) { event.preventDefault(); var formData = new FormData(event.target); var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { document.getElementById('customerInfo').innerHTML = xhr.responseText; } }; xhr.open("POST", "get_customer_info.php", true); xhr.send(formData); } function sortTable(n) { var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0; table = document.querySelector("table"); switching = true; dir = "asc"; while (switching) { switching = false; rows = table.rows; for (i = 1; i < (rows.length - 1); i++) { shouldSwitch = false; x = rows[i].getElementsByTagName("td")[n]; y = rows[i + 1].getElementsByTagName("td")[n]; if (dir == "asc") { if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) { shouldSwitch = true; break; } } else if (dir == "desc") { if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) { shouldSwitch = true; break; } } } if (shouldSwitch) { rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); switching = true; switchcount++; } else { if (switchcount == 0 && dir == "asc") { dir = "desc"; switching = true; } } } } </script> </body> </html>
Може комусь знадобиться...
-
29.02.2024 в 16:15, yurabr сказал:
Якщо так не можливо, то на майбутнє, якусь кнопочку «Додати індекси»
Все, зрозумів. Для нових товарів все додається, старі не переписуються...
Можна замовити адаптацію, щоб старі індекси з mpn лише переписувались? -
29.02.2024 в 15:30, yurabr сказал:
Ми в базу в mpn пишемо: Надшодження товарів 29.02.24.
Може можна десь в базу (в індекси) продублювати?Якщо так не можливо, то на майбутнє, якусь кнопочку «Додати індекси»
-
29.02.2024 в 15:18, sv2109 сказал:
ну тоді модуль ніяк не знає коли саме відбувається ваш запис в базу і вам потрібно оновлювати індекси вручну, якщо товар новий то можна просто добавити нові індекси, а якщо старий то або перезбережіть даний товар через адмінку або видаліть та створіть всі індекси щоб оновити їх.
або ще є варіант через крон але він по замовчуванню створює нові індекси, а вам потрібно редагувати існуючі.Ми в базу в mpn пишемо: Надшодження товарів 29.02.24.
Може можна десь в базу (в індекси) продублювати? -
29.02.2024 в 15:06, sv2109 сказал:
якщо ви змінюєте товар через адмінку опенкарта то пошукові індекси повинні оновлюватися автоматично.
Ні, прописується в базу
-
Дууже для мене важливе питання.
Я для виводу нових надходжень використовую MPN. Там прописую приблизно таке (це або в нових товарах або в старих переписую): Товари для школи 28.02.24 і... воно спрацьовує і показує потрібні товари, але не одразу, а лише коли я видаляю індекси і створюю нові. Але це гемор... + весь час додавання індексів пошук працює не адекватно.
Або я щось не так роблю або ті індекси мають додаватись якось без видалення. -
29.02.2024 в 12:42, yurabr сказал:
Ще одне, дууже для мене важливе питання.
Я для виводу нових надходжень використовую MPN. Там прописую приблизно таке (це або в нових товарах або в старих переписую): Товари для школи 28.02.24 і... воно спрацьовує і показує потрібні товари, але не одразу, а лише коли я видаляю індекси і створюю нові. Але це гемор... + весь час додавання індексів пошук працює не адекватно.
Або я щось не так роблю або ті індекси мають додаватись якось без видалення.Сорі. То в модуль пошуку з морфологією
-
Ще одне, дууже для мене важливе питання.
Я для виводу нових надходжень використовую MPN. Там прописую приблизно таке (це або в нових товарах або в старих переписую): Товари для школи 28.02.24 і... воно спрацьовує і показує потрібні товари, але не одразу, а лише коли я видаляю індекси і створюю нові. Але це гемор... + весь час додавання індексів пошук працює не адекватно.
Або я щось не так роблю або ті індекси мають додаватись якось без видалення. -
Доброго дня.
Підкажіть, будь ласка, що там змінити, щоб фільтр категорій показував лише підкатегорії останнього рівня, а не всі підряд.
Дякую. -
Доброго дня.
Шаблон Ремаркет, Осфільтр...
Хочу це і цещоб було красиво
Де будуть проблеми? Чи будуть?
Стане замість шаблонівського пошуку?
Дякую -
Доброго дня.
Підкажіть, будь ласка, як то налаштувати, щоб в базу в поле shipping_postcode записувався індекс.
Спитав у Прораба в темі модуля укрпошти, каже, що просто виведіть поле індекс і буде писати.
Вивів, нічого не пише.
У нього написано про підтримку вашого модуля, у вас про підтримку його.
Ви мені робили адаптацію під шаблон ремаркет, тут все норм.
Мені замовляти адаптацію під укрпошту, яка мала б з коробки працювати???
У вас на демо нема укрпошти...
Або дайте, будь ласка, нормальне конкретне поясненя, як то зробити, або давайте я оплачу вам ще й заявлену адаптацію...
Дякую -
05.02.2024 в 20:36, yurabr сказал:
Блін. ну платно зробіть, щоб записувало індекс в поле shipping_postcode, якщо воно туди не пишеться.
Чи поясніть, чому в мене не пишеться.Дякую.
-
05.02.2024 в 20:36, yurabr сказал:
Просто програміст пробує по АПІ підключити для менеджерів (ми через сайт не оформлюємо) але не може знайти, де той індекс... Він же десь має прописуватись до кожного замовлення
-
Доброї ночі.
Виникло таке питаннячко... може там все легко.
В замовленні нема індекса окремо... В ос_order мав би індекс бути в shipping_postcode... там пусто.
Дуже потрібен індекс хоча б десь окремо.Тут
індекс є, в таблиці відділень він є, а в замовленні .
Що робити?
-
02.02.2024 в 15:49, Octsupport сказал:
@yurabr Добрий день!
Просто увімкніть мініфікацію у налаштуванні шаблоні - у такому випадку клієнтські браузери не будуть кешувати цей файл, бо там вже буде об’єднання та додається filemtime($_SERVER[‘DOCUMENT_ROOT’] . ‘/min/cache/’ . $oct_name) до основного файлу стилів.
Дякую
-
Доброго дня.
Ніяких тікетів я писати не буду. Підтримка закінчилась і купувати нову я не хочу.
А тепер питаннячко.
Як змінити/замінити/забрати з кешу у клієнтів оцю штуку dynamic_stylesheet_0.css... або перейменувати на dynamic_stylesheet_1.cssЯ міняю стилі, а воно все у людей не змінюється. Тільки конто ф5.
Я вже додав новий файл стилів, перекинув туди все з адмінки, в адмінці стилі видалив... так тепер в той файл якась інша фігня позаписувалась...
Це кошмар
-
08.01.2024 в 10:37, spectre сказал:
1 это не относится к модулю
с адс умеет работать старший модуль
2 код модуля открыт, можете дорабатывать
Ох і любите ви ото писати так, що фіг зрозумієш
1) Щоб зробити те, що мені потрібно, я маю придбати ваш інший модуль чи то не обов'язково?
2) Якщо можна підправити цей модуль, можна звернутись за цим до вас (ви ж в цьому модуль краще всіх розбираєтесь) чи мені до когось іншого?
Дякую
-
Доброго дня.
Тут просють отаку штуку
Скрытый текстФрагмент подій
Установіть цей фрагмент на сторінках всіх товарів веб-сайту. Коли на сайт додається новий товар, код на ньому також повинен бути.
Скопіюйте наведений нижче фрагмент і вставте його між тегами <head></head> після тегу Google на всіх сторінках товарів.
<script>
gtag('event', 'page_view', {
'send_to': 'AW-ххххххххххх',
'value': 'replace with value',
'items': [{
'id': 'replace with value',
'google_business_vertical': 'retail'
}]
});
</script>
де
'value': 'replace with value' - приймає значення відповідної ціни товару на сторінці
'id': 'replace with value' - приймає значення ID товару, значення повинно співпадати з тим, яке вказане у фідах даних
1) як то зробити?
2) У мене ціна для вигрузки - p.price_m_opt
Дякую.
-
28.12.2023 в 13:08, Lidernig сказал:
Стиль дефолт, сам менял цвет просто и размеры букв.
Можливо, тут і проблема?
-
Доброго дня.
Підкажіть, будь ласка, що тут
писати, щоб додати не [main_category] - остання, а першу категорію.
І, можливо, щось таке: Главная > Женская одежда > Платья > Длинные платья, тобто всі категорії товару.Бо мені якось тому чуду потрібно пояснити, що то дитяча іграшкова косметичка, а не профі набір.
Дякую
-
То на картинці план вашої роботи?
як викласти свій модуль на opencartforum
в Допомога програмістам та розробникам
Опубліковано: