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

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

Добрый день! 

 

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

Пример, Ламинат egger стоит 700 рублей м2, отпускается кратно упаковкам, в ней 1.985 м2

Плитка почти вся отпускается коробками разных форматов, но стоимости за метр. 

Думаю суть идеи понятна. На любом интернет магазине данный функционал есть.

Изменено пользователем Soong

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


Ссылка на сообщение
Поделиться на другие сайты
34 минуты назад, Soong сказал:

На любом интернет магазине данный функционал есть.

 

Этим вы пытаетесь цену снизить?)))

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


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, spectre сказал:

 

Этим вы пытаетесь цену снизить?)))

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

Изменено пользователем Soong

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


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

я имел ввиду что для опенкарта это совсем нестандартный функционал

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


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, spectre сказал:

я имел ввиду что для опенкарта это совсем нестандартный функционал

Значит я повышу востребованность данной модификации. 

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


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, buslikdrev сказал:

Такое есть:

Это называется "недо" товарное предложение. 
Такой модификатор только более симпатичный мне уже предложили создатели шаблона tech store. 
Это полезный модификатор, но мне шас нужно именно цена за м2 , м погонный , упаковку и т д. 
т к я имею сайт на битрикс ( das-stroy.ru )  , могу сказать , что данная функция идет в битриксе " из упаковки " , чего я тут с удивлением не обнаружил , я даже не мог подумать, что такие простейшие как мне казалось вещи не имеют места быть на движке опенкарта. ( окстор ) 
p.s. мой запрос на услугу и то, что вы предоставили это абсолютно разные вещи. 
p.s.s. но за попытку спасибо! 

Изменено пользователем Soong

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


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

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

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


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

Делал такое, правда давно. Для ОС 1.5

http://mpn-oc.org/laminat-001.html

До выкладывания модуля не дошло. Очень низкая востребованность.

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


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, Ganga123 сказал:

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

 

3 часа назад, mpn2005 сказал:

Делал такое, правда давно. Для ОС 1.5

http://mpn-oc.org/laminat-001.html

До выкладывания модуля не дошло. Очень низкая востребованность.


Вот парень уже занялся разработкой. 
https://manwhocode.ru/opencart/index.php?route=product/product&product_id=42
Весьма не плохо, завтра, скоро и до ума доведет) 

Изменено пользователем Soong

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


Ссылка на сообщение
Поделиться на другие сайты
17 минут назад, Soong сказал:

 


Вот парень уже занялся разработкой. 
https://manwhocode.ru/opencart/index.php?route=product/product&product_id=42
Весьма не плохо, завтра, скоро и до ума доведет) 

так давно лежит в дополнениях

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


Ссылка на сообщение
Поделиться на другие сайты
15 минут назад, AWARO сказал:

так давно лежит в дополнениях

где?

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


Ссылка на сообщение
Поделиться на другие сайты
58 минут назад, Soong сказал:

где?

 

1 час назад, AWARO сказал:

в дополнениях

 

 

https://opencartforum.com/search/?q=квадратные метры

 

Спойлер

Открываем файл admin/catalog/view/template/catalog/product_form.tpl

ищем строки:


<div class="form-group">
  <label class="col-sm-2 control-label" for="input-price"><?php echo $entry_price; ?></label>
  <div class="col-sm-10">
	<input type="text" name="price" value="<?php echo $price; ?>" placeholder="<?php echo $entry_price; ?>" id="input-price" class="form-control" />
  </div>
</div>

после них вставляем:


<div class="form-group">
  <label class="col-sm-2 control-label" for="input-mpn">Количество м<sup>2</sup> в упаковке</label>
  <div class="col-sm-10">
    <input type="text" name="mpn" value="<?php echo $mpn; ?>" id="input-mpn" class="form-control" />
  </div>
</div>

Эти строки удаляем:


<div class="form-group">
  <label class="col-sm-2 control-label" for="input-mpn"><span data-toggle="tooltip" title="<?php echo $help_mpn; ?>"><?php echo $entry_mpn; ?></span></label>
  <div class="col-sm-10">
   <input type="text" name="mpn" value="<?php echo $mpn; ?>" placeholder="<?php echo $entry_mpn; ?>" id="input-mpn" class="form-control" />
  </div>
</div>

 

 

Поле для ввода количества штук в упаковке
после строк выше добавляем:


<div class="form-group">
  <label class="col-sm-2 control-label" for="input-isbn"><span data-toggle="tooltip" >Количество шт. в упаковке</span></label>
  <div class="col-sm-10">
    <input type="text" name="isbn" value="<?php echo $isbn; ?>" placeholder="<?php echo $entry_isbn; ?>" id="input-isbn" class="form-control" />
  </div>
</div>

Удаляем код для ввода isbn


<div class="form-group">
  <label class="col-sm-2 control-label" for="input-isbn"><span data-toggle="tooltip" title="<?php echo $help_isbn; ?>"><?php echo $entry_isbn; ?></span></label>
  <div class="col-sm-10">
    <input type="text" name="isbn" value="<?php echo $isbn; ?>" placeholder="<?php echo $entry_isbn; ?>" id="input-isbn" class="form-control" />
  </div>
</div>

Открываем файл admin/model/catalog/product.php

код:


price = '" . (float)$data['price'] . "',

заменяем на:


price = '" . (float)$data['price'] * ($data['mpn']?$data['mpn']:1) . "',

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

Находим строки:


if (isset($this->request->post['price'])) {
	$data['price'] = $this->request->post['price'];
} elseif (!empty($product_info)) {
	$data['price'] = $product_info['price'];
} else {
	$data['price'] = '';
}  

Меняем их на:


if (isset($this->request->post['price'])) {
	$data['price'] = $this->request->post['price']/($this->request->post['mpn']?$this->request->post['mpn']:1);
} elseif (!empty($product_info)) {
	$data['price'] = $product_info['price'] / ($product_info['mpn']?$product_info['mpn']:1);
} else {
	$data['price'] = '';
}

 

Фронт

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

Находим строки:


if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
	$data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
	$data['price'] = false;
}

Меняем их на:


if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
	$data['price'] = $this->currency->format($this->tax->calculate($product_info['price'] / ($product_info['mpn']?$product_info['mpn']:1), $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
	$data['price'] = false;
}

После этих строк вставляем


$data['in_box'] = $product_info['mpn'];
$data['count_in_box'] = $product_info['isbn'];

Открываем файл catalog/view/theme/default/template/product/product.tpl

Ищем код:


<input type="text" name="quantity" value="<?php echo $minimum; ?>" size="2" id="input-quantity" class="form-control" />

Меняем его на:


<div class="col-sm-12 form-group">
  <div class="col-sm-3">
    <span data-type="q_minus" class="control-in-de btn btn-primary btn-block">-</span>
  </div>
  <div class="col-sm-6">
    <input type="text" name="quantity_in_box" value="<?php echo $minimum * ($in_box?$in_box:1); ?> кв.м. (<?php echo $minimum; ?> уп.)" size="2" id="input-quantity" class="form-control" />
    <input type="hidden" name="quantity" value="<?php echo $minimum; ?>" />
  </div>
  <div class="col-sm-3">
    <span data-type="q_plus" class="control-in-de btn btn-primary btn-block">+</span>
  </div>
</div>

далее находим:


<?php echo $footer; ?>

И перед этой строкой вставляем


<script>
$('.control-in-de').click(function(){ 
	if($(this).data('type') == 'q_minus'){
	  if($('input[name="quantity"]').val() > '<?php echo $minimum; ?>'){
		$('input[name="quantity"]').val(parseInt($('input[name="quantity"]').val())-1);
	  }
	}else{
		$('input[name="quantity"]').val(parseInt($('input[name="quantity"]').val())+1);					
	}
	in_box = parseInt($('input[name="quantity"]').val())*<?php echo $in_box; ?>;
	$('input[name="quantity_in_box"]').val(in_box.toFixed(2) + ' кв.м. (' + $('input[name="quantity"]').val() + ' уп.)');
});
</script>

Для вывода


	<?php echo $count_in_box; ?>

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

Находим строку:


$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));

Меняем ее на:


$price = $this->currency->format($this->tax->calculate($result['price'] / ($result['mpn']?$result['mpn']:1), $result['tax_class_id'], $this->config->get('config_tax')));

 

 

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


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

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

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

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

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

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

Войти

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

Войти

  • Последние посетители   0 пользователей онлайн

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

×

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

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