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

ocdev_pro

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

    2 022
  • З нами

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

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

  1. 9 часов назад, Romti сказал:

    В категориях работает.

     

    А как в карточке товара завести?

    В product.php объявить переменную

    $data['has_added'] =  $this->cart->hasAdded($product_info['product_id']);

    А в шаблоне уже ее вызывать по примеру ранее
    <?php if($has_added) { ?> .. итд

     

    27 минут назад, Romti сказал:

    Вопрос вам  @Dimasscus , вы предлагаете использовать "не очень хорошие" решения?

     

    Нет смысла спрашивать, здесь вопрос в элементарном понимании работы всей этой кухни. Такие решения четко потом показывают клиенту, почему професиионалы работают дороже.

    • +1 1
  2. 43 минуты назад, Bdn сказал:

     

    Вам в метод $this->cart->hasAdded(// сюда передаем id товара который проверяем);

     

    если добавляете перед массивом $data['products']..
     

    то определяем переменную $has_added = $this->cart->hasAdded($result['product_id']);
    которая из запроса получить значение TRUE или FALSE

     

    а в массив $data['products'] = array(

    'added_to_cart' => $has_added,


    потом в шаблоне где идет цикл

    <?php foreach ($products as $product) { ?>

    можно вызвать это значение и запустить в условие

    <?php if($product['added_to_cart']) { ?>

    ТОВАР в КОРЗИНЕ
    <?php }else{ ?>

    ТОВАР НЕ В КОРЗИНЕ

    <?php } ?>


    ....
    <?php } ?>

     

    P.S Вам надо не пытаться понять Opencart, а учить просто язык программирования PHP,  Вы по матчасти просто не знаете ничего

    • +1 1
  3. 21 минуту назад, Prooksius сказал:

    да, прошу прощения, залез в код, обновил в памяти, все верно, там тоже проходится по всем товарам корзины.
    Ну тогда да, ваш метод лучше

    Минимум 8 запросов, и если найдены опции, запросит еще опции.. и в итоге при каждом обращении в корзину за методом getProducts выходит N товаров * 8 запросов
    Если на странице 30 товаров, получаем 240 запросов только от 1 юзера. И только на корзину. А еще есть получение самих товаров, где LEFT JOIN product_description итд делаются в 1 запросе.. Огромном и тяжелом.. + модули итд. для БД много но мелких запросов обработать гораздо проще.
    На магазине в 100 товаров оно может и не заметно согласен, но если взять магаз от 20000 да еще и с трафиком, то никаких ресурсов не хватит и будут тормоза

  4. 3 часа назад, Prooksius сказал:

    одно, а у вас если в цикле - то будет много, особенно когда 50-70 позиций в корзине. Да еще и при 10 одновременных покупателях - весело будет. серверу

    Ну а если с опциями - тут конечно в любом случае куча запросов, как ни крути.

    Одно? Ну ясно)))

  5. 1 минуту назад, Prooksius сказал:

    да ладно, сколько там позиций в корзине-то..
    А вот обращение к бд гораздо затратнее

    1. Вы вероятно не работали с проектами где по 50-70 позиций в корзине бывает. А поверьте это создаст проблемы.
    2. Обращение к БД в методе getProducts в корзине. Кол-во запросов в нем больше 10 как минимум и еще циклы для обработки. 
    Мой же метод простой и быстрый.

  6. Ну если по нормальному, то в system/library/cart/cart.php
    Добавляем метод
     

    	public function hasAdded($product_id) {
    		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "cart 
    WHERE api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' 
    AND customer_id = '" . (int)$this->customer->getId() . "' 
    AND session_id = '" . $this->db->escape($this->session->getId()) . "' 
    AND product_id = '" . (int)$product_id . "'");
    
    		if($query->num_rows){
    			return true;
    		}else{
    			return false;
    		}
    	}

    Затем из нужного места обращаемся к нему $this->cart->hasAdded($product_id); вернет bool значение

    И не нужно обходить циклом всю корзину для подобной реализации. Потом страдают и говорят у меня корзина тупит

    • +1 1
  7. проверьте существование переменной $data['lang'] = ... в header.php

    а лучше возьмите свою конструкцию

    if(isset($this->session->data['language'])) {
    $data['current_lang'] = $this->session->data['language'];

    }else{

    $data['current_lang'] = $this->config->get('config_language');

    }

    и уже в своем шаблоне проверяйте текущий язык сайта

    {% if current_lang == 'ru-ru' %}

    //что-то делаете

    {% endif %}

     

    И во время разработки не забываем выключать кеш Twig или хотя бы чистить его
    image.thumb.png.e078593bf22eec34e23bb20f621962f5.png

    • +1 1
  8. 4 часа назад, pachok89 сказал:


    Здравствуйте, проверил все пункты SEO url у новостей не формируется. Не подскажите в чем еще может быть проблема?

     

    Скорее всего в seo_pro, пришлите в ЛС доступ в админку, посомтрю

  9. 13 минут назад, nikeforce111 сказал:

    Здравствуйте,

    Переносим сайт который уже продвинутый по SEO на новый движок оcstore и столкнулись с таким вопросом: на старом сайте url товара выглядит так, домен/категория/подкатегория/товар. На новом сайт планируем сделать домен/товар (т.е. изменить url всего сайта). Так как планируем добавление нового товара и новых категорий, где один товар может быть в 5-8 категориях, соответственно при переходе на товар хотелось бы видеть url одинаковый. Как это реализовать без потери в продвижении через 301 редирект или как-то по другому? Стоит ли вообще так делать или оставить так как есть, а уже новый товар добавлять через url домен/товар? 

    Если Вы сделаете товары без категорий то в ocStore по умолчанию будет срабатывать 301 редирект на товар без категории. Поэтому будет небольшая просадка по seo но в итоге url склеятся и все будет нормально. При условии что у Вас используется SeoPro для обработки ссылок, а не стандартный формирователь

    • +1 1
  10. 4 часа назад, Sergei123321 сказал:

    Я не программист, на таком уровне менять код не умею

    Так а какой Вы ответ тогда хотите, "на блюдечке с голубой каеомочкой"? Учитесь или возьмите уже наконец себе специалиста на ряд задач

  11. 55 минут назад, Olegdp сказал:

    Доброго времени суток. Установил ваш модуль, шаблон Лайтшоп, ocStore 2.3.

    Установил, обновил кэш, выдал права просмотр/изменение, установил модуль. В локализации магазина строчка для префиксов не появилась. Двойной слеш в ссылках и поплыла верстка у переключателя. Пришлось удалить. Хотя на другом шаблоне - Revolution, все четко, только верстка поплыла, ну это поправил.

    Подскажите куда копать.

    Переустановить еще раз, вероятно сразу в БД не произошло обновление, что бы префикс в списке языков появился, иногда такое бывает.
    Ну а верстке это понятное дело под шаблон подгонку надо делать

  12. 7 минут назад, FastOptimizer сказал:

    Да во первых не удобно использовать везде разные ссылки

    Во вторых заказчик просит - я не сопротивляюсь

    Хозяин барин, придется лепить костыли, а клиенту видимо сеошники мози промыли

  13. 2 часа назад, IBVRS сказал:

    Добрый день, коллеги!

    Разбираясь с сборками ocStroe 3x, OpenCart 3x и ocStroe 2x я нашел одно различие.

     

    В версиях 3x нет локализации в настройках главной страницы (title, desc). Да, я знаю, что это решается модулем в 3x.

     

    Но увидел у товарища, что это есть в ocStore, но потом еще увидел, что это версия 2x и подумал, может, это чего-то не знаю про 3x.
     

     

    У меня есть решение, просто еще не в паблике. Пишите в ЛС

  14. 2 часа назад, RubenS сказал:

    Есть ли возможность использования вашего модуля для отправки СМС через стандартный шлюз Мегафона. У мегафона есть тариф для отправки корпоративных информационных СМС https://moscow.megafon.ru/corporate/productsandsolutions/products/mobilnoe_informirovanie.html

     

    Сейчас нет такой интеграции. Спросите у Мегафона, есть ли у них API для этой услуги. Если да, то пришлите документацию по API в ЛС, смогу интегрировать в частном порядке

  15. Только что, Dime сказал:

    Правило есть:

    Работает - не трогай!

    Не для всех и не всегда. 

     

    24 минуты назад, nikeforce111 сказал:

    сайт был только на русском в старой версии, также останется только русский и в новой версии.

    Тогда на поддомене где-то делайте новую версию, подключайте сеошника, что бы прогнал прогой типа паукра Screaming Frog SEO и сравнил ссылки, ответа сервера и мета данные. Что бы ничего не изменилось и можно будет переносить на продакшн и включать. Больших Вам продаж

  16. 1 час назад, nikeforce111 сказал:

    Добрый день, хотим сделать перенос сайта на Ocstore 3.0.2.0 c версии 1.5.5.1.2, но сайт по многим позициям в топе яндекс и гугл. Упадут ли позиции?

    Перенос связан с медленной работай сайта, нехваткой модулей, старый дизайн и т.д. У кого был опыт с переносом уже продвинутого в  seo сайта?

    При правильном подходе нет, поскольку структура сайта и ссылок измениться не должна. Но если сайт мультиязычный, то в 1.5 ссылки на всех языках либо одинаковые, либо имеют языковой префикс вида site.com/tovar на русском, site.com/by/tovar на беллоруском. А в opencart 3 ссылки должны будут иметь вид site.com/tovar и site.com/by-tovar соответственно. Поэтому нужна будет склейка ссылок второго языка через 301 редирект.

  17. 31 минуту назад, LeotaDerron сказал:

    Проблема актуальна, проверял и через вашу ссылку, и ноттетпадом++ и чем только не пробовал. В смс также приходит без пробела. В комментариях в заказе так же без пробелов. Может случай частный, не спорю, до обновления не было проблем. Можете в личке подсказать как решить вопрос?

    Пишите в ЛС разберём Вашу проблему

  18. 4 минуты назад, florapraktik сказал:

    Вывод:

    Кто дрогнет, заистерит и наделает глупостей, тот отдаст свой трафик тому, кто глупостей не делал и хладнокровно выбрал платить штрафы.

    Так випьем же за то, что бы истерящих было как можно больше!

    Ахахаха, вот в том то и вся прелесть)) А потом в законе будет куча поправок и все наши обсуждения здесь до одного места))

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

Important Information

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