Перейти к содержимому


Резерв


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 vika

vika

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 05 Февраль 2011 - 00:56

Здрасте. Я только думаю иметь ИМ. Подскажите пожалуйста как настроить работу с товаром в 1 экземпляре. Возможно ли на отложеном покупателем в корзину товаре в превью написать РЕЗЕРВ. И еще если товар не куплен через  3 часа. РЕЗЕРВ убрать, а у клиента "Ваша корзина пуста". Просто встречала такое на сайтах а как сделать незнаю. Или может поделитесь опытом ? кто работает с эксклюзивным товаром?

#2 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 05 Февраль 2011 - 01:57

Здравствуйте, Виктория!

К сожалению на данный момент технология резервирования у нас работает немного в другом формате. Например поступил заказ на товар, Вы заказ увидели, или клиент так и написал что заедет заберёт заказ самовывозом, и вы списываете остаток у товара, пока он ещё не реализован. На сайте информация о наличии изменяется, товар становится не доступным к покупке. После того как человек приехал, купил, то менять и делать ничего не требуется, в случае если товар не был куплен и заказ был отменён, восстанавливаете остатки товара и "резерв" снимается, товар снова появляется на сайте.

По поводу количества товара и заказа более одной единицы товара, здесь трудней, поскольку подобного механизма не предусмотрено в нашей системе. Можно где-то озвучить эту информацию на сайте и заблокировать изменение количества товаров в корзине, указав в ней принудительно количество товара равным единице, а для сумм корзины использовать javascript счётчик, который будет складывать сумму заказа исходя из стоимости каждой позиции заказа, не помноженной на количество товаров в корзине.

Постараюсь объяснить на примерах.
В разделе "Сайт" -> "редакторе тем" открываете шаблон "Корзина", находите с помощью встроенного поиска браузера (CTRL+F) код:
<td class="cell3">
  <input name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" /> {cart_items.GOODS_MOD_MEASURE_NAME}
</td>

И изменяете его на следующий:
<td class="cell3">
  <input type="hidden" name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="1"/> 
  <input value="1" disabled="disabled"/> {cart_items.GOODS_MOD_MEASURE_NAME}
</td>

Этот код будет фильтровать лишние товары которые попытаются добавить в корзину.

Далее изменяем механизм подсчёта стоимости корзины. Для этого открываем файл html и находим там код:
{% FOR cart_sum %}
  <span class="num">{cart_sum.NOW | money_format}</span><br />
{% ENDFOR %}

меняем его на:
{% FOR cart_sum %}
  <span class="num">{cart_sum.NOW | money_format}</span><br />
{% ENDFOR %}
<script type="text/javascript">$('#cartSum .num .num').html({% FOR cart_items %}{% IFNOT cart_items.first %}+{% ENDIF %}{cart_items.GOODS_MOD_PRICE_NOW}{% ENDFOR %}).parent().attr('title', '');</script>

Теперь код в шапке сайта будет выдавать верные цифры по поводу стоимости товаров в корзине.

По аналогии меняем стоимость корзины в ajax окошке, в котором она так же отображается. Для этого открываем шаблон "Ajax добавление товара в корзину" и находим следующий код суммы товаров в корзине:
{% FOR cart_count %}
  {cart_count.COUNT}{cart_count.MEASURE_NAME}{% IFNOT cart_count.last %},{% ENDIF %}
{% ENDFOR %}

и количества:
{% FOR cart_sum %}
  {cart_sum.NOW | money_format}<br />
{% ENDFOR %}

Меняем их соответственно на:
{% FOR cart_count %}
  <span class="cnt">{cart_count.COUNT}</span>{cart_count.MEASURE_NAME}{% IFNOT cart_count.last %},{% ENDIF %}
{% ENDFOR %}
<script type="text/javascript">$('.newCartCount .cnt').html('{% FOR cart_items %}{% IFNOT cart_items.first %}{cart_items.length}{% ENDIF %}{% ENDFOR %}');

