SanD пишет:bachinin пишет:т.е. человек оплатил товар, например, банковской картой, за 10 единиц товара. И ему говорят— извините у нас только 1. То магазин и покупатель должны проходить процедуру возврата денег?
В таком случае я полностью согласен, что неудобно и очень плохо. Но абсолютное большинство магазинов в рунете работает сейчас по другой схеме - заказ предоварительно согласуется по телефону, а оплата происходит наличными курьеру.
Увы, нет, много магазинов торгуют дистанционно. Для этого ведь и нужна "корзина" с автоматическим чекаутом, а не просто каталог с контактным телефоном.
Функционал мгновенной оплаты картой, выписки формы квитанции, и синхронизация со складом - всё это признаки автоматизации покупки.
SanD пишет:И сейчас, кстати, число товаров на складе можно выводить в магазине и сделать проверку на добавление в корзину на уровне шаблона.
С этого и надо начинать! И незачем внедрять еще где-то 
Попробуем создать такую проверку.
Согласно Wiki, шаблонизатор поддерживает назначение дополнительных триггеров. Значит, можно назначить свои переменные - "есть нехватка" и "предмет нехватки".
Количество товара в модификации известно, количество его помещенного в корзину тоже.
Думаем, где разместить код... На странице товара отпугивать рановато, там клиент еще не созрел.
Проще всего в шаблоне Корзины (меню Сайт-Дизайн-Редактор) дополнить код с кнопкой заказа.
В теме "Техника" блок кнопок оформления заказа выглядит так:
<div class="cart_reserve">
<a href="#" class="cart_update" id="cart_update" style="display:none"><img src="{{ 'recalc.gif' | asset_url }}" /></a>
<input id="create_order" type="submit" value="" name="make_order" />
</div>
Меняем предыдущий кусок на этот:
{% assign nehvatka = false %}
{% for item in cart.items %}{% if item.variant.quantity < item.quantity %}
{% assign nehvatka = true %}{% assign vinovnik = item.title %}
{% endif %}{% endfor %}
{% if nehvatka %}
<p style="margin: 20px;">Извините!<br />На складе недостаточно товара "<strong>{{ vinovnik }}</strong>".
<br />Попробуйте уменьшить количество в Вашем заказе.</p>
<div class="cart_reserve">
<a href="#" class="cart_update" id="cart_update" style="display:none"><img src="{{ 'recalc.gif' | asset_url }}" /></a>
</div>
{% else %}
<div class="cart_reserve">
<a href="#" class="cart_update" id="cart_update" style="display:none"><img src="{{ 'recalc.gif' | asset_url }}" /></a>
<input id="create_order" type="submit" value="" name="make_order" />
</div>
{% endif %}
И наслаждаемся... 
Когда какого-то товара заказано больше чем на складе, умный код предупредит об этом и уберет кнопку чекаута.
Если тема шаблона - не "Техника", то изменяете блоки <div class="cart_reserve"> сообразно вашему коду кнопок.
NB: Предлагаю добавить это в Wiki, и в Блог в раздел "Хитростей".
Отредактировано Victor (2010-03-01 21:45:51)