Создание заказа

Создание заказа средствами шаблона с любой страницы магазина (купить в 1 клик)

Создание заказа в данном случае можно осуществить, отправив 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.

Помимо описанных полей на оформление заказа также будет отправлена вся покупательская корзина. Поэтому если она пуста, то следует отправить в нее товар до отправки формы быстрого заказа.

 

Для создания заказа требуется хотя бы один товар, способ доставки, способ оплаты и заполнение всех полей, указанных как обязательные (по умолчанию это имя покупателя и телефон).

js
        
          

$.post('/fast_checkout.json', {
    client: {
      email: 'client@mail.ru',
      name: 'Антон',
      phone: '+7 (111) 111 11 11'
    },
    order: {
      delivery_variant_id: 123456,
      payment_gateway_id: 123456
    }
  })
  .done(function (response) {
    if (response.status == 'ok') {
      console.log(response);
    } else {
      console.log(response);
    }
  })
  .fail(function (fail) {
    console.log(fail);
  })