Борис

Борис

С нами с 15 марта 2016; Место в рейтинге пользователей: #1021

Разбор xml и импорт в modx

Один из поставщиков даёт прайсы в формате XML.
В настройках каждого товара я указываю его id в данном xml-прайсе.
Каждое утро я кроном забираю файл со свежими ценами с сервера поставщика.

Направьте, пожалуйста, на дальнейшие действия.

Писать сниппет, чтоб при открытии страницы обновлялась цена с xmlки или как-то единоразово или централизованно массово апдейтнуть цены?

P.S.: Подскажите решения для этого, если таковые имеются
Evgeniy
22 января 2018, 13:52
modx.pro
1
3 307
0

Экспорт товаров Minishop2 в CSV – без программирования

Задача: экспорт товаров в CSV с возможностью выгрузки всех опций или tv как захочется.
Сложность: 0 знаний в php :-)
Решение:
  1. Создаем новый ресурс: > опубликован > не показывать в меню > тип содержимого: HTML > не использовать HTML редактор > заморозить uri c .csv в конце.
  2. Вызываем msProducts с нужными настройками, у меня так:
    {'!msProducts'|snippet:[
        'hideContainers' => 1,
        'parents' => 3,
        'limit' => 150,
        'depth' => 3,
        'includeTV' => '1',
        'includeTVs' => 'video',
        'sortby' => 'menuindex',
        'sortdir' => 'DESC',
        'showLog' => 1,
        'tplFirst' => '@FILE chunks/export/first_row_drom.tpl',
        'tpl' => '@FILE chunks/export/eng_drom.tpl'
        ]}
  3. Сохраняем
Konstantin
11 января 2018, 09:30
modx.pro
16
7 663
+5

[minishop2-combo-colors] - вариация поля цвета

Краткая инструкция как добавить на страницу продукта поле с выбором цвета.


Володя
27 декабря 2017, 15:21
modx.pro
23
4 211
+17

mFilter2 - из метода boolean убрать значение "нет"

Здравствуйте!

Помогите, пожалуйста, доработать метод фильтрации. У товара есть поле ms|favorite. У некоторых товаров это поле отмечено (чекбокс). Нужно в фильтре вывести только одну галочку, по клику на которую бы фильтровались товары. Можно выводить методом boolean, но тогда будет выбор «да» и «нет».

Нашел направление, куда копать.

Создал новый метод Positive, присвоил:

&filters=`ms|favorite:positive`
Но дальше эксперименты-правки не увенчались успехом.

Грубо говоря, из метода boolean, который я взял за основу, нужно убрать те варианты, где поле не отмечено (нулевое?). Далее чистый boolean с исправленными названиями на positive.

<?php
class myCustomFilter extends mse2FiltersHandler {
	public function buildPositiveFilter(array $values, $name = '') {
		if (count($values) < 2 && empty($this->config['showEmptyFilters'])) {
			return array();
		}
		$results = array();
		foreach ($values as $value => $ids) {
			$empty = empty($value) || (is_numeric($value) && (int)$value === 0);
			$title = $empty
				? $this->modx->lexicon('mse2_filter_positive_no')
				: $this->modx->lexicon('mse2_filter_positive_yes');
			if (!isset($results[$title])) {
				$results[$title] = array(
					'title' => $title,
					'value' => (int)!$empty,
					'type' => '<b>positive</b>',
					'resources' => $ids,
				);
			}
			else {
				$results[$title]['resources'] = array_merge($results[$title]['resources'], $ids);
			}
		}
		ksort($results);

		return $results;
	}
 	public function filterPositive(array $requested, array $values, array $ids) {
		$matched = array();

		$tmp = array_flip($ids);
		foreach ($requested as $value) {
			foreach ($values as $k => $resources) {
				$empty = empty($k) || (is_numeric($k) && (int)$k === 0);
				if ((empty($value) && !$empty) || (!empty($value) && $empty)) {
					continue;
				}
				foreach ($resources as $id) {
					if (isset($tmp[$id])) {
						$matched[] = $id;
					}
				}
			}
		}

		return $matched;
	}
}
Мартин Очоа
30 октября 2017, 20:06
modx.pro
2
1 713
0

