Jump to content

Recommended Posts

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

хлопцы! памагайти!

Link to post
Share on other sites
  • 3 weeks later...
  • 4 weeks later...

1. Добавьте в таблицу вариантов products_variants поле old_price
2. В файле Storefront.class.php в выборке вариантов добавит выбор старой цены (пишу по памяти, возможно там выбираются все поля).
3. Вывести шаблон это поле
4. В админке в Product.admin.php сделать правки, включающие варианты
5. Добавить инпут в виджет вариантов в шаблоне товара в админке.

А вообще напишите мне в асю или почту - настроим завтра Вам эту функцию (данные в аккаунте).
С уважением, Митрофанов Артем.

Link to post
Share on other sites

Делаем зачёркнутую цену.
1. Создаем а базе данных новое поле discont в таблице products_variants в этом поле будет писаться старая цена товара. значение по умолчанию 0
Выполнить SQL-запрос к базе данных
ALTER TABLE `products_variants` ADD `discont` FLOAT NOT NULL DEFAULT '0' AFTER `position`
2. Добавлаем это поле в админку. В файле admin/templates/product.tpl
Добавляем после
PHP код:
"<div class=variant_price><input type=text name=variants[price][] value=''></div>"+
Это
PHP код:
"<div class=variant_price><input type=text name=variants[discont][] value=''></div>"+
Меняем
PHP код:
<div class=variants_header>
<div class=variant_move> </div>
<div class=variant_name>Название варианта</div>
<div class=variant_sku>Артикул</div>
<div class=variant_price>Цена, {$MainCurrency->sign}</div>
<div class=variant_stock>Склад</div>
</div>
На
PHP код:
<div class=variants_header>
<div class=variant_move> </div>
<div class=variant_name>Название</div>
<div class=variant_sku>Артикул</div>
<div class=variant_price>Цена, {$MainCurrency->sign}</div>
<div class=variant_price>Старая цена</div>
<div class=variant_stock>Склад</div>
</div>
И после строки
PHP код:
<div class=variant_price><input type=text name=variants[price][{$variant->variant_id}] value='{$variant->price|escape}'></div>
Дописываем
PHP код:
<div class=variant_price><input type=text name=variants[discont][{$variant->variant_id}] value='{$variant->discont|escape}'></div>
И после строки
PHP код:
<div class=variant_price><input type=text name=variants[price][] value='{$variant->price|escape}'></div>
Дописываем
PHP код:
<div class=variant_price><input type=text name=variants[discont][] value='{$variant->discont|escape}'></div>
В файле admin/Product.admin.php
меняем
PHP код:
// транспонируем матрицу вариантов
if(isset($_POST['variants']))
{
foreach($_POST['variants'] as $n=>$va)
foreach($va as $i=>$v)
$variants[$i][$n] = $v;
$position = 1;
foreach($variants as $variant_id=>$variant)
{
if($variant->variant_id)
$query = sql_placeholder('INSERT INTO products_variants (product_id, variant_id, sku, name, price, stock, position) VALUES (?, ?, ?, ?, ?, ?, ?)',
$this->item->product_id, $variant_id, $variant['sku'], $variant['name'], $variant['price'], $variant['stock'], $position++);
else
$query = sql_placeholder('INSERT INTO products_variants (product_id, variant_id, sku, name, price, stock, position) VALUES (?, NULL, ?, ?, ?, ?, ?)',
$this->item->product_id, $variant['sku'], $variant['name'], $variant['price'], $variant['stock'], $position++);
$this->db->query($query);
}
}
на
PHP код:
// транспонируем матрицу вариантов
if(isset($_POST['variants']))
{
foreach($_POST['variants'] as $n=>$va)
foreach($va as $i=>$v)
$variants[$i][$n] = $v;
$position = 1;
foreach($variants as $variant_id=>$variant)
{
if($variant->variant_id)
$query = sql_placeholder('INSERT INTO products_variants (product_id, variant_id, sku, name, price, discont, stock, position) VALUES (?, ?, ?, ?, ?, ?, ?, ?)',
$this->item->product_id, $variant_id, $variant['sku'], $variant['name'], $variant['price'], $variant['discont'], $variant['stock'], $position++);
else
$query = sql_placeholder('INSERT INTO products_variants (product_id, variant_id, sku, name, price, discont, stock, position) VALUES (?, NULL, ?, ?, ?, ?, ?, ?)',
$this->item->product_id, $variant['sku'], $variant['name'], $variant['price'], $variant['discont'], $variant['stock'], $position++);
$this->db->query($query);
}
}
В файле стиля /admin/simpla.css
меняем ширину в классах на эту
PHP код:
div.variant_name {
width:80px;
}
и это
PHP код:
div.variant_name input {
width:70px;
}

