Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Method Objective

The method allows importing order history or updating of orders previously imported or created by tracking, as well as changing order statuses.

Warning

Don't use this method to create new orders. The creation of new orders should be done by tracking user activity in a way that is appropriate for your platform. See REST API, JS SDK or Mobile SDKs.

Request

EndpointRequest TypeContent-TypeRate LimitMax Data Size
https://api.personaclick.com/sync/ordersPOSTapplication/json40 requests/minute32 MB/request

Parameters

NameTypeRequirementDescription
shop_idstringrequiredUnique Store Key in PersonaClick. Located there: Account > Settings > Store Settings
shop_secretstringrequiredStore Secret Key in PersonaClick. Located there: Account > Settings > Store Settings
ordersArrayrequiredObject array with orders. See the description below.

Order Object

NameTypeRequirementDescription
idstringrequiredOrder ID. If the Order ID and Order Number aren't the same, it's recommended to use the Order Number value. This will allow for easy comparison of orders on both sides. Also, note that the source of this property must be the same as the one used in the User Activity Tracking (Purchase Event).
statusstringrequiredOrder Status. The status matching must be set there in advance: Account > Settings > Order Statuses
channelstringrequiredThe name of the sales channel. Any string value, such as "website", "offline", "mobile_ios", "mobile_android", "infokiosk", "pos", "callcenter", etc.
datenumberrequired

Order date in UNIX timestamp format (in seconds).

Note

Milliseconds and microseconds aren't supported.


valueObjectrequiredDescribes the parts from which the final cost of the order is calculated. See the description below.
itemsArrayrequired in some cases

Describes the products of the order. See the description below. 

Warning

This property should be missing if the synchronization of the status of an existing order is performed.


offlinebooleanoptionallySets whether the order was created offline or not. Default: false.
emailstringoptionallyUser's email.
phonestringoptionallyUser's phone.
loyalty_idstringoptionallyUser's Loyalty ID.
location_idstringoptionallyUser's Location. Should match the value from the previously given list of locations (HTTP API, XML feed).
promocodestringoptionallyThe promo code that the user applied at checkout.
delivery_typestringoptionallyDelivery Type, e.g. "courier", "self_pickup", "delivery", "pickup_point", etc.
delivery_addressstringoptionallyShipping address.
delivery_datestringoptionallyDate of delivery, planned or completed. Format: YYYY-MM-DD.
delivery_timestringoptionallyTime of delivery, planned or completed. Format: hh:mm.
payment_typestringoptionallyThe method of payment, such as "cash", "card", "wire", etc.

Value Object

NameTypeRequirementDescription
totalnumberrequired

Order's total value. 

Tip

The "total" value should be equal to the "cash" plus the "bonuses" plus the "delivery" minus the "discount" values.


cashnumberoptionallyDescribes how much of the order's value was paid by cash.
bonusesnumberoptionallyDescribes how much of the order's value was paid by bonuses.
deliverynumberoptionallyDescribes the cost of delivery of the order.
discountnumberoptionallyDescribes the amount of discount (in money) applied to the order.

Items Array

NameTypeRequirementDescription
idstringrequiredProduct ID.
pricenumberrequiredCost per unit of product.
quantitynumberrequiredThe product quantity in the order.

API Response Code

HTTP status code

Description
200 OK

Authorization was successful.

Warning

The import process is asynchronous and executes in the background. The system checks only if the value types are correct, but not if the values themselves are correct. First, make sure by importing one order that the data is correct, then import all necessary orders.


400 Bad RequestUnsuccessful authorization.

Request Example

Code Block
languagejs
themeFadeToGrey
curl 'https://api.personaclick.com/sync/orders' \
  -X 'POST' \
  -H 'content-type: application/json' \
  --data-binary '@data.json'

# data.json
{
  "shop_id":"0d42fd8b713d0752776ca589cc0056",
  "shop_secret":"0123456789abcdef0123456789abcdef",
  "orders":[
    {
      "id":"ORDER_ID_1",
      "status":"Delivered",
      "channel":"website",
      "date":1626344304,
      "offline":false,
      "email":"john.doe@examplemail.com",
      "phone":"4400114527199",
      "loyalty_id":"000001234567",
      "location_id":"NY",
      "promocode":"vxawxSi9Uy",
      "delivery_type":"courier",
      "delivery_address":"146, Somewhere Ave, NY",
      "delivery_date":"2021-08-21",
      "delivery_time":"00:01",
      "value":{
        "total":212.13,
        "cash":190,
        "bonuses":27,
        "delivery":20,
        "discount":24.87
      },
      "items":[
        {
          "id":"ITEM-ID-1",
          "price":205,
          "quantity":1
        },
        {
          "id":"ITEM-ID-2",
          "price":3,
          "quantity":4
        }
      ]
    }, 
    {
      "id":"ORDER_ID_2",
      "status":"Delivered",
      "channel":"website",
      "date":1626344414,
      "offline":false,
      "email":"peter.parker@examplemail.com",
      "phone":"4400145291711",
      "loyalty_id":"000000001",
      "location_id":"NY",
      "promocode":"vxawxSi9Uy",
      "delivery_type":"courier",
      "delivery_address":"Forest Hills, Queens",
      "delivery_date":"2021-07-20",
      "delivery_time":"10:01",
      "value":{
        "total":211.13,
        "cash":190,
        "bonuses":27,
        "delivery":20,
        "discount":24.87
      },
      "items":[
        {
          "id":"ITEM-ID-3",
          "price":204,
          "quantity":1
        },
        {
          "id":"ITEM-ID-4",
          "price":3,
          "quantity":4
        }
      ]
    }
  ]
}



Column

Page Navigation

Table of Contents
maxLevel1

classpersonaclick-fixed-position

indent0px
stylenone




Related Pages

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
sorttitle
cqllabel in ("imports","orders")