Перейти к содержанию
uorypm

Кэш. Class Cache. Проблема с генерацией непонятной строки

Рекомендуемые сообщения

Здравствуйте, форумчане!

 

Есть файл контроллера, в котором запрашивается кэш:

$product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);

Есть системный класс Cache, в котором есть метод get.

 

 

Проблема в том, что из файла контроллера запрашивается строка вида "product.total.1.0.1.$cache" (где $cache - это некая сгенерированная строка). А в метод get класса Cache приходит непонятно почему такая строка: "product.total.1.0.1.cfcd208495d565ef66e7dff9f98764da.$cache".

 

Ссылка $this в файле контроллера ссылается на объект $registry класса Registry, в нем зарегистрирован экземпляр класса Cache. Т.е. вроде бы все нормально.

 

При этом метод set класса Cache записывает кэш как и положено - в виде файла с именем "product.total.1.0.1.$cache". Т.е. сейчас кэш для файлов "product.total.1.0.1.*" вообще не используется и CMS постоянно обращается к БД.

 

Временно метод get класса Cache изменил так:

	public function get($key) {
		if(preg_match('/^product\.total\.1\.0\.1\.cfcd208495d565ef66e7dff9f98764da.*$/', $key))
		{
			$key = str_replace('cfcd208495d565ef66e7dff9f98764da.', '', $key);
		}

	// ...

	}

Кто-нибудь с таким сталкивался и откуда и почему вставляетяс строка "cfcd208495d565ef66e7dff9f98764da" в имя файла кэша?

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
$cache = '1.0.1.cfcd208495d565ef66e7dff9f98764da' ;

Все правильно работает.

1. Напишите полный код класса Cache под спойлером.

2. И код контроллера, который запрашивает данные из кэша.

3. Как определили, что кэш не используется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Код класса Cache

<?php
class Cache { 
	private $expire = 3600; 

	public function get($key) {
		if(preg_match('/^product\.total\.1\.0\.1\.cfcd208495d565ef66e7dff9f98764da.*$/', $key))
		{
			$key = str_replace('cfcd208495d565ef66e7dff9f98764da.', '', $key);
			//echo $key , "<br/>\r\n";
		}
		$files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');
		
		if ($files) {
			$cache = file_get_contents($files[0]);
			
			$data = unserialize($cache);
			
			foreach ($files as $file) {
				$time = substr(strrchr($file, '.'), 1);

      			if ($time < time()) {
					if (file_exists($file)) {
						unlink($file);
					}
      			}
    		}
			
			return $data;			
		}
	}

  	public function set($key, $value) {
    	$this->delete($key);
		
		$file = DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.' . (time() + $this->expire);
    	
		$handle = fopen($file, 'w');

    	fwrite($handle, serialize($value));
		
    	fclose($handle);
  	}
	
  	public function delete($key) {
		$files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');
		
		if ($files) {
    		foreach ($files as $file) {
      			if (file_exists($file)) {
					unlink($file);
				}
    		}
		}
  	}
}
?>

 

2. Модель, не контроллер. Вот код метода:

<?php
	public function getTotalProducts($data = array()) {
		if ($this->customer->isLogged()) {
			$customer_group_id = $this->customer->getCustomerGroupId();
		} else {
			$customer_group_id = $this->config->get('config_customer_group_id');
		}	
				
		$cache = md5(http_build_query($data));
		
		$product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);
		
		if (!$product_data and $product_data === NULL) {
			
			$sql = "SELECT COUNT(DISTINCT p.product_id) AS total FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)";
	
			if (!empty($data['filter_category_id'])) {
				$sql .= " LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id)";			
			}
						
			$sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";
			
			if (!empty($data['filter_name']) || !empty($data['filter_tag'])) {
				$sql .= " AND (";
				
				if (!empty($data['filter_name'])) {					
					if (!empty($data['filter_description'])) {
						$sql .= "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%' OR MATCH(pd.description) AGAINST('" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "')";
					} else {
						$sql .= "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
					}
				}
				
				if (!empty($data['filter_name']) && !empty($data['filter_tag'])) {
					$sql .= " OR ";
				}
				
				if (!empty($data['filter_tag'])) {
					$sql .= "MATCH(pd.tag) AGAINST('" . $this->db->escape(utf8_strtolower($data['filter_tag'])) . "')";
				}
			
				$sql .= ")";
				
				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}
				
				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.sku) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}	
				
				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.upc) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}		

				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.ean) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}

				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.jan) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}
				
				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.isbn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}		
				
				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.mpn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}				
			}
						
			if (!empty($data['filter_category_id'])) {
				if (!empty($data['filter_sub_category'])) {
					$implode_data = array();
					
					$implode_data[] = (int)$data['filter_category_id'];
					
					$this->load->model('catalog/category');
					
					$categories = $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']);
										
					foreach ($categories as $category_id) {
						$implode_data[] = (int)$category_id;
					}
								
					$sql .= " AND p2c.category_id IN (" . implode(', ', $implode_data) . ")";			
				} else {
					$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
				}
			}		
			
			if (!empty($data['filter_manufacturer_id'])) {
				$sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";
			}
			
			$query = $this->db->query($sql);
			
			$product_data = $query->row['total']; 
			
			$this->cache->set('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache, $product_data);
		}
		
		return $product_data;
	}

 

