PPOM API Documentation
Enable Rest API
Make sure REST API is enabled from WooCommerce > Setttings > PPOM Settings > Integrations > REST API.
Endpoint
Base Endpoint : siteurl/wp-json/ppom/v1/{$operations}
Products - Operations
1 - Get all PPOM fields attached with product
| 1.1 Operation | get/product/?product_id=238&secret_key=11122 | |||||||||
| 1.2 Method | GET | |||||||||
| 1.3 Parameters |
|
|||||||||
| 1.4 Example Response | {"status": "success",
"message": "Meta found 121",
"meta_id": 121,
"product_id": 238,
"ppom_fields": [{
"title": "My text",
"type": "text",
"data_name": "my_test",
"description": "Just a text input",
"required": 1
}, {
"title": "My text 23",
"type": "text",
"data_name": "my_test3",
"description": "Another text",
"required": 1
}, {
"title": "Type your email",
"type": "email",
"data_name": "your_email",
"description": "Email please",
"required": 1
}, {
"title": "Package",
"type": "checkbox",
"data_name": "package",
"description": "Select Package",
"required": "",
"options": [{
"option": "Basic",
"price": "",
"id": "thebasic"
}, {
"option": "Studend",
"price": "5.20",
"id": "studend"
}, {
"option": "Super",
"price": "7",
"id": "super"
}]
}]
}
|
|||||||||
| Other Status | success: if operation successful no_product: if product is not found no_meta: if no fields/meta attached with product |
2 - Set/Update PPOM Fields
If requested fields are exists, it will update otherwise add them to product. If no PPOM meta is attached to product then it will create a new meta group with same name as of Product title in WooCommerce and add these fields.
| 2.1 Operation | set/product/ | ||||||||||||
| 2.2 Method | POST | ||||||||||||
| 2.3 Parameters |
|
||||||||||||
| 2.4 Fields Meta |
|
||||||||||||
| 2.5 Example Request | $ppom_fields = array(
array('title' => 'My text',
'type' => 'text',
'data_name' => 'my_test',
'description' => 'Just a text input',
'required' => 1),
array('title' => 'Package',
'type' => 'checkbox',
'data_name' => 'package',
'description' => 'Select Package',
array(
array('option'=>"Basic",'price'=>'','id'=>'thebasic'),
array('option'=>"Studend",'price'=>'5.20', 'id'=>'student'),
array('option'=>"Super",'price'=>'7', 'id'=>'super'),
),
'required' => 1),
array('title' => 'Type your email',
'type' => 'email',
'data_name' => 'your_email',
'description' => 'Email please',
'required' => 1),
);
|
||||||||||||
| 2.6 Example Response | {
"status": "success",
"meta_id": 122,
"product_id": 238,
"fields": [{
"title": "My text",
"type": "text",
"data_name": "my_test",
"description": "Just a text input",
"required": 1
}, {
"title": "Package",
"type": "checkbox",
"data_name": "package",
"description": "Select Package",
"options": [{
"option": "Basic",
"price": "",
"id": "thebasic"
}, {
"option": "Student",
"price": "5.20",
"id": "student"
}, {
"option": "Super",
"price": "5%",
"id": "super"
}],
"required": 1
}, {
"title": "Type your email",
"type": "email",
"data_name": "your_email",
"description": "Email please",
"required": 1
}]
}
|
3 - Delete Fields
| 3.1 Operation | delete/product/ | ||||||||||||
| 3.2 Method | POST | ||||||||||||
| 3.3 Parameters |
|
||||||||||||
| 3.4 Example Request | $delete_fields = array('field_1','field_2');
$post_data = array('product_id' => 238,
'secret_key' => 123123,
'fields' => json_encode($delete_fields),
);
// Delete all fields against product
$delete_fields = array('__all_keys');
|
||||||||||||
| 3.5 Example Response | {
"status": "success",
"meta_id": "123",
"product_id": 238,
"fields": [{
"title": "My text",
"type": "text",
"data_name": "my_test",
"description": "Just a text input",
"required": 1
}, {
"title": "Package",
"type": "checkbox",
"data_name": "package",
"description": "Select Package",
"required": "",
"options": [{
"option": "Basic",
"price": "",
"id": "thebasic"
}, {
"option": "Studend",
"price": "5.20",
"id": "studend"
}, {
"option": "Super",
"price": "7",
"id": "super"
}]
}]
}
|
Order - Operations
1 - Get all meta data information attached with Order
| 1.1 Operation | get/order/?order_id=2141&secret_key=11122 | |||||||||
| 1.2 Method | GET | |||||||||
| 1.3 Parameters |
|
|||||||||
| 1.4 Example Response | {
"status": "success",
"message": "Order found 2141",
"order_items_meta": [{
"product_id": 2028,
"product_meta_data": [{
"id": 3932,
"key": "thehidden",
"value": "22"
}, {
"id": 3933,
"key": "you_compaany",
"value": "nmedia"
}, {
"id": 3934,
"key": "about_compny",
"value": "I love Again"
}, {
"id": 3935,
"key": "email_input",
"value": "najeeb.ahmd82@gmail.com"
}, {
"id": 3936,
"key": "dob",
"value": "28-2-2200"
}, {
"id": 3937,
"key": "gender",
"value": "Male"
}, {
"id": 3938,
"key": "your_date_range",
"value": "22"
}, {
"id": 3939,
"key": "select_timzone",
"value": "22"
}, {
"id": 3940,
"key": "your_interest",
"value": "22"
}, {
"id": 4442,
"key": "package",
"value":
"[{\"option\":\"Basic2\",\"price\":\"\",\"id\":\"basic2\"},{\"opt
ion\":\"Studend\",\"price\":\"5.20\",\"id\":\"studend\"}]"
}, {
"id": 3942,
"key": "colors_palettes",
"value": "22"
}, {
"id": 3943,
"key": "select_image",
"value": "22"
}, {
"id": 3951,
"key": "your_age",
"value": "22"
}]
}]
}
|
|||||||||
| Other Status | success: if operation successful no_order: if order is not found |
|||||||||
| Checkbox/Radio/Select value | Checkbox/radio/select type input values will be shown as encode array (string output) in which each option will have following keys: option price id |
2 - Set/Update Meta/Fields against order
If requested fields are exists, it will update otherwise add them to order.
Return: All meta fields attached to order
| 2.1 Operation | set/order/ | ||||||||||||
| 2.2 Method | POST | ||||||||||||
| 2.3 Parameters |
|
||||||||||||
| 2.4 Example Request | // checkbox,radio or select will be sent as collection of arrays like
below:
$cb_options[] = array('id'=>'studen_id','option'=>'Students
Data','price'=>'7.2');
$cb_options[] = array('id'=>'suject','option'=>'Social Studies');
$ppom_fields = array(
2028 => array(
'about_compny'=>'I love Again',
'email_input'=>'najeeb.ahmd82@gmail.com',
'your_age'=>36,
'package'=> $cb_options,
),
);
$post_data = array('product_id' => 238,
'secret_key' => 123123,
'fields' => json_encode($ppom_fields),
);
In above example $ppom_fields has key as item id in order with array is
given with data_name=>value pair.
|
||||||||||||
| 2.5 Example Response | Same as in 1.4 in Orders |
3 - Delete Meta/Fields in Order
Return: All meta fields attached to order
| 2.1 Operation | delete/order/ | ||||||||||||
| 2.2 Method | POST | ||||||||||||
| 2.3 Parameters |
|
||||||||||||
| 2.4 Example Request | $delete_fields = array(
2028 => array('your_email', 'select_image'),
);
$post_data = array('product_id' => 238,
'secret_key' => 123123,
'fields' => json_encode($delete_fields),
);
In above example $delete_fields has key as item id in order with
array is given with data_name=>value pair.
Same as in 1.4 in Orders |
3 - Field Types Table
| Field | type | data_name | title | description | required | options |
| Text | text | unique | ANY | ANY | true:1,false: 0 | N/A |
| unique | ANY | ANY | true:1,false: 0 | N/A | ||
| Date | date | unique | ANY | ANY | true:1,false: 0 | N/A |
| Number | number | unique | ANY | ANY | true:1,false: 0 | N/A |
| Textarea | textarea | unique | ANY | ANY | true:1,false: 0 | N/A |
| Date Range | daterange | unique | ANY | ANY | true:1,false: 0 | N/A |
| Timezone | timezone | unique | ANY | ANY | true:1,false: 0 | N/A |
| Color Picker | color | unique | ANY | ANY | true:1,false: 0 | N/A |
| Select | select | unique | ANY | ANY | true:1,false: 0 | See section 3.1 |
| Radio | radio | unique | ANY | ANY | true:1,false: 0 | See section 3.1 |
| Checkbox | checkbox | unique | ANY | ANY | true:1,false: 0 | See section 3.1 |
3.1 - Options
Options is an array with following keys:
'options' => array(
array('option'=>"Basic",'price'=>''),
array('option'=>"Student",'price'=>'5.20'),
array('option'=>"Super",'price'=>'5%'),
