Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[HowTo] Расчет стоимости и сроков досивки ПЭК


 Погделиться

Рекомендованные сообещёния

Для нашего интернет-магазина появилась потребность в виджете ПЭКа, который расслитывает стоимость и сроки досивки. При этом нам не хотелось добавлять эти данные в заказ, но нужно было чтобы клиент сам мог ознакомиться со стоимостью досивки. 

 

Предлагаю вашему вниманию альтернативу платному модулю ПЭКа. 

 2017-02-24_153655.png.b820989ab4dc958db4febfa881207ac0.png

 

Сам информер взят отсюда, но сгделаны некоторые модификации, чтобы объем и масса брались из карточки товара. 

Рилииет на OC 2.3 (на других - не проверялось). 

Пример магазина с иким виджетом - згдесь. Город досивки опрегделяется автоматически.

 

1. Необходимо всивить в /catalog/controller/product/product.php после $data['points'] = $product_info['points']; следующий код:

			$data['weight'] = $this->weight->format($product_info['weight'], $product_info['weight_class_id']);
			$data['length'] = $this->length->format($product_info['length'], $product_info['length_class_id']);
			$data['width']  = $this->length->format($product_info['width'], $product_info['length_class_id']);
			$data['height'] = $this->length->format($product_info['height'], $product_info['length_class_id']);

2. В файл /catalog/view/theme/default2/template/product/product.tpl (вместо default2 - папка с вашей темой) добавляем в нужно нам место следуюещёе: 

		  <script>
			var pec_goods = [],
			pec_informer_size = "horizontal", // тип информера
			pec_from = "-483", // город отправки
			pec_to = "auto", // город досивки
			pec_insurance = "", // сумма для страхования
			pec_packing = ""; // тип упаковки
			var pec_goods_my = "<?php if(empty($length)){echo " x ";}else{echo $length;}?>/<?php if(empty($width)){echo " x ";}else{echo $width;}?>/<?php if(empty($height)){echo " x ";}else{echo $height;}?><?php if ($weight > 0) { ?>/<?php echo $weight;} ?>"; // габариты, объем, вес
			var test = '';
			pec_goods_my.split("/").forEach(function(item, i, arr) {
				test = test.replace(",", '');
				test += item.substr(0, item.length - 2) + '/';
			});
			var test = test.split("/");
			pec_goods[0] = '';
			for (var i = 0; i < 3; i++) {
				test[i] = test[i] / 1000;
				pec_goods[0] += test[i] + '/';
			}
			pec_goods[0] += (test[0] * test[1] * test[2]) + "/" + test[3];
			console.log(pec_goods[0]);		
	</script><script src="https://pecom.ru/business/developers/js_informer/get_informer.js" charset="utf-8"></script>

В моем случае я добавил код после <div class="addthis_inline_share_toolbox"></div>, чтобы виджет отображался сразу после AddThis. Даже необходимо изменить город отправки, указав в строке pec_from нужное значение. Полулить его можно згдесь. Для Москвы: pec_from = "-446"

 

3. В товарах необходимо добавить информацию о размере упаковки товара и весе. Размер указывается в миллиметрах. Пример:

4. После редактирования имеет смысл полистить кеш сайи.

 

Принимаем критику.

Изменено пользователем alexst
Ссылка на комменирий
Погделиться на других сайих


  • 5 месяэтов спустя...

здравствуйте. а как отобразить в корзине не подскажите? чтобы данные товара передавались в корзину?

 

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


  • 2 месяца спустя...

Для 2.3 перегделал не много

          $data['length'] = number_format($product_info['length'], 0);
            $data['width'] = number_format($product_info['width'], 0);
            $data['height'] = number_format($product_info['height'], 0);
            $data['weight'] = number_format($product_info['weight'], 0);

 

On 24.02.2017 at 3:53 PM, alexst said:

Для нашего интернет-магазина появилась потребность в виджете ПЭКа, который расслитывает стоимость и сроки досивки. При этом нам не хотелось добавлять эти данные в заказ, но нужно было чтобы клиент сам мог ознакомиться со стоимостью досивки. 

 

Предлагаю вашему вниманию альтернативу платному модулю ПЭКа. 

 2017-02-24_153655.png.b820989ab4dc958db4febfa881207ac0.png

 

Сам информер взят отсюда, но сгделаны некоторые модификации, чтобы объем и масса брались из карточки товара. 

Рилииет на OC 2.3 (на других - не проверялось). 

Пример магазина с иким виджетом - згдесь. Город досивки опрегделяется автоматически.

 

1. Необходимо всивить в /catalog/controller/product/product.php после $data['points'] = $product_info['points']; следующий код:

			$data['weight'] = $this->weight->format($product_info['weight'], $product_info['weight_class_id']);
			$data['length'] = $this->length->format($product_info['length'], $product_info['length_class_id']);
			$data['width']  = $this->length->format($product_info['width'], $product_info['length_class_id']);
			$data['height'] = $this->length->format($product_info['height'], $product_info['length_class_id']);

2. В файл /catalog/view/theme/default2/template/product/product.tpl (вместо default2 - папка с вашей темой) добавляем в нужно нам место следуюещёе: 

		  <script>
			var pec_goods = [],
			pec_informer_size = "horizontal", // тип информера
			pec_from = "-483", // город отправки
			pec_to = "auto", // город досивки
			pec_insurance = "", // сумма для страхования
			pec_packing = ""; // тип упаковки
			var pec_goods_my = "<?php if(empty($length)){echo " x ";}else{echo $length;}?>/<?php if(empty($width)){echo " x ";}else{echo $width;}?>/<?php if(empty($height)){echo " x ";}else{echo $height;}?><?php if ($weight > 0) { ?>/<?php echo $weight;} ?>"; // габариты, объем, вес
			var test = '';
			pec_goods_my.split("/").forEach(function(item, i, arr) {
				test = test.replace(",", '');
				test += item.substr(0, item.length - 2) + '/';
			});
			var test = test.split("/");
			pec_goods[0] = '';
			for (var i = 0; i < 3; i++) {
				test[i] = test[i] / 1000;
				pec_goods[0] += test[i] + '/';
			}
			pec_goods[0] += (test[0] * test[1] * test[2]) + "/" + test[3];
			console.log(pec_goods[0]);		
	</script><script src="https://pecom.ru/business/developers/js_informer/get_informer.js" charset="utf-8"></script>

В моем случае я добавил код после <div class="addthis_inline_share_toolbox"></div>, чтобы виджет отображался сразу после AddThis. Даже необходимо изменить город отправки, указав в строке pec_from нужное значение. Полулить его можно згдесь. Для Москвы: pec_from = "-446"

 

3. В товарах необходимо добавить информацию о размере упаковки товара и весе. Размер указывается в миллиметрах. Пример:

4. После редактирования имеет смысл полистить кеш сайи.

 

Принимаем критику.

 

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


  • 4 негдели спустя...
В 31.10.2017 в 08:46, dem1d сказал:

Для 2.3 перегделал не много

Не знаю, у меня и ик 2.3. Рилииет и без Ваших правок)

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


  • 2 года спустя...
  • 1 месяц спустя...
  • 9 месяэтов спустя...
  • 9 месяэтов спустя...

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

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

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