3. Изначальная причина была в том, что сайт работал медленно. Системный администратор, потом и я, проверил нагрузку на сервер - нагрузка на сервер действительно была очень большой (не такой, какой должна была быть при работе с кэшем). Была поставлена мне задача. Посмотрел папку с кэшем - кэш создается под одним именем, а запрашивается под другим (в следствие чего создается новый запрос к БД и сайт работает медленно, а сервер под нагрузкой).

 

---------------------------

 

Откуда инфа, что $cache = '1.0.1.cfcd208495d565ef66e7dff9f98764da' ? Эта переменная вообще по-другому формируется.

 

В модели выводил на экран передаваемый текст - был один вариант (собственно, под каким и сохранялся кэш), а в метод класса приходит уже другой (а кэша с таким именем уже нет)!

При том такой запрос кэша формируется только в этом методе и только в этой модели! Т.е. только для кэшей которые начинаются с product.total.1.0.1.*.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, ошибся:

$cache = md5(http_build_query($data)); //cfcd208495d565ef66e7dff9f98764da

Значит имя файла кэша cache.product.total.1.0.1.cfcd208495d565ef66e7dff9f98764da.$UTC. 

if (!$product_data and $product_data === NULL) {
//замените на 
if (empty($product_data)) {

Пришлите в ЛС данные для доступа к магазину или сорцы с БД на talgatks@gmail.com, я посмотрю. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Пришлите в ЛС данные для доступа к магазину или сорцы с БД на talgatks@gmail.com, я посмотрю. 

 

К сожалению, это невозможно.

 

debug_backtrace'ом выяснил, что среди прочих вызывается файл "/vqmod/vqcache/vq2-catalog_model_catalog_product.php" и в нем вызывается тот самый метод класса, но строка к кэшу формируется уже по-другому:

// Start filter change
	    $product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.'.md5($filter). '.'. $cache); 
// End filter

Сравните с исходным запросом:

$product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);

 

Т.е. как раз тут и вставляется эта злополучная строка прямо посреди текста - " .md5($filter). ".

 

С vQmod никогда не работал. Как наиболее правильно исправить такую работу этого мода? Или ничего страшного, ели вмешаться в код напрямую?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема в файле скрипта vQmod '/vqmod/xml/vqmod_filter_products.xml' :

 

	<operation>
            <search position="replace"><![CDATA[
            $product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);
            ]]></search>
            <add><![CDATA[
// Start filter change
	    $product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.'.md5($filter). '.'. $cache); 
// End filter
            ]]></add>
        </operation>

 

Переменная $filter всегда имеет значение int(0), следовательно, md5(0) имеем - "cfcd208495d565ef66e7dff9f98764da".

 

Следует просто переписать замещающий код? Из знающих vQmod никто не подскажет? Нужна ли вообще переменная $filter и в каких случаях?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема в файле скрипта vQmod '/vqmod/xml/vqmod_filter_products.xml' :

 

	<operation>
            <search position="replace"><![CDATA[
            $product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);
            ]]></search>
            <add><![CDATA[
// Start filter change
	    $product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.'.md5($filter). '.'. $cache); 
// End filter
            ]]></add>
        </operation>

 

Переменная $filter всегда имеет значение int(0), следовательно, md5(0) имеем - "cfcd208495d565ef66e7dff9f98764da".

 

