Dropwow API
{
      "id": number,
      "price": number,
      "vendor": string,
      "categories": string (id_path),
      "brand": string,
      "quantity": number, (total product quantity) { x ∈ N | x > 0 }
      "title": string,
      "description": string,
      "image_path": [string],
			"combinations": object,
			"options": object,
      "shipping_rate": number,
}
~
Methods
  1. Feed
  2. Buy
  3. Status
Workflow


  1. Feed
curl --user shop1@dropwow.com:7752v6D9l46R017V36p711i67K5T4w93 -X GET 'http://market.dropwow.com/api/datafeed?v=2'

With params
curl --user test2@dropwow.com:vE306re56a968itRJ6d6a1OLA95wU97y 'http://market.dropwow.com/api/datafeed?v=2&page=1&...'


Response
Returns products with entry for each possible combination

To GET products with options pass v=2 as query parameter
Performance guaranteed only for no more than 1500 products on each page rance

{ "products" : array, "categories" : array, (only first page) "params": object }

Product
{ "id": number, "price": number, "vendor": string, "categories": string (id_path), "brand": string, "quantity": number, (total product quantity) { x ∈ N | x > 0 } "title": string, "description": string, "image_path": [string], "combinations": object, "options": object, "shipping_rate": number, }

Combination
Associative array { "combination": ["option_id":"variant_id", (both are integers) ("option_id":"variant_id")] "quantity": number { x ∈ N | x >= 0 } }

Options
{ "option_id" (integer, same as option_id): { "option_id": integer (int32) "option_name": string "variants": { "variant_id": integer (int32) "variant_name": string "modifier": number (float) , { x ∈ ℝ | x ≥ 0 } (if particular variant is chosen its modifier value must be added to total product price) "image_path": string } } (....) (as many entries as in Combination object) }

Category
{ "category_id": number, "parent_id": number, "id_path": string, "category": string, "position": number, "status": string, "seo_name": string, "seo_path": string, "level": number, "has_children": number, "subcategories": array }

Params
{ "page": number, "items_per_page": number, "total_items": number }
  1. Buy
  1. Status
Workflow
1) shop using getshopified add products (you can list them inside your app or make extentsion compatible with market.dropwow.com)
2) shop register on market.dropwow.com as Buyer and places money to the Dropwow Wallet
3) end-customer buy something in shopify store, order using getshopified goes for shopify to getshopify
4) getshopify using Dropwow API call method BUY, amount debited from Shop's Dropwow Wallet, order goes to Supplier
5) Supplier confirm order, fulfil it, send tracking number to Dropwow once he has it
6) Dropwow shows tracking number in response to method STATUS

Dropwow Buyer API
Method: Feed


Method: Buy

{ "products" : { "8": { "amount":"1", "product_options": { "5": "24" } } }, "user_data": { "firstname": "Guest", "lastname": "Guest", "s_firstname": "Guest", "s_lastname": "Guest", "s_country": "US", "s_city": "Boston", "s_state": "MA", (can be null) "s_zipcode": "02125", "s_address": "44 Main street", "s_address_2": "" (can be null) } } curl --user shop1@dropwow.com:7752v6D9l46R017V36p711i67K5T4w93 -X POST --header 'Content-type: application/json' -d@order 'http://market.dropwow.com/api/order'
Shell
Response

{ "order_id": number, "status": string, "tracking_number": string }
Shell
Method: Status

curl --user shop1@dropwow.com:7752v6D9l46R017V36p711i67K5T4w93 'http://market.dropwow.com/api/order/143'
Shell

Response

{ "order_id": number, "status": string, "tracking_number": string }
Shell
Order statuses

P — processed C — complete O — open F — failed D — declined B — backordered I — cancelled Y — awaiting call
Shell



Workflow:


Old versions:
v2 (notion)
v1 (notion)