Cs-cart 3.х.х - 2 часть

Не смог найти нормального описания сортировки товара на сайте по наличию (все что наличие=0, убрать в конец списка), собрал инфу по кускам, вродь получилось. Может кому-то пригодится.

В файле fn.catalog.php, находящийся в директории core, находим
$sorting = array(
'position' => array('description' => fn_get_lang_var('default'), 'default_order' => 'asc'),
'product' => array('description' => fn_get_lang_var('name'), 'default_order' => 'asc'),
'price' => array('description' => fn_get_lang_var('price'), 'default_order' => 'asc'),
'popularity' => array('description' => fn_get_lang_var('popularity'), 'default_order' => 'desc')
);
и добавляем 'amount' => array('description' => fn_get_lang_var('amount'), 'default_order' => 'asc'), например между price и popularity.
Обязательно чистим кэш Для просмотра ссылки Войди или Зарегистрируйся

Заходим в админку, Настройки->Внешний вид-> ищем "Доступные способы сортировки списка товаров:" в выпадающем списке видим _sort_by_amount_asс (товар с остатком 0 с верху) и _sort_by_amount_desk (с остатком 0 в низу), отмечаем галкой то что нужно, в "Сортировка списка продуктов по умолчанию:" выбираем _sort_by_amount_desk, после этого все что с нулевым остатком уйдет в низ.
Для нормального отображения на сайте, в админке Администрирование->Языки->"Добавить языковую переменную", создаем переменные: первая "sort_by_amount_asс - Наличие: по убыванию" и вторая "sort_by_amount_desk - Наличие: по возрастанию".
 
Плохо что у темы нету закрепленной шапки, куда можно было бы писать ссылки на полезные вещи. Наверняка все затеряется когда нужно будет.
 
Плохо что у темы нету закрепленной шапки, куда можно было бы писать ссылки на полезные вещи. Наверняка все затеряется когда нужно будет.
Это - да, перекопать почти 250 страниц, в поисках полезной фишки, которую когда-то видел и применял, не самое удобное. Но так хоть где-то останется, в голове такое еще труднее держать. :) А так может еще кому-то пригодится

Кстати, может тоже пригодится кому-то. Идея возникла после мороки с "Артикулом", который у разных поставщиков свой, иногда дублируется, с пробелами, дефисами и т.д. Решил, что артикул нужен само собой, но нужен код товара и самый удобный вариант - цифры, да что-бы уникальные, и сами генерировались.
1. Посмотрел в базе mySQL, в таблице Для просмотра ссылки Войди или Зарегистрируйся есть есть столбик "product_id" который автоинкриментный, циферный - то что нужно. Взял свой прайс порядка 30 000 позиций, убил и опять залил, так пару раз (вообще идеально делать на чистом движке, погонять прайс, что бы значения product_id дошли до 6-значных). Открываем skins/название_темплейта/customer/blocks/product_templates/default_template.tpl - файл отвечающий за описание товара, и добавляем в желаемоее место
{if $product.product_id}<p class="product_id"><span>{$lang.product_id}:&nbsp;<span>{$product.product_id}</span></span></p>{/if}[/spoil] этот запрос вытащит порядковый номер товара из базы и покажет его на странице товара . Что бы выводилось не только в товаре а и в каталоге, то добавляем эту строку в файлы grid_list.tpl (стиль каталога плиткой) и products_list.tpl (стиль каталога списком), в style.css создаем .product_id {} и там разрисовываем, назначаем стили. В админке Администрирование->Языки->"Добавить языковую переменную", создаем переменные: "product_id - Код товара:" (чистим кэш!). Теперь у каждого нового товара, автоматически свой код
2. Теперь нужно, что бы поиск искал товар по нашим кодам на сайте: в файле fn.catalog.php в директории core
[spoil]находим строку $tmp = db_quote("(descr1.search_words LIKE ?l)", "%$piece%"); и после неё вставляем строку if ($params['pname'] == 'Y') {$tmp .= db_quote(" OR products.product_id LIKE ?l", "$piece");}
обновляем кэш! Все готово.
Может кому-то покажется, что сильно разжовываю, но я не часто бываю на форуме, и врядли смогу быстро отвечать на вопросы, а так начинающему может поможет, я сам гавнокодер еще тот, все что делаю, собираю по кускам на разных форумах.

