Яна Митрофанова

Яна Митрофанова

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

Минимальный заказ

Дорогие вы мои, подскажите пожалуйста, есть ли какое готовое решение чтобы запрещать отправку формы оформления заказа или ее вывод, если сформированный заказ не дотягивает до минимальной цены?
Андрей
26 января 2016, 11:20
modx.pro
13
5 141
0

Оrder success на отдельной странице

Доброго времени суток!

Подскажите, пожалуйста, как сделать так, чтобы после успешного оформления заказа, на сайте, посетителя перекидывало на определенную страницу, а не на эту же, с чанком tpl.msOrder.success?
Пашкович Дмитрий
27 декабря 2015, 14:38
modx.pro
6
4 094
0

Форма оплаты

Добрый день!

Встала задача создать форму оплаты с последующей отсылкой данных в платежную систему (webpay)

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

1) Необходимо создать форму, которая по кнопке «заказать» загрузится и подхватит pagetitle товара и tv с ценой.

2) Далее покупатель вписывает в эту форму свои данные и нажимает продолжить

3) Когда нажимаем «продолжить» форма должна перекинуть все данные в форму #2 (форма в которой формируются данные для отправки данных в платежную систему)

код формы (дан поставщиком платежной системы)

form action="https://secure.sandbox.webpay.by:8843/" method="post">
<input type="hidden" name="*scart">
<input type="hidden" name="wsb_version" value="2">
<input type="hidden" name="wsb_language_id" value="russian">
<input type="hidden" name="wsb_storeid" value="11111111"  >
<input type="hidden" name="wsb_store" value="Название Вашего магазина"  >
<input type="hidden" name="wsb_order_num" value="ORDER-12345678" >
<input type="hidden" name="wsb_test" value="1"  >
<input type="hidden" name="wsb_currency_id" value="BYR"  >
<input type="hidden" name="wsb_seed" value="1242649174">
<input type="hidden" name="wsb_return_url" value=" http://your   site   url.com/success.php ">
<input type="hidden" name="wsb_cancel_return_url" value=" http://your   site   url.com/cancel.php "> <input type="hidden" name="wsb_notify_url" value=" http://your   site url.com/notify.php ">
<input type="hidden" name="wsb_email" value="no@body.tld"  >
<input type="hidden" name="wsb_phone" value="22-333-333"  >
<input type="hidden" name="wsb_invoice_item_name[]" value="Товар 1">
<input type="hidden" name="wsb_invoice_item_quantity[]" value="2">
<input type="hidden" name="wsb_invoice_item_price[]" value="10000">
<input type="hidden" name="wsb_invoice_item_name[]" value="Товар 2">
<input type="hidden" name="wsb_invoice_item_quantity[]" value="1">
<input type="hidden" name="wsb_invoice_item_price[]" value="500">
<input type="hidden" name="wsb_total" value="21950"  >
<input type="hidden" name="wsb_signature" value="40aa8af3ce7a1f7c3635ac2227475094a59d574c" >
<input type="hidden" name="wsb_tax" value="1050">
<input type="hidden" name="wsb_shipping_name" value="Стоимость доставки"  >
<input type="hidden" name="wsb_shipping_price" value="980"  >
<input type="hidden" name="wsb_discount_name" value="Скидка на товар"  >
<input type="hidden" name="wsb_discount_price" value="580"  >
<input type="submit" value="Купить">
</form>

4) Форма #2 должна наконец отсылать данные на сайт платежной системы

Помогите с чего начать )

Может есть возможность сразу 2 формы в одну объединить?

Заранее спасибо!
Алексей
25 ноября 2015, 11:03
modx.pro
5
3 473
0

Дата: сегодня, +10 дней, + 20 дней?

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

Мне требуется вывести такую комбинацию дат:
дата сегодня — 15 ноября 2015 г.
дата через десять дней — 25 ноября 2015 г.
дата через 20 дней — 05 декабря 2015 г.

Нашёл вот такой вариант
<?php
function rus_date() {
    $translate = array(
    "Monday" => "Понедельник",
    "Tuesday" => "Вторник",
    "Wednesday" => "Среда",
    "Thursday" => "Четверг",
    "Friday" => "Пятница",
    "Saturday" => "Суббота",
    "Sunday" => "Воскресенье",
    "January" => "Января",
    "February" => "Февраля",
    "March" => "Марта",
    "April" => "Апреля",
    "May" => "Мая",
    "June" => "Июня",
    "July" => "Июля",
    "August" => "Августа",
    "September" => "Сентября",
    "October" => "Октября",
    "November" => "Ноября",
    "December" => "Декабря"
    );
    
    if (func_num_args() > 1) {
        $timestamp = func_get_arg(1);
        return strtr(date(func_get_arg(0), $timestamp), $translate);
    } else {
        return strtr(date(func_get_arg(0)), $translate);
    }
}
print rus_date("j F Y, l", time() + 864000);
где
, time() + 864000
это + 10 дней к сегодняшней дате в секундах

При таком варианте я создаю три сниппета и вывожу их на странице:
1. дата сегодня в формате 15 ноября 2015 г.
2. + 10 дней — time() + 864000
3. + 20 дней — time() + 1728000

