Нужно посмотреть на развернутый текст ошибки, чтобы понять ситуацию.
Включите опцию "Подробно отображать информацию об исключениях" в разделе Управление->Настройки системы в админ. панели.
826 13.01.2015 18:06:54
Re: Как востановить состояние системы (3 ответов, оставленных в Вопросы по созданию тем оформления)
827 11.01.2015 21:16:33
Re: Интеграция с МОЙ СКЛАД (3 ответов, оставленных в Вопросы по работе с системой)
МойСклад поддерживает импорт данных из Excel, YML.
Оба этих формата можно получить у ReadyScript (С помощью экспорта данных в CSV или экспорта данных в Яндекс.Маркет)
CSV - http://readyscript.ru/manual/catalog_cs … xport.html
YML - http://readyscript.ru/manual/catalog_export.html
Но даже после наполнения МоегоСклада скорее всего вам придется удалить товары на сайте, чтобы получить их заново из МоегоСклада, так как стандартная схема интеграции подразумевает создание товара в именно моем складе (т.к. товару должен присваиваться идентификатор на стороне МоегоСклада, который передается в commerceML)
828 10.01.2015 15:43:06
Re: Каким образом вывести размеры списком (5 ответов, оставленных в Вопросы по работе с системой)
Приведенный мною выше код подходит для случая, когда у товара загружены комплектации. Я предполагал, что вы его будете использовать в карточке товара.
Но если вам необходимо подгрузить комплектации в списке товаров, то необходимо добавить еще следующую конструкцию в начало шаблона list_products.tpl
{$list = $this_controller->api->addProductsOffers($list)}
Данная конструкция массово загрузит комплектации сразу ко всем товарам в списке.
829 10.01.2015 15:34:40
Re: Массовая загрузка фото товаров (7 ответов, оставленных в Вопросы по работе с системой)
Будет поддержка следующего синтаксиса:
<свойство товара>[<символ-разделитель><номер изображения>].<расширение файла>
т.е. можно будет назвать файлы, например так:
articul.jpg
articul.01.jpg
articul.02.jpg
чтобы импортировать несколько фото к одному товару.
Данный инструмент будет предназначен только для фото, описания к товарам вы можете загружать через общий механизм CSV, который сейчас присутствует.
830 09.01.2015 22:21:44
Re: Массовая загрузка фото товаров (7 ответов, оставленных в Вопросы по работе с системой)
Сейчас это можно сделать с помощью CSV, через колонку Фото. Т.е. необходимо залить папку с фото на сервер, и в CSV для каждого товара прописать путь к фотографиям относительно корня сайта. Вы можете увидеть эталонный CSV, если сделаете экспорт.
Но у нас сейчас на тестировании уже находится модуль, который будет позволять быстро загружать массово фото к товарам, для случая если имена файлов изображений точно равны одному из параметров товара (Артикул, Название, URL имя, Категория, Бренд, ID, XML_ID). Срок публикации данного функционала до 5ти дней.
831 05.01.2015 17:21:38
Re: Восьмой терминал или доступно ли смертным? (4 ответов, оставленных в Вопросы по созданию тем оформления)
Да, с категорий тоже нужно ставить редиректы. Готовьтесь к тому, что ваш старый сайт пропадет в скором времени из поиска и вы его сможете удалить. В помощь: https://help.yandex.ru/webmaster/yandex … g-site.xml
832 05.01.2015 16:43:48
Re: Восьмой терминал или доступно ли смертным? (4 ответов, оставленных в Вопросы по созданию тем оформления)
Первый вопрос очень абстрактный, соответственно могу лишь ответить на него так: За внешний вид шаблонов отвечают CSS, разметка HTML, шаблоны Smarty. Если у вас есть навыки работы с данными вещами, то однозначно вы сможете сделать абсолютно все-что захотите с шаблоном. Если - нет, придется обратиться к специалистам.
Насчет редиректа, его можно делать на разных уровнях (через htaccess) или на уровне PHP.
Если через htaccess, то верно все делаете, вот есть хороший материал на этот счет. Не забудьте только убедиться у вашего хостинга, что включен модуль mod_alias для apache, чтобы это работало.
Если через PHP, то можно составить примерно такого содержания файл
<?
$redirect_map = array (
'ОТНОСИТЕЛЬЙ ПУТЬ НА СТАРОМ САЙТЕ' => 'ОТНОСИТЕЛЬНЫЙ ПУТЬ НА НОВОМ САЙТЕ',
'/ventilyaciya/reshjotki/plastikovye' => '/ventilyaciya/reshjotki-plastikovye',
'/ventilyaciya/reshjotki/welevye' => '/ventilyaciya/reshjotki-welevye',
'/ventilyaciya/reshjotki/kruglye-diffuzory' => '/ventilyaciya/reshjotki-kruglye-diffuzory',
);
if (isset($redirect_map[$_SERVER['REQUEST_URI']])) {
$domain = 'http://ВАШ_НОВЫЙ_ДОМЕН.RU';
header('location: '.$domain.$redirect_map[$_SERVER['REQUEST_URI']], null, 301);
exit;
}
Сохранить данный файл в корень, например с названием redirect.php, и подключить его в точке входа вашего старого движка (обычно index.php) с помощью конструкции require('redirect.php'); в самом начале файла.
833 05.01.2015 00:40:59
Re: Структура урл на сайте (3 ответов, оставленных в Вопросы по разработке модулей и API системы)
Намного проще сделать 301 редиректы со старых урлов товаров на новые. Возможно вам данный вариант подойдет?
834 04.01.2015 23:13:27
Re: Структура урл на сайте (3 ответов, оставленных в Вопросы по разработке модулей и API системы)
Простого способа это сделать - нет. Так как вы хотите убрать якорь из маршрута, который придает ему уникальность по сравнению с другими урлами на сайте. Будет необходимо влазить в глубины маршрутизации. Ну и конечно все URL_имена категорий перечислять в маршруте к категории и товару.
Если с категориями все не так сложно, можно видоизменить маршрут
//Просмотр категории продукции
$routes[] = new \RS\Router\Route('catalog-front-listproducts', array(
'/catalog/{category}/',
'/catalog/'
), null, t('Просмотр категории продукции'));
Примерно таким образом (перечислив все идентификаторы категорий, чтобы обойти конфликты с другими маршрутами):
//Просмотр категории продукции
$routes[] = new \RS\Router\Route('catalog-front-listproducts', array(
'/{category:(demo-produkty|elektronika)}/',
'/catalog/'
), null, t('Просмотр категории продукции'));
То с формированием Урлов для товара придется переделать его стандартный маршрут, примерно на такой:
//Карточка товара
$routes[] = new \RS\Router\Route('catalog-front-product',
'/{category:(demo-produkty|elektronika)}/{id}/', null, t('Карточка товара'));
И переделать метод getUrl у объекта \Catalog\Model\Orm\Product, необходимо дописать передачу
параметра category в маршрут, так как стандартно там передается только id
Но правда могут повылазить проблемы в непредсказуемых местах, ну и производительность будет немного меньше, если у вас слишком много категорий, так что пробуйте.
На практике мы делали однажды подобную работу для одного клиента, выгоды никакой не получили абсолютно для поисковой выдачи.
835 04.01.2015 16:07:25
Re: Дисковое пространство (3 ответов, оставленных в Вопросы по работе с системой)
Оригиналы фото - ни в коем случае нельзя удалять. В ReadyScript все миниатюры изображений создаются по мере обращения к ним из браузера, если для каких-то товаров у вас еще нет миниатюр, то в случае отсутствия оригиналов - они больше никогда не появятся.
Наоборот, можете удалить все миниатюры /storage/photo/resized, они будут создаваться постепенно, пока пользователи будут обходить ваш сайт. Это даст небольшой запас времени.
Единственное что можно удалить - это папку storage/tmp - если она у вас есть.
Для системного решения, конечно нужно место срочно увеличивать. Благо сейчас место на диске почти ничего не стоит.
Тот же DigitalOcean 20GB, SSD, 512MB, - 5$/мес.
836 03.01.2015 17:49:03
Re: Нет редиректа со страниц без слеша (2 ответов, оставленных в Вопросы по разработке модулей и API системы)
В интернете - не существует однозначного ответа каким должен быть урл, со слешем в конце или без (http://imperacms.ru/articles/seo/url-so … avilno.htm),
а соответственно можно выбрать как один вариант, так и второй. Мы выбрали вариант со слешем в конце.
URL без слеша в конце - это неизвестный для системы URL, поэтому система возвращает 404. Система однообразно ведет себя для всех неизвестных адресов, а именно отдает 404.
По правильному должен быть редирект на страницу со слешем.
Если он вам нужен, вы можете создать правило в .htaccess.
Не думаю, что он нужен всем, так как адреса внутренних страниц вручную никто не набирает вслепую,
а поисковики берут те адреса, что представлены на сайте. Соответственно никакой проблемы - нет.
Редиректы нужны только в случае, если страница была, например, раннее доступна как по адресу со слешем, так и без, чтобы исключить дубли. А в нашем случае все корректно - только со слешем в конце, без слеша страницы никогда не были доступны поисковикам - там 404.
837 24.12.2014 22:05:20
Re: .htaccess и слэш на конце url (13 ответов, оставленных в Вопросы по работе с системой)
Вероятно, что данное правило может сломать урлы с параметрами (надо проверить):
/catalog/категория/?page=2
/catalog/категория/?f[id_характеристики]=значение_харктеристики
838 24.12.2014 16:08:02
Re: Ограничение длинны поля servername таблицы images (1 ответов, оставленных в Вопросы по разработке модулей и API системы)
servername - это же внутреннее поле нашей системы, мы туда больше 25 символов никогда не записываем. В целях экономии пространства, которое будет занимать индекс MySQL и соответственно оптимизации, установлено данное ограничение.
Если вам необходим больший объем данного поля, вы все правильно сделали, что увеличили его индивидуально для себя.
Это можно сделать:
1. просто в базе, тогда это будет до первого обновления модуля "Блок фотографий",
2. можно сделать с помощью дополнительного модуля (рекомендуемое решение), и обработки в нем события инициализации ORM объекта Photo\Model\Orm\Image
Примерно таким обработчиком (handlers.inc.php):
<?php
namespace ВАШ_МОДУЛЬ\Config;
class Handlers extends \RS\Event\HandlerAbstract
{
function init()
{
$this
->bind('orm.init.photo-image');
}
/**
* Модифицируем ORM объект - "изображение"
*
* @param \Photo\Model\Orm\Image $image - объект "изображение"
*/
public static function ormInitPhotoImage(\Photo\Model\Orm\Image $image)
{
$image->__servername->setMaxLength(255);
}
}
Не забудьте переустановить модуль "Блок фотографий" (ссылка в настройках модуля), после активации вашего стороннего модуля. Система в этом случае сама изменит длину поля в базе.
3. Можно сделать с помощью создания image.my.inc.php, у которого изменена длина поля в стандартном описании полей. (не рекомендуемый способ)
839 24.12.2014 15:53:11
Re: Каким образом вывести размеры списком (5 ответов, оставленных в Вопросы по работе с системой)
Вот так можно:
{if $product->isOffersUse()}
{foreach $product.offers.items as $key=>$offer}
{if $offer.num>0} {* offer.num - общий остаток комплектации на всех складах *}
{if !$offer@first}, {/if}{$offer.title} {* название комплектации *}
{/if}
{/foreach}
{/if}
840 24.12.2014 15:37:23
Re: Карточка товара - Короткое название (1 ответов, оставленных в Вопросы по работе с системой)
При импорте из CSV данные попадают в базу в том виде, в котором они есть. В данный момент CSV реализован, как низкоуровневый инструмент чтения/записи данных в базу.
Просто замените двойные кавычки на " перед импортом с помощью автозамены.
841 23.12.2014 15:47:37
Re: Групповое изменение цены в комплектации (4 ответов, оставленных в Вопросы по работе с системой)
Если у вас в системе только одна валюта, то вы можете оставить в колонке цена только число.
Например, сделать автозамену "(RUB)" на "", тем самым оставить только цифры в ячейках, увеличить вашу цену по формуле и загрузить обратно в систему.
В случае, если система не находит в скобках идентификатор валюты, то она устанавливает стоимость в базовой валюте.
842 23.12.2014 13:37:03
Re: Обмен данными с 1С (6 ответов, оставленных в Вопросы по работе с системой)
1С предусматривает такой механизм, поэтому мы его поддерживаем, здесь однозначности - нет, для кого-то это все-таки "нужная" номенклатура, которая пришла с сайта.
Этот функционал рождает ряд вопросов, что если в заказе есть товары и которые были выгружены из 1С и те, которые не были выгружены из 1С. (выдергивать товары из заказа - невозможно, так как это влияет на стоимость и другие параметры заказа). А вообще не выгружать такой заказ - тоже не правильно. Опишите, подробнее, как вы видите реализацию?
843 23.12.2014 13:20:34
Re: Покупки в 1 клик спорное удовольствие (2 ответов, оставленных в Вопросы по работе с системой)
Покупка в 1 клик - это аналог "Заказать звонок менеджера". Поэтому этот инструмент носит информационный характер для администраторов. И предусматривает, что менеджер перезвонит клиенту и создаст полноценный заказ в админ. панели. В шаблоне есть переменная - $is_auth, которая принимает значение true, если пользователь авторизован, можете её использовать.
844 23.12.2014 13:00:54
Re: Обмен данными с 1С (6 ответов, оставленных в Вопросы по работе с системой)
Нет, все не совсем так.
В 1С выгружаются все заказы, которые удовлетворяют заданным в настройках модуля обмена условиям, а именно статусам.
1С позволяет принимать заказы с товарами, которых нет в базе номенклатуры. В этом случае в документе "заказ" должно отображаться название товара и цена, но товар не будет связан с номенклатурой в 1С.
845 22.12.2014 16:41:35
Re: Обмен данными с 1С (6 ответов, оставленных в Вопросы по работе с системой)
Да, так можно.
Только убедитесь, что в настройках модуля обмена на вкладке "Каталог товаров", опция "Что делать с товарами, отсутствующими в файле импорта" имеет значение - "Ничего".
846 19.12.2014 17:30:42
Re: Адрес в профиле пользователя и в админке (1 ответов, оставленных в Вопросы по работе с системой)
На эти адреса ссылаются заказы, поэтому их удаления в настоящее время - нет.
Напишите пожелание в наш сервис пожеланий.
847 18.12.2014 18:06:37
Re: Формулы в универсальной доставке (1 ответов, оставленных в Вопросы по работе с системой)
Там выполняется eval() того, что написано в колонке Формула,
т.е. по сути вы можете использовать все математические функции PHP (использовать любые выражения PHP).
Из доступных переменных -
$S - Сумма заказа
$W - Общий вес заказа
Например: round($S*0.3) - это означает 30% от стоимости заказа, сумма окрулена.
848 18.12.2014 17:59:37
Re: как временно отключить некоторые типы доставки (3 ответов, оставленных в Вопросы по работе с системой)
Да, это хорошее предложение, в новых версиях добавим флажок "публичности" для оплат и доставок.
849 18.12.2014 13:28:36
Re: как временно отключить некоторые типы доставки (3 ответов, оставленных в Вопросы по работе с системой)
Только с помощью удаления, или в крайнем случае прописать в шаблоне shop/checkout/delivery.tpl условие исключения.
850 17.12.2014 15:46:27
Re: как в шаблоне product.tpl обратиться к полю товарного предложения (3 ответов, оставленных в Вопросы по разработке модулей и API системы)
Очень объемный вопрос, но постараюсь вкратце объяснить.
Так как при выборе комплектации в селекторе, не происходит перезагрузок страницы, вам необходимо это делать с помощью JavaScript. Посмотрите, как меняются цены при выборе селектора комплектаций. Что-то аналогичное нужно судя по всему вам.
Информация по комплектации сначала выводятся в атрибутах элемента формы:
<select name="offer">
{foreach from=$product.offers.items key=key item=offer name=offers}
<option value="{$key}" {if $smarty.foreach.offers.first}checked{/if} {if $check_quantity}data-num="{$offer.num}"{/if} data-change-cost='{ ".offerBarcode": "{$offer.barcode|default:$product.barcode}", ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getCost('Зачеркнутая цена', $key)}"}' data-sticks='{$offer->getStickJson()}'>{$offer.title}</option>
{/foreach}
</select>
А затем уже в JavaScript вы можете получить текущую выбранную комплектацию, считать у неё атрибут и сделать с ним что угодно(например вывести куда-нибудь).