Пример использования SEO генератора есть у нас в блоге http://readyscript.ru/text-blog/Novye-v … adyScript/.
752 25.03.2015 14:07:11
Re: Активация фильтра (3 ответов, оставленных в Вопросы по разработке модулей и API системы)
Можно подменить ссылку на раздел Управления заказами у пункта меню в админ. панели, сразу с установленными фильтрами.
Это делается - копированием /modules/shop/config/handlers.inc.php в
/modules/shop/config/myhandlers.inc.php
myhandlers.inc.php должен быть примерно такого содержания (код не проверял, возможны синтаксические ошибки):
<?php
namespace Shop\Config;
class MyHandlers extends Handlers
{
public static function getMenus($items){
$items = parent::getMenus($items);
//Перебираем пункты меню и модифицируем ссылку у нужного
foreach($items as &$item) {
if ($item['alias'] == 'allorders') {
$item['link'] = '%ADMINPATH%/shop-orderctrl/?f[dateof]='.date('Y-m-d');
}
}
return $items;
}
}753 23.03.2015 21:31:50
Re: Есть ли бронь остатков? (5 ответов, оставленных в Вопросы по работе с системой)
Это очень странно. На факт оплаты у нас нет условий на списание остатка товара.
У нас в коде установлено простое условие, если включена указанная выше опция,
то всегда при создании заказа списывать товар со склада, выбранного вручную в случае самовывоза или "по-умолчанию".
Проверьте, у вас хотя бы один склад отмечен, как склад "по-умолчанию"?
Проверьте, пожалуйста, на вкладке Комплектации - количество уменьшается?
754 23.03.2015 00:01:28
Re: Есть ли бронь остатков? (5 ответов, оставленных в Вопросы по работе с системой)
Если включена опция - "Запретить оформление заказа, если товаров недостаточно на складе"
в разделе Веб-сайт->Настройка модулей->Магазин, то в системе включится учет остатков,
при оформлении заказа количество товара будет уменьшаться.
755 21.03.2015 22:22:20
Re: Уменьшение количества товара и списание средств (6 ответов, оставленных в Вопросы по разработке модулей и API системы)
Чтобы изменить баланс пользователя, необходимо вызвать метод:
$transactionApi = new \Shop\Model\TransactionApi();
$transactionApi->addFunds($user_id, $amount, $writeoff, $reason);
//$user_id - ID юзера
//$amount - сумма
//$writeoff - флаг списания. Если true, то сумма $amount списывается, false - добавляется
//$reason - комментарий к операции$transactionApi = new \Shop\Model\TransactionApi();
$transactionApi->addFunds(123, 25.50, false, 'Пополнение баланса пользователя на 25 руб 50 коп. пользователя ID 123');
$transactionApi = new \Shop\Model\TransactionApi();
$transactionApi->addFunds(123, 25.50, true, 'Списание 25 руб. 50 коп. с баланса у пользователя ID 123');756 19.03.2015 15:15:45
Re: Как поменять КПП (10 ответов, оставленных в Вопросы по работе с системой)
Поменять название сайта можно в разделе Управление->сайты
Поменять КПП на ОГРН можно скопировав шаблон /modules/shop/view/printform/commoditycheck.tpl
в /templates/{ВАША ТЕМА}/moduleview/shop/printform/commoditycheck.tpl
И поправив его как вам угодно в папке назначения.
757 19.03.2015 15:11:48
Re: Ожидание tvrain.ru (3 ответов, оставленных в Вопросы по работе с системой)
По tvrain.ru - это точно не к нам.
758 16.03.2015 23:43:50
Тема: Узнавайте интересные новости из наших групп в соц. сетях! (0 ответов, оставленных в Новости проекта)
Уважаемые участники форума!
Спешу сообщить о том, что у нашей компании открыты официальные группы ВКонтакте и Facebook, в которых наши специалисты по SMM размещают полезные статьи на тему электронной коммерции и интернет-маркетинга. Приглашаю Вас стать частью нашего сообщества и оперативно узнавать обо всех наших новостях (в том числе скидках и акциях) и тонкостях ведения торгового бизнеса в сети. Группы представлены у нас на главной странице здесь.
Прямые ссылки на группы:
ReadyScript ВКонтакте - https://vk.com/readyscript
ReadyScript Facebook - https://www.facebook.com/readyscript.ru
759 16.03.2015 23:26:16
Re: Где происходит запись в БД? (1 ответов, оставленных в Вопросы по разработке модулей и API системы)
Заказ (объект класса \Shop\Model\Orm\Order) - это ORM объект, который до вызова метода insert() хранит свои свойства в сессии.
В контроллере \Shop\Controller\Front\Checkout в методе actionConfirm есть строка
//Создаем заказ в БД
if ($this->order->insert()) {
//....
}Именно этот код дергает механизм сохранения данных в БД.
760 16.03.2015 16:19:36
Re: Скидка от суммы и подытога корзины (7 ответов, оставленных в Вопросы по разработке модулей и API системы)
Я не учел, что вы выставляете тип цен только во время события - cart.addproduct.
Вам тогда нужно в обработчике события cart.addproduct писать цену пользователя в $_SESSION['КАКАЯ_НИБУДЬ_ПЕРЕМЕННАЯ']
А потом сделать еще один обработчик события start и уже в нем вызывать:
if ( $_SESSION['КАКАЯ_НИБУДЬ_ПЕРЕМЕННАЯ'] ) {
\Catalog\Model\CostApi::setSessionDefaultCost( $_SESSION['КАКАЯ_НИБУДЬ_ПЕРЕМЕННАЯ'] );
}------
\Catalog\Model\CostApi::setSessionDefaultCost() - устанавливает текущую цену на одну сессию выполнения PHP (не путать с SESSION). Т.е. её нужно вызывать её каждый раз.
761 16.03.2015 16:13:50
Re: Скидка от суммы и подытога корзины (7 ответов, оставленных в Вопросы по разработке модулей и API системы)
Если пользователь не авторизован, то у него всегда - тип цен "по-умолчанию".
Т.е. это будет работать и для не авторизованных.
762 16.03.2015 16:12:49
Re: Размер фотографий (1 ответов, оставленных в Вопросы по работе с системой)
Размер изображения прописывается в разных шаблонах. В конструкциях примерно такого вида:
<a href="{$image->getUrl(800,600,'xy')}">...Вы можете поменять на любой размер, который желаете.
763 16.03.2015 15:46:20
Re: Разная цена для разных складов (6 ответов, оставленных в Вопросы по работе с системой)
Привязка цен к складу тянет за собой огромную архитектурную задачу (по сути - полноценный складской учет, если еще точнее то нужно написать 1С N2). Обычное управление товаром усложнится на порядок с таким количеством контекстов, в разрезе разных типов цен, комплектаций, складов.
К сожалению, мы пока не претендуем на данную нишу. Но когда мы переделаем все наши задачи, которые будут полезны 99% наших пользователей, вероятно мы будем искать очередные сложные ниши, поэтому следите за обновлениями и нашими новостями. )
764 16.03.2015 15:03:45
Re: Скидка от суммы и подытога корзины (7 ответов, оставленных в Вопросы по разработке модулей и API системы)
Да, если у пользователя в настройках установлен - тип цен: "по-умолчанию",
то можно воспользоваться этим методом - \Catalog\Model\CostApi::setSessionDefaultCost()
765 16.03.2015 14:53:47
Re: Разная цена для разных складов (6 ответов, оставленных в Вопросы по работе с системой)
Можно реализовать если просто добавить характеристики , тогда можно так сделать , но если вам нужна будет выгрузка CSV тогда придется перебрать немного её под нужный вид.
Предположу, что Владимир имел ввиду, что можно использовать комплектации для вашего случая.
Например, создаете:
Товар1
-- "Комплектация 1 - Товар со склада 1" - 5 р
-- "Комплектация 2 - Товар со склада 2" - 10 р
В заказе вы будете видеть, заказанную комплектацию для каждого товара.
Непосредственно менять систему с целью добавить связь цен именно с сущностью склада - это ООчень большая доработка.
766 16.03.2015 11:50:34
Re: Скидка от суммы и подытога корзины (7 ответов, оставленных в Вопросы по разработке модулей и API системы)
Внутри объекта товара $product - сохраняется идентификатор цены cost_id в поле _current_cost_id.
Именно закешированное значение _current_cost_id используется при вызове метода получения цены у товара $product->getCost(null), без явного указания id цены. Необходимо подменить значение _current_cost_id в кэш-поле товара.
Попробуйте выполнить следующий код для пересчета -
//Заменим закешированный _current_cost_id у объекта товара
foreach($cart->getProductItems() as $cartdata) {
$cartdata['product']['_current_cost_id'] = ID новой цены;
}
//Очистим сведения для блока корзины
$cart->cleanInfoCache();Насчет события для удаления элемента из корзины. Добавим в ближайшем обновлении.
Функция removeItem($uniq) будет выглядеть так: (можете заменить её прямо в файле cart.inc.php)
function removeItem($uniq)
{
$eresult = \RS\Event\Manager::fire('cart.removeitem.before', array(
'cart' => $this,
'uniq' => $uniq
));
if ($eresult->getEvent()->isStopped()) return false;
if (isset($this->items[$uniq])) {
if ($this->mode == self::MODE_SESSION) {
\RS\Orm\Request::make()
->delete()
->from($this->cartitem)
->where($this->select_expression)
->where(array(
'uniq' => $uniq
))->exec();
}
$deleted_item = $this->items[$uniq];
unset($this->items[$uniq]);
unset($this->order_items[$uniq]);
unset($this->cache_products[$uniq]);
unset($this->cache_coupons[$uniq]);
\RS\Event\Manager::fire('cart.removeitem.after', array(
'cart' => $this,
'uniq' => $uniq,
'item' => $deleted_item
));
}
return true;
}767 13.03.2015 18:31:55
Re: Количество товаров в поиске (4 ответов, оставленных в Вопросы по работе с системой)
Настройки модуля могут быть только одни в рамках сайта, а одинаковых блоков может быть несколько даже на одной странице и каждому блоку нужно давать настроить разные параметры. (поэтому данная настройка вынесена в параметры блок-контроллера).
768 12.03.2015 12:11:43
Re: Количество товаров в поиске (4 ответов, оставленных в Вопросы по работе с системой)
В настройках блока "Поиск товаров по названию". Переведите сайт в режим отладки. Наведите мышь на форму поиска и нажмите на инструмент "Настроить блок"(иконка гаечного ключа). Там будет пункт "Количество результатов в выпадающем списке"
769 09.03.2015 20:33:53
Re: Как добавить поле товару или любому другому объекту в ReadyScript? (11 ответов, оставленных в Вопросы по разработке модулей и API системы)
Надо увидеть точный текст ошибки, чтобы сказать в чем причина ошибки. ( по скриншоту единственное что видно - это то что стили не подгрузились )
Включите display_errors в настройках PHP, можно с помощью .htaccess. ( http://readyscript.ru/faq/#faq-errors )
И посмотрите на исходный код страницы в браузере. В конце страницы наверняка будет надпись Fatal error..........
770 07.03.2015 22:35:36
Re: Не идет автоматическое обновление (7 ответов, оставленных в Вопросы по работе с системой)
Спасибо, что поделились решением. Огласите, пожалуйста, название хостинга. Ограничение на I/O на хостинге -это жестко. В php ведь нет команды "копировать файлы, но не быстро", чтобы уложиться в I/O лимит хостинга. ( вариант - читать побайтово и ставить слипы - считаю просто диким )
771 05.03.2015 18:55:05
Re: Не идет автоматическое обновление (7 ответов, оставленных в Вопросы по работе с системой)
Включите display_errors ON (добавив строку ini_set('display_errors', 1); в setup.inc.php ), тогда непосредственно текст ошибки можно будет увидеть в графе response (ответ сервера) у запроса с кодом 500, в инструментах отладки браузера.
772 05.03.2015 14:30:13
Re: Не идет автоматическое обновление (7 ответов, оставленных в Вопросы по работе с системой)
Перед началом обновления система копирует файлы модулей, которые предстоит обновить.
В случае, если будут обновляться абсолютно все модули, то копированию подлежит объем, приблизительно 60 Мб.
Такой небольшой объем система копирует за несколько секунд, что соответственно должно создавать кратковременный пик использования диска. Это нормально.
Чтобы точно узнать причину, по которой дальше данного шага не проходит установка, можно включить отображение ошибок. Способом, описанным здесь: http://readyscript.ru/faq/#faq-errors.
Далее посмотреть, с помощью инструментов отладки браузера, что возвращает система на ajax запрос Создания точки восстановления.
Наиболее вероятны те причины, о которых пишет Александр.
773 04.03.2015 13:06:38
Re: Обмен данными 1С с сайтом (2 ответов, оставленных в Вопросы по работе с системой)
Когда 1С выполняет обмен либо по расписанию, либо с помощью ручного запуска,
движок сразу же обновляет все сведения в реальном времени.
774 04.03.2015 13:01:28
Re: Есть ли модуль, который делает карту сайта? (5 ответов, оставленных в Сторонние модули, темы оформления для ReadyScript)
Напишите абсолютный путь до sitemap-1.xml в robots.txt:
Sitemap: http://{ВАШ_ДОМЕН}/sitemap-1.xml775 03.03.2015 22:26:43
Re: Есть ли модуль, который делает карту сайта? (5 ответов, оставленных в Сторонние модули, темы оформления для ReadyScript)
ReadyScript - платформа мультисайтовая, поэтому в конце подписывается ID сайта.
Но не понятно чем это мешает. Жесткое имя SITEMAP.XML - нигде не регламентировано. Файл sitemap.xml может называться абсолютно как угодно, хоть karta_saita.xml.
Путь к нему нужно прописывать в robots.txt в директиве
User-agent: *
Allow: /
Sitemap: /sitemap-1.xml
https://help.yandex.ru/webmaster/contro … ml#sitemap
Или если говорить о google, yandex, то там в кабинете вебмастера можно также указывать путь к sitemap на вашем сайте.