Кто как обновляет большое количество товаров на своем сайте. У меня скрипт импорта товаров не успевает отработать при 1600 товарах в файле. А что будет когда их будет более 10К? Так же и при экспорте товаров может не успеть отработать.
Увеличивать мощность сервера пока не хочется. Разбивать файл в ручную на более мелкие - тоже не комильфо, если надо раз в 2 дня делать обновление.
Как быть?
У меня на сайте порядка 50К товаров, за раз максимум гоняю 30-32К, занимает 5-7минут.
В config.local.php @ini_set('memory_limit', '1024M'); и @set_time_limit(7200); вот настройки php не помню, но что-то менял, точно помню max_file_uploads=20М, хостер-немец (16-ОЗУ, xeon-8ядер, HDD-не помню) цена вопроса 59евро/мес.

У меня хостинг за 10$ в месяц, товаров 10к, обновляется за минуту.
Я не хвастовства ради и не для рекламы, так получилось что мой друг арендует такое чудо, а я к нему на хвост упал. До этого у меня был хостинг 50$ год, там сколько-то процессорного времени давалось, на сайте прайс вырос из 1К до 30К, людей стало на сайте по 10-15чел - одновременно тусоваться, нагрузка у хостера стала вдвое превышать моего положенного процессорного времени, и он меня пару раз загонял на "штаф-площадку", не более 3-х одновременных подключений к базе. А через некоторое время, я больше чем 1,5К- не мог втянуть (у меня еще на 3,0, на неё грешу, что тормознутая). Сейчас 20-25 чел на сайте одновременно, менеджера гоняют прайсы по несколько раз на день (остатки и цены) и постоянное наполнение новыми товарами.
 
Последнее редактирование модератором:
У меня хостинг за 10$ в месяц, товаров 10к, обновляется за минуту.
 
У меня на сайте порядка 50К товаров, за раз максимум гоняю 30-32К, занимает 5-7минут.
В config.local.php @ini_set('memory_limit', '1024M'); и @set_time_limit(7200); вот настройки php не помню, но что-то менял, точно помню max_file_uploads=20М, хостер-немец (16-ОЗУ, xeon-8ядер, HDD-не помню) цена вопроса 59евро/мес.
Там такие строки
Код:
// Set maximum memory limit
if (PHP_INT_SIZE == 4 && (substr(ini_get('memory_limit'), 0, -1) < "48")) {
  // 32bit PHP
  @ini_set('memory_limit', '48M');
} elseif (PHP_INT_SIZE == 8 && (substr(ini_get('memory_limit'), 0, -1) < "256")) {
  // 64bit PHP
  @ini_set('memory_limit', '256M');
}
Где конкретно заменить memory_limit? Вообще на что это влияет. Я так понимаю на время выполнения влияет @set_time_limit(7200); ?

Заметил странную штуку. Ставлю вывод товара на странице в админке 200 шт. Если выделить товаров примерно 150 и нажать экспортировать выделенные - экспортируется ок! Если выбрать 190-200 и нажать Экспортировать выделенные - сраница просто перезагружается и экспорта нет. В чем дело? Может нужно настройки в магазе сделать какие?
 
