Ergo
-
Content Count
6 -
Joined
-
Last visited
Posts posted by Ergo
-
-
Вдогонку сопутствующий вопрос - как показывать цену на странице товара, даже если товар кончился?
В этом случае $product->variants перестает содержать данные - в том числе и цену при выводе данных в product.tpl и product_block.tpl
Где это в коде логичнее поправить?
-
При принятии админом заказа, кол-во товара, что в этом заказе, автоматически уменьшается в базе магазина.
Подскажите пожалуйста - в каком месте кода это делается.
Есть нужда иметь возможность отключить эту опцию.
-
по другому сделал в api/Products.php
добавил в запрос сразу задание сортировки через доп. запрос:
case 'position': $order = '(SELECT IF(pv.stock>0,1,0) FROM __variants pv WHERE p.id = pv.product_id LIMIT 1) DESC, p.position ASC'; //$order = 'p.position ASC'; break;
админку это не портит
-
покопался сам.
прайс загружается через файлик /simpla/ajax/import.php
в принципе если в нем исправить значение количества товаров за один проход
private $products_count = 10;
то можно просто его и вызывать крономно поскольку мне нужно было еще проверять дату и забирать прайс я набросал небольшой скриптик на php, который решает нужную мне задачу.
если кому нужно - пожалуста пользуйтесь
<?php /* Модуль автоматического обновления прайса. проверяет нового прайса по ftp и при обнаружении оного - закачивает его в магазин файл зовется import_auto.php и живет в директории /simpla/ajax/ вызывается через крон (каждый час) в урле должна быть авторизация 0 * * * * wget -O /dev/null http://admin:admin@site_doamin1.ru/simpla/ajax/import_auto.php */ // установка времени жизни скрипта set_time_limit(180); // скачка файла по ftp $ftp_server = "8.8.8.8"; //адрес $ftp_dir = "/"; $ftp_user_name = "login"; $ftp_user_pass = "pass"; $ftp_file_price = "price.csv"; $root_path = $_SERVER['DOCUMENT_ROOT']; $loc_dir = $root_path."/simpla/files/import"; $loc_file_price = "import.csv"; // установка соединения $conn_id = ftp_connect($ftp_server, 21); $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); ftp_pasv($conn_id, true); // проверям наличие файла прайса и берем его дату $ftp_file_time = ftp_mdtm($conn_id, "$ftp_dir/$ftp_file_price"); if( $ftp_file_time < 0 ) { print("ERROR: File $file_name Not Found in FTP"); exit; } // если прайс еще старый - не суетимся if( $ftp_file_time <= filemtime("$loc_dir/$ftp_file_price") ) { print("INFO: price old\n"); exit; } // забираем прайс if (!ftp_get($conn_id, "$loc_dir/$ftp_file_price", "$ftp_dir/$ftp_file_price", FTP_BINARY)) { print("ERROR: File $ftp_file_price NOT copy from from FTP"); } // Конвертируем файл из WIN1251 в UFT8 $source = "$loc_dir/$ftp_file_price"; $dest = "$loc_dir/$ftp_file_price".".utf8"; if(!$src = fopen($source, "r")) return false; if(!$dst = fopen($dest, "w")) return false; while (($line = fgets($src, 4096)) !== false) { $line = @iconv('windows-1251', 'UTF-8', $line); fwrite($dst, $line); } fclose($src); fclose($dst); if (!rename($dest, "$loc_dir/$loc_file_price")) { print("ERROR: File $loc_file_price NOT convert/rename"); } // загрузка прайса в базу $chain_end = false; $chain_from = 0; while (!$chain_end and $i<1000) { $_GET['from'] = $chain_from; ob_start(); require_once('import.php'); ob_end_clean(); print("$chain_from from $chain_size ($chain_end) - ok\n"); $chain = $import_ajax->import(); $chain_from = $chain->{'from'}; $chain_size = $chain->{'totalsize'}; $chain_end = $chain->{'end'}; $i++; ob_flush(); } print("OK: Price update! (size: $chain_size)"); ?> ok
-
В симпле прекрасно реализована загрузка прайса в CSV через админку.
Подскажите пожалуйста, как автоматизировать ежедневный процесс обновления прайса, если автообновляемый CSV-файл доступен по некому урл-адресу типа http://domain.ru/price.cvs
Т.е. нужен скрипт который заберет файл и зальёт его в симплу через страницу "импорт товаров" автоматически.
а сам это скрипт вызывался бы по cron
Обновление количество товара при принятии заказа
in Общие вопросы по функционалу и дизайну
Posted
Kors, вы мой кумир!
Благодарю!