Subversion Repositories munaweb

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
?>