Очень надо изменить одно свойство

Статус
В этой теме нельзя размещать новые ответы.

Pickles

Постоялец
Регистрация
18 Июн 2008
Сообщения
56
Реакции
8
Здравствуйте всем!

История. У меня в csv файле в колонке "На складе" формируется не числа, а слова типа
"нет", "заканчивается", "много", и "очень много", в зависимости от количества. в 1С это делалось для того, чтоб для разных групп товара формировалось свое значение. Например: 1 товар очень дорогой и много его никогда не бывает и люди больше 1-2 не берут, поэтому для него условие "если < 5, то заканчивается".
В тоже время для другого, дешевого, товара, где кол-во в наличии может быть и 10000 и его берут минимум 30, то условие для него "если < 100, то заканчивается".
Ну в общем условия везде разные.

В общем подскажите как сделать так, чтоб шоп напрямую отображал содержимое поля "На складе" на сайте в том же самом месте, без всяких своих обработок шопа.

*обычно сам разбираюсь, но тут не получилось, потому что мало времени.. :(
 
а какие у него "свои обработки"?
 
Ну например если в csv файле в поле "На складе" написано 0, то на сайте выводит что
"Наличие на складе: нет", если 5, то "Наличие на складе: 5", а если в поле "На складе" написано любое слово (а мне как раз надо слово), то все= написано "нет".

Мне надо на прямую выводить содержимое ячейки поля "На складе".
 
вот решение:

найди в базе SQL SS_products поле in_stock зайди в режим редактирования и измени на Тип - TEXT и сохрани.

Дале в админке в Настройка-Каталог поставь галку Показывать пользователям точный остаток товаров на складе
и в Корзина и оформление заказов галку убери на Вести учет товаров на складе

Далее найди в product_detailed.tpl.html

PHP:
{* in stock info *}
						{if $smarty.const.CONF_CHECKSTOCK == '1'}
							{$smarty.const.IN_STOCK}: 
							<b>
							{if $product_info.in_stock > 0}
								{if $smarty.const.CONF_EXACT_PRODUCT_BALANCE}
									{$product_info.in_stock}
								{else}
									{$smarty.const.ANSWER_YES}
								{/if}
							{else}

вместо 1 поставь 0 и и далее в этом же участке кода

PHP:
{if $product_info.in_stock > 0}
								{if $smarty.const.CONF_EXACT_PRODUCT_BALANCE}
									{$product_info.in_stock}
								{else}
									{$smarty.const.ANSWER_YES}
								{/if}
убери
PHP:
 > 0
сохрани. Вроде все. Только сделай бэкап всех файлов.. и проверь заказы несколько раз, что б все приходило. Если надо еще, где вывести количество товаров то напиши... переделаем.. ОБЕЗАТЕЛЬНО СДЕЛАЙ БЭКАП ВСЕГО!!!!!!
 
Caurus как всегда порвал шоп на немецкий флаг :)
маладца!
 
немецкий флаг это хорошо... только проверьте, пожалуйста, что б все работало...и заказы и т.д. В основном заказы. Просто я не проверял до конечного пункта...и вдруг где косяки вылезут из за этого... Хотя если выключена Вести учет товаров на складе то SS вообще не волнует данные о том, сколько и чего осталось!!!!!
 
Так можно же легче сделать(если я правильно понял вопрос) из админ.части
настройи=>каталог и там убери галку с пункта Показывать пользователям точный остаток товаров на складе:
 
дело в том, что ему надо, что б было написано "нет", "заканчивается", "много", и "очень много" а так этого не сделать...но это если я правильно понял... Я сделал, а там дело его надо ему или нет! Все бесплатно, так что, какая разница! Может, кому потом понадобиться! ;)
 
Все очень надо! Спасибо что помогаете!
Все сделал, но пока ничего не выходит. При импортировании csv файла в базе SQL SS_products в поле in_stock все значения 0. Там видно еще какие - то проверки идут при импортировании файла.
А в детальной информации все= высвечивается нет.

Но если в таблицу вручную вбить например " Заканчивается", то все отображается. Значит действительно где-то в импорте проверка стоит.

