По tvrain.ru - это точно не к нам.
776 19.03.2015 15:11:48
Re: Ожидание tvrain.ru (3 ответов, оставленных в Вопросы по работе с системой)
777 16.03.2015 23:43:50
Тема: Узнавайте интересные новости из наших групп в соц. сетях! (0 ответов, оставленных в Новости проекта)
Уважаемые участники форума!
Спешу сообщить о том, что у нашей компании открыты официальные группы ВКонтакте и Facebook, в которых наши специалисты по SMM размещают полезные статьи на тему электронной коммерции и интернет-маркетинга. Приглашаю Вас стать частью нашего сообщества и оперативно узнавать обо всех наших новостях (в том числе скидках и акциях) и тонкостях ведения торгового бизнеса в сети. Группы представлены у нас на главной странице здесь.
Прямые ссылки на группы:
ReadyScript ВКонтакте - https://vk.com/readyscript
ReadyScript Facebook - https://www.facebook.com/readyscript.ru
778 16.03.2015 23:26:16
Re: Где происходит запись в БД? (1 ответов, оставленных в Вопросы по разработке модулей и API системы)
Заказ (объект класса \Shop\Model\Orm\Order) - это ORM объект, который до вызова метода insert() хранит свои свойства в сессии.
В контроллере \Shop\Controller\Front\Checkout в методе actionConfirm есть строка
//Создаем заказ в БД
if ($this->order->insert()) {
//....
}
Именно этот код дергает механизм сохранения данных в БД.
779 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). Т.е. её нужно вызывать её каждый раз.
780 16.03.2015 16:13:50
Re: Скидка от суммы и подытога корзины (7 ответов, оставленных в Вопросы по разработке модулей и API системы)
Если пользователь не авторизован, то у него всегда - тип цен "по-умолчанию".
Т.е. это будет работать и для не авторизованных.
781 16.03.2015 16:12:49
Re: Размер фотографий (1 ответов, оставленных в Вопросы по работе с системой)
Размер изображения прописывается в разных шаблонах. В конструкциях примерно такого вида:
<a href="{$image->getUrl(800,600,'xy')}">...
Вы можете поменять на любой размер, который желаете.
782 16.03.2015 15:46:20
Re: Разная цена для разных складов (6 ответов, оставленных в Вопросы по работе с системой)
Привязка цен к складу тянет за собой огромную архитектурную задачу (по сути - полноценный складской учет, если еще точнее то нужно написать 1С N2). Обычное управление товаром усложнится на порядок с таким количеством контекстов, в разрезе разных типов цен, комплектаций, складов.
К сожалению, мы пока не претендуем на данную нишу. Но когда мы переделаем все наши задачи, которые будут полезны 99% наших пользователей, вероятно мы будем искать очередные сложные ниши, поэтому следите за обновлениями и нашими новостями. )
783 16.03.2015 15:03:45
Re: Скидка от суммы и подытога корзины (7 ответов, оставленных в Вопросы по разработке модулей и API системы)
Да, если у пользователя в настройках установлен - тип цен: "по-умолчанию",
то можно воспользоваться этим методом - \Catalog\Model\CostApi::setSessionDefaultCost()
784 16.03.2015 14:53:47
Re: Разная цена для разных складов (6 ответов, оставленных в Вопросы по работе с системой)
Можно реализовать если просто добавить характеристики , тогда можно так сделать , но если вам нужна будет выгрузка CSV тогда придется перебрать немного её под нужный вид.
Предположу, что Владимир имел ввиду, что можно использовать комплектации для вашего случая.
Например, создаете:
Товар1
-- "Комплектация 1 - Товар со склада 1" - 5 р
-- "Комплектация 2 - Товар со склада 2" - 10 р
В заказе вы будете видеть, заказанную комплектацию для каждого товара.
Непосредственно менять систему с целью добавить связь цен именно с сущностью склада - это ООчень большая доработка.
785 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;
}
786 13.03.2015 18:31:55
Re: Количество товаров в поиске (4 ответов, оставленных в Вопросы по работе с системой)
Настройки модуля могут быть только одни в рамках сайта, а одинаковых блоков может быть несколько даже на одной странице и каждому блоку нужно давать настроить разные параметры. (поэтому данная настройка вынесена в параметры блок-контроллера).
787 12.03.2015 12:11:43
Re: Количество товаров в поиске (4 ответов, оставленных в Вопросы по работе с системой)
В настройках блока "Поиск товаров по названию". Переведите сайт в режим отладки. Наведите мышь на форму поиска и нажмите на инструмент "Настроить блок"(иконка гаечного ключа). Там будет пункт "Количество результатов в выпадающем списке"
788 09.03.2015 20:33:53
Re: Как добавить поле товару или любому другому объекту в ReadyScript? (11 ответов, оставленных в Вопросы по разработке модулей и API системы)
Надо увидеть точный текст ошибки, чтобы сказать в чем причина ошибки. ( по скриншоту единственное что видно - это то что стили не подгрузились )
Включите display_errors в настройках PHP, можно с помощью .htaccess. ( http://readyscript.ru/faq/#faq-errors )
И посмотрите на исходный код страницы в браузере. В конце страницы наверняка будет надпись Fatal error..........
789 07.03.2015 22:35:36
Re: Не идет автоматическое обновление (7 ответов, оставленных в Вопросы по работе с системой)
Спасибо, что поделились решением. Огласите, пожалуйста, название хостинга. Ограничение на I/O на хостинге -это жестко. В php ведь нет команды "копировать файлы, но не быстро", чтобы уложиться в I/O лимит хостинга. ( вариант - читать побайтово и ставить слипы - считаю просто диким )
790 05.03.2015 18:55:05
Re: Не идет автоматическое обновление (7 ответов, оставленных в Вопросы по работе с системой)
Включите display_errors ON (добавив строку ini_set('display_errors', 1); в setup.inc.php ), тогда непосредственно текст ошибки можно будет увидеть в графе response (ответ сервера) у запроса с кодом 500, в инструментах отладки браузера.
791 05.03.2015 14:30:13
Re: Не идет автоматическое обновление (7 ответов, оставленных в Вопросы по работе с системой)
Перед началом обновления система копирует файлы модулей, которые предстоит обновить.
В случае, если будут обновляться абсолютно все модули, то копированию подлежит объем, приблизительно 60 Мб.
Такой небольшой объем система копирует за несколько секунд, что соответственно должно создавать кратковременный пик использования диска. Это нормально.
Чтобы точно узнать причину, по которой дальше данного шага не проходит установка, можно включить отображение ошибок. Способом, описанным здесь: http://readyscript.ru/faq/#faq-errors.
Далее посмотреть, с помощью инструментов отладки браузера, что возвращает система на ajax запрос Создания точки восстановления.
Наиболее вероятны те причины, о которых пишет Александр.
792 04.03.2015 13:06:38
Re: Обмен данными 1С с сайтом (2 ответов, оставленных в Вопросы по работе с системой)
Когда 1С выполняет обмен либо по расписанию, либо с помощью ручного запуска,
движок сразу же обновляет все сведения в реальном времени.
793 04.03.2015 13:01:28
Re: Есть ли модуль, который делает карту сайта? (5 ответов, оставленных в Сторонние модули, темы оформления для ReadyScript)
Напишите абсолютный путь до sitemap-1.xml в robots.txt:
Sitemap: http://{ВАШ_ДОМЕН}/sitemap-1.xml
794 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 на вашем сайте.
795 02.03.2015 14:13:46
Re: Как не выводить комплектацию, которой на остатке ноль. (3 ответов, оставленных в Вопросы по работе с системой)
В конструкции, выводящей комплектации в файле product.tpl, вы можете добавить условие:
<select name="offer">
{foreach from=$product.offers.items key=key item=offer name=offers}
{if $offer.num} {* - это проверка общего остатка комплектации на всех складах *}
<option value="{$key}" ....>{$offer.title}</option>
{/if}
{/foreach}
</select>
796 22.02.2015 16:16:32
Re: Как убрать надпись "Работает на ReadyScript"? (13 ответов, оставленных в Вопросы по созданию тем оформления)
Нет. Описанием служат названия файлов и их структура относительно корня темы. Этого вполне достаточно.
Крайний случай - вы всегда можете воспользоваться поиском по содержимому файлов, чтобы найти нужный шаблон в теме.
797 21.02.2015 23:22:37
Re: Как убрать надпись "Работает на ReadyScript"? (13 ответов, оставленных в Вопросы по созданию тем оформления)
Обратите внимание, Александр пишет:
Если это тема "Классическая", то копируем файл ....
У вас судя по всему тема не классическая, а fashionzet, наверное это ваша вариация темы - fashion ?
Если так, то в теме fashion - эта надпись в других файлах хранится.
/wrapper.tpl
/wrapper_checkout.tpl
/exception.tpl
798 20.02.2015 20:26:05
Re: Как убрать надпись "Работает на ReadyScript"? (13 ответов, оставленных в Вопросы по созданию тем оформления)
Уточните, кэш очищали? (иконка стрелки в правой части верхней черной панели администратора)
799 20.02.2015 20:23:50
Re: Модуль зачем то лезет в тему (1 ответов, оставленных в Вопросы по разработке модулей и API системы)
В системе работает одинаковый принцип для подключения шаблонов из любого места.
%shop%/orderview.tpl - означает, что шаблон сперва будет искаться в папке с текущей темой, а лишь потом в модуле.
800 19.02.2015 19:00:03
Re: Хостинг (1 ответов, оставленных в Вопросы по работе с системой)
Те показатели, что вы привели не дадут большую нагрузку, поэтому можете разместить сайт на любом шаред хостинге (очень желательно , чтобы там был PHP акселератор APC или OpCache).
Выбирайте по месту на диске, чтобы у вас поместились фотографии для всех ваших товаров. На один товар ориентировочно нужно рассчитывать, что будет 500 Кб фото со всеми миниатюрами.