LolikBolik Posted May 21, 2013 Share Posted May 21, 2013 Как реализовать кратное добавление(удаление) колличества единиц товара в корзину? Есть товар в определенной упаковке, минимальное колличество для продажи ето колличество в упаковке. Упаковка не делима. Минимальное колличество которое есть в админке не подходит нужна кратность. Link to comment Share on other sites More sharing options...
Евгений Медведев Posted May 22, 2013 Share Posted May 22, 2013 Как реализовать кратное добавление(удаление) колличества единиц товара в корзину? Есть товар в определенной упаковке, минимальное колличество для продажи ето колличество в упаковке. Упаковка не делима. Минимальное колличество которое есть в админке не подходит нужна кратность. А если единицей измерения сделать упаковку? Link to comment Share on other sites More sharing options...
LolikBolik Posted May 22, 2013 Author Share Posted May 22, 2013 Да, так сейчас и есть, но цену приходится ставить за упаковку. А мне нужно выставлять цену за единицу! Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted May 22, 2013 Share Posted May 22, 2013 Под единицей подразумевается, всё же, единица товара. А если мы хотим продавать лотами, в каждом из которых, допустим, пять единиц товара, то добавляем в атрибуты «лот» со значением «5 единиц» и создаём комбинации с этим атрибутом. Тогда продажи товара будут возможны только лотами и в количествах кратных пяти: 5, 10, 15... единиц. А документы в этом случае будут автоматом обсчитывать покупки, исходя из цены лотов, а не содержащихся в них отдельных товаров. Link to comment Share on other sites More sharing options...
gluck Posted May 22, 2013 Share Posted May 22, 2013 (edited) Надеюсь, на HTML5 уже перешли? Тогда на странице товара, там где "укажите количество" сделайте так: <input type="number" step="2"> и далее по курсу. Двойка в данном случае означает, что товары можно будет заказать в кол-ве кратном 2. Если у вас в упаковке 100 товаров, то укажите step="100". Все остальное движок магазина сделает сам. Edited May 22, 2013 by gluck (see edit history) Link to comment Share on other sites More sharing options...
Snegurka Posted May 23, 2013 Share Posted May 23, 2013 А если не перешли - то можно скриптом перехватывать значение (событие keyup), проверять кратность заданной величине (удобно использовать минимальное значение, это даёт вам гибкость в кратности, т.е где то по 4, где то по 10 можно сделать) и округлив результат возвращать его в инпут, указав пользователю на уведомление о том что товар в упаковке и можно заказать только кратно стольки то.. Link to comment Share on other sites More sharing options...
absent Posted May 27, 2013 Share Posted May 27, 2013 как решили проблему? Link to comment Share on other sites More sharing options...
LolikBolik Posted May 27, 2013 Author Share Posted May 27, 2013 Практически никак. Теоретически выше. Link to comment Share on other sites More sharing options...
absent Posted May 27, 2013 Share Posted May 27, 2013 вот встретил: Необходимость использовать дробное значение возникает довольно часто, например, если вы продаёте весовой товар. Публикую инструкцию для разработчиков Prestashop (версии 1.4 и 1.3) по выводу количества товара дробным числом. Хочу сразу заметить, если у Вас нет соответствующих навыков в веб разработке, то лучше доверить эту работу специалистам. 1. Меняем в БД тип поля quantity на decimal(17,2) в следующих таблицах Prestashop: Код: - ps_cart_product - ps_discount - ps_orders -проверить значения total_products и total_products_wt, они обычно уже в decimal - ps_order_detail – кроме discount_quantity_applied, product_quantity_discount тоже уже в decimal должно быть - ps_order_return_detail - ps_order_slip_detail - ps_pack - ps_product - ps_product_attribute - ps_product_sale для 1.4 ещё Код: - ps_specific_price - ps_stock_mvt Теперь база данных принимает дробные числа в количестве, но нужно чтоб при валидации и записи значение количества не преобразовалось в целое. 2. Редактируем файлы (для Prestashop 1.4 используем override) – заменяем “intval” на “floatval” для всех значений “quantity” или “qty” - /classes/Attribute.php – если используете атрибуты и комбинации - /classes/Cart.php – больше всего правок, придётся набраться терпения ) - /classes/Product.php – не забудьте про правило валидации isUnsignedInt для количества - /controllers/CartController.php – для 1.4 - /cart.php – для 1.3 - /themes/prestashop/product.tpl - /themes/prestashop/js/cart-summary.js Внимание формат цифр с точкой – XXX.XX, поэтому если в магазине нужно использовать запятую – преобразуем значение. в CartController.php примерно 29 строка: PHP: $qty = (float)(abs(str_replace(“,”,”.”,Tools::getValue(‘qty’, 1)))); Проверяем на нераспрадажном товаре добавление в корзину, если количество товара записывается в БД дробным числом – правим дальше (не забываем про isFloat в фильтре в начале файла). 3. Реактируем оставшиеся файлы Код: - prestashop/classes/Customization.php - prestashop/classes/Discount.php - prestashop/classes/Order.php - prestashop/classes/OrderDetail.php - prestashop/classes/OrderReturn.php - prestashop/classes/PaymentModule.php - prestashop/classes/ProductSale.php - prestashop/classes/QuantityDiscount.php - prestashop/classes/StockMvt.php - prestashop/controllers/OrderController.php – для 1.4 - prestashop/order.php – для 1.3 4. Для корректного отображения и добавления товара в админке правим файлы: AdminOrders.php и AdminProducts.php После проделанных действий с файлами Prestashop должна появиться возможность вводить количество товара дробным числом. Перед внесением правок обязательно сделайте полный бэкап. 1 Link to comment Share on other sites More sharing options...
gluck Posted May 27, 2013 Share Posted May 27, 2013 Кажется, тут речь шла о совершенно противоположном... Link to comment Share on other sites More sharing options...
absent Posted May 27, 2013 Share Posted May 27, 2013 сори( ошибся Link to comment Share on other sites More sharing options...
LolikBolik Posted May 31, 2013 Author Share Posted May 31, 2013 Может кто возьмется за вознаграждение реализовать ? Напишите в личку пожалуйста. Link to comment Share on other sites More sharing options...
absent Posted June 1, 2013 Share Posted June 1, 2013 опишите точнее. скорее всего возьмусь Link to comment Share on other sites More sharing options...
stas2204 Posted November 3, 2013 Share Posted November 3, 2013 Если кто то реализовал это напишите пожалуйста Link to comment Share on other sites More sharing options...
Bizoozib Posted March 5, 2014 Share Posted March 5, 2014 А если не перешли - то можно скриптом перехватывать значение (событие keyup), проверять кратность заданной величине (удобно использовать минимальное значение, это даёт вам гибкость в кратности, т.е где то по 4, где то по 10 можно сделать) и округлив результат возвращать его в инпут, указав пользователю на уведомление о том что товар в упаковке и можно заказать только кратно стольки то.. Здравствуйте,Snegurka, можно по-подробнее? Link to comment Share on other sites More sharing options...
Kerm Posted March 6, 2014 Share Posted March 6, 2014 Смотрите если Вам нужно продавать ваш товар кратным 10, 20, 30 и у всех товаров одна и та жа кратность или допустим у товаров каждой категории своя кратность..то можно реализовать <select> с заданными значениями и подставка выбранных данных в quantity input скриптом при выборе определенного значения в <select>...делается такое довольна просто минут за 10 специалистом. Link to comment Share on other sites More sharing options...
Kerm Posted March 6, 2014 Share Posted March 6, 2014 (edited) Вообще не понятно почему автору не подходит вариант решения проблем на базе комбинаций товара? Скриншот: Edited March 6, 2014 by Kerm (see edit history) Link to comment Share on other sites More sharing options...
Bizoozib Posted March 7, 2014 Share Posted March 7, 2014 (edited) Вообще не понятно почему автору не подходит вариант решения проблем на базе комбинаций товара? Скриншот: dfgfd.jpg этот способ работает как нужно(при выборе товара товар добавляется с нужной кратностью) , но!!! в самой корзине при добавлении еще одного лота добавляется только 1 единица. нужно реализовать именно шаг добавления лота в корзине по 10, 25, 30 кг., а не по 1 кг. Edited March 7, 2014 by Bizoozib (see edit history) Link to comment Share on other sites More sharing options...
Kerm Posted March 7, 2014 Share Posted March 7, 2014 Дык в корзину будет писаться же типа такой то товар с 25 штуками в упаковке красного цвета..и с права когда будут кол-во выбирать будут знать что они добавляют упаковки по 25 штук.. Link to comment Share on other sites More sharing options...
Bizoozib Posted March 7, 2014 Share Posted March 7, 2014 Удалось настроить шаг добавления в 25 единиц, но теперь корзина не пересчитывает сумму=(( . А то, что на писано "Данный товар не продается по одной единице. Вы должны выбрать по крайней мере 25 единиц данного товара." не совсем достаточно, люди все-равно пытаются добавить количество товара интересующее именно их... а так нельзя, мы не можем дербанить коробки. Link to comment Share on other sites More sharing options...
LolikBolik Posted March 7, 2014 Author Share Posted March 7, 2014 Вот сайт человека который все сделал мне. http://psstore.org Link to comment Share on other sites More sharing options...
Kerm Posted March 7, 2014 Share Posted March 7, 2014 Вот посмотрите пример, надеюсь поможет!http://jsfiddle.net/2pQwX/Само собой <input /> нужно спрятать под хайд и оставить только <select> по ссылке для примера он не скрыт. Link to comment Share on other sites More sharing options...
Oleg2013 Posted June 9, 2014 Share Posted June 9, 2014 Неужели это никак не могут реализовать в рабочей версии PrestaShop 1.6? В Virtuemat на Joomle это уже давно реализовано!! Может стоит написать в сообществе? Хотя думаю они знают об этом... Link to comment Share on other sites More sharing options...
Menro Posted December 8, 2014 Share Posted December 8, 2014 Есть какие-нибудь новости на этот счёт? Тоже столкнулся. Вариант с комбинациями не подходит. Link to comment Share on other sites More sharing options...
Recommended Posts