Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Определение количества товара на складе в отдельном файле (технология ajax)

00 голосов
8
У меня есть корзина, в которой добавление и уменьшение товара осуществляется посредством знаков "+" и "-". Реализовала я это при помощи технологии ajax. Все прекрасно работает, но осталась еще небольшая проблема: хотелось бы, чтобы при нажатии на "+" в корзине, велась проверка на имеющееся количество на складе (т.е. в случае, если на складе большего количества, чем имеется в корзине покупателя, нету, то количество товара не увеличивается).

Использую функцию GetByID класса CCatalogProduct.

Сама проблема заключается вот в чем: при использовании этой функции в файле (movement.php), которому отправляются данные для обработки, это функция не работает. Не могу понять причину такого поведения, потому как если ту же функцию прописать в шаблоне компонента корзины, то она прекрасно работает.

Вот это в шаблоне компонента работает:
$ar_res = CCatalogProduct::GetByID(146);
echo ($ar_res["QUANTITY"]);

А если прописать функцию в фале movement.php, то после срабатывания ее никакие данные из этого файла вообще не возвращаются.

...основная часть файла movement.php

if ($mov=='minus') { //если нажали "-", то уменьшаем количество товара

$value_after=$value-1;
}
elseif ($mov=='plus') { //если нажали "+", то увеличиваем количества товара
//на данный момент просто проверяем правильные ли отправляются данные
$ar_res = CCatalogProduct::GetByID(146);
$value_after=$ar_res["QUANTITY"];

}
При этом по ветке minus - товар уменьшается в корзине, по ветке plus - вообще никаких данных не возвращается.

Подскажите, пожалуйста, в чем может быть проблема. Очень хотелось бы реализовать это (определение количества товара на складе) именно в этом файле (movement.php), а не через формирование в свойствах тега информации о количестве на складе, а потом проверки через java.
спросил 25 Июнь, 13 от Chibby (160 баллов)

8 Ответы

00 голосов
Код
if (CModule::IncludeModule('catalog')) {
...
}

прописали?
ответил 25 Июнь, 13 от unik (2,560 баллов)
00 голосов
искала было, какой модуль подключить надо, но потом из головы вылетело про это...

спасибо за помощь=)
ответил 20 Июль, 13 от Chibby (160 баллов)
00 голосов
я реализовал это иначе. при выводе карточки товара вывожу значение кол-ва в скрытом поле, когда человек пытается добавить товар проверяю яваскриптом не больше ли чем есть товара и корректирую на лету. никаких запрсов ajax не требуется.
ответил 23 Окт, 13 от nariya (140 баллов)
00 голосов
Цитата
Dim пишет:
я реализовал это иначе. при выводе карточки товара вывожу значение кол-ва в скрытом поле, когда человек пытается добавить товар проверяю яваскриптом не больше ли чем есть товара и корректирую на лету.

А если одновременно два человека положат в корзину товар, которого на складе 1 штука?
ответил 27 Янв, 14 от Pomnep (13,960 баллов)
00 голосов
важнее момент когда человек заказ уже будет оформлять. положил в корзину не значит купил
ответил 15 Май, 14 от nariya (140 баллов)
00 голосов
Dim, а у вас когда кол-во товара на складе списывается?
ответил 12 Сен, 14 от Texnik (1,860 баллов)
00 голосов
P.S. хуже всего дело с количественным учетом обстоит, когда у магазина есть и торговля в розницу, и в интернет-магазине. тут полная каша получается, в розницу купили, на сайте остатки обновить не успели, или на сайте заказали, а не забрали... в такой ситуации я вообще не представляю, как можно вести количественный учет.
ответил 18 Янв, 15 от Texnik (1,860 баллов)
00 голосов
Цитата
Julliet пишет:
P.S. хуже всего дело с количественным учетом обстоит, когда у магазина есть и торговля в розницу, и в интернет-магазине. тут полная каша получается, в розницу купили, на сайте остатки обновить не успели, или на сайте заказали, а не забрали... в такой ситуации я вообще не представляю, как можно вести количественный учет.

Вот именно с этим и предстоит работать )
ответил 03 Май, 15 от nariya (140 баллов)

Похожие вопросы

0 голосов
4 ответов
спросил 16 Янв, 14 от cjail (100 баллов)
0 голосов
1 ответ
спросил 24 Июнь, 13 от Kusuri (180 баллов)
0 голосов
5 ответов
0 голосов
3 ответов
0 голосов
3 ответов