и количества:
{% FOR cart_sum %}
  {cart_sum.NOW | money_format}<br />
{% ENDFOR %}
<script type="text/javascript">$('.newCartSum .num').html({% FOR cart_items %}{% IFNOT cart_items.first %}+{% ENDIF %}{cart_items.GOODS_MOD_PRICE_NOW}{% ENDFOR %}).parent().attr('title', '');</script>

*Данный код будет не правильно работать если вы продаете товар с разными единицами измерения, например штуки, литры и килограммы. В этом случае лучше всего убрать любые упоминания о количестве товара в корзине, банально удалив код отображающий количественную сумму товаров в корзине.

После этих итераций последнее место где ещё отображается не верная сумма товаров - корзина. В 2х местах надо поправить код.
1) Общая сумма позиции. Там отображается сейчас сумма за общее количество товара, а надо чтобы отображалось только за 1 единицу товара. Для этого изменяем код:
<td class="cell5 num">
  {cart_items.ORDER_LINE_PRICE_NOW | money_format}
</td>

На
<td class="cell5 num">
  {cart_items.GOODS_MOD_PRICE_NOW | money_format}
</td>


2) Общая сумма корзины. Там делаем по аналогии с шапкой, меняем сумму с помощью javascript. Для этого откроем шаблон "Корзина" и заменим старый код:
<td class="cell2">
  {% FOR cart_sum %}
	{cart_sum.NOW | money_format}<br />
  {% ENDFOR %}
</td>

на следующий:
<td class="cell2">
  {% FOR cart_sum %}
	{cart_sum.NOW | money_format}<br />
  {% ENDFOR %}
  <script type="text/javascript">$('.cartFormTfoot .cartFormTfootSumTable .cell2 .num').html({% FOR cart_items %}{% IFNOT cart_items.first %}+{% ENDIF %}{cart_items.GOODS_MOD_PRICE_NOW}{% ENDFOR %}).parent().attr('title', '');</script>
</td>

Собственно всё. Можем теперь добавлять товары в корзину из разных мест, сколько бы раз не нажимали на добавление в корзину сумма считается только по одному товару и больше товар не добавляется. На этап оформления заказа всегда доходит только лишь 1 единица товара, собственно что нам и требовалось. B)

#3 vika

vika

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 05 Февраль 2011 - 13:11

 support (05 Февраль 2011 - 01:57) писал:

Здравствуйте, Виктория!

К сожалению на данный момент технология резервирования у нас работает немного в другом формате. Например поступил заказ на товар, Вы заказ увидели, или клиент так и написал что заедет заберёт заказ самовывозом, и вы списываете остаток у товара, пока он ещё не реализован. На сайте информация о наличии изменяется, товар становится не доступным к покупке. После того как человек приехал, купил, то менять и делать ничего не требуется, в случае если товар не был куплен и заказ был отменён, восстанавливаете остатки товара и "резерв" снимается, товар снова появляется на сайте.

По поводу количества товара и заказа более одной единицы товара, здесь трудней, поскольку подобного механизма не предусмотрено в нашей системе. Можно где-то озвучить эту информацию на сайте и заблокировать изменение количества товаров в корзине, указав в ней принудительно количество товара равным единице, а для сумм корзины использовать javascript счётчик, который будет складывать сумму заказа исходя из стоимости каждой позиции заказа, не помноженной на количество товаров в корзине.

Постараюсь объяснить на примерах.
В разделе "Сайт" -> "редакторе тем" открываете шаблон "Корзина", находите с помощью встроенного поиска браузера (CTRL+F) код:
<td class="cell3">
  <input name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" /> {cart_items.GOODS_MOD_MEASURE_NAME}
</td>

И изменяете его на следующий:
<td class="cell3">
  <input type="hidden" name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="1"/> 
  <input value="1" disabled="disabled"/> {cart_items.GOODS_MOD_MEASURE_NAME}
</td>

Этот код будет фильтровать лишние товары которые попытаются добавить в корзину.