Следует просто переписать замещающий код? Из знающих vQmod никто не подскажет? Нужна ли вообще переменная $filter и в каких случаях?

 

Это XML файл какого-то модуля фильтра, если этот фильтр не используется на сайте, то можете просто переименовать vqmod_filter_products.xml на vqmod_filter_products.xml.bak, при обновлении страницы vqmod его не обработает и файл /vqmod/vqcache/vq2-catalog_model_catalog_product.php примет прежний вид. 

Если же этот фильтр используется, то обратитесь к его автору. Если же понадобится помощь, то я уже писал ранее свои контакты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Landistore
      900.00 руб
      Скачать/Купить дополнение


      CasualBag - лёгкий и адаптивный шаблон для магазина одежды
      CasualBag- продуманный и адаптивный шаблон для интернет магазина одежды. Благодаря своей палитре цветов прекрасно подойдёт и для других тематик.
       
      Демонстрация
      Магазин: Смотреть демо магазина
      Админка: Смотреть демо админки, доступ: demo / demo
       
      Совместимость
      Opencart 2.3 / OcStore 2.3
       
      Основой для данного шаблона послужила стандартная тема default и большое желание сделать хорошую основу для быстрого и успешного старта вашего интернет-магазина. 

      Что вы получаете вместе с шаблоном
      Архив с актуальной версией шаблона и файлами дополнительных модулей.  Бесплатные обновления, которые формируются на основе ваших отзывов и предложений по улучшению  Подробную документацию по установке и настройке шаблона в которой разберется практически каждый человек. Набор баннеров для магазина одежды Стили для модуля ocFilter 4.7.5
      Особенности шаблона:
      Простая установка Адаптивная вёрстка Поддержка мультиязычности Три вида отображения товаров: Список, список цен, сетка Стильные иконки от Stroke icons 7 Современные шрифты Установлена последняя версия Owl Carousel Заменен Magnific Popup на LightBox Удобное меню в мобильной версии (сайдбар) Реализовано дополнительное меню в моб. версии для быстрого доступа к корзине, товарам в сравнении, закладках Модуль “Стена категорий” Реализована смена изображений товара при наведении Реализован вывод изображений дочерних категорий реализован вывод ссылки "Товары в сравнении" в шапке Добавлен вывод процента скидки товара Добавлено окно “cookies” Добавлены кнопки “Плюс/Минус” на странице товара Добавлена кнопка “Вверх” Пересобрана страница с производителями Пересобран личный кабинет покупателя Оптимизированный и структурированный код Поддержка разных браузеров (Chrome, Firefox, Safari, Opera, Edge) Набор красивых и живых баннеров  
      Дополнительные услуги: 
      Установка и настройка шаблона - 400руб. Настройка хостинга и домена для вашего магазина - 400руб. Внедрение микроразметки (без модуля, вручную) - 1000руб. Оптимизация загрузки сайта - 700руб. Установка различных счетчиков и скриптов (Google Analytics, Yandex Metrika, JivoSite и т.д.) - 400руб.  
      В шаблоне присутствует модуль фильтра товаров “OCFilter”. Он не входит в стоимость шаблона. Купить можно тут 
       
       
      ВАЖНО!
      Шаблон изменяет стандартный common.js. Но это не значит, что у вас возникнут проблемы с установкой сторонних модулей. Все модули устанавливаются и работают 
       
       
      Лицензия:
      Шаблон можно использовать только на одном, основном домене (тестовые без ограничений). Любая перепродажа, выкладывание в публичный доступ и прочие действия подобного характера запрещены и являются нарушением авторских прав.
       
      Добавил Landistore Добавлено 20.11.2018 Категория Платные шаблоны Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Несовместим  
    • От Landistore
      CasualBag- продуманный и адаптивный шаблон для интернет магазина одежды. Благодаря своей палитре цветов прекрасно подойдёт и для других тематик.
       
      Демонстрация
      Магазин: Смотреть демо магазина
      Админка: Смотреть демо админки, доступ: demo / demo
       
      Совместимость
      Opencart 2.3 / OcStore 2.3
       
      Основой для данного шаблона послужила стандартная тема default и большое желание сделать хорошую основу для быстрого и успешного старта вашего интернет-магазина. 

      Что вы получаете вместе с шаблоном
      Архив с актуальной версией шаблона и файлами дополнительных модулей.  Бесплатные обновления, которые формируются на основе ваших отзывов и предложений по улучшению  Подробную документацию по установке и настройке шаблона в которой разберется практически каждый человек. Набор баннеров для магазина одежды Стили для модуля ocFilter 4.7.5
      Особенности шаблона:
      Простая установка Адаптивная вёрстка Поддержка мультиязычности Три вида отображения товаров: Список, список цен, сетка Стильные иконки от Stroke icons 7 Современные шрифты Установлена последняя версия Owl Carousel Заменен Magnific Popup на LightBox Удобное меню в мобильной версии (сайдбар) Реализовано дополнительное меню в моб. версии для быстрого доступа к корзине, товарам в сравнении, закладках Модуль “Стена категорий” Реализована смена изображений товара при наведении Реализован вывод изображений дочерних категорий реализован вывод ссылки "Товары в сравнении" в шапке Добавлен вывод процента скидки товара Добавлено окно “cookies” Добавлены кнопки “Плюс/Минус” на странице товара Добавлена кнопка “Вверх” Пересобрана страница с производителями Пересобран личный кабинет покупателя Оптимизированный и структурированный код Поддержка разных браузеров (Chrome, Firefox, Safari, Opera, Edge) Набор красивых и живых баннеров  
      Дополнительные услуги: 
      Установка и настройка шаблона - 400руб. Настройка хостинга и домена для вашего магазина - 400руб. Внедрение микроразметки (без модуля, вручную) - 1000руб. Оптимизация загрузки сайта - 700руб. Установка различных счетчиков и скриптов (Google Analytics, Yandex Metrika, JivoSite и т.д.) - 400руб.  
      В шаблоне присутствует модуль фильтра товаров “OCFilter”. Он не входит в стоимость шаблона. Купить можно тут 
       
       
      ВАЖНО!
      Шаблон изменяет стандартный common.js. Но это не значит, что у вас возникнут проблемы с установкой сторонних модулей. Все модули устанавливаются и работают 
       
       
      Лицензия:
      Шаблон можно использовать только на одном, основном домене (тестовые без ограничений). Любая перепродажа, выкладывание в публичный доступ и прочие действия подобного характера запрещены и являются нарушением авторских прав.
       
    • От Shiptor
      Скачать/Купить дополнение


      Модуль Shiptor - агрегатор доставки
      В развитие модулей вносятся небольшие изменения:
       
      Последняя актуальная версия модуля для OpenCаrt 1.5 все также доступна на форуме, но перестанет получать обновления и поддержку.
      Модули для OpenCart 2.x-3.0 будут получать поддержку и обновления с новыми функциями и исправлениями как и раньше.
       
      Владельцам OpenCart версии 1.5 рекомендуем рассмотреть возможность миграции на более свежую версию системы.
       
      О модуле "Shiptor - агрегатор доставки" :
       
        Модуль позволяет использовать самую выгодную стоимость доставки и покрыть максимальную географию РФ благодаря выбору среди ведущих логистических компаний через единый договор с Shiptor. Также сервис агрегатора Shiptor предлагает единый забор и доставку день-в-день по Москве, единый забор в регионе и доставку по РФ любыми службами доставки. Фулфилмент и отправку через единый сортировочный центр Shiptor в Москве. Подробную информацию о сервисе агрегатора Вы можете прочитать на сайте Shiptor.ru
       
       
        Ключевые возможности модуля — это расчет стоимости и сроков доставки, предоставление выбора конкретной логистической службы для передачи заказа в пункт выдачи или доставка до двери курьером, а также создание заказа в личном кабинете сервиса Shiptor для дальнейшей обработки, управления и отслеживания заказа.
       
      Службы доставки - партнеры агрегатора Shiptor, доступные через модуль:
       
      Shiptor по Москве и МО
      PickPoint по РФ
      DPD по РФ, Казахстану и Белоруссии
      CDEK по РФ
      Boxberry по РФ
      IML по РФ
      Почта России по РФ
       
       
      Демо-сайт модуля с доступом в админпанель http://opencart.shiptor.ru/2.1_simple_demo_stable/
      Модуль устанавливается и обновляется по ftp. Инструкция по установке находится в архиве с модулем (обратите внимание, что для стандартной версии и с модулем Simple нужны разные файлы ocmod)
       
      Преимущества и совместимость:
        Модуль выполняет основные функции взаимодействия с Личным Кабинетом агрегатора доставки Shiptor. Предоставляет возможность гибкого подхода к реализации принятой в магазине бизнес-схемы продаж.  Распространяется бесплатно.  Сопровождается поддержкой и полной документацией.
       
        При разработке мы ориентировались на стандартное поведение покупателя при оформлении заказа, иными словами модуль настроен на дефолтный шаблон платформы. Однако мы понимаем обоснованные желания пользователя по индивидуализации шаблона и поэтому модуль также имеет поддержку популярного модификатора шаблона «Simple – простое оформление заказа», с помощью которого легко можно скорректировать позитивную модель поведения покупателя при оформлении заказа.
       
        Модуль представлен в пяти разных версиях для каждой версии платформы OpenCart или ее локализаций. Набор возможностей может отличаться в зависимости от версии платформы. Протестирован на Opencart и OcStore версий 1.5, 2.0, 2.1, 2.2, 2.3, 3.0 в дефолтном шаблоне, в т.ч. с модификатором оформления заказа SimpleCheckout, без установки дополнительных модулей и шаблонов.
       
         Код модуля открыт и при желании и наличии технических навыков Вы можете самостоятельно доработать модуль на совместимость с Вашими модификаторами страницы чекаута, сторонними модулями или расширить его возможности. Также мы предоставляем платные услуги наших разработчиков в этом направлении.
       
       
      Демо-сайт http://opencart.shiptor.ru/2.1_simple_demo_stable/
       
      Возможности:
      Автоматический расчет стоимости доставки по России, Казахстану и Белоруссии при работе через склад Shiptor Автоматический расчет стоимости доставки по России при доставке из регионов (только для Opencart 2.0-3.0) Перерасчет стоимости доставки в зависимости от выбранного способа оплаты с учетом всех комиссий. Отображение карты выбора пунктов самовывоза и постаматов. Скрытие отдельных способов доставки или установка для них правила по отдельным регионам. Увеличение отображаемого времени доставки. Выгрузка товарной номенклатуры в Shiptor (только для Opencart 2.0-3.0) Поддержка опций товаров при расчете доставки и добавлении заказа в Shiptor (только для Opencart 2.0-3.0) Использование веса из карточек товаров для расчета доставки. Использование габаритов из карточки товара для расчета доставки(только для 1 товара в корзине). Демонстрация подсказок при вводе названия населенного пункта и автовыбор региона для удобства использования и точности расчета. Передача заказов вместе с описью номенклатуры товаров и услуг в ЛК. Передача заказов с наложенным платежом в т.ч. с оплатой по карте или без него. Автоматическая и пакетная передача заказов. Возможность использования города "по умолчанию" из модулей Simple и GeoIP. (только для Opencart 2.0-3.0) Отображение трек-номера и внутренних статусов заказа от Shiptor Ассоциация внутренних статусов заказа от Shiptor со статусами заказа OpenCart Отображение трекномера и статусов заказа от курьерской службы Логирование операций обмена данными с Shiptor. Возможность установки правил по каждому способу доставки: Наценка в %; Наценка в ₽; Бесплатная доставка; Фиксированная цена; Фиксированная цена в зависимости от веса; Минимальный и максимальный вес корзины для доставки; Минимальная и максимальная сумма корзины для доставки и другое;  
      Инструкция по настройке модуля
      Добавил Shiptor Добавлено 22.09.2016 Категория Доставки Системные требования Сайт разработчика https://shiptor.ru Старая цена Метод активации Через официальный сайт дополнения Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось  
    • От Shiptor
      В развитие модулей вносятся небольшие изменения:
       
      Последняя актуальная версия модуля для OpenCаrt 1.5 все также доступна на форуме, но перестанет получать обновления и поддержку.
      Модули для OpenCart 2.x-3.0 будут получать поддержку и обновления с новыми функциями и исправлениями как и раньше.
       
      Владельцам OpenCart версии 1.5 рекомендуем рассмотреть возможность миграции на более свежую версию системы.
       
      О модуле "Shiptor - агрегатор доставки" :
       
        Модуль позволяет использовать самую выгодную стоимость доставки и покрыть максимальную географию РФ благодаря выбору среди ведущих логистических компаний через единый договор с Shiptor. Также сервис агрегатора Shiptor предлагает единый забор и доставку день-в-день по Москве, единый забор в регионе и доставку по РФ любыми службами доставки. Фулфилмент и отправку через единый сортировочный центр Shiptor в Москве. Подробную информацию о сервисе агрегатора Вы можете прочитать на сайте Shiptor.ru
       
       
        Ключевые возможности модуля — это расчет стоимости и сроков доставки, предоставление выбора конкретной логистической службы для передачи заказа в пункт выдачи или доставка до двери курьером, а также создание заказа в личном кабинете сервиса Shiptor для дальнейшей обработки, управления и отслеживания заказа.
       
      Службы доставки - партнеры агрегатора Shiptor, доступные через модуль:
       
      Shiptor по Москве и МО
      PickPoint по РФ
      DPD по РФ, Казахстану и Белоруссии
      CDEK по РФ
      Boxberry по РФ
      IML по РФ
      Почта России по РФ
       
       
      Демо-сайт модуля с доступом в админпанель http://opencart.shiptor.ru/2.1_simple_demo_stable/
      Модуль устанавливается и обновляется по ftp. Инструкция по установке находится в архиве с модулем (обратите внимание, что для стандартной версии и с модулем Simple нужны разные файлы ocmod)
       
      Преимущества и совместимость:
        Модуль выполняет основные функции взаимодействия с Личным Кабинетом агрегатора доставки Shiptor. Предоставляет возможность гибкого подхода к реализации принятой в магазине бизнес-схемы продаж.  Распространяется бесплатно.  Сопровождается поддержкой и полной документацией.
       
        При разработке мы ориентировались на стандартное поведение покупателя при оформлении заказа, иными словами модуль настроен на дефолтный шаблон платформы. Однако мы понимаем обоснованные желания пользователя по индивидуализации шаблона и поэтому модуль также имеет поддержку популярного модификатора шаблона «Simple – простое оформление заказа», с помощью которого легко можно скорректировать позитивную модель поведения покупателя при оформлении заказа.
       
        Модуль представлен в пяти разных версиях для каждой версии платформы OpenCart или ее локализаций. Набор возможностей может отличаться в зависимости от версии платформы. Протестирован на Opencart и OcStore версий 1.5, 2.0, 2.1, 2.2, 2.3, 3.0 в дефолтном шаблоне, в т.ч. с модификатором оформления заказа SimpleCheckout, без установки дополнительных модулей и шаблонов.
       
         Код модуля открыт и при желании и наличии технических навыков Вы можете самостоятельно доработать модуль на совместимость с Вашими модификаторами страницы чекаута, сторонними модулями или расширить его возможности. Также мы предоставляем платные услуги наших разработчиков в этом направлении.
       
       
      Демо-сайт http://opencart.shiptor.ru/2.1_simple_demo_stable/
       
      Возможности:
      Автоматический расчет стоимости доставки по России, Казахстану и Белоруссии при работе через склад Shiptor Автоматический расчет стоимости доставки по России при доставке из регионов (только для Opencart 2.0-3.0) Перерасчет стоимости доставки в зависимости от выбранного способа оплаты с учетом всех комиссий. Отображение карты выбора пунктов самовывоза и постаматов. Скрытие отдельных способов доставки или установка для них правила по отдельным регионам. Увеличение отображаемого времени доставки. Выгрузка товарной номенклатуры в Shiptor (только для Opencart 2.0-3.0) Поддержка опций товаров при расчете доставки и добавлении заказа в Shiptor (только для Opencart 2.0-3.0) Использование веса из карточек товаров для расчета доставки. Использование габаритов из карточки товара для расчета доставки(только для 1 товара в корзине). Демонстрация подсказок при вводе названия населенного пункта и автовыбор региона для удобства использования и точности расчета. Передача заказов вместе с описью номенклатуры товаров и услуг в ЛК. Передача заказов с наложенным платежом в т.ч. с оплатой по карте или без него. Автоматическая и пакетная передача заказов. Возможность использования города "по умолчанию" из модулей Simple и GeoIP. (только для Opencart 2.0-3.0) Отображение трек-номера и внутренних статусов заказа от Shiptor Ассоциация внутренних статусов заказа от Shiptor со статусами заказа OpenCart Отображение трекномера и статусов заказа от курьерской службы Логирование операций обмена данными с Shiptor. Возможность установки правил по каждому способу доставки: Наценка в %; Наценка в ₽; Бесплатная доставка; Фиксированная цена; Фиксированная цена в зависимости от веса; Минимальный и максимальный вес корзины для доставки; Минимальная и максимальная сумма корзины для доставки и другое;  
      Инструкция по настройке модуля
    • От DSV
      2 500.00 руб
      Скачать/Купить дополнение


      Grand - адаптивный универсальный шаблон
      Grand – многоцелевой, настраиваемый, легкий в использовании и полностью адаптивный шаблон для работы современного интернет магазина. 
      Подходит для любого типа магазина: одежда, обувь, электроника, спорт, ювелирные изделия и многое другое ...
       
      Демонстрация
      Магазин: http://grand.kreativ.pro/
      Админка: http://grand.kreativ.pro/admin/ , доступ: demo / demo
       
      Совместимость
      Работает с Opencart v3.0, Русская сборка OpenCart v3.0
       
      Настройки:
      "Быстрый Старт" (Quick Start).
      Настройка основных цветов в админке
      Добавление CSS в админке
      Добавление JavaScript в админке
      Модуль "Настройка шаблона"
      Модуль "Баннеры"
      Модуль "Новости" (с добавлением сопутствущих товаров)
      Модуль "Категории на главной", с возможностью выбора категорий, выводятся блоками по одной категории
      Модуль "Заказ в 1 клик" (с учетом в админке)
      Модуль "Вывод текста во всплывающем окне"
      Модуль "Дополнительные вкладки в карточке товара"
      Модуль "Нашли дешевле?"
      Модуль "Заказ обратного звонка" (с учетом в админке)
      Модуль "Подписка на новости"
      Модуль "Просмотренные товары"
      Модуль "Рекомендуемые" (добавляете свои товары и меняете заглавие на свое)
      Модуль "Слайдшоу" (с возможностью добавления своего текста и некоторыми настройками)
      Модуль "Сообщить когда появится"
      Модуль "Текстовые баннеры"
      Модуль "Быстрый просмотр товара"
      Вывод Артикула (SKU) в карточке товара
      Добавление карты на странице "Контакты"
      Пользовательские меню в шапке сайта
      Контактная информация в шапке сайта
      Контактная информация в подвале сайта
      Трехуровневое основное и боковое меню
      Основное меню (свои ссылки, бренды, информация, контакты)
      Стикер товара – Акция
      Иконки социальных сетей в шапке сайта
      Иконки социальных сетей в подвале
      Иконки платежных систем в подвале сайта
      Свои иконки социальных сетей в карточке товара и в новостях
      Zoom эффект изображения в карточке товара
      Возможность отключения кнопки "Купить" и "Заказ в один клик" если товара нет в наличии
      Свои ссылки в подвале сайта
      Слайдер дополнительных изображений в карточке товара
      Всплывающее окно при нажатии кнопки купить
      Авторизация во всплывающем окне
      В настройках шаблона можно добавить логотип в подвале сайта
      Хлебные крошки - убраны ссылки страницы на саму себя
      Вкл/Выкл краткого описания товаров
      Вкл/Выкл прокрутки в модулях (рекомендуемые, акции, бестселлер, новинки, блог)
      Вкл/Выкл картинки категорий в списке товаров
      Вкл/Выкл кнопки в "Закладки", в "Сравнение"
      Вкл/Выкл ссылок в подвале сайта
      Вкл/Выкл микроразметки карточки товара
      Вкл/Выкл поворота картинки при наведении курсора
      Вкл/Выкл Условия соглашения (Контакты, Быстрый заказ, Заказ звонка)
       
      Лицензия:
      Шаблон можно использовать только на одном основном домене (тестовые без ограничений).
       
      Техническая поддержка
      Через личные сообщения на данном форуме.
      Поддержка производится только пользователям, числящимся в списке покупателей шаблона.
      Добавил DSV Добавлено 09.12.2018 Категория Платные шаблоны Системные требования Сайт разработчика dsv@kreativ.pro Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore Несовместим OpenCart.Pro, ocShop  
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.