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


Дробное Количество Товара


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

#1 amphasis

amphasis

    Продвинутый пользователь

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

Отправлено 19 Март 2012 - 18:45

Здравствуйте.

При заказе клиенты имеют возможность указывать дробное количество товара, учет которого ведется в килограммах (возможно и в других единицах, но случаев пока не было), при этом автоматическое списание со склада производится корректно. Однако, при последующей работе с таким заказом через бэк-офис невозможно сохранить какие либо изменения, поскольку возникает ошибка "Не указано количество товарной позиции заказа".

#2 support

support

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

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

Отправлено 26 Март 2012 - 03:34

Просмотр сообщенияamphasis (19 Март 2012 - 18:45) писал:

Здравствуйте.

При заказе клиенты имеют возможность указывать дробное количество товара, учет которого ведется в килограммах (возможно и в других единицах, но случаев пока не было), при этом автоматическое списание со склада производится корректно. Однако, при последующей работе с таким заказом через бэк-офис невозможно сохранить какие либо изменения, поскольку возникает ошибка "Не указано количество товарной позиции заказа".
Килограммы имеют округление до 3х символов, довольно частая ситуация заказа 1.5 кг колбасы. Если речь идёт о штуках, они округляются до 0 знаков, и подобных проблем с ними не может возникать. Собственно если пользователь пытается указать дробное число товара, а у Вас строго указаны килограммы и не может быть 1.001 кг, то можно обрабатывать форму на javascript округляя количество товара до единицы. Например такой функцией:
function intval(mixed_var,base){var tmp;var type=typeof(mixed_var);if(type==='boolean'){return(mixed_var)?1:0;}else if(type==='string'){tmp=parseInt(mixed_var,base||10);return(isNaN(tmp)||!isFinite(tmp))?0:tmp;}else if(type==='number'&&isFinite(mixed_var)){return Math.floor(mixed_var);}else{return 0;}}


Для того чтобы заработало будет достаточно в разделе "Сайт" > "Редактор тем" в файле "main.js" в самом конце добавить вот такой код:
function intval(mixed_var,base){var tmp;var type=typeof(mixed_var);if(type==='boolean'){return(mixed_var)?1:0;}else if(type==='string'){tmp=parseInt(mixed_var,base||10);return(isNaN(tmp)||!isFinite(tmp))?0:tmp;}else if(type==='number'&&isFinite(mixed_var)){return Math.floor(mixed_var);}else{return 0;}}

$(document).ready(function(){
  // Действие при отправке корзины на оформление заказа
  $('form.cartForm').submit(function(){
	$(this).find('table input').each(function(){
	  $(this).val(intval($(this).val()));
	});
  });
});

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

#3 amphasis

amphasis

    Продвинутый пользователь

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

Отправлено 27 Март 2012 - 00:38

Просмотр сообщенияsupport (26 Март 2012 - 03:34) писал:

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

#4 support

support

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

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

Отправлено 27 Март 2012 - 01:07

Просмотр сообщенияamphasis (27 Март 2012 - 00:38) писал:

Да тут вопрос скорее в том, что работа с дробным количеством товара в принципе предусмотрена, но вводит в ступор редактор заказа в бэк-офисе.
Не совсем понятно о чём идёт речь, могли бы немного подробнее рассказать о проблеме? что вводит в ступор?

#5 amphasis

amphasis

    Продвинутый пользователь

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

Отправлено 28 Март 2012 - 21:24

Просмотр сообщенияsupport (27 Март 2012 - 01:07) писал:

Не совсем понятно о чём идёт речь, могли бы немного подробнее рассказать о проблеме? что вводит в ступор?

Представим ситуацию (случалась уже не раз), клиент оформляет заказ
1.png
указывает дробное число товара
2.png
ни на одном этапе для покупателя не возникает никаких препятствий
3.png
и даже со склада списывается указанное число товара, оставляя дробный остаток на складе
4.png

после чего при попытке хотя-бы провести по статусам заказ в бэк-офисе получаем следующее сообщение
5.png


Не так уж страшна ситуация с продажей дробного количества весового товара. Намного неудобнее объясняться потом с покупателем, что "программа не может принять такое количество", особенно после того, как покупатель без проблем смог оформить заказ.

#6 support

support

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

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

Отправлено 28 Март 2012 - 22:00

Оказывается причина ошибки в бэкофисе была в том, что Вы добавляли товар в админке с указанием запятой, а по умолчанию там проверка шла без преобразования данных и проверялась с точкой, в итоге количество округлялось до целого знака, и было равно нулю. Ошибку исправили, для того чтобы всё заработало в админке достаточно нажать CTRL+R, укажите пожалуйста номер аккаунта вашего сайта из раздела "Настройки" > "Основные", чтобы мы могли пополнить баланс вашего магазина в благодарность за оказанную помощь в нахождении ошибки и развитии системы.

#7 amphasis

amphasis

    Продвинутый пользователь

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

Отправлено 29 Март 2012 - 22:50

SL-28450

спасибо за исправление :)

#8 amphasis

amphasis

    Продвинутый пользователь

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

Отправлено 23 Май 2012 - 11:16

Просмотр сообщенияsupport (28 Март 2012 - 22:00) писал:

Оказывается причина ошибки в бэкофисе была в том, что Вы добавляли товар в админке с указанием запятой, а по умолчанию там проверка шла без преобразования данных и проверялась с точкой, в итоге количество округлялось до целого знака, и было равно нулю. Ошибку исправили, для того чтобы всё заработало в админке достаточно нажать CTRL+R, укажите пожалуйста номер аккаунта вашего сайта из раздела "Настройки" > "Основные", чтобы мы могли пополнить баланс вашего магазина в благодарность за оказанную помощь в нахождении ошибки и развитии системы.
Извиняюсь, бонус так и не начислили :(

#9 a.pashuta

a.pashuta

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

  • Пользователи
  • PipPipPipPip
  • 1 072 сообщений

Отправлено 23 Май 2012 - 12:55

Просмотр сообщенияamphasis (23 Май 2012 - 11:16) писал:

Извиняюсь, бонус так и не начислили :(
Приносим свои извинения за задержку. Баланс пополнен.




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

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