Сергей Фещуков

Сергей Фещуков

С нами с 10 февраля 2015; Место в рейтинге пользователей: #42
Сергей Фещуков
18 октября 2015, 20:38
0
Это очень хорошая новость. Вопрос такой — смена ценника дополнения обсуждается отдельно с администрацией? И можно ли делать уже добавленный модуль платным/бесплатным?
Сергей Фещуков
01 октября 2015, 16:52
0
Спасибо за наводку. Исправлю в ближайшее время.
Сергей Фещуков
28 сентября 2015, 04:32
0
Вообще он был удалён из компонента, потому что в случае учёта остатков по двум опциям, определить остатки только по одной опции невозможно.
Вместо сниппета msOptionsWithRemains лучше использовать msOptions.
Сергей Фещуков
27 сентября 2015, 17:08
+1
О, не учёл этого. До версии 2.0 создавалось поле remains в таблице modx_ms2_products. Теперь в новой таблице modx_ms2_product_remains есть такое же поле. При запросе на странице компонента первая таблица подключается к последней и старые данные затирают новые в результатах запроса. Ранее в поле remains была информация есть ли вообще остатки у товара или нет (1 или 0 соответственно).
Решением проблемы станет удаление поля remains в таблице modx_ms2_products. Желательно ещё удалить папки
/assets/components/minishop2/plugins/msproductremains/
/core/components/minishop2/plugins/msproductremains/
Сергей Фещуков
18 сентября 2015, 13:54
+1
Прошу прощения за задержку, но приводил и компонент, и скрипт в порядок. Скрипт для импорта остатков со старой версии компонента можно скачать здесь file.modx.pro/files/1/1/f/11f21b118b85042a036b1b3359d85397.zip
Необходимо распаковать архив в корень сайта, запустить его по ссылке www.ваш_сайт.ru/mspr_convert.php. После появления записи «Done!» необходимо обновить кэш сайта и удалить файл скрипта. Готово!
Ещё один момент: обязательно обновите компонент до версии 2.0.1-beta, там небольшие поправки для формирования остатков по одной опции. Поправки важные, если не обновится, в дальнейшем понадобится снова поправлять вид остатков в базе данных.
Сергей Фещуков
15 сентября 2015, 10:04
0
Здравствуйте. Я сегодня вечером напишу скрипт для переноса старых остатков и напишу как им воспользоваться.
Сергей Фещуков
08 сентября 2015, 07:33
0
Я не совсем корректно сделал эту таблицу (но другого варианта не нашёл) и для реализации деления товаров по опциям сделал обработку полученных массивов, добавляя новые товары с отрицательным ID. Поэтому эти данные сейчас некорректно отображаются, им доверять нельзя. Но если у вас действительно не все товары указаны в таблице, возможно, для них остатки никогда не сохранялись.
Так что может быть и так: «Показано 1-5 из 2». ;)
Сергей Фещуков
07 сентября 2015, 11:07
0
Установил компонент с нуля на чистом modx 2.4.0 + minishop2 2.2.0-pl2, настройки никакие у него не менял, то есть формируются остатки по опции size, столбцы таблицы на странице остатков стандартные:
id,pagetitle,color,size,price,weight,article,published,instock,remains
Всё работает, список выводится, остатки из таблицы меняются.

Можете показать настройки компонента?
Сергей Фещуков
05 сентября 2015, 16:33
+1
Попробую сам установить чистый modx, minishop2 и поставить с нуля компонент и проверить что там. И отпишусь о решении проблемы.
Сергей Фещуков
05 сентября 2015, 16:12
+1
Видимо где-то ошибка при получении списка. Если нажать кнопку обновить под таблицей, слово Загрузка исчезает или остаётся?
Сергей Фещуков
04 сентября 2015, 20:25
0
/core/components/minishop2/model/minishop2/mysql/msorder.map.php
Где-то такой путь к файла или что-то подобное ищи и дописывай в массивы два новых полях по аналогии с другими.
Сергей Фещуков
25 июля 2015, 09:24
0
Скорее лучше писать свой плагин. Искать статью в БД по alias и делать редирект. Но может быть проблема, если разрешены одинаковые псевдонимы (alias).
Сергей Фещуков
05 июля 2015, 08:56
0
А в самом сниппете нет подсказок?
Если мне память не изменяет, то так:
[[!msCart? &tpl=`tplRow` &tplOuter=`tplOuter`]]
Или вместо tpl пробуй tplRow. В miniShop2 однотипные параметры обычно имеют одни и те же названия в разных сниппетах.
Сергей Фещуков
04 июля 2015, 13:29
+1
Переменная $modx внутри функции не определена. Надо определить её как глобальную.
<?php
first();

function first() {
global $modx;
$result = $modx->query("SELECT * FROM `ig_users` WHERE `id` = '1'");
$row = $result->fetch(PDO::FETCH_ASSOC);
echo $name = $row['name'];
}
Сергей Фещуков
29 июня 2015, 19:51
+1
Empty — довольно таки строгое условие. Между вызовом сниппета и [[!+page.nav]] есть два перевода строки. А это уже считается непустым содержанием. Так что empty отрабатывается отлично. ;)
Сергей Фещуков
29 июня 2015, 14:16
1
+1
Можно использовать сниппет
[[!msOptionsWithRemains?&id=`[[+id]]`&name=`size`]]
Такой вариант вызова сниппета выведет все размеры товара, которые есть в наличии (то есть скроет все размеры, которые не в наличии).

А есть ещё такой вариант обработки этой ситуации.
Вызываем сниппет так:
[[!msOptionsWithRemains?&id=`[[+id]]`&name=`size`&showMissing=`1`]]
И в чанке tpl.msOptions.row выводим параметр таким образом:
<option value="[[+value]]" [[+selected]] [[+remains:lte=`0`:then=`disabled="disabled"`]]>[[+value]]</option>
Тогда сниппет выведет все размеры, но размеры не в наличии будут неактивными (выбрать их нельзя будет, но они будут видны).
Сергей Фещуков
29 июня 2015, 14:08
+1
К сожалению, скорее всего всё сложнее. Придётся добавлять поле properties как оно есть, то есть делать следующим образом.
В строке импорта пишем:
&fields=article,size,size,size,properties
а в CSV файле в строке пишем:
артикул 1;Размер 1;Размер 2;Размер 3;{"msproductremains":{"Размер 1":"49","Размер 2":"55","Размер 3":"12"}}

Визуально, все остатки обнулятся, придётся их заполнять заново. Поле указывается общее для всех товаров. По факту, в базе ничего не перезапишется (то есть останутся данные остатков по размерам), пока не будет пересохранён каждый товар с данными остатков по вкусам.
Сергей Фещуков
28 июня 2015, 08:17
0
Вид поля properties с остатками такой
{"msproductremains":{"Размер 1":"49","Размер 2":"55","Размер 3":"12"}}
Это пример для размеров. Соответственно, должны быть в свойствах Размеры указаны Размер 1, Размер 2 и Размер 3.