Перейти к содержанию
Официальный форум поддержки Simpla

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


Рекомендуемые сообщения

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

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

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

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

Ссылка на сообщение
Поделиться на другие сайты
  • 3 недели спустя...

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

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

Ссылка на сообщение
Поделиться на другие сайты

сорри.

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...

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

{$settings->units}

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

{if $pod_zakaz}checked{/if}

после строки

{$settings->units}

вставляем


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

Ссылка на сообщение
Поделиться на другие сайты

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

После этого в своем дизайне вместо кнопки купить в файлах 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}
Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

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

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

удалил 

, 'in_stock'=>true
Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...

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

Ссылка на сообщение
Поделиться на другие сайты
  • 5 месяцев спустя...

Ребята поясните пож-та "В базе в вариантах товара создаем колонку pod_zakaz (тиниинт в 1 цифру, 0 по дефолту" , что понимается под базой?

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...