Вариант работает, но приходится создавать три сниппета и я не совсем уверен, что сделал всё правильно.

Я мало грамотен в PHP, и толком не знаю правилен ли мой вариант, который нашёл на просторах интернета.
Подскажите, есть способ сделать это проще и правильнее стандартными средствами MODX или как будет правильно для моего случая?
Ну или как бы это сделали Вы?
Спасибо!
Илья
14 ноября 2015, 21:11
modx.pro
2
1 211
+1

Простое формирование квитанции в miniShop2

Некоторые покупатели интернет-магазинов предпочитают оплачивать банковским переводом по квитанции (Форма № ПД-4).
Для этого есть простое решение — формирование и отправка на эл. почту квитанции в один клик, посредством доп. статуса заказа. У этого решения есть два плюса: легко (не нужно создавать доп. компонент) и то, что квитанция формируется менеджером после предварительной проверки введенных данных покупателя.

Alexey T
28 сентября 2015, 19:53
modx.pro
17
3 287
+12

Бесплатная доставка курьером от определенной суммы

Здравствуйте. Пожалуйста, подскажите как реализовать данный функционал:
например, до 5000 тысяч доставка 300 рублей, от 5000 тысяч – бесплатно?

joxi.ru/zAN5Mxls156329
Александр Янк
02 августа 2015, 15:23
modx.pro
14
7 224
0

easyComm - дополнительное поле Изображение

UPD 22.04.2021. Эта публикация устарела!
С версии 1.11.0-pl компонент сразу поддерживает вложение файлов: modx.pro/components/21775


При использовании компонента easyComm встала задача прикрепления к сообщения файла, а точнее изображения. Да еще и так, что бы им удобно можно было управлять через админку.

По результатам работы — небольшая инструкция, как этого добиться:
Наумов Алексей
05 июня 2015, 06:30
modx.pro
17
7 496
+6

Одна галерея (ms2gallery) для двух языков

Всех с праздником!!!

На блоге появилась задача сделать одну галерею для двух контекстов (языков) то есть что бы можно было добавлять фото только в одном месте а выводить на двух контекстах site.com/ru и site.com/en
Alex Zhuravlev
09 мая 2015, 10:56
modx.pro
7
3 245
+3

Super MODx SEO-strict +ускоряем фронтенд

Михаил задал вопрос про канонизацию урлов в MODx.
Писал ему ответ, но понял, что он слишком большой. Поэтому переписал в статью.

Поехали.
Алексей Карташов
25 марта 2015, 14:29
modx.pro
69
16 947
+11

Динамическая кнопка Купить / В корзине

Появилась необходимость реализовать динамическую кнопку Купить / В корзине.

Может кому-то пригодится.

Спасибо Алексею Наумову, Василию Наумкину за помощь в реализации.

Чанк Купить tplOut:
<button type="submit" class="btn btn-cart btn-primary" name="ms2_action" value="cart/add">
	Купить
</button>
<button type="submit" class="btn btn-checkout btn-success hidden" name="ms2_action" value="cart/add">
	В корзине
</button>

Чанк В корзине tplIn:
<button type="submit" class="btn btn-checkout btn-success" name="ms2_action" value="cart/add">
    В корзине
</button>

Скрипт (требуется подключенный jQuery)
if (typeof(miniShop2) != 'undefined') {
    // кнопки В корзину/Оформить
    miniShop2.Callbacks.Cart.add.response.success = function(response) {
        miniShop2.Order.getcost();
        miniShop2.sendData.$form.find('.btn-cart').addClass('hidden');
        miniShop2.sendData.$form.find('.btn-checkout').removeClass('hidden');
    };
    miniShop2.Callbacks.Cart.remove.response.success = function() {
        miniShop2.sendData.$form.find('.btn-cart').removeClass('hidden');
        miniShop2.sendData.$form.find('.btn-checkout').addClass('hidden');
    };
}

Сниппет myButton:
<?php
// Параметры
$idd = $modx->getOption('idd', $scriptProperties, $modx->resource->id);
$tplIn = $modx->getOption('tplIn', $scriptProperties, 'tplIn'); //Можно писать так: ('tplIn', $scriptProperties,  '@INLINE Товар в корзине, кол-во – [[+count]], цена = [[+price]].');
$tplOut = $modx->getOption('tplOut', $scriptProperties, 'tplOut'); // '@INLINE Товара нет в корзине.'
// Классы для работы
$pdo = $modx->getService('pdoTools');
$miniShop2 = $modx->getService('minishop2');
$miniShop2->initialize($modx->context->key, $scriptProperties);
$cart = $miniShop2->cart->get();
// Поехали
$found = false;
foreach($cart as $product) {
	if ($product['id'] == $idd) {
		$found = $product;
		break;
	}
}
return $found
	? $pdo->getChunk($tplIn, $found)
	: $pdo->getChunk($tplOut);


Кнопка вызывается таким образом:
[[!myButton? &idd=`[[+id]]`]]
Klike
17 февраля 2015, 13:36
modx.pro
42
5 839
+2