This will be a desktop application, built in Delphi, that will use the Shopify API (which is JSON based) to fetch orders from a Shopify account, and display them effectively, so that later we can manipulate those orders.
This would probably involve creating a class called 'TOrder' (with all the important fields defined), OR a TClientDataSet (with all the important order fields), OR both?.
Orders will then be displayed visually in a grid.
We need to have control (at design time is OK) over which fields are displayed and how the orders are filtered and sorted.
* If the project is successful, there should be more work on this project in the future.
* You are required to release all of the source code and files (i.e. you do not just supply the .exe)
* You do not have to know Shopify to do this. However you will definitely need to be familiar with JSON or XML.
* The shopify API documentation is here:
[login to view URL]
Here is an example of how the API works.
The URL format is this:
https://apikey:password[at]hostname/admin/[login to view URL]
So for example if we call:
https://xxxxxxxxxxxxx2ebd304083f0exxxxxxx:/admin/[login to view URL],
it will return all the orders.
Here is just an example of the JSON response, with just 1 order:
{
"orders":
[
{
"buyer_accepts_marketing":false,
"cancel_reason":null,
"cancelled_at":null,
"cart_token":"xxx",
"checkout_token":"xxxx",
"confirmed":true,
"created_at":"2014-02-12T20:45:21+11:00",
"currency":"AUD",
"email":"",
"financial_status":"paid",
"fulfillment_status":null,
"gateway":"paypal",
"id":23203xxxx,
"location_id":null,
"name":"#4xxx0",
"note":"",
"number":2xx,
"reference":null,
"referring_site":"",
"subtotal_price":"109.98",
"taxes_included":false,
"test":false,
"token":"6a304bf8db68968xxxxxx761d2ae2725",
"total_discounts":"0.00",
"total_line_items_price":"109.98",
"total_price":"119.98",
"total_price_usd":"108.22",
"total_tax":"0.91",
"total_weight":2000,
"browser_ip":"[login to view URL]",
"landing_site_ref":null,
"order_number":1290,
"discount_codes":
[
]
,
"note_attributes":
[
]
,
"processing_method":"express",
"checkout_id":204187401,
"source_name":"web",
"tax_lines":
[
{
"price":"0.91",
"rate":0.1,
"title":"GST"
}
]
,
"line_items":
[
{
"fulfillment_service":"manual",
"fulfillment_status":null,
"grams":1000,
"id":41057xxxx,
"price":"54.99",
"product_id":20xxxx021,
"quantity":2,
"requires_shipping":true,
"sku":null,
"title":"xxxxxxxtional Bxxxxxg",
"variant_id":4616xxx65,
"variant_title":"1kg",
"vendor":"xxxxxxx xxxxx",
"name":"xxxxxxxxxxxxxxxxxxxxx - 1kg",
"variant_inventory_management":null,
"properties":
[
{
"name":"Moistness",
"value":"xxxxxxxxs"
}
,
{
"name":"Sliced",
"value":"Whole"
}
]
,
"product_exists":true
}
]
,
"shipping_lines":
[
{
"code":"Shipping & Handling",
"price":"9.09",
"source":"shopify",
"title":"Shipping & Handling"
}
]
,
"billing_address":
{
"address1":"8 xxx e",
"address2":"",
"phone":"xxx-xxx-2769",
"zip":"318x",
"name":"lxxx xxxxer",
"country_code":"AU",
"province_code":"VIC"
}
,
"fulfillments":
[
]
}