Денис Усманов

Денис Усманов

Был в сети 12 июля 2026, 13:06
Заказы принимаю
Я как раз занимаюсь разработкой подобного сайта, собираюсь разделить покупателей и продавцов полем checkbox по которому и буду определять, кто есть кто… но магазин у меня там единый, нет такого, что продавцы, это отдельные «магазины».
Часто задаваемый вопрос, и судя по всему решение «лежит» в файлах компонента, в сис. настройках ничего связанного с этим нет… Если найду решение, напишу сюда обязательно.
Ну, какие показатели нормальны, это понятие относительное к загружаемому контенту… Эти строки всего лишь дают понять, что, откуда и сколько грузиться, и по ним можно сориентироваться, что надо оптимизировать для более быстрой загрузки…
Ну вот же, я показал, что можно просто сделать модальное окно в модальном окне по сути, во 2 пункте у меня в коде посмотри, идёт вызов msOrder, где код опять же как модальное окно, а в корзине кнопка «оформить» это вызов этого модального окна… ну и с getOrder так же просто поступи…
Ну, а что бы как в моём случае после оформления заказа открывалась модалка с id (в конце скрина во 2 пункте) orderSuccess, необходимо изменить js файл MiniShop2:
assets/components/minishop2/js/web/default.js
Строки примерно такие:
callbacks.submit.response.success = function (response) {
                if (response.data['redirect']) {
                    document.location.href = response.data['redirect'];
                } 
                else if (response.data['msorder']) {
                    $('#msMiniCart').removeClass('full');
                    $('#miniCart').removeClass('open');
                    $('body').find('.global-overlay').removeClass('overlay-open');
                    $.fancybox.close([{
                          src  : '#msOrder'
                      }]);
                    $.fancybox.open([{
                          src  : '#orderSuccess',
                          padding: 0
                      }]);
                }
                else {
                    $.fancybox.open([{
                          src  : '#orderSuccess',
                          padding: 0
                      }]);
                }
            };
1) Создаёшь ресурс без шалона со сниппетом msCart


2) В чанк (как моём случае customMiniCart) вкладываешь код самой корзины, сниппет msOrder и т.п., а так же доп. скрипты


3) На миникорзину вешаешь вызов модального окна, так же такой скрипт:

<script>
  $(document).on('click', '.msMiniCart', function(e) {
	e.preventDefault();
	$.ajax({  
	  type: "POST",  
	  url: '[[~ID ресурса созданного при 1 пункте]]', 
	  data: {parent: '[[*id]]'},
	  success:  function(data) { 
		if (data){
		    $('#miniCartContainer').html(data);
		    miniShop2.Order.initialize();
		}else{
		  AjaxForm.Message.error('Что-то пошло не так, попробуйте позже!');
		}
	  } 
	}); 
  });
</script>
#miniCartContainer — это то, что должно быть в модальном окне, куда будет подгружаться корзина

Ну и напоследок: Для динамического изменения кол. товаров и при чём корректного, я использую компонент msMiniCartDynamic