2 |
- |
1 |
<?php
|
|
|
2 |
// be sure include path contains current directory
|
|
|
3 |
ini_set('include_path', ini_get('include_path') . ':.');
|
|
|
4 |
|
|
|
5 |
require_once 'shopifyConfig.php';
|
|
|
6 |
getShopifyConfig();
|
|
|
7 |
|
|
|
8 |
//
|
|
|
9 |
function shopifyProductAdjust($Title, $SKU, $Quantity) {
|
|
|
10 |
// Count Products for this title and sku
|
|
|
11 |
$url = getShopifyAdminUrl() . "products/count.json?title=" . urlencode($Title) . "&SKU=" . urlencode($SKU);
|
|
|
12 |
|
|
|
13 |
$curl = curl_init();
|
|
|
14 |
curl_setopt($curl, CURLOPT_URL, $url);
|
|
|
15 |
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json'));
|
|
|
16 |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
|
|
17 |
curl_setopt($curl, CURLOPT_VERBOSE, 0);
|
|
|
18 |
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
|
|
|
19 |
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
20 |
$data = curl_exec ($curl);
|
|
|
21 |
curl_close ($curl);
|
|
|
22 |
|
|
|
23 |
$json = json_decode($data);
|
|
|
24 |
$count = $json->count;
|
|
|
25 |
|
|
|
26 |
if ($count < 1) {
|
|
|
27 |
return array(false, "Shopify: Can't handle \"$Title\", found $count products.");
|
|
|
28 |
return false;
|
|
|
29 |
}
|
|
|
30 |
|
|
|
31 |
// Get Product id and quantity
|
|
|
32 |
$url = getShopifyAdminUrl() . "products.json?title=" . urlencode($Title) . "&SKU=" . urlencode($SKU) . "&fields=id,variants";
|
|
|
33 |
|
|
|
34 |
$curl = curl_init();
|
|
|
35 |
curl_setopt($curl, CURLOPT_URL, $url);
|
|
|
36 |
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json'));
|
|
|
37 |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
|
|
38 |
curl_setopt($curl, CURLOPT_VERBOSE, 0);
|
|
|
39 |
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
|
|
|
40 |
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
41 |
$data = curl_exec ($curl);
|
|
|
42 |
curl_close ($curl);
|
|
|
43 |
|
|
|
44 |
$json = json_decode($data);
|
|
|
45 |
$id = $json->products[0]->id;
|
|
|
46 |
$varid = $json->products[0]->variants[0]->id;
|
|
|
47 |
$quantity = $json->products[0]->variants[0]->inventory_quantity;
|
|
|
48 |
$newquantity = $quantity - $Quantity;
|
|
|
49 |
|
|
|
50 |
|
|
|
51 |
// Delete Product with quantity of less than 1
|
|
|
52 |
if ($newquantity < 1) {
|
|
|
53 |
$url = getShopifyAdminUrl() . "products/" . $id . ".json";
|
|
|
54 |
|
|
|
55 |
$curl = curl_init();
|
|
|
56 |
curl_setopt($curl, CURLOPT_URL, $url);
|
|
|
57 |
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json'));
|
|
|
58 |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
|
|
59 |
curl_setopt($curl, CURLOPT_VERBOSE, 0);
|
|
|
60 |
curl_setopt($curl, CURLOPT_HEADER, 1);
|
|
|
61 |
curl_setopt($curl, CURLOPT_NOBODY, 1);
|
|
|
62 |
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
|
|
|
63 |
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
64 |
$data = curl_exec ($curl);
|
|
|
65 |
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
|
|
66 |
curl_close ($curl);
|
|
|
67 |
|
|
|
68 |
if ($httpcode == 200) {
|
|
|
69 |
return array(true, "Shopify: Deleted \"$Title\".");
|
|
|
70 |
} else {
|
|
|
71 |
return array(false, "Shopify: Could not delete \"$Title\".");
|
|
|
72 |
}
|
|
|
73 |
} else { // Adjust Product's quantity
|
|
|
74 |
|
|
|
75 |
$url = getShopifyAdminUrl() . "products/" . $id . ".json";
|
|
|
76 |
$request = "{ \"product\": { \"id\": $id, \"variants\": [ { \"id\": $varid, \"inventory_quantity\": $newquantity } ] } }";
|
|
|
77 |
|
|
|
78 |
$curl = curl_init();
|
|
|
79 |
curl_setopt($curl, CURLOPT_URL, $url);
|
|
|
80 |
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json'));
|
|
|
81 |
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
|
|
|
82 |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
|
|
83 |
curl_setopt($curl, CURLOPT_VERBOSE, 0);
|
|
|
84 |
curl_setopt($curl, CURLOPT_HEADER, 1);
|
|
|
85 |
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
|
|
|
86 |
curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
|
|
|
87 |
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
88 |
$data = curl_exec ($curl);
|
|
|
89 |
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
|
|
90 |
curl_close ($curl);
|
|
|
91 |
|
|
|
92 |
if ($httpcode == 200) {
|
|
|
93 |
return array(true, "Shopify: Updated \"$Title\", Quantity now $newquantity.");
|
|
|
94 |
} else {
|
|
|
95 |
return array(false, "Shopify: Could not update quantity for \"$Title\".");
|
|
|
96 |
}
|
|
|
97 |
}
|
|
|
98 |
|
|
|
99 |
return array(false, "Shopify couldn't process \"$Title\".");
|
|
|
100 |
}
|
|
|
101 |
|
|
|
102 |
?>
|