русский | english
 

Описание процесса работы API

Общение вашего магазина с системой происходит с помощью протокола SOAP.

Все запросы отправляются на сервер http://www.anycent.com/API/cart/.
Чтобы отправить запрос, необходимо авторизироваться через заголовок запроса. Для этого следует добавить в заголовок SOAP запросов следующие поля:

  • login = API username (задается в панели управления магазином)
  • password = API password (задается в панели управления магазином)
  • httpAuthType = "Basic"

Для того, чтобы сформировать заказ вам нужно:

  • Сформировать уникальный идентификатор покупателя (обычно ID сессии). Все дальнейшие действия будут производиться для формирования заказов покупателю с этим идентификатором
  • Добавить товары в корзину системы (addProduct)
  • Получить стоимость доставки (getShippingByProducts)
  • Проверить баланс покупателя (checkStoreCredit)
  • Проверить скидку по купону (checkCouponCode)
  • На основе предыдущих шагов посчитать итоговую сумму заказа по формуле:

    [стоимость товаров в корзине] + [стоимость доставки] - [скидка] - [баланс покупателя]

    В том случае если итоговая сумма меньше 0, т.е. баланс покупателя больше суммы заказа, то покупатель ничего не платит, а после оформления (saveOrder) его заказ будет помечен как оплаченный
  • Добавить адрес доставки заказа (addShippingAddress)
  • Сформировать заказ (saveOrder), получить ссылку на оплату заказа
  • Отправить пользователю ссылку, где он сможет произвести оплату
  • Проверить оплату заказа (checkPayment). После проверки отметить заказ в магазине как оплаченый

Список доступных функций:

  • addProduct - добавление, измение или удаление товаров из корзины на AC
  • getShippingByProducts - возврат стоимости доставки в разные стран товаров в корзине
  • addShippingAddress - сохранение адреса доставки покупателя
  • saveOrder - оформление заказа
  • checkPayment - проверка оплаты заказа
  • checkCouponCode - проверка скидки по купону
  • checkStoreCredit - проверка кредита покупателя
  • getPaymentGates - возвращение списка доступных платежных систем

addProduct

Добавить, удалить или изменить количество товаров в корзине.

Аргументы функции
id_shop ID магазина
id_buyer Уникальный идентификатор покупателя , обычно session_id
id_product Идентификатор цены товара (ВАЖНО, это не id товара, а id цены)
price Цена товара
count_products Количество товара; 0 - удаление товара из корзины
Результат выполнения
status Результат выполнения: ok, error
message Возвращение текста ошибки если результат = error

getShippingByProducts

Возвращение стоимости доставки товаров в корзине покупателя

Аргументы функции
id_shop ID магазина
id_buyer Уникальный идентификатор покупателя, обычно session_id
Результат выполнения
status Результат выполнения: ok, error
message Возврат текста ошибки
countries Массив объектов стран (ShippingCountryPrice) со ценой доставки, в которые она возможна
countries->ShippingCountryPrice

обьект доставки в страну, состоит из:

  • цены (countries->ShippingCountryPrice->price)
  • названия страны(countries->ShippingCountryPrice->country)
  • код-2 страны (countries->ShippingCountryPrice->country_code)
  • название отправки товара системой (countries->ShippingCountryPrice->title)
  • id отправки (countries->ShippingCountryPrice->shipping_id)

addShippingAddress

Добавление адреса доставки для текущего заказа

Аргументы функции
id_shop ID магазина
id_buyer уникальный идентификатор покупателя, обычно session_id
address адрес
address2 адрес 2
country 2ух буквенный код страны
city город
state штат/район/округ
zip почтовый код
phone1 телефон
phone2 телефон 2
fname имя
lname фамилия
email -
Результат выполнения
status результат выполнения: ok, error
message возврат текста ошибки

saveOrder

Формирование заказа в системе. Сверка всех сумм, участвующих в формировании заказа.

Аргументы функции
id_shop ID магазина
id_buyer уникальный идентификатор покупателя, обычно session_id
id_order уникальный идентификатор заказа в магазине
price_total итоговая стоимость заказа
shipping_price стоимость доставки
user_comment комментарий к заказу
discount_total сумма скидки
coupon_code код скидки
ip IP адрес покупателя
bill_prop системное имя платежной системы с помощью которой будет совершена оплата
back_url ссылка по которой покупатель будет возвращаться в магазин с сайта платежной системы (обычно - на страницу проверки оплаты с помощью checkPayment)
shipping_method id выбранного метода доставки заказа
Результат выполнения
status результат выполнения: ok, error
message если status=ok - возвращает ссылку по которой пользователь должен перейти чтобы оплатить заказ,
если status=error - возвращает текст ошибки

checkPayment

Проверка факта оплаты заказа.

Аргументы функции
id_shop ID магазина
id_buyer уникальный идентификатор покупателя, обычно session_id
id_order id заказа в магазине
Результат выполнения
status результат выполнения: ok, error
message возвращает текст ошибки если результат = error
add_fld варианты: paid/not paid

checkCouponCode

Проверка скидки по введенному купону. Возвращает сумму скидки, если есть.

Аргументы функции
id_shop ID магазина
id_buyer уникальный идентификатор покупателя, обычно session_id
coupon_code код
Результат выполнения
status результат выполнения: ok, error
message возврат текста ошибки, если результат = error
add_fld сумма скидки

checkStoreCredit

Проверка баланса покупателя по e-mail адресу. Возвращает сумму баланса, если есть.

Аргументы функции
id_shop ID магазина
id_buyer уникальный идентификатор покупателя, обычно session_id
email email покупателя
Результат выполнения
status результат выполнения: ok, error
message возвращает текст ошибки если результат = error
add_fld баланс покупателя

getPaymentGates

Возвращает список платежных систем доступных для оплаты товара в магазине

Аргументы функции
id_shop ID магазина
id_buyer уникальный идентификатор покупателя, обычно session_id
Результат выполнения
status результат выполнения: ok, error
message возвращает текст ошибки если результат = error
gates массив обьектов доступных платежных систем (PaymentGate)
gates->PaymentGate

обьект платежной системы, состоит из:

  • названия (gates->PaymentGate->name)
  • системного имени (gates->PaymentGate->sys_name)

Пример использования SOAP на php5

Пример функции для вызова SOAP методов

        function callSOAPMethod($method_name, $data){
            $client = new SoapClient(null, array("location" => WSDL,          # ссылка на API
                                                 "uri" => 'http://test-uri',
                                                 "exceptions" => 0,  
                                                 "login" => SHOP_LOGIN,       # API username 
                                                 "password" => SHOP_PASSWORD, # API password
                                                 "httpAuthType" => "Basic"));
            $to_send = array();
            $to_send[] = new SoapParam(SHOP_ID,'id_shop');                    # shop ID
            $to_send[] = new SoapParam(session_id(),'id_buyer');              # уникальный идентификатор кастомера (обычно SESSION_ID)
            foreach($data as $k=>$v){                                        
                $to_send[] = new SoapParam($v,$k);         
            }
            return call_user_func_array(array($client, $method_name), $to_send);    
        }
        

Пример использования функции - добавление товара в корзину системы

        $res = callSOAPMethod('addProduct', array("id_product" => "222",      # идентификатор цены товара
                                                  "price" => "99.99",         # стоимость товара
                                                  "count_products" => "3"));  # количество
        if($res->status == 'ok'){
            # добавляем товар в корзину магазина
        } else {
            echo $res->message; exit;                                         # выводим ошибку
        }