Jump to content

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


Recommended Posts

В базе в вариантах товара создаем колонку 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

Link to post
Share on other sites
  • 1 month later...

Если кому нужно, на главной странице написано «В корзину», в файле 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}

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

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

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

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

Link to post
Share on other sites

сорри.

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

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

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

Link to post
Share on other sites

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

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

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

{$settings->units}

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

{if $pod_zakaz}checked{/if}

после строки

{$settings->units}

вставляем


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

Link to post
Share on other sites

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

После этого в своем дизайне вместо кнопки купить в файлах 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}
Link to post
Share on other sites

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

Link to post
Share on other sites
  • 2 weeks later...

спасибо, решил еще до того как ты запостил, по другому.
делал для product.tpl. правка в файле ProductView.php
в строке 

$variants = $this->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true));

удалил 

, 'in_stock'=>true
Link to post
Share on other sites
  • 2 months later...

Это разные решения, кому-то конечно и вашего достаточно, но у нас необходимо четко указывать что есть в наличии, а чего нет.

Link to post
Share on other sites
  • 5 months later...
×
×
  • Create New...