Link to post
Share on other sites

По админке готово, теперь для клиента
В файле Storefront.class.php
Меняем
PHP код:
// Если пользователь залогиен, применим сразу его скидку к ценам на товар
$discount=isset($this->user->discount)?$this->user->discount:0;
$query = sql_placeholder("SELECT products_variants.*,
products_variants.price*(100-$discount)/100 as discount_price,
products_variants.stock as stock,
products_variants.name as variant_name
FROM products_variants WHERE products_variants.product_id in (?@)
AND products_variants.stock>0 AND products_variants.price>0
ORDER BY products_variants.position", $ids);
На это
PHP код:
// Если пользователь залогиен, применим сразу его скидку к ценам на товар
$discount=isset($this->user->discount)?$this->user->discount:0;
$query = sql_placeholder("SELECT products_variants.*,
products_variants.price*(100-$discount)/100 as discount_price,
products_variants.discont as discont,
products_variants.stock as stock,
products_variants.name as variant_name
FROM products_variants WHERE products_variants.product_id in (?@)
AND products_variants.stock>0 AND products_variants.price>0
ORDER BY products_variants.position", $ids);
В файле темы style.css
добавить
PHP код:
.discontprise {
color:#F00;
}
В фале темы products.tpl


Продолжение 31-32 запись!!!

Если что то не получилось то задаём вопросы.
Работает так: в поле старая цена пишете старую цену, а в поле цена новую. Сделал именно так потому что так меньше кода менять.

Link to post
Share on other sites

респект вам Антон

как с вами можно связаться?
мне бы хотелось увидеть прайс-лист с ценами на те новые возможности что вы накодили для своих магазинов
я бы приобрел несколько)
если это возможно конечно, спасибо
juleswinnfield [@] hotmail.ru

Link to post
Share on other sites

присоединюсь к nigga с просьбой о прайсе))) ну и конечно если возможно по возможности с по символическим ценам получать или же если не в напряг то выкладывать прямо здесь

Link to post
Share on other sites

Добрый день, Антон.

Как с Вами связаться, интресуют дополнительные возможности, которые Вы реализовали у себя.

Отпишите, пожалуйста, на snobs(собака)list(точка)ru

Link to post
Share on other sites

Честно говоря всё что сделал теперь трудно вспомнить, с какими файлами работал и что менял.
То есть описать то что делал тоже самое что сделать заново.
Зачеркнутую цену просто решил на днях реализовать у себя, и сразу решил записать что делал.

Думаю могу описать ещё "задать вопрос по товару" приходат письма как в обратной связи с указанием товара
Тут были кривые ссылки на картинки ))
Тут были кривые ссылки на картинки ))

Ну ещё могу описать и картинки к брендам.

Link to post
Share on other sites

Да что ты говоришь, а я та думал. Может мне производитель данного скрипта его бесплатно подарит? Или программисты на меня бесплатно работать начнут. А я взамен уважать их буду, например!
Если ты не заметил выложил это бесплатно, и планирую ещё выкладывать. ))) Да и Вообще где я говорил про плату?

Link to post
Share on other sites

Небольшое дополнение. Если у нас разная цена в разных вариантах. И если тема на основе дефолтной то что бы изменялась старая цена при выборе разных вариантов надо поправить скрипт.

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

Link to post
Share on other sites

Антон, весь код что тут написан свободно можно использовать и для default темы и для euro темы?
или есть конкретные различия?

Link to post
Share on other sites

В любой теме. Пробуй поймешь. Всё зависит от стилей и от того как вставить. То дополнение на 2 сообщения выше это рабочий вариант для default. А я пользуюсь на основе euro так как у меня цена на варианты одинакова то вывод у меня очень простой, как в мануале.

Link to post
Share on other sites

картинки не кажет(
конечно подсказать, интересно как показать сколько рублей экономится
типа старая цена 500р, новая 200р, вы экономите 300р

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...