Подготавливаем ЛК для "ГдеПосылка"


Это продолжение статей по работе с заказами MS2, в последней статье я обещал, что расскажу как интегрировать сервис «ГдеПосылка» в Minishop2, а пока я жду пока очухается администрация «ГдеПосылка» чтобы дать мне доступ к API подготовим почву для интеграции, что мы будем делать:

  1. Добавим новое поле в заказы minishop2
  2. Сделаем вывод для пользователей их историю заказов без extJS и каких либо дополнений, на чистом pdoTools
  3. Научимся делать leftJoin и select на pdoTools и pdoFetch
  4. Бонусом идут сразу готовые стили для всего этого добра и написанный JS
За стилизацию заказов я брал пример с modstore, я надеюсь никто не обидится, потому что мне кажется что у нового дизайна модстора очень удачное стиливое решение истории заказов

За объяснением кода — под кат, за кодом на GitHub
Pavel Zarubin
19 октября 2017, 11:37
modx.pro
17
5 765
+8

[msOrderAnalytics] Отправляем заказы в Google Analytics


Небольшой пакет, позволяет слать данные заказов вместе с товарами в Электронную коммерцию Google Analytics. Написан по следам статьи о том, как слать данные в Google Analytics средствами PHP. За идею благодарим Алексея.
Павел Гвоздь
31 августа 2017, 18:58
modx.pro
2
3 020
+9

Sendex и AjaxForm - подписка на рассылку ч/з ajax

Sendex, как учебный компонент, особо не развивается, но он довольно удобен и приятен в обращении изнутри сайта. В связи с чем регулярно его использую. Но вот «снаружи», на фронте, он не очень удобен. Очередная просьба от клиента «чтобы окошко появлялось, а страничка не перезагружалась», побудила переписать для себя сниппет так, чтобы потом пользовать его через ajaxform. Получилось три чанка, один сниппет и немного джаваскрипта.
mngatoff
26 августа 2017, 19:52
modx.pro
26
5 102
+8

Автоматическая оптимизация изображений

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

Что делает данный компонент?
Оптимизация изображения для сайта — это уменьшение объема изображения без видимой потери качества.
При загрузке файла через файловый менеджер или тв-поле в ресурсе файла изображения (jpg/png), он автоматически его оптимизирует.
Alexey Medvedev
21 августа 2017, 17:14
modx.pro
13
10 057
+14

Показать анимацию до момента отправки заказа

Здравствуйте!
После нажатия на кнопку отправки заказа ([!msOrder?]]) до момента уведомления об успешном заказе ([[!msGetOrder]]) на сайте проходит примерно 2 секунды, подскажите пожалуйста, как добавить в этот промежуток времени показ какой-нибудь анимации (гифки, например), клиенту, чтоб не было возможности нажать кнопку отправки заказа 100500 раз?

Может посоветуете другие варианты решения проблемы? Оптимизация работы дополнения или запрет отправки нескольких заказов в течение 5 секунд?

Вызываю сниппеты в шаблоне корзины.
[[!msCart?tpl=`my.tpl.msCart`]]
[[!msOrder?tpl=`my.tpl.msOrder`]]
[[!msGetOrder?tpl=`my.tpl.msGetOrder`]]

Чанки:
Павел Мезенцев
14 июля 2017, 19:25
modx.pro
5
1 656
0

Убрать из ЧПУ кавычки и др.

Коллеги, дайте пожалуйста мудрый совет!
Нужно сделать так, что бы при автоматической генерации ЧПУ (*alias) не генерировались разные символы, в основном конечно кавычки («, »)
Как можно это сделать?

Заранее спасибо!
Серый
24 июня 2017, 12:22
modx.pro
2
1 211
+1