Далее изменяем механизм подсчёта стоимости корзины. Для этого открываем файл html и находим там код:
{% FOR cart_sum %}
  <span class="num">{cart_sum.NOW | money_format}</span><br />
{% ENDFOR %}

меняем его на:
{% FOR cart_sum %}
  <span class="num">{cart_sum.NOW | money_format}</span><br />
{% ENDFOR %}
<script type="text/javascript">$('#cartSum .num .num').html({% FOR cart_items %}{% IFNOT cart_items.first %}+{% ENDIF %}{cart_items.GOODS_MOD_PRICE_NOW}{% ENDFOR %}).parent().attr('title', '');</script>

Теперь код в шапке сайта будет выдавать верные цифры по поводу стоимости товаров в корзине.

По аналогии меняем стоимость корзины в ajax окошке, в котором она так же отображается. Для этого открываем шаблон "Ajax добавление товара в корзину" и находим следующий код суммы товаров в корзине:
{% FOR cart_count %}
  {cart_count.COUNT}{cart_count.MEASURE_NAME}{% IFNOT cart_count.last %},{% ENDIF %}
{% ENDFOR %}

и количества:
{% FOR cart_sum %}
  {cart_sum.NOW | money_format}<br />
{% ENDFOR %}

Меняем их соответственно на:
{% FOR cart_count %}
  <span class="cnt">{cart_count.COUNT}</span>{cart_count.MEASURE_NAME}{% IFNOT cart_count.last %},{% ENDIF %}
{% ENDFOR %}
<script type="text/javascript">$('.newCartCount .cnt').html('{% FOR cart_items %}{% IFNOT cart_items.first %}{cart_items.length}{% ENDIF %}{% ENDFOR %}');

и количества:
{% FOR cart_sum %}
  {cart_sum.NOW | money_format}<br />
{% ENDFOR %}
<script type="text/javascript">$('.newCartSum .num').html({% FOR cart_items %}{% IFNOT cart_items.first %}+{% ENDIF %}{cart_items.GOODS_MOD_PRICE_NOW}{% ENDFOR %}).parent().attr('title', '');</script>

*Данный код будет не правильно работать если вы продаете товар с разными единицами измерения, например штуки, литры и килограммы. В этом случае лучше всего убрать любые упоминания о количестве товара в корзине, банально удалив код отображающий количественную сумму товаров в корзине.

После этих итераций последнее место где ещё отображается не верная сумма товаров - корзина. В 2х местах надо поправить код.
1) Общая сумма позиции. Там отображается сейчас сумма за общее количество товара, а надо чтобы отображалось только за 1 единицу товара. Для этого изменяем код:
<td class="cell5 num">
  {cart_items.ORDER_LINE_PRICE_NOW | money_format}
</td>

На
<td class="cell5 num">
  {cart_items.GOODS_MOD_PRICE_NOW | money_format}
</td>


2) Общая сумма корзины. Там делаем по аналогии с шапкой, меняем сумму с помощью javascript. Для этого откроем шаблон "Корзина" и заменим старый код:
<td class="cell2">
  {% FOR cart_sum %}
	{cart_sum.NOW | money_format}<br />
  {% ENDFOR %}
</td>

на следующий:
<td class="cell2">
  {% FOR cart_sum %}
	{cart_sum.NOW | money_format}<br />
  {% ENDFOR %}
  <script type="text/javascript">$('.cartFormTfoot .cartFormTfootSumTable .cell2 .num').html({% FOR cart_items %}{% IFNOT cart_items.first %}+{% ENDIF %}{cart_items.GOODS_MOD_PRICE_NOW}{% ENDFOR %}).parent().attr('title', '');</script>
</td>

Собственно всё. Можем теперь добавлять товары в корзину из разных мест, сколько бы раз не нажимали на добавление в корзину сумма считается только по одному товару и больше товар не добавляется. На этап оформления заказа всегда доходит только лишь 1 единица товара, собственно что нам и требовалось. B)





Спасибо большое за подробное описание. Попробую. Сообщу о результате.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных