Перейти к содержимому


Фото
* * * * * 4 голосов

Ввод цен вариантов в любой удобной валюте(поставки в евро-долларах)

Дополнение Мод Валюта Невероятно круто Бесплатно

Best Answer ExtraBash , 25.05.2016 - 23:04

https://drive.google...TzQ&usp=sharing

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

Можете пользоваться, условная лицензия - 500р, если вам нужно чтобы я поставил 1000р.
Кому сильно нужно пользуйтесь, как сами облегчите себе жизнь и заработаете на магазине - скинете бабуль.

Скайп - abashyrov
Телефон и киви +79372046907
Сбер на том-же телефоне)

Всем спасибо за интерес.


.....................................................
Кому интересно как это все работает - ВОТ пост с инструкцией, не могу его редактировать, пилить заново лень.
Пост с еще несколькими важными правками - Вот он, палите.
Инструкция уже не самая актуальная, лучше пользуйтесь кодом из файлов.
Позже были найдены затыки при синхронизации, и еще несколько мелких неурядиц, которые очень редко вспывают.

Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
142 ответов в теме

#81 nekkby

nekkby
  • Пользователь
  • 25 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:2.x

Опубликовано 18.12.2014 - 10:22

У меня проблема. Все установил. Все работает. Но при сохранении нового товара или при изменении старого. Добавляются пустые варианты товар. Причем кол-во пустых совпадает с кол-вом нормальных 

 

before1.png

Скорее всего где-то скобку не закрыли. Пересмотрите еще раз код.



#82 Tempter

Tempter
  • Пользователь
  • 34 сообщений
  • Заказчик
  • Версия CMS:2.x
  • Откуда:russia the earth

Опубликовано 20.12.2014 - 22:13

Хорошо сделал и молодец что выложил с подробным описанием. Рекомендую проделать немного по другому в файле api/Variants.php создай функцию для пересчета цен и постоянно обращайся к ней в функциях get_variants, get_variant.

Пример моей реализации:

14ea5c14bb59.jpg

3796a70c5190.jpg

А как реализовать такое количество типов цен? 



#83 ExtraBash

ExtraBash
  • Пользователь
  • 126 сообщений
  • Программирование, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Самара

Опубликовано 21.12.2014 - 02:25

Ребята, я внес небольшие правки, добавились несколько стилей, обрамили в шаблоне Products.tpl нашу новую строчку в  div.old_wrap:

 <div class="old_wrap">
	<div class="old_price">
	<div class="op_cover"
	{if $variant->compare_price>0}title="Старая цена &mdash; {$variant->compare_price} {$currency->sign}"{elseif $variant->base_compare_price>0}title="Старая цена &mdash; {$variant->base_compare_price} {$currency->sign}"{/if}></div>
	<input  
	type="text" 
	name="price[{$variant->id}]" 
	value="{if $variant->currency}{if $variant->base_price}{$variant->base_price*$currencies[$variant->currency]->rate_to/$currencies[$variant->currency]->rate_from|escape}{else}{$variant->price*$currencies[$variant->currency]->rate_to/$currencies[$variant->currency]->rate_from|escape}{/if}{else}{$variant->price}{/if}"/>	
	</div>
	
	<input class="stock" type="text" name="stock[{$variant->id}]" value="{if $variant->infinity}?{else}{$variant->stock}{/if}" /><span class="v_unit">{$settings->units}</span>
</div>

Два новых стиля, первый ясно откуда, второй для того чтобы в Product.tpl не съезжала кнопка загрузки электронного контента:

.old_wrap {
	float: right;
	width: 182px;
}
#variants_block li.variant_download {
	width: 50px;
}

 


Упростил метод обновления цен на сайте при изменении валюты, он стал значительно проще:

2.5. Решение проблемы обновления расчетных цен на сайте.

(кто использовал старое - Функцию update_currency в api/Money.php меняем на стандартную)


Будем менять /simpla/CurrencyAdmin.php

 

