Klike

Klike

С нами с 14 января 2015; Место в рейтинге пользователей: #48

minishop2 и Babel

На сайте используется три языка, товар отправляется в корзину контекста по умолчанию. Как можно поправить это?
Klike
19 сентября 2015, 13:51
modx.pro
1
1 232
0

pdoNeighbors и Where

Есть вызов соседних товаров
[[!pdoNeighbors?
                        &where=`{"Data.favorite[[+favorite:ne=`1`:then=`:!=`]]":"1","AND:Data.popular:!=":"1"}`
                        &leftJoin=`{
                    		"Data":{"class":"msProductData", "on":"Data.id = modResource.id"}
                    	}`
                        &showLog=`1`
                    ]]
Но он не совсем верно работает. Может данный сниппет только для соседних ресурсов работает и нужно другой настроить? :)
Klike
18 сентября 2015, 08:22
modx.pro
1
1 022
-1

Кастомный класс доставки. Бесплатно дост. от суммы

Имеется кастомный класс доставки:
<?php
class msxxxDeliveryHandler extends msDeliveryHandler{
    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {
        $cart = $this->ms2->cart->status();
        $total = $_SESSION['minishop2']['mode_total'];
        
        if ($total<10000) { 
            $add_price = $delivery->get('price');
            if (preg_match('/%$/', $add_price)) {
                $add_price = str_replace('%', '', $add_price);
                $add_price = $cost / 100 * $add_price;
            }
            $cost += $add_price;
        }
        return $cost;
    }
}
При достижении суммы корзины свыше 10000, страница обновляется и вся корзина пересчитывается по оптовым ценам. Доставка становится бесплатной (по условию, свыше 10000, доставка бесплатная ).

Пример, Товар стоимостью 3500р (розничная цена), 3300р (оптовая).
Добавляем 3 наименования.
ИТОГ: в корзине 9900р, доставка бесплатная (по обычной цене сумма получилась 10500)

ВОПРОС: Подскажите, пожалуйста, как сделать, чтобы доставка всегда считалась по оптовой цене?
Klike
13 августа 2015, 09:48
modx.pro
4
2 686
0

Не сохраняются изменения в ресурсах и чанках

Добрый день!
Такая ситуация: вношу изменения в чанк/ресурс, сохраняю, во фронтенде всё отображается, если обновить страницу чанка/ресурса, старый код/значения, будто ничего не менялось. И если сохранить в таком виде, то именно так и сохранится всё. Чистил папку core/cache, кэш браузера. Какое-то время вроде работает, потом снова. В разных браузерах/компьютерах.
Подскажите, пожалуйста, может кто сталкивался с подобным?
Klike
06 июля 2015, 05:48
modx.pro
1
2 325
0

Помощь с поисковой системой mSearch2

Доброго времени суток!
Имеется сайт с мобильными телефонами и аксессуарами к ним.
Стоит компонент mSearch2, настраивали синонимы, но в некоторых случаях не получается найти то, что необходимо.
Пример:
Есть товар Lenovo,
есть синоним: Лениво | Lenovo | Не заменять
Если искать Lenovo, всё находит, всё хорошо, но если набрать Леново, ничего не найдено…
Klike
17 июня 2015, 18:51
modx.pro
1
1 511
0

Три языка на сайте

Добрый день!

У Василия есть замечательное решение переключения контекстов мультиязычного сайта.
И есть сниппет для вывода ссылок на переключение:

<?php
$tplRu = '<a href="[[+link]]">ru</a>';
$tplEn = '<a href="[[+link]]">en</a>';
$tplRuActive = '<span>ru</span>';
$tplEnActive = '<span>en</span>';

$output = '';
if ($modx->context->key == 'web') {
	$output .= $tplRuActive . ' | ' . $tplEn;
	$link = 'en/';
	if ($modx->getOption('site_start') != $modx->resource->id && $modx->getCount('modResource', array('uri' => $modx->resource->uri, 'context_key' => 'en'))) {
		$link .= $modx->resource->uri;
	}
}
else {
	$output .= $tplRu . ' | ' . $tplEnActive;
	$link = '/';
	if ($modx->getOption('site_start') != $modx->resource->id && $modx->getCount('modResource', array('uri' => $modx->resource->uri, 'context_key' => 'web'))) {
		$link .= $modx->resource->uri;
	}
}

return str_replace('[[+link]]', $link, $output);
Но вот как реализовать переключение ТРЁХ контекстов – никак не додумаю) Слабоват в PHP.
Подскажите, пожалуйста?
Klike
04 июня 2015, 08:51
modx.pro
1
1 144
+1

Очистка карточки товара от старых фото

Добрый день!
Давно стоит вопрос массовой чистки старых фото товаров на сайте. Можно вручную, но свыше 3000 товаров… времени уйдёт немерено)
Настроена синхронизация с 1С, через компонент mSklad (mSync), в 1С где нет фото стоит заглушка. И при синхронизации все заглушки закидываются в карточку товара.

Вопрос: как можно массово удалить все заглушки в товарах? В идеале – запретить синхронизировать их, но этот вопрос больше к разработчикам дополнения, в поддержке просто говорят, что такого функционала нет.

Схема думаю простая, пробежаться по всем товарам, сравнить картинки с исходной, если совпадает – удалить. НО как это реализовать… может кто подскажет?)
Klike
30 мая 2015, 12:29
modx.pro
1
1 226
0

Простой вывод погоды на сайте

Спасибо Ивану за помощь в написании сниппета
Klike
26 мая 2015, 07:06
modx.pro
8
4 313
+3

Удаление дубликатов/старых изображений товара

Добрый день!
На сайте настроена синхронизация с 1С УТ, если в 1С обновлены изображения товара, после синхронизации оба изображения (старое и новое) остаются в карточке.
Также в 1С есть картинка-заглушка, если нет фото товара. И после синхронизации на хостинге куча картинок-заглушек.

Два вопроса:
  1. Можно ли как-то удалять старое(все изображения) при синхронизации товара?
  2. Как сравнить хэш картинки-заглушки и не синхронизировать её, либо удалять. Чтобы подставлялась заглушка по умолчанию, как, к примеру, изначально подставляется логотип miniShop2.
Подскажите, пожалуйста, куда копать?

p.s. Всех с наступающим 9 мая!
Klike
08 мая 2015, 07:29
modx.pro
1
1 532
0

Разные цифры в пункте ПРОСМОТРЫ

На сайте есть блок с популярными статьями. Сортировка самая примитивная(топ популярных статей):

[[!getTickets?
        &leftJoin=`{
        		"View": {
        			"class": "TicketView",
        			"on": "Ticket.id = View.parent"
        		}
        	}`
        &select=`{
        		"Ticket": "*",
        		"View": "COUNT(View.parent) as views"
        	}`
        &groupby=`Ticket.id`
        &sortby=`views`
        &tpl=`tpl.Tickets.popular`
        &limit=`4`
        &parents=`14`
    ]]
В разных браузерах разные цифры показывает.
В одном – 20, 28, 30, 8.
В другом – 20, 14, 10, 4.

Странная математика) В чём может быть дело?
Klike
29 апреля 2015, 11:56
modx.pro
1
838
0