Сервисные API вызовы (ami_service.php). Метод – GET.
Получить данные о доступных доставках по товарам в корзинеПараметры:
service=eshop_cart
action=get_available_shippings Все параметры обязательны.
В ответе приходит массив, закодированный в json. Формат массива:
array(
id_набора_доставки_1 =>array(
id,
name,
items => array(
item_index =>array(id, name),
item_index =>array(id, name),
...
item_index =>array(id, name)
),
methods => array(
0 =>array(id, name),
1 =>array(id, name),
...
10 =>array(id, name)
)
),
id_набора_доставки_2 =>array(),
...
id_набора_доставки_3 =>array()
) Ключами массива являются id наборов доставки. Каждый элемент массива содержит:
id id набора доставки,
name имя набора,
items массив товаров из корзины (ключ массива - индекс товара в корзине, в элементе массива содержится id товара и его название),
methods массив методов доставок (элементы –тоже массивы, которые содержат id метода доставки, название метода name).
Этот массив необходим для запроса стоимости заказа.
В шаблон eshop_purchase.tpl в сет purchase_form добавлена js переменная aCartShippings, которая на шаге выбора способа доставки уже содержит этот массив, закодированный в json (в этом случае запрос делать не нужно).
Пример кода
При использовании переменной шаблона:
varaCartShippings = JSON.decode('##cart_shipping##'); При использовании технологии AJAX:
AMI.$(document).ready(function(){
AMI.$.ajax({
url: "http://business.amiro.ru/ami_service.php",
data: {
service: "eshop_cart",
action: "get_available_shippings"
}
}).done(function(content){
window.aCartShippings= JSON.parse(content);
});
});
Получить стоимость заказаПараметры. Обязательные параметры:
service=eshop_order
action=get_order_cost Необязательныепараметры:
person_type = natural|juridical физическое или юридическое лицо,
coupon купон, если используется,
shipping содержит массив групп методов доставки (также закодированный json). В каждый массив с данными о наборе доставки нужно добавить элемент с индексом selected_method, значением должен быть id выбранного метода доставки.
Пример:
array(
id_набора_доставки_1 =>array(
id,
name,
items => array(),
methods => array(),
selected_method => id_метода_доставки_из_набора_1
),
id_набора_доставки_2 =>array(
id,
name,
items => array(),
methods => array(),
selected_method => id_метода_доставки_из_набора_2
),
) Если selected_method будет отсутствовать, то будет использован первый метод доставки из группы методов.
В ответе приходит массив, закодированный в json.Формат массива:
array(
items =>array() - массив с данными о товарах (цена, скидка, кол-во итд), пример элемента массива:
[name] => LOTUS ELISE 111s (left hand drive) (1:18)
[property_caption] =>
[cat_name] =>Копииимодели
[sku] =>WL12535L
[qty] => 1 – количество товаров данной позиции
[original_price] => 750.00 р. – исходнаяцена
[percentage_discount] => 10.00 – скидкав %
[absolute_discount] => 75.00 р. – скидкаврублях
[price] => 675.00 р.
[price_tax] => 675.00 р.
[total_weight] => 0
[weight] => 0
[size] => 315x150x130
[total] => 675.00 р. – полнаяценатовара
[total_tax] => 675.00 р. – полная цена с учётом налогов
total =>array() - массив с данными о стоимости заказа, полной скидке, стоимости доставки, величине налога итд. Примермассива:
[id] => total
[price_value] => 3292.5
[tax_value] => 0
[excise_tax] => 0
[shipping_tax] => 0
[shipping_value] => 50
[shipping] => 50.00 – полнаястоимостьдоставки
[price] => 3292.50 – полная цена заказа без учёта доставки
[tax] => 0.00 – общая величина налога заказа
[total_weight] => 0 – общий вес заказа
[grand_discount] => 257.5 – полная величина скидки
[grand_total] => 3342.5 – полная цена заказа без учёта комиссии платёжной системы
drivers =>array() - массив содержащий информацию о стоимости заказа при оплате через определённый драйвер. Примерыэлементовмассива:
[yandex] =>Array
(
[currency] =>RUR – валюта платёжной системы
[fee] =>Array
(
[percent] => 0 – комиссия системы в%
[const] => 0–абсолютная комиссия системы (добавляется к комиссии в %)
[curr] =>RUR – валюта абсолютной комиссии
)
[pay_charge_const] => 0 – величина абсолютной комиссии
[pay_charge_percent] => 0 – величина процентной комиссии
[pay_amount] => 3,342.50 р. – форматированная итоговая цена заказа, с учётом комиссии платёжной системы
[amount] => 3342.50 – неформатированная итоговая цена заказа, с учетом комиссии платёжной системы в валюте currency
)
[rbk] => Array
(
[currency] => RUR
[fee] => Array
(
[percent] => 0
[const] => 25
[curr] => RUR
)
[pay_charge_const] => +25.00 р.
[pay_charge_percent] =>
[pay_amount] => 3,367.50 р.
[amount] => 3367.50
)
[google] => Array
(
[currency] => RUR
[fee] => Array
(
[percent] => 0.5
[const] => 0
[curr] => RUR
)
[pay_charge_const] =>
[pay_charge_percent] => +0.5%
[pay_amount] => 3,359.21 р.
[amount] => 3359.21
)
)
Пример кода:
AMI.$.ajax({
url: ami_service.php",
data: {
service: "eshop_order",
action: "get_order_cost",
json_data: JSON.stringify(aCartShippings)
}
}).done(function(content){
window.priceAjaxResponce = JSON.parse(content);
});
|