Центр документации
Карта сайта

Создай визитку сам!


Самоучитель по интеграции дизайна и настройке Amiro.CMS на примере демонстрационной версии пакета Визитка »


Примеры использования API заказа

Сервисные 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);
});

Установка и настройка Руководство пользователя Интеграция дизайна Разработчикам (API)
 2000 – 2019 © Amiro.CMS Все права защищены.