Создание заказа в данном случае можно осуществить, отправив POST-запрос с определенными полями на /fast_checkout.json.
В ответ этот JSON выдает номер заказа, ключ, id и другие данные, которые могут быть нужны для отправки в партнерские сети и другие внешние системы.
Принимает все те же поля, что и оформление заказа, т.е.:
client[email] | e-mail покупателя |
client[name] | имя покупателя |
client[phone] | телефон (если в настройках поля включена проверка формата, то она будет действовать и при оформлении заказа через fast_checkout.json), обязательное поле |
order[delivery_variant_id] | id способа доставки (можно взять шаблонизатором через массив account.delivery_variants), обязательное поле |
order[payment_gateway_id] | id способа оплаты (можно взять шаблонизатором через массив account.payment_gateways), обязательное поле |
Все собственные поля, созданные в разделе Настройки - Оформление заказа также можно отправить. Но их нельзя взять шаблонизатором, это значит что прописывать их в форме для fast_checkout нужно жестко с использованием их идентификаторов. Привязка способов оплаты к способам доставки также учитывается, т.е. если отправить в форме способ оплаты, который не привязан к отправленному вместе с ним способу оплаты, то заказ создан не будет.
Привязка способов доставки к регионам так же действует при таком оформлении заказа.
Все поля, отмеченные в разделе Настройки - Оформление заказа как обязательные, являются обязательными и в случае оформления заказа через fast_checkout.
Помимо описанных полей на оформление заказа также будет отправлена вся покупательская корзина. Поэтому если она пуста, то следует отправить в нее товар до отправки формы быстрого заказа.
Для создания заказа требуется хотя бы один товар, способ доставки, способ оплаты и заполнение всех полей, указанных как обязательные (по умолчанию это имя покупателя и телефон).
Ответ success-контроллера будет содержать поля:
location
|
URL страницы успешного оформления | |
order
|
объект-заказ, далее перечислены его составляющие | |
accepted_at
|
когда принят (т.е. переведен в статус в обработке), вернет null для нового заказа |
|
account_id
|
id магазина в системе InSales | |
client
|
объект-покупатель, далее поля этого объекта | |
bonus_points
|
кол-во накопленных бонусных баллов | |
client_group_id
|
id группы покупателя (если зарегистрирован) | |
created_at
|
когда создан покупатель | |
email
|
||
fields_values
|
свои поля покупателя | |
id
|
ID покупателя | |
ip_addr
|
IP адрес, с которого сделан заказ | |
middlename
|
отчество | |
name
|
имя | |
phone
|
телефон | |
registered
|
зарегистрирован (true или false) |
|
subscribe
|
подписан ли на новости магазина (true/false) | |
surname
|
фамилия | |
updated_at
|
когда изменен (изменены контактные данные или группа покупателя) | |
comment
|
комментарий к заказу | |
cookies
|
массив сохраненных cookie | |
created_at
|
когда создан заказ | |
current_location
|
страница входа | |
delivered_at
|
время доставки | |
delivery_date
|
дата доставки |
|
delivery_description
|
описание способа доставки |
|
delivery_from_hour
|
время доставки с... |
|
delivery_price
|
стоимость доставки |
|
delivery_title
|
название способа доставки |
|
delivery_to_hour
|
время доставки по... |
|
delivery_variant_id
|
id способа доставки |
|
discount
|
величина скидки | |
discounts
|
массив скидок (на момент написания статьи скидка у только что созданного заказа может быть только одна) | |
fields_values
|
свои поля заказа | |
financial_status
|
статус оплаты (pending/paid) | |
first_current_location
|
страница входа при первом посещении сайта |
|
first_referer
|
источник первого посещения |
|
fulfillment_status
|
статус заказа (new/accepted/approved/dispatched/delivered/declined/returned) |
|
full_delivery_price
|
стоимость доставки с учетом скидки | |
id
|
id заказа |
|
items_price
|
стоимость товаров в заказе |
|
key
|
ключ заказа (32-значный хеш в URL'е страницы заказа) |
|
margin
|
величина наценки на способ оплаты | |
number
|
номер заказа в магазине |
|
order_changes
|
объект изменений заказа, для нового заказа будет содержать только его создание | |
order_lines
|
состав заказа - массив его позиций, далее описаны каждый из объектов-позиций | |
0
|
первый объект-позиция | |
created_at
|
дата создания позиции (равна дате создания заказа) |
|
full_sale_price
|
цена позиции с учетом скидки |
|
full_total_price
|
стоимость позиции с учетом скидки |
|
id
|
id позиции | |
order_id
|
id заказа |
|
product_id
|
id товара, соответствующий позиции |
|
quantity
|
количество позиции |
|
reserved_quantity
|
резерв | |
sale_price
|
цена позиции |
|
sku
|
артикул | |
title
|
название | |
total_price
|
стоимость позиции |
|
updated_at
|
когда изменена |
|
variant_id
|
id модификации, соответствующей позиции |
|
weight
|
вес | |
paid_at
|
когда оплачен, для только что созданного заказа вернет null |
|
payment_description
|
описание способа оплаты | |
payment_gateway_id
|
id способа оплаты |
|
payment_title
|
название способа оплаты |
|
referer
|
источник текущего посещения |
|
shipping_address
|
объект-адрес доставки, далее составляющие этого объекта | |
address
|
поле Адрес |
|
city
|
город | |
country
|
страна | |
fields_values
|
свои поля адреса | |
full_delivery_address
|
полный адрес (страна, город, регион, свои поля, само поле адрес) |
|
full_name
|
полное имя получателя ('Фамилия' + 'Имя' + 'Отчество') |
|
middlename
|
отчество получателя |
|
name
|
имя получателя |
|
phone
|
телефон получателя |
|
state
|
регион | |
surname
|
фамилия получателя |
|
zip
|
почтовый индекс | |
total_price
|
итоговая стоимость заказа |
|
updated_at
|
когда обновлен |
Пример использования - в файле. Приведен код кнопки купить в один клик для размещения на странице товара в магазине с переходом на страницу оформленного заказа в случае успеха.