При обновлении измененной валюты обновим и все варианты с такой-же валютой,

начало и конец заменяемого кода обрамлены неизменными частями кода, обратите внимание, в 2.3.6

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

foreach($this->request->post('currency') as $n=>$va)
	foreach($va as $i=>$v)
		$currencies[$i]->$n = $v;
 
//////////////////////////////////////////////////////////////
 
$currencies_ids = array();
foreach($currencies as $currency)
{
	if($currency->id)
	{
		$this->money->update_currency($currency->id, $currency);
		$this->db->query("UPDATE __variants SET price=base_price*? WHERE currency=?"  , $currency->rate_to/$currency->rate_from, $currency->id);
	}
	else
		$currency->id = $this->money->add_currency($currency);
	$currencies_ids[] = $currency->id;
}
 
//////////////////////////////////////////////////////////////
 
// Удалить непереданные валюты
$query = $this->db->placehold('DELETE FROM __currencies WHERE id NOT IN(?@)', $currencies_ids);
$this->db->query($query);

 

 

Пока всё, позже может еще чего допилю, как будет время.



#84 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 21.12.2014 - 10:14

Упростил метод обновления цен на сайте при изменении валюты, он стал значительно проще:
2.5. Решение проблемы обновления расчетных цен на сайте.

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

Рекомендуется пользоваться с осторожностью. В некоторых ситуациях предлагаемая доработка может сильно испортить данные по ценам. В теме мной уже сообщалось об этом с полмесяца тому назад, автор пока этого замечать не желает.

#85 Karen

Karen
  • Пользователь
  • 193 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x

Опубликовано 16.01.2015 - 01:00

Ребята, я внес небольшие правки, добавились несколько стилей, обрамили в шаблоне Products.tpl нашу новую строчку в  div.old_wrap:

 <div class="old_wrap">
	<div class="old_price">
	<div class="op_cover"
	{if $variant->compare_price>0}title="Старая цена &mdash; {$variant->compare_price} {$currency->sign}"{elseif $variant->base_compare_price>0}title="Старая цена &mdash; {$variant->base_compare_price} {$currency->sign}"{/if}></div>
	<input  
	type="text" 
	name="price[{$variant->id}]" 
	value="{if $variant->currency}{if $variant->base_price}{$variant->base_price*$currencies[$variant->currency]->rate_to/$currencies[$variant->currency]->rate_from|escape}{else}{$variant->price*$currencies[$variant->currency]->rate_to/$currencies[$variant->currency]->rate_from|escape}{/if}{else}{$variant->price}{/if}"/>	
	</div>
	
	<input class="stock" type="text" name="stock[{$variant->id}]" value="{if $variant->infinity}?{else}{$variant->stock}{/if}" /><span class="v_unit">{$settings->units}</span>
</div>

Два новых стиля, первый ясно откуда, второй для того чтобы в Product.tpl не съезжала кнопка загрузки электронного контента:

.old_wrap {
	float: right;
	width: 182px;
}
#variants_block li.variant_download {
	width: 50px;
}

 


Упростил метод обновления цен на сайте при изменении валюты, он стал значительно проще:

2.5. Решение проблемы обновления расчетных цен на сайте.

(кто использовал старое - Функцию update_currency в api/Money.php меняем на стандартную)


Будем менять /simpla/CurrencyAdmin.php

 

При обновлении измененной валюты обновим и все варианты с такой-же валютой,

начало и конец заменяемого кода обрамлены неизменными частями кода, обратите внимание, в 2.3.6

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

foreach($this->request->post('currency') as $n=>$va)
	foreach($va as $i=>$v)
		$currencies[$i]->$n = $v;
 
//////////////////////////////////////////////////////////////
 
$currencies_ids = array();
foreach($currencies as $currency)
{
	if($currency->id)
	{
		$this->money->update_currency($currency->id, $currency);
		$this->db->query("UPDATE __variants SET price=base_price*? WHERE currency=?"  , $currency->rate_to/$currency->rate_from, $currency->id);
	}
	else
		$currency->id = $this->money->add_currency($currency);
	$currencies_ids[] = $currency->id;
}
 
