mngatoff

mngatoff

С нами с 07 февраля 2014; Место в рейтинге пользователей: #32
mngatoff
27 июля 2017, 17:44
0
$raw = $this->modx->getCollection('msprRemains', array('product_id' => $product_id));
			
$rem = false;
foreach ($raw as $one) {
	$compare = $one->get('options');
	if ($where == $compare) {
		$rem = $one;
		break;
	}
}
вот так вот у меня заработало. Нестрогое сравнение массивов плюет на тип значений и порядок ключей, что меня полностью устраивает)
mngatoff
27 июля 2017, 16:54
0
если у Вас уже был до этого msimportexport с импортом остатков, то он будет работать и в новой версии. Проверял
mngatoff
27 июля 2017, 16:51
0
Здравствуйте, Сергей!

вылез очень серьезный и глупый баг, связанный с тем, что данные хранятся json строкой.
кейс: используются color,size
остатки импортированы из таблицы.
размеры у кроссовок, например: 34, 34.5, 35, 35.5
в таблице экселя 34 это число, а 34.5 — строка. Так это и пишется в базу — «size»:34 и «size»:«34.5»
а дальше начинается жесть, потому что размер 34 (и все целые числа) не добавить в корзину, хотя остатки есть!
лезу в плагин — вижу метод getRemains
лезу в класс — и в этом методе вижу ПРЯМОЕ СРАВНЕНИЕ JSON строки, сформированной тут же, со строкой из базы!
$rem = $this->modx->getObject('msprRemains', array(
	'product_id' => $product_id
	,'options' => $this->modx->toJSON($where)
));
я понимаю, что как иначе выбрать из базы, но выходит реализация в корне неверная: в скрипте массив собирается из данных post-запроса, а там всё — строки. И в итоге мы пытаемся сравнить «size»:«34» из скрипта с «size»:34 из базы. А поскольку это строка, и ей плевать на сами данные, получаем ошибку.

а если вдруг окажется, что свойства в остатке записаны не в том порядке, что в системной настройке, опять же будет ошибка, хотя данные совпадут.

в связи с этим предлагаю изменить метод getRemains — получать там сначала всю коллекцию остатков данного товара, а потом циклом проходить по ней с приведением типов, а не тупо сравнивать строку. Дольше, зато работать будет.
mngatoff
14 июля 2017, 11:28
0
а всё, не стало компонента в репозитории?
mngatoff
14 июля 2017, 06:21
0
это тоже здорово, но я вообще про страницу профиля. Прости, что в этой теме)
mngatoff
13 июля 2017, 02:26
0
ребяяяят, верните поддержку remains, пожалуйста! а то пункт в выпадашке есть — «импорт остатков», но файл выбираешь и он навсегда подвисает. А раньше работало. Обидно.
mngatoff
12 июля 2017, 20:11
0
а вот такой вот вопрос нарисовался, немного по теме прошлого топика больше:
как бы так грамотно на странице юзера вывести превью его аватарки? по типу image tv
mngatoff
11 июля 2017, 23:53
0
а как правильно модифицировать данные в этом событии?
пишу вот так:
case 'msieOnBeforeImportProduct':
		if (isset($destData['old_price'])) {
			if ($destData['old_price'] > 0) {
				$destData['sale'] = 1;
			} else {
				$destData['sale'] = 0;
			}
		}
		break;
чет не снимается флажок sale
mngatoff
11 июля 2017, 13:16
0
как бы исключать из списка города, в которые доставка не работает? или сообщение выводить — что сюда нельзя?

спасибо, про селект понял.

и еще, было бы здорово добавить функционал выгрузки заказов в сдэк — либо через интеграцию, либо хотя бы в виде экспорта таблицы в нужном формате
mngatoff
11 июля 2017, 13:01
0
а с geolocation это всё не поженить?
mngatoff
11 июля 2017, 12:50
0
я что-то недоразобрался… у меня в селекто вообще нет городов, а в автокомплите всякая шушера — вводишь «Москва», получаешь всё что угодно кроме москвы — все пригороды и т д. Даже если прям написать «Москва», выбирается пригород. в том числе куча мест, при выборе которых не меняется сумма заказа. То есть, туда видимо не доставляют этим способом. Как бы это пофиксить? где я неправ?
mngatoff
07 июля 2017, 22:17
+3
спасибо, Паша)
а то я уже в плагин джаваскрипта насовал. Грид расширил, но с доп. фильтрами так и не разобрался. Так что статья кстати
mngatoff
28 июня 2017, 22:26
0
я наверное все пропустил уже?) давно хотелось попробовать Redactor
mngatoff
20 июня 2017, 12:11
0
это повлияет на ответ?)
на remains
можно переделать на optionsPrice2, но это геморно
mngatoff
20 июня 2017, 02:07
0
здравствуйте! а экспорт остатков будет? например, хотим выгрузить табличку, вписать новые остатки и загрузить обратно.
mngatoff
19 июня 2017, 17:40
0
не, у меня и там и там не показывает. При этом в шаблоне я вполне вменяемо работаю с остатками
mngatoff
19 июня 2017, 17:30
0
Здравствуйте!
а как быть со свойствами товаров, добавленными через плагины minishop2? оно не выводится в таблицу, к сожалению
mngatoff
16 июня 2017, 17:41
0
title не должен ничего не кому. Внутри сниппета он выполняет функцию «найти — заменить». Никакого отношения к modx->getPlaceholder не имеет, иначе был бы доступен и вне getImageList. А вообще на феном, как уже сказали, этот сниппет ни к чему