avatar

Товар со статусом под заказ

Опубликовал в блог Дополнения и модули для Simpla CMS
0


делаем запрос в бд
ALTER TABLE `s_variants` ADD `pod_zakaz` tinyint(1) DEFAULT NULL;

Дальше идем в api/Variants.php ищем там
v.position

и после вставляем
, v.pod_zakaz

далее ищем v.attachment, и после него вставляем
, v.pod_zakaz

Дальше идем в /simpla/ProductAdmin.php ищем строку
// Удалить файл

и перед ней вставляем
if(!isset($variant->pod_zakaz) || empty($variant->pod_zakaz))
$variant->pod_zakaz = 0;

Теперь идем simpla/design/html/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][]" 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}

далее в yandex.php ищем в строке
v.name AS variant_name,

и после вставляем:
v.pod_zakaz as variant_pod_zakaz,

дальше в этом же файле ищем строку
$price = round($simpla->money->convert($p->price, $main_currency->id, false),2);

и заменяем на
$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);

дальше чуть ниже ищем
<offer id='$p->variant_id' available='true'>

и заменяем на
<offer id='$p->variant_id' available='$available'>

Готово!
работает на 2.3.6 демо — clim-shop.ru/yandex.xml
4 комментария RSS
avatar
Здравствуйте, делал по вашей инструкции пошагово и вдруг бац: «Отображение в карточке товара на сайте я сделаю как нибудь так: ...» ну вы то понятно как нибудь так и сделаете. А мы то куда этот код должны вставить, нам то подробности нужны, уточните пожалуйста для ниразу непрограммистов
avatar
Добрый день. Подскажите пожалуйста с «Отображение в карточке товара» не понятно где именно это править, product.tpl пытался по смыслу править не получается
И в инструкции не точность в последнем шаге дальше чуть ниже (примерно 91 строка) ищем:
Нет строчки которую заменяем но тут вроде можно произвести замену по смыслу
Я пропустил шаг с отображением в карточке, чек бокс появился но при сохранении в админки он слетает
Помогите пожалуйста
avatar
Спасибо. Отправил немного денег, что смог…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.