COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

Fedka

Соучастники
  • Публикации

    23
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем Fedka

  1. В 07.12.2017 at 21:44, sadko сказал:

    1. А посмотреть ДЕМО как это все выглядит где-то можно? Нигде не нашел ссылки на демо-сайт.

    http://opencart.eklair.com.ua/

     

    В 07.12.2017 at 21:44, sadko сказал:

    А как это выглядит и в каком виде? Хотелось бы посмотреть.

    Примерно так, как на картинке.

    Скрытый текст

    vupiska.png

     

    В 07.12.2017 at 21:44, sadko сказал:

    А у вас в модуле как реализованы эти выписке по оплатам для менеджеров?

    В Выписке пишется, так же как и приложении Приват24...Если есть от кого, то пишет, если нет, то не пишет.

     

    В 09.12.2017 at 18:53, sadko сказал:

    А что значит - отложенная оплата в вашем модуле? Это как?

    Это если оплата по какой-либо причине не прошла, то ее можно повторно будет оплатить через личный кабинет

  2. 1 час назад, Adems сказал:

    Спасибо Большое! всё ок! Приятно с вами иметь дело.

    Да лучше oCmod но его же написать надо. Я в php поверхностно.

    Вот нашел вроде норм сборку, как раз то что Вам нужно

    https://liveopencart.ru/opencart-moduli-shablony/moduli/seo/microdata-schema-org-[10-v-1]

  3. 27 минут назад, Adems сказал:

    Извините подскажите подробнее что куда вставить, уже голову сломал.

    Открываем файл catalog\controller\product\category.php

    Ищем:

    Скрытый текст


    
    foreach ($results as $result) {
    	if ($result['image']) {
    		$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
    	} else {
    		$image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
    	}
    
    	if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
    		$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
    	} else {
    		$price = false;
    	}
    
    	if ((float)$result['special']) {
    		$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
    	} else {
    		$special = false;
    	}
    
    	if ($this->config->get('config_tax')) {
    		$tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
    	} else {
    		$tax = false;
    	}
    
    	if ($this->config->get('config_review_status')) {
    		$rating = (int)$result['rating'];
    	} else {
    		$rating = false;
    	}
    
    	$data['products'][] = array(
    		'product_id'  => $result['product_id'],
    		'thumb'       => $image,
    		'name'        => $result['name'],
    		'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
    		'price'       => $price,
    		'special'     => $special,
    		'tax'         => $tax,
    		'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
    		'rating'      => $result['rating'],
    		'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
    	);
    }


     

     у меня это 205 строчка в файле.

    И заменяем его на:

    Скрытый текст
    
    foreach ($results as $result) {
    	if ($result['image']) {
    		$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
    	} else {
    		$image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
    	}
    
    	if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
    		$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
    	} else {
    		$price = false;
    	}
    
    	if ((float)$result['special']) {
    		$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
    	} else {
    		$special = false;
    	}
    
    	if ($this->config->get('config_tax')) {
    		$tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
    	} else {
    		$tax = false;
    	}
    
    	if ($this->config->get('config_review_status')) {
    		$rating = (int)$result['rating'];
    	} else {
    		$rating = false;
    	}
    	
    	$availability = ($result['quantity'] > 0) ? true : false;
    	
    	$data['products'][] = array(
    		'product_id'  => $result['product_id'],
    		'thumb'       => $image,
    		'name'        => $result['name'],
    		'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
    		'availability'=> $availability,
    		'price'       => $price,
    		'special'     => $special,
    		'tax'         => $tax,
    		'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
    		'rating'      => $result['rating'],
    		'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
    	);
    }

     

    И в файле шаблона, Вы водим по аналогии с тем, как на странице товара выводилось...Переменная будет $product['availability']

     

    Но конечно лучше это все эти изменения делать через oCmod, что б не было потом никаких проблем с установкой каких-либо дополнений

  4. 1 час назад, Adems сказал:

    Здравствуйте! Извиняюсь не подскажете такое же решение только для списка товаров в категории? Если можно.

    Аналогично как на странице товара, только это все делать внутри foreach ($results as $result) {

    И вставлять в массив - $data['products']

  5. Сжатие изображений для OpenCart 2.x


    Сжатие изображений
    Данное дополнение позволяет сжимать изображения до 90% при закачке их на сайт.
    Все мы знаем, чем меньше изображение, тем быстрее будет грузится Ваш сайт.
    Сервис TinyPNG позволяет практически на лету сжимать Ваши изображения до 90% без потери качества.
    В месяц можно бесплатно сжимать до 500 изображений!

     

    Совместимость: 2.0.0.0, 2.0.1.0, 2.0.1.1, 2.0.2.0, 2.1.0 так же тестировался на opencart.pro 2.1.0.1.22


    Установка:
    Установка дополнения происходит через Менеджер дополнений

    Использование:

    1) Перед тем, как начать использование, необходимо получить API ключ.
    2) Переходим https://tinypng.com/developers, вводим логин и email.
    3) Переходим по ссылке в письме
    4) Копируем ключ.
    5) Вводим ключ в соответствующее поле в настройках дополнения

     

    Может кому-то будет полезен.


    • Автор
    • Добавлен
      12.11.2016
    • Категория


    Скачать Сжатие изображений для OpenCart 2.x

    tinypng_compress.ocmod.zip

    tinypng.png

  6. 44 минуты назад, Adems сказал:

    data['model'] = $product['name'];  всё равно ж не выводится, или я чего то не до понял?

    Не, это я туплю...

    Сори...Понял, что Вы хотите, что б параметр <model> выводился?

    Тоисть есть, например, iPhone в продаже, а Вы хотите его модель, "iPhone 6s 128gb Space Gray" вывести и что б товар, в YML был такой:

    <offer id="157" available="true">
    	<url>Ссылка на товар</url>
    	<price>55</price>
    	<currencyId>UAH</currencyId>
    	<categoryId>63</categoryId>
    	<picturepicture>Картинка</picture>
    	<delivery>true</delivery>
    	<name>iPhone Какой-то</name>
    	<vendor>Світ чаю</vendor>
    	<vendorCode>62415</vendorCode>
    	<model>iPhone 6s 128gb Space Gray</model>
    	<description>Описание товара</description>
    </offer>

    Если да, тогда необходимо открыть файл: \catalog\controller\feed\yandex_market.php

     

    Найти функцию:

    private function setOffer($data) {

    Там есть строчка:

    $allowed_tags = array('url'=>0, 'buyurl'=>0, 'price'=>1, 'wprice'=>0, 'currencyId'=>1, 'xCategory'=>0, 'categoryId'=>1, 'picture'=>0, 'store'=>0, 'pickup'=>0, 'delivery'=>0, 'deliveryIncluded'=>0, 'local_delivery_cost'=>0, 'orderingTime'=>0);

    Добавить в массив model. Получается вот так:

     

    $allowed_tags = array('url'=>0, 'buyurl'=>0, 'price'=>1, 'wprice'=>0, 'currencyId'=>1, 'xCategory'=>0, 'categoryId'=>1, 'picture'=>0, 'store'=>0, 'pickup'=>0, 'delivery'=>0, 'deliveryIncluded'=>0, 'local_delivery_cost'=>0, 'orderingTime'=>0, 'model'=>1);

    И тогда параметр <model> будет отображаться и будет вид, как я писал выше.

  7. 33 минуты назад, Adems сказал:

    Боюсь к сожалению не пройдёт, яндекс ругается на то что название Модели не может состоять только из цифр. Поэтому нужен $product['name'];

    Не понятно почему  $data['model'] = $product['name'];  не работает.

    Модуль получается не рабочий и бесполезный.

    Второй вариант, какой я написал можно попробовать...

     

    $data['vendorCode'] = 'OC'-$product['product_id'];

    И вот решение проблемы...

  8. 11 час назад, Adems сказал:

    Спасибо за ответ, да с этим всё понятно. Немного другой вопрос: как вывести это тег у товаров именно со статусом В наличии, лепить всем подряд <meta itemprop="availability" content="http://schema.org/InStock">  как то не правильно. Надо думать или модуль какой-то, или в контролере что то менять с выводом нового значения по id метки. Отдаётся эта метка с со своим id значит тег выводится не отдается значит не выводится.

    Иначе это смотрится как спам в разметке, хотя многие так и живут, но я чего то не хочу выводить его ради того чтоб просто было. Решил для себя делать всё как положено.

    <link itemprop="availability" href="http://schema.org/<?php echo (($availability) ? 'InStock' : 'OutOfStock') ?>" />

    Эту проверку вставить в product.tpl

     

    А в контроллер product.php добавить где-то

    $data['availability'] = ($product_info['quantity'] > 0) ? true : false;

    И получиться будет, если количество для товара есть, больше нуля, тогда будет писаться, что есть в наличии, если меньше, будет выводится, что нет...

  9. Ошибка отображения из-за этого (на скриншоте видно)

    В Шаблоне (catalog/view/theme/ШАБЛОН/template/product/product.tpl), в поле блока посмотрите как он вставляется...

    Там должна быть проверка на его вставку, примерно такая:

    <?php if (($column_left && $column_right) && ($i % 2 == 0)) { ?>
    	<div class="clearfix visible-md visible-sm"></div>
    <?php } elseif (($column_left || $column_right) && ($i % 3 == 0)) { ?>
    	<div class="clearfix visible-md"></div>
    <?php } elseif ($i % 4 == 0) { ?>
    	<div class="clearfix visible-md"></div>
    <?php } ?>

     

    error.JPG

  10. Обновился модуль!

    Добавлено:

    1) Фильтрация товаров по экспортированым товарам

    2) Дополнительные поля для отображения в комментариях

    3) Водяной знак для фотографий

    4) Возможность писать уникальный текст и тэги для товаров

    5) Возможность уменьшать ссылки через сервис https://bitly.com