Skip to content

Commit df8a56f

Browse files
authored
Merge pull request #176 from agnostack/master
Master > Develop
2 parents b31346d + 43bf3a2 commit df8a56f

File tree

7 files changed

+710
-229
lines changed

7 files changed

+710
-229
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1+
**/.DS_Store
2+
13
/vendor

README.md

Lines changed: 68 additions & 225 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
# ANNOUNCING VERSION 3.0 :mega:
2+
3+
The new 3.0 version fixes several core issues (incorrect/missing order address, sporadic missing customer data, lack of order item quantities, etc.) and provides all new v2 endpoints, with the ability to retrieve additional information about customers and orders within your Magento store.
4+
5+
* Perform advanced Customer Search
6+
* View real-time Shipping Status
7+
* Access detailed Payment Status
8+
* Enable direct Order Search by ID
9+
* Access Order Messages and Notes
10+
11+
112
# Zendesk Extension for Magento
213

314
This extension makes Zendesk work seamlessly with Magento to enable stores to deliver great customer support. **Features include:**
@@ -14,7 +25,7 @@ The latest stable version of the extension can be installed via the [Magento Con
1425

1526
### General Notes
1627

17-
The extension provides its own custom RESTful API, which is intended to be used by the [Magento Zendesk App](https://github.com/zendesk/magento_app). The custom API allows for a consistent interface across all Magento versions, regardless of whether they support XML-RPC, SOAP or REST interfaces, and provides exactly the data that the app requires.
28+
The extension provides its own custom RESTful API, which is intended to be used by the [agnoStack app](https://www.zendesk.com/apps/support/agnostack-commerce---by-particular/). The custom API allows for a consistent interface across all Magento versions, regardless of whether they support XML-RPC, SOAP or REST interfaces, and provides exactly the data that the app requires.
1829

1930
The base URL of the API is `http://your_site_base_url/zendesk/api/`.
2031

@@ -62,239 +73,71 @@ Will return customer information for the customer with the provided email addres
6273

6374
Note that Magento allows scoping customers either globally or per website. If set to be scoped per website then this method will return the first customer which matches the email address, regardless of the website they belong to.
6475

65-
**Response Format**
66-
67-
Guest customers only have the `guest` and `orders` keys returned.
68-
69-
<table>
70-
<thead>
71-
<tr>
72-
<th>Name</th>
73-
<th>Type</th>
74-
<th>Comment</th>
75-
</tr>
76-
</thead>
77-
<tbody>
78-
<tr>
79-
<td>guest</td>
80-
<td>boolean</td>
81-
<td>Whether the customer is a guest (no customer record) or has a full customer record</td>
82-
</tr>
83-
<tr>
84-
<td>id</td>
85-
<td>integer</td>
86-
<td>Internal Magento ID for the customer</td>
87-
</tr>
88-
<tr>
89-
<td>name</td>
90-
<td>string</td>
91-
<td>Customer's full name</td>
92-
</tr>
93-
<tr>
94-
<td>email</td>
95-
<td>string</td>
96-
<td>Customer's email address</td>
97-
</tr>
98-
<tr>
99-
<td>active</td>
100-
<td>boolean</td>
101-
<td>Whether the customer is marked as active in Magento</td>
102-
</tr>
103-
<tr>
104-
<td>admin_url</td>
105-
<td>string</td>
106-
<td>URL to access the customer detail in the Magento admin panel</td>
107-
</tr>
108-
<tr>
109-
<td>created</td>
110-
<td>string</td>
111-
<td>Date and time the customer record was created</td>
112-
</tr>
113-
<tr>
114-
<td>dob</td>
115-
<td>string</td>
116-
<td>Date of birth</td>
117-
</tr>
118-
<tr>
119-
<td>addresses</td>
120-
<td>array</td>
121-
<td>List of addresses recorded on the customer account</td>
122-
</tr>
123-
<tr>
124-
<td>orders</td>
125-
<td>array</td>
126-
<td>List of orders placed by the customer (see the `orders` method for details)</td>
127-
</tr>
128-
</tbody>
129-
</table>
130-
13176
#### GET /orders/`<order_increment_id>`
13277

13378
Will return details of an individual order based on the Magento order increment ID, which usually takes the form 100000321.
13479

135-
**Response Format**
136-
137-
<table>
138-
<thead>
139-
<tr>
140-
<th>Name</th>
141-
<th>Type</th>
142-
<th>Comment</th>
143-
</tr>
144-
</thead>
145-
<tbody>
146-
<tr>
147-
<td>id</td>
148-
<td>string</td>
149-
<td>The order ID displayed to the customer</td>
150-
</tr>
151-
<tr>
152-
<td>status</td>
153-
<td>string</td>
154-
<td>Current order status (e.g. Pending, Processing, Complete)</td>
155-
</tr>
156-
<tr>
157-
<td>created</td>
158-
<td>string</td>
159-
<td>Date and time the order was created</td>
160-
</tr>
161-
<tr>
162-
<td>updated</td>
163-
<td>string</td>
164-
<td>Date and time the order was last updated</td>
165-
</tr>
166-
<tr>
167-
<td>customer</td>
168-
<td>object</td>
169-
<td>Has the keys:
170-
<dl>
171-
<dt>name</dt>
172-
<dd>Customer's name</dd>
173-
<dt>email</dt>
174-
<dd>Customer's email address</dd>
175-
<dt>ip</dt>
176-
<dd>IP address the order was placed from</dd>
177-
<dt>guest</dt>
178-
<dd>Whether the customer placed the order as a guest</dd>
179-
</dl>
180-
</td>
181-
</tr>
182-
<tr>
183-
<td>store</td>
184-
<td>string</td>
185-
<td>Magento store that the order was placed in</td>
186-
</tr>
187-
<tr>
188-
<td>total</td>
189-
<td>string</td>
190-
<td>Total value of the order</td>
191-
</tr>
192-
<tr>
193-
<td>currency</td>
194-
<td>string</td>
195-
<td>Currency code (e.g. AUD, USD)</td>
196-
</tr>
197-
<tr>
198-
<td>items</td>
199-
<td>array</td>
200-
<td>List of items on the order; each item has the keys:
201-
<dl>
202-
<dt>sku</dt>
203-
<dd>Product's unique SKU</dd>
204-
<dt>name</dt>
205-
<dd>Product name</dd>
206-
</dl>
207-
</td>
208-
</tr>
209-
<tr>
210-
<td>admin_url</td>
211-
<td>string</td>
212-
<td>URL to access the order in the Magento admin panel</td>
213-
</tr>
214-
</tbody>
215-
</table>
21680

21781
#### GET /users/`<user_id>`
21882

21983
Will return either a single Magento admin user, or a list of users if the `user_id` argument is left out. Admin user accounts have access to the admin panel and are different to customer accounts.
22084

221-
**Parameters**
222-
223-
<table>
224-
<thead>
225-
<tr>
226-
<th>Argument</th>
227-
<th>Default</th>
228-
<th>Comment</th>
229-
<tr>
230-
</thead>
231-
<tbody>
232-
<tr>
233-
<td>page_size</td>
234-
<td>100</td>
235-
<td>Number of results to be returned</td>
236-
</tr>
237-
<tr>
238-
<td>offset</td>
239-
<td>0</td>
240-
<td>Page number to return, based on `page_size`</td>
241-
</tr>
242-
<tr>
243-
<td>sort</td>
244-
<td>given_name</td>
245-
<td>Attribute to sort by</td>
246-
</tr>
247-
</tbody>
248-
</table>
249-
250-
**Response Format**
251-
252-
<table>
253-
<thead>
254-
<tr>
255-
<th>Name</th>
256-
<th>Type</th>
257-
<th>Comment</th>
258-
</tr>
259-
</thead>
260-
<tbody>
261-
<tr>
262-
<td>id</td>
263-
<td>string</td>
264-
<td>Internal ID for the user</td>
265-
</tr>
266-
<tr>
267-
<td>given_name</td>
268-
<td>string</td>
269-
<td>User's first name</td>
270-
</tr>
271-
<tr>
272-
<td>family_name</td>
273-
<td>string</td>
274-
<td>User's surname</td>
275-
</tr>
276-
<tr>
277-
<td>username</td>
278-
<td>string</td>
279-
<td>Username used to log in to the Magento admin panel</td>
280-
</tr>
281-
<tr>
282-
<td>email</td>
283-
<td>string</td>
284-
<td>User's email address</td>
285-
</tr>
286-
<tr>
287-
<td>active</td>
288-
<td>boolean</td>
289-
<td>Whether the user is enabled and can log in</td>
290-
</tr>
291-
<tr>
292-
<td>role</td>
293-
<td>string</td>
294-
<td>User's role; used for ACLs in Magento</td>
295-
</tr>
296-
</tbody>
297-
</table>
85+
### Additional Available Methods (v3 and later)
86+
87+
#### GET /customer/`<customer_id>`
88+
89+
Will return customer information for the customer with the provided customer ID. If no customer record exists, this will return `null`.
90+
91+
#### POST /searchCustomers
92+
93+
Will return customer information for the customers with the provided customer atrribute payload.
94+
95+
Example payload:
96+
97+
```
98+
{
99+
"customer": {
100+
"email": "janedoe@example.com",
101+
"firstname": "Jane",
102+
"lastname": "Doe"
103+
}
104+
}
105+
```
106+
107+
#### POST /searchOrders
108+
109+
Will return order details for orders which match the provided order attribute payload.
110+
111+
Example payloads:
112+
113+
```
114+
// Lookup by customer and product
115+
{
116+
"customer": {
117+
"email": "janedoe@example.com"
118+
},
119+
"product": {
120+
"sku": "123"
121+
}
122+
}
123+
124+
// Lookup by status
125+
{
126+
"status": "complete"
127+
}
128+
```
129+
130+
#### GET /order/`<order_id>`
131+
132+
Will return details of an individual order based on the Magento order increment ID, which usually takes the form 100000321. This endpoint will return enhanced data on top of what is prodived by the v2.x endpoint.
133+
134+
#### GET /shipping/`<order_id>`
135+
136+
Will return shipping related details of an individual order based on the Magento order increment ID, which usually takes the form 100000321.
137+
138+
#### GET /notes/`<order_id>`
139+
140+
Will return status history details of an individual order based on the Magento order increment ID, which usually takes the form 100000321.
298141

299142
## Local Development
300143

0 commit comments

Comments
 (0)