Онлайн-руководство разработчика NetCat
Новогодние скидки до 25%!
Подробнее
Модуль «Поиск по сайту» 12.2.1Начало работы с модулем 12.2.2Язык запросов 12.2.3Способы хранения индекса 12.2.4Интерфейс модуля в панели управления сайтом 12.2.5Области индексирования 12.2.6Области HTML-страниц 12.2.7Области поиска на сайте 12.2.8Индексирование по расписанию, запуск индексирования в фоновом режиме 12.2.9Правила индексирования 12.2.10Постановка задачи переиндексирования в очередь 12.2.11Интеграция модуля в макеты дизайна сайта 12.2.12Простая форма поиска 12.2.13Расширенная форма поиска 12.2.14Вывод результатов поиска 12.2.15Стилизация списка подсказок 12.2.16Расширенные настройки 12.2.17Разработка расширений модуля 12.2.18Обзор архитектуры модуля 12.2.19Обработчики документов различных типов 12.2.20Текстовые фильтры 12.2.21Анализаторы текста 12.2.22Корректировщики запросов 12.2.23Подключение других поисковых систем 12.2.24Решение проблем с поиском 12.2.25Решение проблем с индексированием 12.2.26Справочник API

[архив] Переход c версии 5.2 на 5.3

После установки обновления с версии системы 5.2 до версии 5.3 и для настройки нового модуля интернет-магазина нужно выполнить следующие действия.

1. Настройка модуля

Откройте настройки модуля (Настройки → Интернет-магазин). В списке модулей (слева) у магазина появится дерево настроек. Откройте раздел «Настройки». На первой вкладке «Организация» заполните данные вашей компании.

На второй вкладке «Настройки» проверьте чтобы был выбран компонент заказов который используется на сайте. Остальные поля заполните опционально.

2. Прочие настройки

Попеременно настройте следующие разделы:

В новом магазине будут использоваться данные из этих разделов вместо компонентов в предыдущей версии модуля интернет-магазина..

3. Компоненты «Товары»

Полная информация по настройке компонента товаров есть в документации.

Проверьте список обязательных полей, возможно у вас некоторых не хватает. Свои поля, если они у вас есть остаются. В компоненты товаров нужно внести следующие изменения.

3.1 Объект в списке

В объекте в списке компонента товара нужно инициализировать объект свойств товара:

$item = new nc_netshop_item($res[$f_RowNum]);

Для отображения вариантов товаров прежний код заменить на:

echo nc_netshop_item_variant_admin_table($item);

Варианты товаров можно отобразить в любом удобном виде.

Вывод цены нужно заменить с 

$f_Price или $shop->FormatCurrency($f_Price, $f_Currency)

на

$item['OriginalPriceF'] или другой вариант цены, например со скидкой $item['ItemPriceF'].

Полный список полей в документации.

Обертку $shop->FormatCurrency($row['OriginalPrice']) везде убираем, используем готовые форматированные свойства объекта $item['OriginalPriceF'] или добавляем новую обертку $netshop->format_price($item['OriginalPrice']).

Объект автоматически форматирует цену в зависимости от валюты.

В форме корзины заменить атрибуте action с

action='<?= $SUB_FOLDER . $HTTP_ROOT_PATH; ?>modules/netshop/post.php'

на

action='<?=$netshop->get_add_to_cart_url();?>'

3.2 Отображение объекта

Создать объект:

$item = new nc_netshop_item($resMsg);

Для отображения вариантов товаров прежний код заменить на:

echo nc_netshop_item_variant_admin_table($item);

Вывод кнопки добавления в корзину аналогичный предыдущему.

Для фиксирования последних просмотренных товаров добавить:

$netshop->goodslist_recent->add($f_RowID, $classID);

3.3 Системные настройки

Убрать код, относящийся к прежнему модулю магазина, это все связанное с объектом $shop, если непонятно что относится к старому магазину, то можно пока оставить или обратиться в техподдержку.

Вместо этого нужно в любом месте (в системных настройках или в шаблоне вывода навигации) добавить инициализацию объекта:

$netshop = nc_netshop::get_instance();

4. Корзина в макете

В макете пропишите вывод корзины. Пример вывода есть на странице документации.

5. Прочее

Добавьте раздел с компонентом «Страница Заказ оформлен» и впишите ссылку на него в коде действия после добавления заказа,

в строке 

header("Location: {$nc_core->SUB_FOLDER}/orders/added" . ($invoice ? ("?invoice=" . $invoice->get('id')) : ""));

замените /orders/added на свой путь, например /ishop/added

Также в самом компоненте "Страница Заказ оформлен" впишите адрес возврата в ссылке 