Последнее редактирование модератором:
Там такие строки
Код:
// Set maximum memory limit
if (PHP_INT_SIZE == 4 && (substr(ini_get('memory_limit'), 0, -1) < "48")) {
  // 32bit PHP
  @ini_set('memory_limit', '48M');
} elseif (PHP_INT_SIZE == 8 && (substr(ini_get('memory_limit'), 0, -1) < "256")) {
  // 64bit PHP
  @ini_set('memory_limit', '256M');
}
Где конкретно заменить memory_limit? Вообще на что это влияет. Я так понимаю на время выполнения влияет @set_time_limit(7200); ?
У меня вот так,
// Set maximum memory limit
if (PHP_INT_SIZE == 4 && (substr(ini_get('memory_limit'), 0, -1) < "128")) {
// 32bit PHP
@ini_set('memory_limit', '128M');
} elseif (PHP_INT_SIZE == 8 && (substr(ini_get('memory_limit'), 0, -1) < "1024")) {
// 64bit PHP
@ini_set('memory_limit', '1024M');
}

// Set maximum time limit for script execution
@set_time_limit(7200);
[/spoil]
"memory_limit" - что-то типа оперативной памяти для движка (кол-во памяти для выполнения скриптов),"set_time_limit"- макс время на выполнение скрипта, на сколько я понял.
Но "memory_limit"- мне кажется должна быть не больше кол-ва памяти, которую выделяет хостер. Иногда возникаю проблемы типа "Allowed memory"глянь сюда
[spoil]Для просмотра ссылки Войди или Зарегистрируйся
 
red_lin
При чем тут хвастовство, я просто по хостингам прыгал очень часто из за такого геморроя, у меня было 15к товаров и по 30 чел онлайн, приходишь на хостинг он тебя полностью у страивает, заплатил, посидел месяц - закрывают призывая перейти на впс. Все зависит от того насколько честный хостинг, одни дают нормальные условия а потом когда наберут базу клиентов начинают закручивать гайки т.к. у них 99% клиентов это интернет странички и такие магазины им нафиг не сдались. Вот пока сижу на хостинге где меня все устраивает и за последние 8 месяцев подвижек к худшему не было, только плюсы, добавили в два раза больше дискового пространства.
 
red_lin
При чем тут хвастовство, я просто по хостингам прыгал очень часто из за такого геморроя, у меня было 15к товаров и по 30 чел онлайн, приходишь на хостинг он тебя полностью у страивает, заплатил, посидел месяц - закрывают призывая перейти на впс. Все зависит от того насколько честный хостинг, одни дают нормальные условия а потом когда наберут базу клиентов начинают закручивать гайки т.к. у них 99% клиентов это интернет странички и такие магазины им нафиг не сдались. Вот пока сижу на хостинге где меня все устраивает и за последние 8 месяцев подвижек к худшему не было, только плюсы, добавили в два раза больше дискового пространства.
Согласен, ВПС дороговасто, да и не всегда нужен, но поверьте, когда вас хостер тушит на неделю (3 подключения к базе), то потери в финансовом плане, могут быть намного существенней. Очень обидно когда пришел на роботу, понедельник, и пытаешся понять, почему так все плохо, звонишь в техподдержку, а вам заявляют, что вы вдвое перелемитили процессорное время, которое выделенно согласно тарифному плану. Переезд на другой хостинг - минимум день (почти 2Гб-база, 3,5Гб-сайт, то рукожопый менеджер картинки с кириличными иманами оставил, а их побило при переносе "╨Я╨╗╨░╨╜╤И╨╡╤В_Assistant_AP-712.jpg"-типа так и в добавок база бекапится не хочет), а это минимум 350$ потерь (оплата 3 лет хостинга по 10$/мес). В добавок у меня хостятся пару сайтов знакомых, а хостер ограничения ставит не на сайт, а на учетку, так что потерпают все.
Мое мнеие, если проект в стадии startup, то конечно лучше использовать недорогие тарифные планы, но рано или поздно, когда проект вырастет, все равно прейдется раскошелиться на что-то могучее.
 
Кто подскажет... как в основном горизонтальном меню написать пункт меню в две строки?Тег <br> в названии категории не переносит на вторую сроку...
 
а модули Яндекс.Метрики и Гугл аналистика с отчетом о продажах и експортом товаров?
 
Назад
Сверху