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...

сорри.

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

Но ведь у товара может быть несколько вариантов (к примеру, один вариант - в наличии, второй вариант - под заказ). И соответственно, всё равно кнопка будет "под заказ", но надо чтобы на витрине кнопка была не "под заказ", а как обычно. И справа от варианта товара выводить надпись "под заказ". Вот как в этом примере - 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...

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...