<a href="<?= $nc_core->SUB_FOLDER; ?>/ishop/">Вернуться к покупкам</a>

В личном кабинете используйте основной компонент заказов вместо шаблона "для личного кабинета".

Если вы переделываете старый комопнент заказов, вместо уствновки нового, добавьте шаблон для режима администрирования.

6. Виджеты.

В новом модуле интернет-магазина вы можете воспользоваться виджетами:

  • Последние просмотренные товары
  • Сиюминутное предложение
  • Аксессуары
  • Избранные товары
  • Сравнение товаров
  • С этим товаром покупают
  • С этим товаром смотрят
  • Товары по акции
  • Новые товары
  • Сейчас смотрят
  • Недавно купили

Подключите их при необходимости.

7. Дополнительные материалы

Здесь вы можете скачать некоторые компоненты с комментариями:

8. Удаление старого магазина.

После настройки нового магазина можно удалить некоторые инфоблоки из каталога магазина, они все относятся к старому магазину и не используются в новом:

  • настройки интернет магазина(вы должны были уже перенести данные магазина и пароли платежных систем в настройки новых модулей)(нужно удалить этот инфоблок чтобы магазин полностью переключился на новую версию)
  • Валюты
  • Курсы валют ЦБ
  • Цены для разных групп пользователей
  • Cкидки
  • Способы доставки
  • Способы оплаты
  • Шаблоны писем

Возможные ошибки

1. При использовании старого компонента заказов нужно добавить в него поля:

user_hash:  недоступно никому

    без этого поля неавторизованный пользователь не увидит страницу после добавления.

TotalGoods: количество товаров, целое число, недоступно никому, остальное по умолчанию
TotalPrice: сумма заказа, число с плавающей запятой, недоступно никому, остальное по умолчанию

   без этих полей в настройках модуля магазина могут вылезти ошибки вида:

   Warning: Unknown column 'TotalGoods' in 'where clause' in /home/www/netcat/system/nc_db.class.php on line 212

   Warning: Unknown column 'TotalPrice' in 'field list' in /home/www/netcat/system/nc_db.class.php on line 212

Также добавьте в компонент заказов поля:
City - Город, список, формат Region
Zip - Индекс, строка
они нужны для расчета почтовой доставки.

2. Если будет отсутствовать возможность выбора автоматического расчета доставки EMS или почты, выполните в SQL-консоли команду:

INSERT INTO `Classificator_ShopDeliveryService` (`ShopDeliveryService_Name`, `ShopDeliveryService_Priority`, `Value`, `Checked`) VALUES
('Почта России', 1, 'nc_netshop_delivery_service_russianpost', 1),
('EMS', 2, 'nc_netshop_delivery_service_ems', 1);

3. Если в настройках модуля платежей будет отсутствовать возможность настройки платежек для сайта, необходимо выполнить в SQL-консоли две команды:

TRUNCATE TABLE `Classificator_PaymentSystem`;
INSERT INTO `Classificator_PaymentSystem` (`PaymentSystem_ID`, `PaymentSystem_Name`, `PaymentSystem_Priority`, `Value`, `Checked`) VALUES
(1, 'По квитанции Сбербанка', 1, 'nc_payment_system_sberbank', 1),
(2, 'Payonline', 2, 'nc_payment_system_payonline', 1),
(3, 'WebMoney', 3, 'nc_payment_system_webmoney', 1),
(4, 'Robokassa', 4, 'nc_payment_system_robokassa', 1),
(5, 'Qiwi', 5, 'nc_payment_system_qiwi', 1),
(6, 'PayPal', 6, 'nc_payment_system_paypal', 1),
(7, 'Paymaster', 7, 'nc_payment_system_paymaster', 1),
(8, 'MailMoney', 8, 'nc_payment_system_mailru', 1),
(9, 'Яндекс.Деньги', 9, 'nc_payment_system_yandexcpp', 1),
(10, 'Яндекс.Деньги (устаревшее API)', 10, 'nc_payment_system_yandexemail', 1),
(11, 'Assist', 11, 'nc_payment_system_assist', 1),
(12, 'Platidoma', 12, 'nc_payment_system_platidoma', 1),
(13, 'Счет на юр. лицо', 13, 'nc_payment_system_bank', 1);

Комментарии 3

Обязательно ли в "товарном" компоненте заменять $f_.... на $item[...], если магазин использует только "базовый" функционал модуля ИМ (т.е. не использует скидки, варианты товаров и тд)?
   
e-wind 05 августа 2014, 17:15:53
Не обязательно, просто в $item заранее рассчитываются некоторые значения, а также приводятся к подходящему для отображения формату.
   
Понял, спасибо!
   
Описание проекта