+380(66)433-69-36 | |
+380(66)433-69-36 | |
+380(66)433-69-36 |
- BitLocker с GUI под linux
- Ищем вирус elTest
- Работаем с бесплатным SSL сертификатом Letsencrypt с помощью certbot
- Синхронизация ресурсов с удаленного сервера локально
- Применение нестандартного SEO и статус 404
- MySQL синхронизируем права с разных серверов
- IPSec VPN соединение между офисами.
- "Зеркало" сайта на стороне. Донастраиваем nginx
- Дефрагментация таблиц всех баз MySQL
- Месяц в родительном падеже strftime PHP
- INIT скрипт для Dropbox
- osCommerce VAM Edition 226. Ошибки
- PositiveSSL порядок сертификатов
- osCommerce. Создаем модуль доставки
- Восстановление mySQL баз данных
- osCommerce.Перенос магазина в другой домен
- osCommerce.Прячем адмику
- osCommerce. Продление жизни сессий
- osCommerce. Создаем платежный модуль
- 10 причин выбрать нас
- GRUB2 восстановление
- osCommerce не пересчитывает общую сумму заказа
- Список потенциально опасных скриптов
- Отправка файлов из Dropbox по e-mail
- "Черный список" почтовых доменов
- Боремся с назойливыми иностранцами
- Яндекс-Диск, и стоит ли им пользоваться.
- Обновление модуля Интеркассы для osCommerce
- Веб-почта на сайте хостинга
- Подключение Outlook Express к хостингу
osCommerce. Массовое обновление цен
( 0 Votes )
Предлагается код, которые позволяет администратору в обход EasyPopulate обновить цены в магазине на основе Идентификаторов товаров.
Как работает:
Для обновления цен нужно проделать несколько операций:
1. Выгрузить к себе файл с текущими ценами магазина (Админ-Excel import/export). Нажать экспортировать и сохранить полученный файл.
2. Открыть полученный файл в Excel.
3. Для каждого из продуктов скорректировать цену (колонка Y).
4. Удалить все лишние колонки кроме первой (v_products_id и v_products_price)
5. Установить для значений колонки v_products_price формат: числовой 2 знака после запятой.
6. Сохранить файл как CSV (DOS).
7. Переходим к обновлению цен. Идем в меню Каталог - Обновление цен
8. Выбираем полученный файл. Нажимаем "обновить"
9. Ждем результат. При корректном обновлении будет выдан список идентификаторов товара (первая колонка) и их новая цена (вторая колонка исходного файла).
Обновление закончено.
Для чего все это так страшно делается. Дело в том, что файл экспорта товаров содержит ряд вспомагательной информации, по которой легче идентифицировать товар. Для обновления цен достаточно файла следующего формата:
Идентификатор;цена
т.е. в каждой строке должны находится идентификатор товара и его цена, разделенные точкой с запятой. Если Вы можете сформировать подобный файл из другой системы - это даже лучше. Главное, чтобы Вы не ошиблись в ценах. Как вариант, если асортимент товаров не претерпевает изменений - можно один раз экспортировать себе файл, удалить из него все лишнее, переставить колонки таким образом, чтобы было удобнее.(v_products_id,v_products_price все остальное). Впоследствии этот файл редактируется, из него удаляются все остальные незначащие колонки и сохраняется, как описано выше.
Содержимое файла в админку будет ниже под тизером.
Как подключить все в админку:
1. создать файл в каталоге admin\update_price.php
2. Правим admin\includes\boxes\catalog.php. После строки
tep_admin_files_boxes(FILENAME_PRODUCTS_EXPECTED, BOX_CATALOG_PRODUCTS_EXPECTED).
добавляем:
tep_admin_files_boxes('update_price.php', 'Обновление цен').
3. Устанавливаем разрешение на файл в админ панели:
Администраторы-Права доступа-Каталог. Жмем "Добавить файлы" в меню справа выделяем update_price.php и говорим сохранить.
Все.
Можно обновлять любое количество цен для СУЩЕСТВУЮЩИХ товаров.
Формат строки для файла как описывалось выше: в каждой строке Идентификатор товара и его НОВАЯ цена.
Добавлять товары в магазин нельзя - он предназначен ТОЛЬКО для обновления цен. Для добавления используйте EasyPopulate.
========== Start update_price.php=======================
<?php
require('includes/application_top.php');
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="/includes/stylesheet.css">
<script language="javascript" src="/includes/menu.js"></script>
<script language="javascript" src="/includes/general.js"></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onload="SetFocus();">
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->
<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
<tr>
<td width="<?php echo BOX_WIDTH; ?>" valign="top">
<table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table>
</td>
<!-- body_text -->
<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td>
<?php
if (!function_exists(tep_get_uploaded_file))
{include('easypopulate_functions.php');}
if (!tep_not_null($_REQUEST['action'])){
echo tep_draw_form('Обновление цен',$current_page,'action=1','post','enctype="multipart/form-data"');
echo tep_draw_file_field('ufile',true).'<br />';
echo '<input type=submit value="Обновить">';
echo '</form>';
}else{
$to_process=tep_get_uploaded_file('ufile');
if (count($to_process)>0){
$strings=explode("\r\n",file_get_contents($to_process['tmp_name']));
while (count($strings)>0){
$values=explode(';',array_shift($strings));
if (preg_match('/\d+/',$values[0])&&(preg_match('/\d+\.\d*/',$values[1]))){
echo 'Обновлено:ID('.$values[0].')=>Цена('.$values[1].')<br />';
if (!tep_db_query('update products set products_price='.$values[1].' where products_id='.$values[0]))
{echo mysql_error();}
}#if string match format
}#if any sting in file
echo '<hr><br />Обновление окончено<br />';
}#if any file was uploaded
echo '<br /><a href="'.tep_href_link($current_page).'">Вернуться назад</a>';
}#end of do something
?>
</td>
</tr>
</table></td>
<!-- body_text_eof //-->
</tr>
</table>
<!-- body_eof //-->
<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
=================End of file==========================