Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

nogocuHoBuk

Користувачі
  • Публікації

    354
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем nogocuHoBuk

  1. Добрий. Знайшов помилку в коді. 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');


     

  2. Заскринил вопрос, скормил чатугпт, пришли с ним к красивому решению с горем пополам, но он отказался "делиться" перепиской, так как в ней есть изображения

    Прихований текст

    image.thumb.png.289b53a17db3f2abbc86c630a382c4c2.png


    Пришлось повторно с толкача заводить. Но результат приемлемый. 
    Ну а довести до нужно вам внешнего вида, не составит труда, думаю :)

    • +1 2
  3. если 

    В 04.11.2023 в 22:16, abssolut сказав:

    в поле Адрес стоит {contact-data}

    то с вероятностью приближенной к 100% поле обрабатывается контроллером. в нём и можно глянуть откуда берётся значение.  Вероятнее всего в БД сохранен адрес в конфигах для вывода в футере, например, или на каких-то доп. страницах.

  4. В 25.09.2023 в 21:07, chukcha сказав:

    Можно и в одном

    Логично, но есть одно НО :)
    Тогда и на фронте будет отображаться та почта, с которой идёт отправка.
    А ему нужно чтобы отправлялось с одной но ему писали на другую (ту, что показана на сайте)

  5. По причине того, что поле 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 это почта.
     

  6. В 23.09.2023 в 00:58, AlexMax13 сказав:

    $product_info['meta_h1'] = $product_info['meta_h1'];

    Масло масляное. Бесполезная строка не выполняющая ничего.
    В скрипте у Вас функция 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) именно категории, а не товара. 

    Вы бы лучше первоначальную задачу описали, что именно Вы делаете?

    • +1 1
  7. В 22.09.2023 в 19:36, nykone сказав:

    Ці списки, інколи потрапляють у фрагменти відповідей Google видачі

    Я ж не писав "нашо вам таке на сайті?", а доволі точно задав питання : "нашо вам модуль?" Ваша побажанка це виправлення 3-х рядків коду вашої теми. Розумієте?

    • +1 1
  8. Не зовсім зрозуміло навіщо модуль? Це ж стандартний функціонал опенкарту - рекомендовані товари в категорії:
     

    Прихований текст

    image.thumb.png.e96e8822a5add1dbb0cb6ca12aa9b6e3.png


    Різниця лише в тому, що показ цих товарів буде не картками, а списком - 2 рядки коду в twig. Тобто виводити назву та ціну замість повного змісту (фото, опис, наявніть й іньше)
    PS. Можливо ще знадобиться 3 рядки jquery докрутити, щоб була функція "приховати/показати", але то вже прикраси.
    :)

    • +1 1
  9. В 18.09.2023 в 20:24, Gariks сказав:

    Именно об этом речь. 
    Вопрос в том, что есть категории где более 90% или все 100% "нет  в наличии", так как поставщик их не поставляет и даже убрал из выгрузки. 
    Заходите в категорию, а там "нет в наличии".
    Вот, что делать?

     

    Капец вы тут понаписывали )

    Ещё раз - не нужно никаких дополнительных кнопок и прочего. 
    Основа уже есть - товар не в наличии. Осталось только в категории скрыть товары, которых нет в наличии:

     

    Одна строка в коде. Ответу 12 лет но актуальность его от этого не приуменьшилась :)
    Ну и модуль есть:

    И модуль и тема про опенкарт 1.5, но суть, я думаю, вы уловите если скачаете модуль и посмотрите что он делает (если есть навыки конечно)
     

    • +1 1
  10. В 18.09.2023 в 16:54, Gariks сказав:

    Но, если отключить, то для поисковиков, это 404.
    Вопрос: это нормально 404? Думал, если удалить, то будет 404, но и при отключении тоже 404.
    Как лучше, именно для поисковиков? 

    Не совсем понял (точнее совсем не понял) что Вы хотели увидеть при отключении товара? 
    Ну вот есть товар, у него есть ссылка. Вы хотите 
     

    В 18.09.2023 в 16:54, Gariks сказав:

    что бы он не показывался на сайте

    но при этом

    В 18.09.2023 в 16:54, Gariks сказав:

    что бы был url для поисковиков


    Это как? Ну т.е. поисковик перешел по ссылке и что? Что на странице то показывать?

    Для СЕО лучше не отключать товар, а сделать невозможным его покупку. Т.е. установить количество равное 0 и запретить в настройках продажу при отсутствии.
    В этом случае товар открывается по ссылке. Но купить его нельзя (он псевдоотключен).
    Во всех других случаях - вполне ожидаемая 404. А 404 означает обязательное удаление из индекса. 
    Пусть лучше пользователь перейдёт в карточку товара, которого нет в наличии и останется на сайте и, возможно, подберет у вас замену, чем вообще не попадёт к вам на сайт )))

  11. В 20.04.2023 в 21:16, Exploits сказав:

    Либо вообще сделать проще.

    В пункте Дополнительные статические параметры
    слева - <name_ua> правее - ((pd.name_rozetka))
    слева - <description_ua> правее - ((pd.short_description))

     

    Ну и убрать с пункта 4.2 строку мультиязычности

    Если я правильно понял логику, то если я уберу строку мультиязычности, то Ваш скриппт не поймёт что pd.name_rozetka и pd.short_description нужно брать для language_id = 2, так как для ru у меня эти же поля, но с language_id = 1.
     

    Прихований текст

    image.png.0188d2905a3a074a90bf71b4a6c19a15.png


    А вот вариант с правками в структуре действительно правильней.
    Спасибо!

    Просто у меня там в настройках вот такое уже:
     

    Прихований текст

    image.thumb.png.f61b32a7b9fea65feca1edf21dba4142.png


    Но сам факт того, что на основании кастомных полей, можно создать полноценную выгрузку - прям огонь. Ещё разбираюсь в настройках, так как некоторые из существующих полей тоже сделаны слегка рукожопно (те же pd.name_rozetka и pd.short_description) и вот думаю как это всё дело сделать красиво, чтобы было удобно добавлять новые выгрузки и так же легко их отключать.

  12. В 20.04.2023 в 16:50, nogocuHoBuk сказав:

    У меня вместо name и description используются кастомные name_rozetka и short_description

    Угу. С этим разобрался.
    В цикле задал замену и unset
     

    Прихований текст

    image.thumb.png.9599960c28db7917154800fa515225c9.png


    В таком случае логичней бы было в 4.2 указывать в fields не просто значения а массив - поле-значение, т.е. как-то так:
    $data['lang_data'] = array('lang_id' => 2, 'fields' => ['name' =>'name_rozetka', 'description' => 'short_description']); 
    Но это уже вкусовщина, да. :)

  13. Возник вопрос:
    В помощи написано
     

    Прихований текст

    image.thumb.png.079f8d7baa9f4bfe4a4a73f0f78d21b3.png


    У меня вместо name и description используются кастомные name_rozetka и short_description
     

    Прихований текст

    image.png.0188d2905a3a074a90bf71b4a6c19a15.png


    Т.е. для реализации мультиязычности нужно в пункте 4.2 прописать:
     

    $data['lang_data'] = array('lang_id' => 2, 'fields' => 'name_rozetka, short_description');

    Что я, собственно и делаю.
    Пример - товар с id 22227
    В БД заполнено для двух языков:
     

    Прихований текст

    image.thumb.png.4f15fef70531d9c7770109bc67d5333b.png


    Но в фиде рисует пустые теги name_ua и description_ua

     

    Прихований текст

    image.thumb.png.466762aace51b6b0f41d10b0e6547c6b.png


    Подскажите, ЧЯДНТ.

    Сразу спасибо за ответы. По всему остальному, вроде, вопросов нет. )

     

  14. Вітаю. Чи є можливість відібрати товари за значенням поля в БД?
    Дивіться. Є реалізація додавання товарів до того чи іньшого фіда одним кліком (відео під спойлером):

    Прихований текст


    В БД велика кількість товарів і додавати їх безпосереднью в фід в модулі буде (мені здається) не дуже зручно.
    тобто вказати ((p.status_roz)) == '1'

    Чи, можливо, можна, наприклад, вказати функцію, як в модулі Simple. Тобто я напишу функцію get_ids_for_feed("rozetka") яка буде повертати потрібні product_id, і просто вкажу її. Чи то я забагато хочу?

  15. В 31.03.2023 в 11:51, KIV37 сказав:

    На початку співпраці, необхідно надати нам для перевірки тест файл

    ХМ. У Вас же просто опис XML для offers. Классичний. Як ви дізнаєтеся досвід програміста за шматком шаблонного XML? Але то таке... На ваш розсуд :)
     

    В 31.03.2023 в 11:51, KIV37 сказав:

    Ваш програміст налагоджує автоматичне відправлення (на наш ftp-сервер, або по АПІ)


    Цитую:

    В 31.03.2023 в 11:51, KIV37 сказав:

    або по АПІ


    Нашо вам той FTP, якщо у "Таблеточки" э API? З повноцінним блек-джеком і шлюпками JSON замість застаріваючого з кожним днем XML?
    А якщо реалізувати звїязок через API, то  початкове ТЗ в корні не вірне. Точніше вірне для того, хто зрозумів можливості "таблеточок" по своєму.

    Задля розуміння. Я не візьмусь, якшошо. Навіть не претендую на співпрацю, але просто вирішив залишити коментар відносно ТЗ і XML :)

    • +1 1
  16. 27.07.2022 в 17:10, AlexMax13 сказал:

    эта версия опенкарта живет своей жизнью

     

    27.07.2022 в 17:10, AlexMax13 сказал:

    На борту у сайта ocstore 3.0.2.0 

     

    29.07.2022 в 00:23, AlexMax13 сказал:

    Особенности браузера хром для ocstore 3.0.2.0

     

    29.07.2022 в 00:23, AlexMax13 сказал:

    проблема на сайте

    Вы всё время копаете не в ту сторону.
    Опенкарт, как и ocStore ВООБЩЕ не определяет устройство, с которого Вы заходите на сайт. Эта часть заголовков ему не интересна, разве что Вы собственноручно установили како-то модуль/дополнение/скрипт, который может это делать. Но с вероятностью 99.99% подобные "определения" служат для других целей (адаптация, разные шапки, меню и прочее), но точно не для "убийства" сессии...

    Как вариант - где-то в настройках Андроида включена опция  - очищать историю браузера при закрытии. Т.е. при закрытии браузера очищается кеш. Логично, что в таком случае авторизация будет слетать.
    ЗЫ. Начал писать это сообщение в 2:02 - в это время авторизовался с мобильного на Вашем сайте. Свернул браузер на 28 минут. И вот сейчас в 22:30 открыл браузер - я всё ещё авторизваон. Дополнительно отпишусь утром (если не забуду)

    ЗЗЫ. Отправил вам в личку видео из которого видно, что проблема не в ocstore.

  17. 28.07.2022 в 18:00, dubjik234 сказал:

    выдает ошибку в синтаксисе запроса

    Да. кавычки не те.

    либо

    $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)");

     

    • +1 1
  18. 28.07.2022 в 17:29, Ch0oJoy сказал:

    Есть модуль на сайте "Товары в табах"

    Проще все подобные запросы (тяжелые) повесить на крон (например раз в час, в зависимости от продаж. ВОзможно Вам и раз в сутки хватит) и писать результаты в отдельную таблицу, например 
    oc_product_rating
    Ну и модулем уже дёргать не из всей базы, нагружая её перебирая все товары и заказы, а брать рассчитанные значения непосредственно из таблицы.

    • +1 1
  19. 28.07.2022 в 17:42, dubjik234 сказал:

    Через phpmyadmin прекрасно работает,

    Ну так в editProduct добавляйте. Причем учитывая сам запрос можно перед этим вставить:
     

    $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_download WHERE product_id = '" . (int)$product_id . "'");


    Я всё ещё не понимаю зачем, но всё в Ваших руках :)
    И да. Не забудьте обновить модификаторы после изменения модели. Это обязательно.

  20. 28.07.2022 в 16:04, dubjik234 сказал:

    Но я не могу разобраться

    А кто Вам запрос составлял? 
    Бо DELETE table FROM table не укладывается в моей голове. Не могу понять логику запроса :)
    Возможно, конечно, жара и я торможу, но интуиция подсказывает что "что-то тут не так".


×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.