Minishop2 кнопка сделать заказ
всем привет, подскажите пож как сделать после нажатия кнопки сделать заказ редирект на гланую страницу?
а то нажимаю кнопку сделать заказ- заказ добавляется, но страница не перегружается и данные не стираются, словно форма и не работает
сам чанк оформления заказа
а то нажимаю кнопку сделать заказ- заказ добавляется, но страница не перегружается и данные не стираются, словно форма и не работает
сам чанк оформления заказа
<h1>[[*pagetitle]]</h1>
<div id="msProduct" class="row">
<div class="col-md-6">
[[!msGallery]]
</div>
<div class="col-md-6">
<form class="ms2_form" method="post">
<input type="hidden" name="id" value="[[*id]]"/>
<div class="form-group">
<label class="col-md-2 control-label">[[%ms2_product_article]]:</label>
<div class="col-md-10 form-control-static">
[[+article:default=`-`]]
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" >[[%ms2_product_price]]:</label>
<div class="col-md-10 form-control-static">
[[+price]] [[%ms2_frontend_currency]]
[[+old_price:gt=`0`:then=`
<span class="old_price">[[+old_price]] [[%ms2_frontend_currency]]</span>
`:else=``]]
</div>
</div>
<div class="form-group form-inline " style="margin-bottom:15px;">
<label class="col-md-2 control-label" for="product_price">[[%ms2_cart_count]]:</label>
<div class="col-md-10">
<input type="number" name="count" id="product_price" class="input-sm form-control" value="1" style="width: 120px; margin-left: 15px;margin-bottom: 10px;"/>
[[%ms2_frontend_count_unit]]
</div>
</div>
[[msOptions?options=`color,size`]]
[[msProductOptions]]
<div class="col-md-10">
<p style="color: #6d6d6d;">Страна:<span style="padding-left: 30px;">[[+made_in]]</span></p>
</div>
<div class="col-md-10">
[[*avaible:eq=`1`:then=`<p class="availability in-stock">Доступность: <span>В наличии</span></p>`]]
[[*avaible:eq=`2`:then=`<p class="availability in-stock">Доступность: <span>Под заказ</span></p>`]]
[[*avaible:eq=`0`:then=`<p class="availability in-stock">Доступность: <span>Нет наличии</span></p>`]]
</div>
[[*avaible:neq=`0`:then=` <div class="form-group">
<div class="col-md-offset-2 col-md-10 ">
<button type="submit" class="btn add-to-cart" name="ms2_action" value="cart/add">
<span> В корзину</span>
</button>
</div>
</div>`]]
</form>
</div>
</div>
<div class="single-product-description">
<div class="row">
<div class="col-md-12">
<div class="product-description-tab">
<!-- tab bar -->
<ul class="nav nav-tabs" role="tablist">
<li class="active"><a href="#product-des" data-toggle="tab">Описание</a></li>
<li><a href="#product-rev" data-toggle="tab">Отзывы</a></li>
</ul>
<!-- Tab Content -->
<div class="tab-content">
<div class="tab-pane active" id="product-des">
[[*content]]
</div>
<div class="tab-pane" id="product-rev">
<div class="row">
[[!modxTalks]]
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Комментарии: 15
Добавление в корзину происходит ajax-ом. Если вам нужен именно редирект на главную, то можно добавить callback в js
$(function(){
if (typeof miniShop2 !== "undefined"){
miniShop2.Callbacks.add('Cart.add.response.success', 'restrict_cart', function() {
window.location = '/';
});
}
});
а в какой именно js?
Перечитал топик и возникли сомнения об одном и том же ли мы говорим)
Вы пишете про «сделать заказ», но приводите чанк для добавления в корзину. Об оформлении заказа или добавлении в корзину идет речь?
Если о добавлении в корзину, то добавить выше предложенный скрипт можно в основной js-скрипт сайта.
А можно и в сам чанк обрамляя тегом script
Вы пишете про «сделать заказ», но приводите чанк для добавления в корзину. Об оформлении заказа или добавлении в корзину идет речь?
Если о добавлении в корзину, то добавить выше предложенный скрипт можно в основной js-скрипт сайта.
А можно и в сам чанк обрамляя тегом script
<script>
$(function(){
if (typeof miniShop2 !== "undefined"){
miniShop2.Callbacks.add('Cart.add.response.success', 'restrict_cart', function() {
window.location = '/';
});
}
});
</script>
хотя это не очень хороший тон добавлять js в тело страницы.
ой, извините, перепутал чанки, да я говорю про сделать заказ а не добавление в корзину совсем заработался(((
<div class="col-md-12">
<form class="form-horizontal ms2_form" id="msOrder" method="post">
<div class="row">
<div class="col-md-6">
<h4>{'ms2_frontend_credentials' | lexicon}:</h4>
{foreach ['email','receiver','phone'] as $field}
<div class="form-group input-parent">
<label class="col-md-4 control-label" for="{$field}">
<span class="required-star">*</span> {('ms2_frontend_' ~ $field) | lexicon}
</label>
<div class="col-sm-6">
<input type="text" id="{$field}" placeholder="{('ms2_frontend_' ~ $field) | lexicon}"
name="{$field}" value="{$form[$field]}"
class="form-control{($field in list $errors) ? ' error' : ''}">
</div>
</div>
{/foreach}
<div class="form-group input-parent">
<label class="col-md-4 control-label" for="comment">
<span class="required-star">*</span> {'ms2_frontend_comment' | lexicon}</label>
<div class="col-sm-6">
<textarea name="comment" id="comment" placeholder="{'ms2_frontend_comment' | lexicon}"
class="form-control{('comment' in list $errors) ? ' error' : ''}">{$form.comment}</textarea>
</div>
</div>
</div>
<button type="button" name="ms2_action" value="order/clean" class="btn btn-default ms2_link">
<i class="glyphicon glyphicon-remove"></i> {'ms2_frontend_order_cancel' | lexicon}
</button>
<hr/>
<div class="well">
<div class="col-md-offset-2">
<h3>{'ms2_frontend_order_cost' | lexicon}:
<span id="ms2_order_cost">{$order.cost ?: 0}</span>
{'ms2_frontend_currency' | lexicon}
</h3>
<button type="submit" name="ms2_action" value="order/submit" class="btn btn-default btn-primary ms2_link">
{'ms2_frontend_order_submit' | lexicon}
</button>
</div>
</div>
</form>
</div>
Вы удалили поля с доставкой и оплатой, нужно хотя бы скрытые добавить payment и delivery и записать туда значения по умолчанию. Скорее всего из за этого страница просто не проходит валидацию.
<div class="col-md-12">
<form class="form-horizontal ms2_form" id="msOrder" method="post">
<div class="row">
<div class="col-md-6">
<h4>{'ms2_frontend_credentials' | lexicon}:</h4>
{foreach ['email','receiver','phone'] as $field}
<div class="form-group input-parent">
<label class="col-md-4 control-label" for="{$field}">
<span class="required-star">*</span> {('ms2_frontend_' ~ $field) | lexicon}
</label>
<div class="col-sm-6">
<input type="text" id="{$field}" placeholder="{('ms2_frontend_' ~ $field) | lexicon}"
name="{$field}" value="{$form[$field]}"
class="form-control{($field in list $errors) ? ' error' : ''}">
</div>
</div>
{/foreach}
<div class="form-group input-parent">
<label class="col-md-4 control-label" for="comment">
<span class="required-star">*</span> {'ms2_frontend_comment' | lexicon}</label>
<div class="col-sm-6">
<textarea name="comment" id="comment" placeholder="{'ms2_frontend_comment' | lexicon}"
class="form-control{('comment' in list $errors) ? ' error' : ''}">{$form.comment}</textarea>
</div>
</div>
</div>
<div class="col-md-6" id="payments">
<h4>{'ms2_frontend_payments' | lexicon}:</h4>
<div class="form-group">
<label class="col-md-4 control-label"><span class="required-star">*</span>
{'ms2_frontend_payment_select' | lexicon}</label>
<div class="col-sm-6">
{foreach $payments as $payment}
<div class="checkbox">
<label class="payment input-parent">
<input type="radio" name="payment" value="{$payment.id}" id="payment_{$payment.id}"
{$payment.id == $order.payment ? 'checked' : ''}>
{if $payment.logo?}
<img src="{$payment.logo}" alt="{$payment.name}" title="{$payment.name}"/>
{else}
{$payment.name}
{/if}
{if $payment.description?}
<p class="small">
{$payment.description}
</p>
{/if}
</label>
</div>
{/foreach}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6" id="deliveries">
<h4>{'ms2_frontend_deliveries' | lexicon}:</h4>
<div class="form-group">
<label class="col-md-4 control-label">
<span class="required-star">*</span> {'ms2_frontend_delivery_select' | lexicon}
</label>
<div class="col-sm-6">
{var $i = 0}
{foreach $deliveries as $idx => $delivery}
{var $checked = !$order.delivery && $i == 0 || $delivery.id == $order.delivery}
{var $i += 1}
<div class="checkbox">
<label class="delivery input-parent">
<input type="radio" name="delivery" value="{$delivery.id}" id="delivery_{$delivery.id}"
data-payments="{$delivery.payments | json_encode}"
{$checked ? 'checked' : ''}>
{if $delivery.logo?}
<img src="{$delivery.logo}" alt="{$delivery.name}" title="{$delivery.name}"/>
{else}
{$delivery.name}
{/if}
{if $delivery.description?}
<p class="small">
{$delivery.description}
</p>
{/if}
</label>
</div>
{/foreach}
</div>
</div>
</div>
<div class="col-md-6">
<h4>{'ms2_frontend_address' | lexicon}:</h4>
{foreach ['index','region','city'] as $field}
<div class="form-group input-parent">
<label class="col-md-4 control-label" for="{$field}">
<span class="required-star">*</span> {('ms2_frontend_' ~ $field) | lexicon}
</label>
<div class="col-sm-6">
<input type="text" id="{$field}" placeholder="{('ms2_frontend_' ~ $field) | lexicon}"
name="{$field}" value="{$form[$field]}"
class="form-control{($field in list $errors) ? ' error' : ''}">
</div>
</div>
{/foreach}
<div class="form-group input-parent">
<label class="col-md-4 control-label" for="street">
<span class="required-star">*</span> {'ms2_frontend_street' | lexicon}</label>
<div class="col-md-6 row">
{foreach ['street','building','room'] as $field}
<div class="col-md-4">
<input type="text" id="{$field}" placeholder="{('ms2_frontend_' ~ $field) | lexicon}"
name="{$field}" value="{$form[$field]}"
class="form-control{($field in list $errors) ? ' error' : ''}">
</div>
{/foreach}
</div>
</div>
</div>
</div>
<button type="button" name="ms2_action" value="order/clean" class="btn btn-default ms2_link">
<i class="glyphicon glyphicon-remove"></i> {'ms2_frontend_order_cancel' | lexicon}
</button>
<hr/>
<div class="well">
<div class="col-md-offset-2">
<h3>{'ms2_frontend_order_cost' | lexicon}:
<span id="ms2_order_cost">{$order.cost ?: 0}</span>
{'ms2_frontend_currency' | lexicon}
</h3>
<button type="submit" name="ms2_action" value="order/submit" class="btn btn-default btn-primary ms2_link">
{'ms2_frontend_order_submit' | lexicon}
</button>
</div>
</div>
</form>
</div>
все есть вроде как, но все ровно не переходит
Ды не очень если честно этот miniShop2 такое ощущение что автор делал его чисто для себя. Для пользователей он крайне не удобен((
А можно список неудобств. Просто по слову он не удобен ничего не поправить.
Дополнение должно давать инструмент взаимодействия, а возможность этот инструмент создать.
Я не хочу изучать реализацию minishop2, я хочу его использовать.
Например сейчас, нужно сформировать заказ. Почему не сделать условный триггер-событие, по которому начнется валидация, а после, оформление? То же самое с добавлением товара, очисткой корзины. Честно, работаю с minishop2 три недели, задачи по работе. Основная задача разработчика — сделать жизнь других людей проще, а не наоборот.
Я не хочу изучать реализацию minishop2, я хочу его использовать.
Например сейчас, нужно сформировать заказ. Почему не сделать условный триггер-событие, по которому начнется валидация, а после, оформление? То же самое с добавлением товара, очисткой корзины. Честно, работаю с minishop2 три недели, задачи по работе. Основная задача разработчика — сделать жизнь других людей проще, а не наоборот.
Ну вроде все события для работы есть. Есть возможность расширить класс корзины/заказа, и там сделать то, что нужно. Куда еще проще, не понятно. Что подразумевается, под словом «проще». Сам по себе ИМ это явно не к слову «проще»
Это от уровня понимания задачи зависит, кому то написать ИМ — кара небесная, кому то нет. Из того, что хорошо запомнилось: добавлял я новые поля в карточку заказа, можно было сделать это еще сложнее?
Думаю есть смысл почитать документацию
Приятно строить из себя капитана очевидность?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.