//////////////////////////////////////////////////////////////
 
// Удалить непереданные валюты
$query = $this->db->placehold('DELETE FROM __currencies WHERE id NOT IN(?@)', $currencies_ids);
$this->db->query($query);

 

 

Пока всё, позже может еще чего допилю, как будет время.

Можно ли сделать чтоб еще в карточке товара или на весь товар в категории можно было изменять курс валют? Например: Общий курс евро в интернет-магазине 23грн. но у меня есть позиции товара которым нужно задать курс евро 19грн.



#86 ExtraBash

ExtraBash
  • Пользователь
  • 126 сообщений
  • Программирование, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Самара

Опубликовано 16.01.2015 - 01:42

Можно ли сделать чтоб еще в карточке товара или на весь товар в категории можно было изменять курс валют? Например: Общий курс евро в интернет-магазине 23грн. но у меня есть позиции товара которым нужно задать курс евро 19грн.

Создай еще 1 валюту, назови ее евро2 и сделай товары по 19 - евро2.



#87 Karen

Karen
  • Пользователь
  • 193 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x

Опубликовано 16.01.2015 - 11:29

Гениально, спасибо 



#88 Oles89

Oles89
  • Пользователь
  • 13 сообщений
  • Версия CMS:2.x

Опубликовано 22.01.2015 - 17:24

Спасибо за код, все работает, но столкнулся с 2-мя проблемами, при добавлении в ручную товар, при сохранении карточки появляеются пустые поля где артикул и т.д. Если импортировать товар, то в карточке товара не отображается артикул. В чем может быть проблема подскажите плиз



#89 ExtraBash

ExtraBash
  • Пользователь
  • 126 сообщений
  • Программирование, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Самара

Опубликовано 26.01.2015 - 14:38

Спасибо за код, все работает, но столкнулся с 2-мя проблемами, при добавлении в ручную товар, при сохранении карточки появляеются пустые поля где артикул и т.д. Если импортировать товар, то в карточке товара не отображается артикул. В чем может быть проблема подскажите плиз

Напишите в скайп, обсудим. abashyrov



#90 ExtraBash

ExtraBash
  • Пользователь
  • 126 сообщений
  • Программирование, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Самара

Опубликовано 03.03.2015 - 02:06

Господа, нашел ошибку в пункте 2.5 в файле simpla/CurrencyAdmin.php

Забыл обновить цены скидочные, правильный запрос:

$this->db->query("UPDATE __variants SET price=base_price*?, compare_price=base_compare_price*? WHERE currency=?"  , $currency->rate_to/$currency->rate_from, $currency->rate_to/$currency->rate_from, $currency->id);


П.С.
Вопрос к местным - стало нельзя редактировать свои старые сообщения?
Мне нужно полную инструкцию поправить.


Изменено: ExtraBash, 03.03.2015 - 02:07


#91 cernos

cernos
  • Фрилансер
  • 369 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Донецк/Москва

Опубликовано 14.03.2015 - 17:10

что то этот модуль все спортил!!!



#92 ExtraBash

ExtraBash
  • Пользователь
  • 126 сообщений
  • Программирование, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Самара

Опубликовано 14.03.2015 - 17:17

что то этот модуль все спортил!!!

Не понял, что испортил? Давай подробности.
У всех работает...



#93 cernos

cernos
  • Фрилансер
  • 369 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Донецк/Москва

Опубликовано 14.03.2015 - 17:58

Не понял, что испортил? Давай подробности.
У всех работает...

 

Логика уже работает нормально, я изначально не понял логику... все цены слетели, я так и не понял, моя была ли вина или нет. Но это не проблема, одним запросом в БД вылечил.

 

сделал все по инструкции, но:

1. в карточке товара в админке исчез диск и кол-во товара, поправил

