varanika

varanika

Был в сети 08 декабря 2021, 23:51
Заказы принимаю
Здравствуйте. Пришел сайт с этим компонентом, соответственно ключ не мой и в ТП написать не могу. Но можно маленький вопрос? Где, ну где зашит этот вызов?

<script type="text/javascript">
		!window.jQuery && document.write('<script src="/assets/components/mvtforms/js/web/jquery-3.2.1.min.js"><\/script>');
            </script>
P.S.
Все, нашла наконец. core/components/mvtforms/model/mvtforms/mvtforms.class.php
Такая же ерунда, но я не переносила отдельно товары, а переносила всю базу из mysql8 в мариам. Так вот у меня в некоторых товарах были одинаковые rank (вот хрен знает, как так вышло то). В итоге правка в базе, а потом генерация превью заново проблему решила. Но опять же, это точечное решение.
Здравствуйте, а есть возможность сделать комбинацию из cityFields и msProductRemains, чтобы привязать остатки к разным складам в разных городах?)
Что-то я пока на этапе планирования не могу склеить в голове как красивее реализовать, да потом еще с 1С -7 связать :)
А вот ломание карточки товаров не зависит от компонентов. Но modhost на голой системе + minishop2 и pdotools — только товар сохраняется, как его тут же перекашивает и белые поля. Решается правкой js — писал выше
assets/components/msreferralprogramcoin/js/mgr/msrpc.js -->.items.items[1].items.items[2]
В общем выяснилось (долго и муторно), что msReferralProgramCoin и msGallerySearch несовместимы.
На чистом сайте при установке второго — первый ломается. И происходит то, что и я, и другие пользователи описывали — пропадают лексиконы, не срабатывают сниппеты и чанки, не списываются бонусы в корзине. Как, почему — я не поняла, ибо и события не совпадают у плагинов, и логика разная…

И немного моего мелкого изменения. Позже, вероятно, дополню. При установке галочки в корзине ничего не меняется и мне, как юзеру — это не понятно. Ибо где логика — чекбокс тыкаем, а толку ноль. Соответственно делаю так в корзине:
<script>
         var $pay = $('#msrpc-cart-payroll-dec').html();
         var $payr = $pay / 10;
 var $cost = Number($('#ms2_order_cost').html()) - $payr;
$htm = '- '+ $pay + ' баллов = ' +  $cost + ' руб.';
 $('#msrpc-pay-coins').change(function() {
     $(this).val($(this).prop('checked')?1:0);
     if ($(this).val() == 1){
          $('#referball').val('оплачено ' + $pay  + ' баллами - это '+ $payr + ' рублей');
          $('#referball').attr('value', 'оплачено ' + $pay  + ' баллами - это '+ $payr + ' рублей');
          $('#referrubl').val($payr);
          $('#referrubl').attr('value', $payr);
          
         $('#bonussumm').html($htm);
          
     }
     else {
          $('#referrubl').val('');
          $('#referrubl').attr('value', '');
          $('#referball').val('');
          $('#referball').attr('value', '');
         $('#bonussumm').html('');
     }
    
});
if ($('#msrpc-pay-coins').prop('checked')){
    $('#bonussumm').html($htm);
}	 
else { $('#bonussumm').html(''); }
	</script>
Установка value и одновременно с ним attr я делаю из занудства, ибо меня выбешивает, что в консоли хрома value остается чистым.

Ну и эти поля в вызове. Ах, да. В сниппете msrpcCart я дописала
$pdo = $modx->getService('pdoTools');
и вместе где
$modx->getChunk
заменить на 
$pdo->getChunk
Теперь у нас есть fenom и мы можем добавить такое в tpl:
<p class="msrpc-text">После фактической оплаты заказа с Вашего счета будет списано <span class="msrpc-cart-payroll-dec" id="msrpc-cart-payroll-dec">{$pay}</span> балла(ов), а общая сумма заказа уменьшится на {($pay / 10)  | replace :',':'.'} рублей</p>
и тут же пониже
<input type="text" value="{if $pay}оплачено {$pay} баллами - это {($pay / 10)  | replace :',':'.'} рублей{/if}" name="metro" id="referball" class="d-none">
     <input type="text" value="{if $pay}{($pay / 10)  | replace :',':'.'}{/if}" name="referrubl" id="referrubl" class="d-none">
10 — это именно у меня отношение к бонусам такое. Может и 1 и 100 быть :)
Заметили name=«metro»? Вот это малоиспользуемое поле я забрала именно, чтобы менеджер видел в админке, что списание цены было баллами, так как не понятно толком. Конечно, можно создать свое поле в админку, но что-то по двум инструкциям они у меня не создались и я просто махнула рукой. Ну, главное лексиконы переименовать, чтобы понятнее было.
и в msOrder в чанке так:
<span id="ms2_order_cost">{$order.cost ?: 0}</span> {'ms2_frontend_currency' | lexicon}
 <span id="bonussumm"></span>
С прыжками рефералов стало понятнее — проблема в том, что не нужно с одного компа три несчастных пользователя тестировать — система не то, что нужно запоминает))))

А вот списаний бонусов нет все равно. Ни в корзине не меняется цена, ни в админке не списываются. А добавляются исправно. Если найду решение — отпишусь. Пока не нашла в чем дело.
Пришлось убрать все сниппеты и плагин из статичных файлов. Сниппеты заработали как информационные.

В админке плагин поломал карточку ресурса. В файле assets/components/msreferralprogramcoin/js/mgr/msrpc.js убрала .items.items[1].items.items[2] — оно и ломало. Галочка бонусов появилась в общей вкладке.

Сделала тестовую регистрацию пользователя. Реферал отобразился у того, чей код. Для теста ввела при заказе код другого пользователя — сначала реферал исчез у обоих, потом у обоих же и появился. Сам по себе :)

Но вопрос по списанию. В корзине при установке галочки цена не меняется и бонусы не списываются. А точно ли плагин то срабатывает? Я что-то упускаю?
А есть зависимости какие-то от хостинга / версии php? Ставлю из репозитория, а что — то не до конца ставится, словарей будто части нет. И не только их. Хм… Дальше пока не лазила, пытаюсь понять без словарей в чем дело :)
А задумка клевая! Спасибо))
Пришел сайт с этим компонентом.
Вместо цен отражается ноль, если в товаре создать перевод. Плагин localizator отключаешь и все отлично начинает работать. Ошибок на эту тему в журнале нет. Выходит компонент перестал быть совместим с minishop2? Что за чудеса такие?
Так все таки при стандартном импорте ресурсов, как импортировать дополнительные поля, особенно с json или путем к картинке (да еще, чтобы она отобразилась в гугле как картинка, а не как ссылка)? Есть такая возможность?