Константин Ильин

Константин Ильин

С нами с 10 февраля 2014; Место в рейтинге пользователей: #151

Ajax создание заказа и сохранение корзины

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

Почти сделал, быстрый заказ он столкнулся с проблемой ответа $miniShop2->order->submit(), я его как бы сохраняю в переменную, но он ретурнит ответ, т.е. код после вызова submit не срабатывает т.к. уже ответил.
Ответ приходит такой
joxi.ru/gmvKvnNcv3O1X2

А должен выводить массив $resp.

Подскажите пожалуйста что не так?
Константин Ильин
26 мая 2020, 14:03
modx.pro
1 438
0

Ошибка оплаты заказа с msBonus2 и mspTinkoff

Доброго дня!

Создал кнопку оплаты заказа в ЛК у пользователя, при нажатии перекидывает на Tinkoff оплату.

Получение ссылки простой код, спасибо большое Володе. (использую через аякс)
if (!$order = $modx->getObject('msOrder', ['id' => $order_id ])) {
        return $resp = ['success' => 0, 'text' => 'Такого заказа не найдено!'];
    }
    if ($payment = $order->getOne('Payment')) {
    $mShop2 = $modx->getService('miniShop2');
    if ($class = $payment->get('class')) {
        $mShop2->loadCustomClasses('payment');
        if (class_exists($class)) {

            $handler = new $class($order);
            if (method_exists($handler, 'getPaymentLink')) {
                $link = $handler->getPaymentLink($order);
                $payment_link = $link;
            }
        }
    }
}
В общем код работает. Создаю простой заказ, цены на сайте без копеек. Прохожу в ЛК нажимаю кнопку оплатить все перекидывает и можно оплачивать.

Возникает проблема при использовании бонусов. Привожу пример на реальном заказе.
1. Корзина без бонусов. сумма 620
joxi.ru/Grq5XZktk8BOQr
joxi.ru/1A5VxdktGZ8yVr

2. С бонусами. 33 бонуса сумма 587
joxi.ru/1A5VxdktGZ87Vr
joxi.ru/ZrJvYJoiMNxoRr

Стоит оплата онлайн, т.е. должно перекинуть на оплату тинькова. Но выдает ошибку.
Константин Ильин
25 февраля 2020, 14:52
modx.pro
1
1 159
0

Отправка письма пользователю в зависимости от условия при msOnChangeOrderStatus

Приветствую!

при событии msOnChangeOrderStatus стоит отправка письма пользователю. В настройках минишопа есть галочка на статусах отправить письмо пользователю. Срабатывает все норм.

Вопрос как повлиять на отправку письма? необходимо проверить емайл пользователя перед тем как отправить это письмо. если емайл удовлетворяет требованию то ок.

Т.е. повлиять на это:
github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/model/minishop2/minishop2.class.php#L781
Константин Ильин
09 января 2020, 13:51
modx.pro
1 073
0

msProducts и общий параметр return

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

Почему то не отрабатывает общий параметр pdoTools return
в доках msProducts
Можно использовать и другие общие параметры pdoTools
в доках pdoTools параметр return
Константин Ильин
29 октября 2019, 22:15
modx.pro
1 610
0

pdoSitemap не отрабатывает where

Здравствуйте!
Странно, что для pdoSitemap не отрабатывает(не подключается) where, а для pdoResources нормально отрабатывает
Константин Ильин
05 декабря 2018, 15:47
modx.pro
923
0

Подключится к modx в другом modx сайте

Приветствую!

Проблема такая, вернее вопрос давно был в моей голове, и вот пришло время практики.

есть два сайта на modx
1. Каталог site1.ru
2. Каталог с ценами site2.ru

site1.ru заполнен полностью, с ним все ок.
Т.к. каталоги полностью совпадают, то явно нет смысла копировать весь сайт.
Я сидел и размышлял как решить данные проблему, чтобы заполнялось site1.ru, а выводилось и на site1.ru и на site2.ru.

Понятное дело придется писать маршрутизацию по урл, что-то типа виртуальных страниц и т.п. на site2.ru.
Вот и возник вопрос как подключится из сайта site2.ru к site1.ru использовать API site1.ru, чтобы получать данные, ресурсы чанки и т.п. на другом сайте т.е. работать с классом modx(site1.ru) и при этом не перебивая класс modx(site2.ru)
Константин Ильин
15 октября 2018, 15:54
modx.pro
888
+1

Связь объектов Composite и Aggregate

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

Имеется схема с классом SyncProducts и таблицой sync_products

aggregate к modResource как видно прописал, но при удалении ресурса запись в sync_products остается
<?xml version="1.0" encoding="UTF-8"?>
<model package="sync_pack" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" phpdoc-package="sync_pack"
       version="1.1">
	<object class="SyncProducts" table="sync_products" extends="xPDOSimpleObject">
		....
		<field key="product_id" dbtype="int" attributes="unsigned" precision="10" phptype="integer" null="false" />
	
        	<aggregate alias="ProductSync" class="modResource" local="product_id" foreign="id" cardinality="one" owner="foreign" />
       	....
	</object>
</model>
пробовал расширять modResource, не срабатывало
<object class="msProductsNew" extends="modResource">
        <composite alias="ProductRes" class="SyncProducts" local="id" foreign="product_id" cardinality="one" owner="local"/>
</object>
<object class="SyncProducts" table="sync_products" extends="xPDOSimpleObject">
	<field key="product_id" dbtype="int" attributes="unsigned" precision="10" phptype="integer" null="false" />
        <aggregate alias="ProductSync" class="msProductsNew" local="product_id" foreign="id" cardinality="one" owner="foreign" />
</object>
Пробовал с категориями тоже не удалялись…

Подскажите пожалуйста, что нужно учитывать и что еще надо дописать, чтоб подчинены modResource объекты(ProductSync) удалялись?
Константин Ильин
05 апреля 2018, 08:22
modx.pro
1 152
0

pdoTools и JSON поля

Константин Ильин
24 января 2018, 12:14
modx.pro
3
2 801
0

minishop2 связь опций и категорий(API)

Не пойму почему не отрабатывает создание связи
$cat = $modx->newObject('msCategoryOption', array(
    'option_id' => 1, 
    'category_id' => 2, 
    'active' => 1, 
    'value' => '')
    );
$cat->save();
joxi.ru/823n376IJQnLVm

В консоли пишет ошибку, полез в класс, ругается на
$key = $this->getOne('Option')->get('key');
и тут я встал в ступор.

Опция сама по себе создана.
joxi.ru/52aNMjbF4Q97KA
В базу пишет так
joxi.ru/L21pa1Qs8NGb6m

Сначала у себя столкнулся с такой проблемой, попробовал на модхосте, тоже самое.
s10452.h8.modhost.pro/manager/
s10452
pass: 5CohN1V00fp0

Подскажите пожалуйста, что не так или как лучше создавать связь?
Константин Ильин
31 июля 2017, 15:28
modx.pro
2 438
0

Parse only content

Приветствую!

Идея такая, есть плагин на событие OnBeforeDocFormSave, при сохранение ресурса проверяется контент, если он изменился то записать его в «другое место». Как бы ничего сложного:
case 'OnBeforeDocFormSave':
if ($mode == 'upd'){
	$oldRes = $modx->getObject('modResource', $data['id']);
	$oldRes = $oldRes->toArray();
	if($oldRes['content'] != $data['content'] ){
		/*записать контент в "другое место" */
	}
}
Но теперь возникла ситуация, если в content например содержится плейсхолдер или tv или вообще сниппет то как получить на выходе готовый content с распарсенными тегами?
Подскажите пожалуйста этот момент

Нашел, что в EVO была готовая функция $modx->parseDocumentSource($data['content']);
Константин Ильин
28 апреля 2017, 13:07
modx.pro
1
1 248
0