| Цитата |
|---|
| Андрей Антипов пишет: А почему доставку не стали делать с помощью API ? |
|
Имеется самописный компонент, который расчитывает доставку исходя из названия города.
То есть в текстовое поле вводится название города, например Челябинск, далее идет ajax запрос на сервер его стоимости, запрос вернулся с ценой например 1000. Далее получаем цену в корзине, плюсуем с доставкой и выводим итоговую цену. Все это я реализованно, кроме обновления итоговой цены. То есть как в стандартной доставке, выбрал страну-город, вылезли способы доставки при выборе которых итоговая цена увеличивается на определенную сумму, только использовать стандартный компонент доставки я не могу. Вот как обновить итоговую цену? К чему обращаться? Думал с помощью функции CSaleBasket::Update либо CSaleBasket::UpdatePrice или CSaleOrder::Update, но пока знаний немного в API битрикса, вследствии чего не могу решить эту задачу. БИблиотека кстати Jquery используется для запросов. Ну и стомость работы уточняем конечно же. |
|
|
|
|
|
Итак имеем заказ с помощью sale.order.ajax.
В котором выводится итоговая цена. Задача: Обновить итоговую цену без использования родного ajax'а, с использованием библиотеки JQuery. Первая часть решена. То есть запрос посылается к определенном файлу, например answer.php в котором происходят все процессы. Сейчас необходимо решить, к чему обратиться в этом файле чтобы цена обновилась после запроса. У меня есть варианты, что можно использовать функции CSaleBasket::Update либо CSaleBasket::UpdatePrice наверное. Правильно ли будет в этом случае использование этих функции и будеи ли это работать? Или все же нужно обращаться к компоненту sale.order.ajax? |
|
|
|
|
Пробовал уже. Изанчально в проект была внедрена библиотека Jquery, если попытаться использовать родной аякс, тогад все рушится нафиг. Тогда у меня такой вопрос, мне необходимо вручную воссоздать то что аякс битриковский делает автоматом, то есть как я понял мне необходимо вытащить цену из корзины, рассчитать что мне необходимо и отправить назад в корзину новую сумму? |
|||||
|
|
|
|
У меня похожая ситуация, только вместо стандартной доставки я использую свой компонент, полностью не зависящий от местоположения...стандартного..и доставки по умолчанию..
Возник вопрос, как на одностраничном компоненет заказа сделать ajax обновление стоимости доставки? То есть по клику какого нибудь из моих элементов типа radio цена на доставку обновлялась? Или хотя бы подскажите, пожалуйста, где идет обработка данных стандартной доставки, может там поулчится найти что нужно. Так то я нашел куда передавать данные, в массив $arResult["DELIVERY_PRICE"].. Это можно проверить задав ее явно, например 200 рублей. |
|
|
|
|
К сожалению это не подойдет..возможно как крайний вариант только. На самом деле заказы продолжают считаться дальше, но только для внутренних целей магазина. Для внешних же (в коммерческих целях) счет должен идти другой. То есть в принципе он может просто быть увеличен 3-4 раза, но при этом чтобы оставался и оригинальный счет. |
|||
|
|
|
|
Появилась необходимость скрыть реальный номер заказа.
Все изменения произвел. Все ок, кроме адресной строки. В конфирме в адресной строке висит personal/order/make/?ORDER_ID=номер_заказа Вот как его убрать или заменить на свой? Точнее заменить, чтобы работала потом..потому что я нашел где это формируется, но при попытки заменить своими ID там все перестает работать. |
|
|
|
|
|
Так ну вот если кому пригодится..там немножко надо было по другому сделать, че-т на свежую голову с утра лучше приходят мысли)) вообщем вот код правильный
|
|||
|
|
|
|
Через пять минут нашел загвоздку..вывел Результ прямо в компоненте
и он вывел как раз только один элемент инфоблока. значит ошибка уже в формировании...хм..есть идеи где у меня трабл случается? |
|||
|
|
|
|
Передаю из самописного компонента данные инфоблока в шаблон компонента, а передается только один элемент инфоблока..а их как три забито. Понимаю что неправильно формирую Результ. Может кто трезво посмотрит и найдет ошибку)
|
|||
|
|
|
А то мало ли..вдруг страдает безопасность или еще что. |
|||
|
|
|
|
Так ладно, из таблицы b_sale_order удалил поля свои, создал новую таблицу с этими полями плюс id заказа для связи.
Теперь как лучше делать к ней запросы? Вот так будет нормально?:
Или все же по другому как-то лучше будет? |
|||
|
|
|
Ну так категорично отрицать я думаю бессмысленно, потому что где то в API происходит подгрузка этих полей. Свойства заказа мне не подходят, потому что используется свой компонент, в котором недостаточно просто создать поля, там идет расчет в зависимости от выбранных параметров при заказе. |
|||||
|
|
|
|
Я добавил в таблицу b_sale_order дополнительные поля, в частности есть тип дата, текст и т.д.
Теперь загвоздка в чем, при построении вывода информации о заказе в админке нужно дергать информацию из этих полей. Прямым запросами к БД все получается, но это не одобряется разрабами Bitrix, и советуют использовать API. Ладно, в этом случае нужен CSaleOrder::GetList...делаю в нем запрос по нужному мне полю и облом..инфа не выводится в отличии от стандартной информации о заказе..как я понял, где то идет запрос по этим полям в другом файле.. Вроде как нашел в файле bitrix\modules\sale\mysql\order.php нечто подобное, но даже при добавлении своих полей аналогично стандартным все равно они не выводятся.. Вопрос: Где еще нужно их добавить, чтобы CSaleOrder::GetList мог работать с моими полями тоже? Вывожу информацию кстати в \bitrix\modules\sale\admin\order_detail.php там есть запрос к стандартным полям:
|
|||
|
|
|