Все галочки поснимал, product_detailed.tpl.html изменил.
 
Я не делал проверку на это... сейчас займусь!!!!

Уфффф… ну еле получилось…хвостов куча….

Значит так!!!! САМОЕ ГЛАВНОЕ СДЕЛАТЬ БЭКАП ФАЙЛОВ, КОТОРЫЕ РЕДАКТИРУЕМ И БАЗЫ ТОВАРОВ В НЕСКОЛЬКИХ ВАРИАНТАХ (SQL, CSV) ЧТО Б МОЖНО БЫЛО ВОСТАНОВИТЬ ЕСЛИ ЧТО.

ДАЛЕЕ НАМ НЕОБХОДИМО ОЧИСТИТЬ ВСЮ БАЗУ ОТ ТОВАРОВ ИНАЧЕ РАБОТАТЬ НЕ БУДЕТ. ДЕЛАЕМ ЭТО СЛЕДУЮЩИМ ОБРАЗОМ ЗАХОДИ В Каталог-Импорт товаров из CSV (Excel / 1С) СТАВИМ ТОЧКУ НА Очистить базу, И ТЫКАЕМ ОК!!!!

ДАЛЕЕ ПО ПОРЯДКУ!!!!

1) Находим core_functions\catalog_import_functions.php в нем ищем в самом низу

PHP:
else // add new product
	{
		$Price						= 0.0;
		$list_price 				= 0.0;
		$sort_order 				= 0;
		$in_stock					= 0;
		$eproduct_filename			= "";
		$eproduct_available_days	= 0;
		$eproduct_download_times	= 0;
		$weight						= 0.0;
		$free_shipping				= 0;
		$min_order_amount			= 1;
		$shipping_freight			= 0.0;
		$tax						= CONF_DEFAULT_TAX_CLASS;


Заменяем в $in_stock 0 на ""

2) Ниже находим

PHP:
$ProductIsProgram   = trim($row[$dbc["eproduct_filename"]]) != "";
		$productID = AddProduct(
				$currentCategoryID, $row[ $dbc["name"] ], $Price, $row[ $dbc["description"] ], 
			    $in_stock, 
				$row[ $dbc["brief_description"] ], $list_price,
			    $row[ $dbc["product_code"] ], $sort_order,
				$ProductIsProgram, "",
				$eproduct_available_days, $eproduct_download_times, 
				$weight, $row[$dbc["meta_description"]], $row[$dbc["meta_keywords"]], 
				$free_shipping, $min_order_amount, $shipping_freight, 
				$tax, 0 );

Заменяем $in_stock на $row[ $dbc["in_stock"] ]

СОХРАНИЕМ!!!

3) Находим products.php в корне там участок

PHP:
<?php
	if ($product["in_stock"]<0) $is = 0;
	else $is = $product["in_stock"];
	if (CONF_CHECKSTOCK == 1) {
?>
	<tr>
	<td align=right><?php echo ADMIN_PRODUCT_INSTOCK;?>:</td>
	<td><input type="text" name="in_stock" value="<?php echo $is;?>"></td>
	</tr>
<?php } else { ?>
	<input type=hidden name="in_stock" value="<?php echo $is;?>">
<?php } ?>

В нем меняем if (CONF_CHECKSTOCK == 0) с 0 на 1

4) Находим в templates\backend\catalog_products_categories.tpl.html

PHP:
{if $smarty.const.CONF_CHECKSTOCK eq 1}
				<td align=right>
					<input type=text name=left_{$products[i].productID} 
						size=5 
						value="{$products[i].in_stock}">
					{if $products[i].in_stock < 0}
						<font color=red>
							({$smarty.const.ADMIN_INSUFFICIENT_IN_STOCK})						</font>
					{/if}				</td>
				{/if}

Меняем в {if $smarty.const.CONF_CHECKSTOCK eq 1} с 1 на 0


ГОТОВО!!!!! ВСЕМ УРА, СПАСИБО ЗА ВНИМАНИЕ!!!!!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху