Sergey (Sentinel)
С нами с 11 августа 2017; Место в рейтинге пользователей: #171Сортировка значений опций товара
Добрый день.
Ситуация такая — создал опции для товара:
Подскажите, как можно отсортировать опции в нужном порядке.
Пользователь Володя подсказал вариант с
github.com/vgrish/miniShop2/blob/7d60279388e7301b31fd9ad5f9862881d7ec7721/core/components/minishop2/elements/snippets/snippet.ms_options.php
и с github.com/bezumkin/miniShop2/pull/248#issuecomment-252066243
Но смешанные данные у меня не отсортировались — там где и строка и числа…
Ситуация такая — создал опции для товара:
Лента 1250х50 ммНо после сохранения товара они изменили порядок и стало так
Лента 1250х75 мм
Лента 1250х100 мм
Лента 1250х75 ммА это не правильно с той точки зрения, что опции нужно выводить в порядке возрастания их цены. Есть конечно вариант сделать только цифры, например 50, 75, 100, но так не всем покупателям понятно и лучше выводить полное название.
Лента 1250х50 мм
Лента 1250х100 мм
Подскажите, как можно отсортировать опции в нужном порядке.
Пользователь Володя подсказал вариант с
github.com/vgrish/miniShop2/blob/7d60279388e7301b31fd9ad5f9862881d7ec7721/core/components/minishop2/elements/snippets/snippet.ms_options.php
и с github.com/bezumkin/miniShop2/pull/248#issuecomment-252066243
Но смешанные данные у меня не отсортировались — там где и строка и числа…
Загрузка заказов ms2, Tikets на стартовой странице
При сравнении «специализированных» cms для интернет магазинов и minishop заметил общую тенденцию у первых выводить при входе в админку список заказов. После недолгой переписки с замечательным исполнителем Павлом Гвоздем возникло такое замечательное и гениальное по простоте решение:
заходим в настройки системы, далее в фильтре по ключу отыскиваем 2 значения:
1. welcome_action меняем с welcome на mgr/orders
2. welcome_namespace с core на minishop2
и вуаля на чистом клиенте отображается список заказов, очень удобно
заходим в настройки системы, далее в фильтре по ключу отыскиваем 2 значения:
1. welcome_action меняем с welcome на mgr/orders
2. welcome_namespace с core на minishop2
и вуаля на чистом клиенте отображается список заказов, очень удобно
Добавление своих полей в форму заказа [обновлено]
При разработке нескольких проектов, возникала необходимость в получении дополнительных данных от покупателей, а полей в miniShop2 ограниченное количество. Поиск готового решения результата не дал, поэтому предлагаю свой вариант.
Решение обновлено, убраны правки исходного кода минишопа, теперь при обновлении ничего не затрется, изменены ключи у полей
Решалось это следующим образом:
1. Добавлялись необходимые поля, для примера взяты тип плательщика, название организации и инн.
2. Добавлялся плагин срабатывающий при сохранении заказа и при подключении js минишопа в админке.
3. Редактировались настройки и записи словарей.
Более подробно далее
Решение обновлено, убраны правки исходного кода минишопа, теперь при обновлении ничего не затрется, изменены ключи у полей
Решалось это следующим образом:
1. Добавлялись необходимые поля, для примера взяты тип плательщика, название организации и инн.
2. Добавлялся плагин срабатывающий при сохранении заказа и при подключении js минишопа в админке.
3. Редактировались настройки и записи словарей.
Более подробно далее
Сохранение корзины для пользователей
На одном из проектов появилась задача сохранять содержимое корзины для зарегистрированных пользователей, чтобы при последующей авторизации с любого компьютера они имели возможность продолжить покупки, а не добавлять все заново.
В качестве решения получился очень простой плагин, который выполняет 2 действия:
1) Сохраняет содержимое корзины в extended поля пользователя после каждого изменения корзины
2) Восстанавливает содержимое корзины перед каждой обработкой запрошенной страницы.
В качестве решения получился очень простой плагин, который выполняет 2 действия:
1) Сохраняет содержимое корзины в extended поля пользователя после каждого изменения корзины
2) Восстанавливает содержимое корзины перед каждой обработкой запрошенной страницы.
Redis Cache (xPDORedisCache)
Решил попробовать использовать redis кэш для modx
создал класс xPDORedisCache, особо не заморачивался переписал мемкеш класс, но возникает проблема, идет пустая выдача и в логе:
UPD: 2016-04-10
Решение далось легко, забыл указать сериализацию
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
Устанавливается в /core/xpdo/cache/
в настройках cache_handler = cache.xPDORedisCache
Доступные опции:
redis_server — строка с данными для подключения 'localhost:6379'
redis_auth — пароль для аутентификации
redis_db — целое число >= 0
cache_prefix — по желанию, по сути если задать в redis_db разные значения для разных сайтов, будет то, что надо
Код xpdorediscache.class.php ниже:
создал класс xPDORedisCache, особо не заморачивался переписал мемкеш класс, но возникает проблема, идет пустая выдача и в логе:
modExtensionPackage::loadCache() is not a valid static method.
в общем логе:[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning: Invalid argument supplied for foreach() in /var/www/core/model/modx/modcontext.class.php on line 101
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning: array_merge(): Argument #2 is not an array in /var/www/core/model/modx/modx.class.php on line 2306
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Fatal error: Class 'modUser_' not found in /var/www/core/xpdo/xpdo.class.php on line 770
Есть какие идеи куда копать?UPD: 2016-04-10
Решение далось легко, забыл указать сериализацию
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
Устанавливается в /core/xpdo/cache/
в настройках cache_handler = cache.xPDORedisCache
Доступные опции:
redis_server — строка с данными для подключения 'localhost:6379'
redis_auth — пароль для аутентификации
redis_db — целое число >= 0
cache_prefix — по желанию, по сути если задать в redis_db разные значения для разных сайтов, будет то, что надо
Код xpdorediscache.class.php ниже:
Cтоимость способа доставки в MS2
Всем привет!
В стандартном чанке tpl.msOrder.outer MiniShop2 есть такой блок:
Подскажите пожалуйста как вывести отдельно стоимость доставки?
В стандартном чанке tpl.msOrder.outer MiniShop2 есть такой блок:
<h3>[[%ms2_frontend_order_cost]]: <span id="ms2_order_cost">[[+order_cost:default=`0`]]</span>
[[%ms2_frontend_currency]]</h3>
в placeholder [[+order_cost]] уже включена стоимость выбранного способа доставки.Подскажите пожалуйста как вывести отдельно стоимость доставки?
Content Editor Tools 0.8 и тема для админки
Перенос фото товаров из TV в галерею miniShop2
Постановка задачи: был интернет магазин, где товары — обычные ресурсы, а изображения — TV поля (в моем примере 5 штук). Необходимо сделать товары типа msProduct, а изображения перенести в стандартную галерею miniShop2.
Небольшой скрипт, решающий вторую часть задачи, ниже. (первая часть задачи решается примерно так)
Что он делает? Скрипт берет все записи с типом msProduct, и копирует изображения из TV в галерею miniShop2.
Надеюсь кому-нибудь будет полезным (скрипт не 100% универсальный, подгоняйте под себя! и да, я запускаю его из Console, если у вас просто php файл, то необходимо сначала авторизоваться в админке через API).
Небольшой скрипт, решающий вторую часть задачи, ниже. (первая часть задачи решается примерно так)
Что он делает? Скрипт берет все записи с типом msProduct, и копирует изображения из TV в галерею miniShop2.
Надеюсь кому-нибудь будет полезным (скрипт не 100% универсальный, подгоняйте под себя! и да, я запускаю его из Console, если у вас просто php файл, то необходимо сначала авторизоваться в админке через API).
Меняем стоимость доставки совершённого заказа
Переключение языка словаря
Здравствуйте!
В разных контекстах en и web, словарные слова выводятся только на русском языке. Уже голову сломал. Очевидно, что ответ лежит на поверхности, иначе как объяснить отсутствие такой проблемы в документации.
Словари лежат в «core/components/darvo/lexicon/en/front.inc.php» и «core/components/darvo/lexicon/ru/front.inc.php»
В разных контекстах en и web, словарные слова выводятся только на русском языке. Уже голову сломал. Очевидно, что ответ лежит на поверхности, иначе как объяснить отсутствие такой проблемы в документации.
Словари лежат в «core/components/darvo/lexicon/en/front.inc.php» и «core/components/darvo/lexicon/ru/front.inc.php»