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


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

Товары под заказ


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

#1 rand

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

Опубликовано 17.01.2012 - 13:50

В базе в вариантах товара создаем колонку pod_zakaz (тиниинт в 1 цифру, 0 по дефолту).

В Variants.php находим строки

$query = $this->db->placehold("SELECT v.id, v.product_id , v.price, v.compare_price, v.sku, IFNULL(v.stock, ?) as stock, (v.stock IS NULL) as infinity, v.name, v.attachment, v.position
$query = $this->db->placehold("SELECT v.id, v.product_id , v.price, v.compare_price, v.sku, IFNULL(v.stock, ?) as stock, (v.stock IS NULL) as infinity, v.name, v.attachment

В конец (после того что тут скопировано) обоих добавляем

, v.pod_zakaz

В ProductAdmin.php находим строки (116):

if($variant->stock == '?' || $variant->stock == '')
$variant->stock = null; 

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

if(!isset($variant->pod_zakaz) || empty($variant->pod_zakaz))
$variant->pod_zakaz = 0;

Теперь идем в симпла/дизайн/product.tpl и после строки:

<li class="variant_amount">Кол-во</li>

вставляем

<li class="variant_pod_zakaz">Под заказ?</li>

после строки

<li class="variant_amount"> <input name="variants[stock][{$variant->id}]" type="text" value="{if $variant->infinity || $variant->stock == ''}?{else}{$variant->stock|escape}{/if}" />{$settings->units}</li> 

вставляем строку

<li class="variant_pod_zakaz"> <input name="variants[pod_zakaz][{$variant->id}]" type="checkbox" value="1" {if $variant->pod_zakaz}checked{/if}/></li> 

после строки

<li class="variant_amount"><input name="variants[stock][]" type="" value="?" />{$settings->units}</li> 

вставляем

<li class="variant_pod_zakaz"><input name="variants[pod_zakaz][]" type="checkbox" value="1" /></li>

После этого в своем дизайне вместо кнопки купить в файлах product.tpl и products.tpl вставляете такую конструкцию:

{$productinstock = 0}
{foreach $product->variants as $v}
{if $v->pod_zakaz == 1}{$productinstock = 1}{/if}
{/foreach}
{if $productinstock != 0}<input type="submit" class="buy" value="заказать" />{else}<input type="submit" class="buy" value="купить" />{/if}

После этого идете в файл cart.tpl и добавляете туда после названия товара что бы в итоге выглядело примерно так:

{* Название товара *}
<td class="name">
<a href="products/{$purchase->product->url}">{$purchase->product->brand|escape} {$purchase->product->name|escape}</a> ({$purchase->variant->stock})
{$purchase->variant->name|escape}
{if $purchase->variant->pod_zakaz == 1}<br /><span class="for_shipment">на заказ</span>{/if}
</td> 

После этого идете в yandex.php в корне вашего сайта и меняете строку:

$simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, p.url, p.annotation, pc.category_id, i.filename as image

на

$simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.pod_zakaz as variant_pod_zakaz, p.url, p.annotation, pc.category_id, i.filename as image

а также меняете конструкцию на следующую:

foreach($simpla->db->results() as $p)
{
$available = 'true';
if ($p->variant_pod_zakaz == 0) {
$available = 'true';
} else {
$available = 'false';
}
$price = round($simpla->money->convert($p->price, $main_currency->id, false),2);
print
"
<offer id='$p->variant_id' available='$available'>
<url>".$simpla->config->root_url.'/products/'.$p->url.'?variant='.$p->variant_id."</url>";

После этого все должно заработать.
И проблемы с яндексом хотябы по этому поводу исчезнут.


Благодарить можно сюда (Webmoney):
R389929297339
Z727712527188
E108127505699



#2 135

135
  • Забаненый
  • 55 сообщений

Опубликовано 18.01.2012 - 07:37

Я не в курсе, что такое
R389929297339
Z727712527188
E108127505699
так что поблагодарю здесь.
Благодарю.



#3 pruffpruff

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

Опубликовано 18.01.2012 - 08:46

это для какой версии писалось?



#4 rand

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

Опубликовано 18.01.2012 - 12:37

Работает на 2.0
В 2.0.2 работает.

2_135
это кошельки :)



#5 arsko

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

Опубликовано 27.02.2012 - 16:50

Если кому нужно, на главной странице написано «В корзину», в файле main.tpl так же вставить:

В поле где {* Название товара *}

product->url}»>{$purchase->product->brand|escape} {$purchase->product->name|escape} ({$purchase->variant->stock})
{$purchase->variant->name|escape}
{if $purchase->variant->pod_zakaz == 1}на заказ{/if}

И все поменяется как нужно.



#6 spyke

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

Опубликовано 20.03.2012 - 10:47

А можно посмотреть как это реализовано на примере? Выложите скриншот, если можно.



#7 temp1999

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

Опубликовано 22.03.2012 - 13:49

Товарсчи, не работает данный функционал (товары под заказ) на симлпе 2.1.0 !!
На ранних версиях симплы не пробовал...

Помогите решить проблему!!!



#8 arsko

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

Опубликовано 22.03.2012 - 23:25

temp1999 вы наверно думаете здесь телепаты сидят? Хоть намекните на проблему!



#9 temp1999

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

Опубликовано 23.03.2012 - 07:46

сорри.

сейчас реализовано как - если в варианте товара поставлена галочка "под заказ" - то на витрине выводиться кнопка "под заказ".

Но ведь у товара может быть несколько вариантов (к примеру, один вариант - в наличии, второй вариант - под заказ). И соответственно, всё равно кнопка будет "под заказ", но надо чтобы на витрине кнопка была не "под заказ", а как обычно. И справа от варианта товара выводить надпись "под заказ". Вот как в этом примере - http://rghost.net/37178103/image.png

Очень жду, спасибо!



#10 temp1999

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

Опубликовано 24.03.2012 - 01:37

Товарисчи, помогите с вопросом выше!



#11 temp1999

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

Опубликовано 26.03.2012 - 10:26

Помогите хотябы за $$



#12 fluor

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

Опубликовано 30.03.2012 - 03:51

тоже интересует этот момент



#13 Kpoxa

Kpoxa
  • Пользователь
  • 639 сообщений
  • Версия CMS:2.x
  • Откуда:Украина

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

Хотелось бы чтоб отмеченный товар "Под заказ" передавался в форму обратной связи, вывести кнопку могу для открытия контактов я то могу, а вот как передать в форму контактов данные о товаре? Помогите знающие люди!!!



#14 Danya

Danya
  • Фрилансер
  • 908 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x

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

тоже интересен данный функционал



#15 yoshkin

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

Опубликовано 01.05.2012 - 03:59

Теперь идем в симпла/дизайн/product.tpl и после строки:
Кол-во
вставляем
Под заказ?
после строки

{$settings->units}

вставляем строку

{if $pod_zakaz}checked{/if}

после строки

{$settings->units}

вставляем


ВОТ про эту часть можно поподробнее? что добавить в шаблоне админки?



#16 yoshkin

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

Опубликовано 01.05.2012 - 04:22

С предыдущим вопросом разобрался, но пока не понял, как быть с этой конструкцией?

После этого в своем дизайне вместо кнопки купить в файлах product.tpl и products.tpl вставляете такую конструкцию:

{$productinstock = 0}
{foreach $product->variants as $v}
{if $v->pod_zakaz == 1}{$productinstock = 1}{/if}
{/foreach}
{if $productinstock != 0}{else}{/if}


#17 Kosjak76

Kosjak76
  • Модератор
  • 3 771 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 01.05.2012 - 04:43

Здесь выкинуты ХТМЛ-теги)



#18 yoshkin

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

Опубликовано 01.05.2012 - 06:29

Вот я бы и хотел бы увидеть реально работающий пример с ними, а уж под свой шаблон переделать недолго)
Никто не поделится?



#19 wspirit

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

Опубликовано 14.05.2012 - 03:03

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



#20 mickt

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

Опубликовано 14.05.2012 - 03:29

http://forum.simplac...hestve-#Item_12 это имели ввиду?






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

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