2. в карточке товара в админке при добавлении нового варианта отсутствуют поля с выбором валюты и ценой пересчета, поправил.

3. изменил базовые стили, ибо все поля не вмещались в одну строку (с диском и кол-вом товара на складе)


Изменено: cernos, 14.03.2015 - 17:59


#94 ExtraBash

ExtraBash
  • Пользователь
  • 126 сообщений
  • Программирование, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Самара

Опубликовано 14.03.2015 - 18:09

Логика уже работает нормально, я изначально не понял логику... все цены слетели, я так и не понял, моя была ли вина или нет. Но это не проблема, одним запросом в БД вылечил.

 

сделал все по инструкции, но:

1. в карточке товара в админке исчез диск и кол-во товара, поправил

2. в карточке товара в админке при добавлении нового варианта отсутствуют поля с выбором валюты и ценой пересчета, поправил.

3. изменил базовые стили, ибо все поля не вмещались в одну строку (с диском и кол-вом товара на складе)

Ну ничосе ты хакер)))

1. Странно, видимо лишнего заменил
2. Ага
3. Можно любоваться)



#95 cernos

cernos
  • Фрилансер
  • 369 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Донецк/Москва

Опубликовано 14.03.2015 - 18:28

Желательно все эти изменения внести сразу : )

 

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

Одно только но, в запросе у тебя есть "ADD `currency` TEXT,"

замени TEXT на varchar 255 - зачем этому полю более 10 000 символов? ))) Не принципиально в данном случае, но правильнее будет varchar



#96 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 14.03.2015 - 18:30

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

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

Рекомендуется пользоваться с осторожностью. В некоторых ситуациях предлагаемая доработка может сильно испортить данные по ценам. В теме мной уже сообщалось об этом с полмесяца тому назад, автор пока этого замечать не желает.



#97 cernos

cernos
  • Фрилансер
  • 369 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Донецк/Москва

Опубликовано 14.03.2015 - 18:38

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

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

Рекомендуется пользоваться с осторожностью. В некоторых ситуациях предлагаемая доработка может сильно испортить данные по ценам. В теме мной уже сообщалось об этом с полмесяца тому назад, автор пока этого замечать не желает.

 

В некотором плане соглашусь, в некотором нет.

 

У меня логика более сложна, тобишь в моей реализации цены хранятся в валюте, а при выводе в запросе уже перемножаются в валюту магазина. С одной стороны - это правильно, с другой стороны мне пришлось править слишком много запросов связанных с отображением товара + нагрузка на БД.

 

В данном примере цены уже хранятся пересчитанные, что конечно может повлечь проблемы с неправильным обращением, но значительно упрощает установку + снижает нагрузку на БД.


Изменено: cernos, 14.03.2015 - 18:45


#98 ExtraBash

ExtraBash
  • Пользователь
  • 126 сообщений
  • Программирование, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Самара

Опубликовано 14.03.2015 - 19:08

Корс Просто продает свою, там проработан более качественно функционал CurrencyAdmin, если я все правильно понимаю...


Изменено: ExtraBash, 14.03.2015 - 19:08


#99 RusLi

RusLi
  • Пользователь
  • 21 сообщений

Опубликовано 19.03.2015 - 18:48

Автору безграничный респект!

 

Но в шапке последнее верное решение? пилю, пилю.... и все криво :) Я ясен пень нуб в вебдеве, но в кризис приходится вспоминать уроки информатики :)

12982256_c9ec352d.jpg

 

 

в товарах вроде норм:

12982260_a7b0fa82.jpg


Изменено: RusLi, 19.03.2015 - 19:46


#100 yodaexolon

yodaexolon
  • Пользователь
  • 144 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Kharkiv, Ukraine

Опубликовано 19.03.2015 - 19:11

Незаменимое дополнение в данный период, когда курс валют постоянно меняется.Все отлично работает, спасибо.







Также с меткой «Дополнение, Мод, Валюта, Невероятно круто, Бесплатно»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых