Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

nogocuHoBuk

Users
  • Posts

    356
  • Joined

  • Last visited

Everything posted by nogocuHoBuk

  1. День добрый. Ocstore 3.0.3.7. Оформление заказа - Simple. Настраиваю оплату частями для приватбанка. Стоят тестовые креды. При оформлении заказа после тестовой оплаты картой 0000111122223333 покупателя перекидівает не на саксесс, а снова на страницу оформления заказа: index.php?route=checkout/simplecheckout Т.е. товар остаётся в корзине и нет инфы о номере заказа. Подскажите как пофиксить.
  2. Добрий. Знайшов помилку в коді. ocFilter 4.8.2 Після імпорту товарів запускаю скрипт, згенерований безпосередньо модулем: // OCFilter copy start $this->load->controller('extension/module/ocfilter/copy', [ 'copy_attribute' => 1, // Копировать атрибуты 'copy_group_as_attribute' => 0, // Группы атрибутов как фильтры 'copy_attribute_id_exclude' => 0, // Данные для копирования 'copy_attribute_group_id_exclude' => 1, // Данные для копирования 'copy_attribute_category_id_exclude' => 1, // Данные для копирования 'copy_filter' => 0, // Копировать стандартные фильтры 'copy_option' => 0, // Копировать опции товаров 'copy_option_in_stock' => 1, // Только в наличии 'copy_type' => 'checkbox', // Тип скопированных фильтров 'copy_dropdown' => 0, // Поместить в выпадающий список 'copy_status' => 1, // Статус скопированных фильтров 'copy_truncate' => 0, // Очистить существующие фильтры OCFilter 'copy_category' => 1, // Привязать фильтры к категориям 'copy_cron_wget' => 0, // Команда для вызова по cron (планировщик) 'copy_value_separator' => ['|'], // 'copy_attribute_id' => ['127', '15', '70', '52', '73', '125', '12', '49', '121', '39', '13', '54', '23', '18', '154', '45', '68', '107', '47', '37', '42', '1', '19', '38', '71', '40', '17', '155', '44', '53', '78', '109', '112'], // 'copy_attribute_group_id' => [], // 'copy_attribute_category_id' => [], // ]); // OCFilter copy end Но в ocfilter.log наступний текст: 2024-03-29 6:00:30 - [Attribute condition] WHERE attribute_id IN(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32) якщо ж копіювати фільтри безпосередньо в модулі, то все корректно: 2024-03-29 5:32:56 - [Attribute condition] WHERE attribute_id IN(127,15,70,52,73,125,12,49,121,39,13,54,23,18,154,45,68,107,47,37,42,1,19,38,71,40,17,155,44,53,78,109,112) Помилка була в admin/model/extension/module/ocfilter/filter.php Замість: $attributes_id = array_filter(array_unique(array_keys($data['copy_attribute_id'])), 'intval'); прописав: $attributes_id = array_filter(array_unique($data['copy_attribute_id']), 'intval');
  3. Заскринил вопрос, скормил чатугпт, пришли с ним к красивому решению с горем пополам, но он отказался "делиться" перепиской, так как в ней есть изображения Пришлось повторно с толкача заводить. Но результат приемлемый. Ну а довести до нужно вам внешнего вида, не составит труда, думаю
  4. если то с вероятностью приближенной к 100% поле обрабатывается контроллером. в нём и можно глянуть откуда берётся значение. Вероятнее всего в БД сохранен адрес в конфигах для вывода в футере, например, или на каких-то доп. страницах.
    Навіть не знаю що ще можна додати. Встановив, налаштував - все працює. Підтримка на кращому рівні. Всі питання вирішуються миттєво. Дякую.
  5. Логично, но есть одно НО Тогда и на фронте будет отображаться та почта, с которой идёт отправка. А ему нужно чтобы отправлялось с одной но ему писали на другую (ту, что показана на сайте)
  6. Вам же только from нужно исправить, так что поправочка - 28 правок в 19 файлах:
  7. Добрый. Я так понимаю модуль всё? Или можно брать? Какая версия PHP и IonCube требуемая? PHP 7.3 IonCube 12.0.5 Заведется?
  8. По причине того, что поле username это, в зависимости от службы, не всегда почта - опенкарту при отправке письма нужно от чего-то отталкиваться, чтобы наверняка указать отправителя. И единственное поле, где email указан с вероятностью 146% - Система->Настройки->Магазин->E-mail Но Вы, естественно, можете захардкодить этот момент. Везде, где используется отправка письма (а это около 100 правок в примерно 40 файлах) вместо: $from = $this->config->get('config_email'); $mail->setFrom($from); Сделать что-то вроде такого: $mail->setFrom($this->config->get('config_mail_smtp_username')); Сработает, естественно, в случае, если у Вас username это почта.
  9. Масло масляное. Бесполезная строка не выполняющая ничего. В скрипте у Вас функция hpm_select вызывается дважды. 1. При клике по элементу с классом .hpm-cat-item 2. При изменении значения селекта внутри элемента с классом .hpm-cat-box В качестве параметра передается $(this), т.е. непосредственно элемент. И с вероятностью 146% ни селект ни .hpm-cat-item не содержит data_meta_h1. Если я правильно понимаю Вы пытаетесь в модуле HPM в категории при смене товара-опции чтобы менялся и мета тег h1, но это не корректно. Тег h1 должен быть единственным на странице. Т.е. в категории в качестве H1 будет показываться (и должен показываться) meta_h1 (и при его отсутствии name) именно категории, а не товара. Вы бы лучше первоначальную задачу описали, что именно Вы делаете?
  10. Я ж не писав "нашо вам таке на сайті?", а доволі точно задав питання : "нашо вам модуль?" Ваша побажанка це виправлення 3-х рядків коду вашої теми. Розумієте?
  11. Не зовсім зрозуміло навіщо модуль? Це ж стандартний функціонал опенкарту - рекомендовані товари в категорії: Різниця лише в тому, що показ цих товарів буде не картками, а списком - 2 рядки коду в twig. Тобто виводити назву та ціну замість повного змісту (фото, опис, наявніть й іньше) PS. Можливо ще знадобиться 3 рядки jquery докрутити, щоб була функція "приховати/показати", але то вже прикраси.
  12. А я разве это оспариваю? Просто Вы оказались быстрее))) Я не видел Вашего сообщения, пока не опубликовал своё)
  13. Капец вы тут понаписывали ) Ещё раз - не нужно никаких дополнительных кнопок и прочего. Основа уже есть - товар не в наличии. Осталось только в категории скрыть товары, которых нет в наличии: Одна строка в коде. Ответу 12 лет но актуальность его от этого не приуменьшилась Ну и модуль есть: И модуль и тема про опенкарт 1.5, но суть, я думаю, вы уловите если скачаете модуль и посмотрите что он делает (если есть навыки конечно)
  14. Не совсем понял (точнее совсем не понял) что Вы хотели увидеть при отключении товара? Ну вот есть товар, у него есть ссылка. Вы хотите но при этом Это как? Ну т.е. поисковик перешел по ссылке и что? Что на странице то показывать? Для СЕО лучше не отключать товар, а сделать невозможным его покупку. Т.е. установить количество равное 0 и запретить в настройках продажу при отсутствии. В этом случае товар открывается по ссылке. Но купить его нельзя (он псевдоотключен). Во всех других случаях - вполне ожидаемая 404. А 404 означает обязательное удаление из индекса. Пусть лучше пользователь перейдёт в карточку товара, которого нет в наличии и останется на сайте и, возможно, подберет у вас замену, чем вообще не попадёт к вам на сайт )))
  15. Если я правильно понял логику, то если я уберу строку мультиязычности, то Ваш скриппт не поймёт что pd.name_rozetka и pd.short_description нужно брать для language_id = 2, так как для ru у меня эти же поля, но с language_id = 1. А вот вариант с правками в структуре действительно правильней. Спасибо! Просто у меня там в настройках вот такое уже: Но сам факт того, что на основании кастомных полей, можно создать полноценную выгрузку - прям огонь. Ещё разбираюсь в настройках, так как некоторые из существующих полей тоже сделаны слегка рукожопно (те же pd.name_rozetka и pd.short_description) и вот думаю как это всё дело сделать красиво, чтобы было удобно добавлять новые выгрузки и так же легко их отключать.
  16. Угу. С этим разобрался. В цикле задал замену и unset В таком случае логичней бы было в 4.2 указывать в fields не просто значения а массив - поле-значение, т.е. как-то так: $data['lang_data'] = array('lang_id' => 2, 'fields' => ['name' =>'name_rozetka', 'description' => 'short_description']); Но это уже вкусовщина, да.
  17. Возник вопрос: В помощи написано У меня вместо name и description используются кастомные name_rozetka и short_description Т.е. для реализации мультиязычности нужно в пункте 4.2 прописать: $data['lang_data'] = array('lang_id' => 2, 'fields' => 'name_rozetka, short_description'); Что я, собственно и делаю. Пример - товар с id 22227 В БД заполнено для двух языков: Но в фиде рисует пустые теги name_ua и description_ua Подскажите, ЧЯДНТ. Сразу спасибо за ответы. По всему остальному, вроде, вопросов нет. )
  18. Вітаю. Чи є можливість відібрати товари за значенням поля в БД? Дивіться. Є реалізація додавання товарів до того чи іньшого фіда одним кліком (відео під спойлером): В БД велика кількість товарів і додавати їх безпосереднью в фід в модулі буде (мені здається) не дуже зручно. тобто вказати ((p.status_roz)) == '1' Чи, можливо, можна, наприклад, вказати функцію, як в модулі Simple. Тобто я напишу функцію get_ids_for_feed("rozetka") яка буде повертати потрібні product_id, і просто вкажу її. Чи то я забагато хочу?
  19. ХМ. У Вас же просто опис XML для offers. Классичний. Як ви дізнаєтеся досвід програміста за шматком шаблонного XML? Але то таке... На ваш розсуд Цитую: Нашо вам той FTP, якщо у "Таблеточки" э API? З повноцінним блек-джеком і шлюпками JSON замість застаріваючого з кожним днем XML? А якщо реалізувати звїязок через API, то початкове ТЗ в корні не вірне. Точніше вірне для того, хто зрозумів можливості "таблеточок" по своєму. Задля розуміння. Я не візьмусь, якшошо. Навіть не претендую на співпрацю, але просто вирішив залишити коментар відносно ТЗ і XML
  20. Вы всё время копаете не в ту сторону. Опенкарт, как и ocStore ВООБЩЕ не определяет устройство, с которого Вы заходите на сайт. Эта часть заголовков ему не интересна, разве что Вы собственноручно установили како-то модуль/дополнение/скрипт, который может это делать. Но с вероятностью 99.99% подобные "определения" служат для других целей (адаптация, разные шапки, меню и прочее), но точно не для "убийства" сессии... Как вариант - где-то в настройках Андроида включена опция - очищать историю браузера при закрытии. Т.е. при закрытии браузера очищается кеш. Логично, что в таком случае авторизация будет слетать. ЗЫ. Начал писать это сообщение в 2:02 - в это время авторизовался с мобильного на Вашем сайте. Свернул браузер на 28 минут. И вот сейчас в 22:30 открыл браузер - я всё ещё авторизваон. Дополнительно отпишусь утром (если не забуду) ЗЗЫ. Отправил вам в личку видео из которого видно, что проблема не в ocstore.
  21. Да. кавычки не те. либо $this->db->query("DELETE `p1` FROM " . DB_PREFIX . "product_image p1, " . DB_PREFIX . "product_image p2 WHERE (p1.product_image_id < p2.product_image_id) AND (p1.image = p2.image)"); либо $this->db->query("DELETE p1 FROM " . DB_PREFIX . "product_image p1, " . DB_PREFIX . "product_image p2 WHERE (p1.product_image_id < p2.product_image_id) AND (p1.image = p2.image)");
  22. Проще все подобные запросы (тяжелые) повесить на крон (например раз в час, в зависимости от продаж. ВОзможно Вам и раз в сутки хватит) и писать результаты в отдельную таблицу, например oc_product_rating Ну и модулем уже дёргать не из всей базы, нагружая её перебирая все товары и заказы, а брать рассчитанные значения непосредственно из таблицы.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.