Воеводский Михаил
С нами с 07 февраля 2013; Место в рейтинге пользователей: #18Разные скидки в зависимости от количества товаров
Описан алгоритм для модуля интернет-магазина minishop2. Для других модулей алгоритм похож, но объекты отличаются.
Задача: сделать автоматический пересчет стоимости товаров в зависимости от общего количества товаров, находящихся в корзине.
Решение: пройти по всему массиву корзины и изменить цену товаров.
Задача: сделать автоматический пересчет стоимости товаров в зависимости от общего количества товаров, находящихся в корзине.
$cartArray = $cart->get(); // Массив товаров в корзине
$cartProduct = $cartArray[$key]; // Один товар в корзине
Решение: пройти по всему массиву корзины и изменить цену товаров.
[UsersOnline] Пользователи онлайн
Достаточно часто появляются вопросы из серии «Как посмотреть дату последнего появления пользователя?» или «Как посмотреть, кто онлайн?»
Увидев очередной такой вопрос, мы решили создать простенький компонент, который не только ответит на такие вопросы, но и полностью их решит.
Возможности
Увидев очередной такой вопрос, мы решили создать простенький компонент, который не только ответит на такие вопросы, но и полностью их решит.
Возможности
- Фиксирует дату крайнего появления каждого пользователя (во всех контекстах)
- Выводит список пользователей онлайн на сайте
- Сбрасывает авторизацию отключенных и заблокированных пользователей
Странное поведение процессора
Очень странная ситуация с процессором modUserUpdateProcessor — в расширяющем процессоре он подключается стандартным образом, привожу начало процессора:
<?php
require_once MODX_CORE_PATH . 'model/modx/processors/security/user/update.class.php';
class chwUserUpdateProcessor extends modUserUpdateProcessor {
public $classKey = 'chWorker';
public $permission = 'chworker_save';
/**
* {@inheritDoc}
* @return boolean|string
*/
public function initialize() {
exit ('PERM::::: '.$this->permission. ' ::::::RESULT::::: '.$this->modx->hasPermission($this->permission));
return parent::initialize();
}
Вызывается этот процессор тоже вполне обычно:$response = $this->modx->runProcessor('web/user/update',$userData, array('processors_path' => $this->config['processorsPath']));
Но! chwUserUpdateProcessor как файл вызывается, а отрабатывает modUserUpdateProcessor. Видно это простейшим образом: вместо обрыва выполнения на операторе exit() происходит проверка прав с отрицательным результатом и возвратом json. msCDEK 1.0.0: расчет доставки ТК СДЕК
Описание
msCDEK позволяет рассчитывать стоимость доставки, с учетом веса заказа, для 8 тарифов ТК СДЕК.
Особенности
Поддерживаемые типы отправлений:
Данный компонент возможно использовать вместе с компонентом msRussianPost – они унифицированы.
msCDEK позволяет рассчитывать стоимость доставки, с учетом веса заказа, для 8 тарифов ТК СДЕК.
На самом деле, поддерживаются все тарифы СДЕК, но для этого необходимо вручную прописывать JSON в свойство properties метода доставки. Подробнее в конце заметки.
Особенности
- Учет веса товаров в заказе
- Вывод сроков доставки
- Сниппет для расчета доставки в карточке товара
- Поддержка авторизации
- Совместимость с msRussianPost при расчете сроков доставки
Поддерживаемые типы отправлений:
- Экспресс-Лайт Склад-Склад
- Экспресс-Лайт Склад-Дверь
- Экспресс-Лайт Дверь-Склад
- Экспресс-Лайт Дверь-Дверь
- Посылка Склад-Склад (Требуется авторизация!)
- Посылка Склад-Дверь (Требуется авторизация!)
- Посылка Дверь-Склад (Требуется авторизация!)
- Посылка Дверь-Дверь (Требуется авторизация!)
Данный компонент возможно использовать вместе с компонентом msRussianPost – они унифицированы.
msRussianPost 1.0.0: расчет доставки Почтой России
Описание
msRussianPost позволяет рассчитывать стоимость доставки, с учетом веса заказа и стоимости всех товаров, для всех основных типов перевозок Почтой России.
Особенности
Поддерживаемые типы отправлений:
Данный компонент возможно использовать вместе с компонентом msCDEK – они унифицированы.
msRussianPost позволяет рассчитывать стоимость доставки, с учетом веса заказа и стоимости всех товаров, для всех основных типов перевозок Почтой России.
В тексте упоминается компонент msCDEK — его описание появится в скором времени.
Особенности
- Учет стоимости и веса товаров в заказе
- Вывод стоимости доставки с учетом страхования
- Вывод сроков доставки
- Сниппет для расчета доставки в карточке товара
- Кэширование результатов расчета
- Совместимость с msCDEK при расчете сроков доставки
Поддерживаемые типы отправлений:
- Простая бандероль
- Заказная бандероль
- Заказная бандероль 1 класс
- Ценная бандероль
- Ценная посылка
- Ценная авиабандероль
- Ценная авиапосылка
- Ценная бандероль 1 класс
- Курьерская доставка EMS
Данный компонент возможно использовать вместе с компонентом msCDEK – они унифицированы.
Всех с Великим Праздником - Днем Победы!
Именно в этот день 70 лет назад вся страна узнала об окончании четырехлетнего ужаса, унесшего жизни 27 миллионов наших защитников — не только бойцов, но и тружеников тыла.
Это праздник со слезами на глазах. Праздник, забывать о котором категорически нельзя. Никому и никогда. Ведь только тогда этот, самый настоящий, ад не повторится.
Только тогда подвиг настоящих Героев будет жить вечно.
Спасибо Героям — и живущим ныне, и, к сожалению, уже ушедшим от нас, за наши жизни и мирное небо над головой!
С Днем Победы!
Это праздник со слезами на глазах. Праздник, забывать о котором категорически нельзя. Никому и никогда. Ведь только тогда этот, самый настоящий, ад не повторится.
Только тогда подвиг настоящих Героев будет жить вечно.
Спасибо Героям — и живущим ныне, и, к сожалению, уже ушедшим от нас, за наши жизни и мирное небо над головой!
С Днем Победы!
Проверка прав доступа в процессорах
Разрабатывая компонент для работы с сотрудниками, столкнулся с вопросом разграничения прав доступа к одним и тем же действиям разными сотрудниками.
Ситуация:
Подскажите, как правильно решить и настроить проверку прав?
Ситуация:
- есть 4 типа сотрудников — бармен, администратор, старший администратор, директор
- Ничего не может сделать только бармен, его не рассматриваем.
- Сотрудники должны иметь возможность менять пароль, личные данные, статус (работает / не работает)
- Сотрудник может изменить только нижестоящего сотрудника. Администратор не может изменить пароль или статус старшему и директору.
Подскажите, как правильно решить и настроить проверку прав?
Разные чанки для msProducts
Доброго всем дня!
Есть ли возможность указать сниппету msProducts не один чанк для товаров?
Ситуация проста: в зависимости от шаблона товара выставлять разные чанки оформления товара.
Сейчас для этого используется костыль в виде чанка обертки, в котором фильтрами подставляется уже другой, нужный чанк. Естественно, это замедляет работу.
Существует ли более элегантное решение?
Есть ли возможность указать сниппету msProducts не один чанк для товаров?
Ситуация проста: в зависимости от шаблона товара выставлять разные чанки оформления товара.
Сейчас для этого используется костыль в виде чанка обертки, в котором фильтрами подставляется уже другой, нужный чанк. Естественно, это замедляет работу.
Существует ли более элегантное решение?
Новый метод оплаты ms2 аналогично оплате наличными
Добрый день!
Как можно скопировать метод оплаты «Наличными», чтобы добавить еще один метод оплаты без кастомного поведения?
Задача — иметь возможность при создании заказа указать payment = 3 или любое другое число, отличное от единицы.
UPD: все оказалось до безумия просто. Так как я создаю заказ напрямую через
Как можно скопировать метод оплаты «Наличными», чтобы добавить еще один метод оплаты без кастомного поведения?
Задача — иметь возможность при создании заказа указать payment = 3 или любое другое число, отличное от единицы.
UPD: все оказалось до безумия просто. Так как я создаю заказ напрямую через
$miniShop2->order->submit($orderProps)
, то достаточно указать $orderProps['payment']=4
А не работало у меня из-за непроставленной галочки соответствия способа оплаты способу доставки. Ищу программиста для крупного проекта
Добрый день.
Ищу программиста (-ов) для работы над крупным проектом. Общая глобальная задача — система управления сетью заведений с центральным офисом. Бухгалтерия не включается в систему.
Указанный срок и оплата — стартовые для самого минимального функционала. В целом же, проект займет 3-5 месяцев с соответствующей оплатой. Все цифры и подробности проекта обсуждаются при личном общении.
Ищу программиста (-ов) для работы над крупным проектом. Общая глобальная задача — система управления сетью заведений с центральным офисом. Бухгалтерия не включается в систему.
Указанный срок и оплата — стартовые для самого минимального функционала. В целом же, проект займет 3-5 месяцев с соответствующей оплатой. Все цифры и подробности проекта обсуждаются при личном общении.