Subversion Repositories munaweb

Rev

Rev 100 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// be sure include path contains current directory
ini_set('include_path', ini_get('include_path') . ':.');

require_once 'shopifyConfig.php';
getShopifyConfig();

//
function shopifyProductAdjust($Title, $SKU, $Quantity) {
  // Count Products for this title and sku
  $url = getShopifyAdminUrl() . "products/count.json?title=" . urlencode($Title) . "&SKU=" . urlencode($SKU);

  $curl = curl_init();
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json'));
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($curl, CURLOPT_VERBOSE, 0);
  curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  $data = curl_exec ($curl);
  curl_close ($curl);

  $json = json_decode($data);
  $count = (isset($json->count) ? $json->count : 0);

  if ($count < 1) {
        return array(false, "Shopify: Can't handle \"$Title\", found $count products.");
        return false;
  }

  // Get Product id and quantity
  $url = getShopifyAdminUrl() . "products.json?limit=1&title=" . urlencode($Title) . "&SKU=" . urlencode($SKU) . "&fields=id,variants";

  $curl = curl_init();
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json'));
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($curl, CURLOPT_VERBOSE, 0);
  curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  $data = curl_exec ($curl);
  curl_close ($curl);

  $json = json_decode($data);
  $id = $json->products[0]->id;
  $varid = $json->products[0]->variants[0]->id;
  $quantity = $json->products[0]->variants[0]->inventory_quantity;
  $newquantity = $quantity - $Quantity;


  // Delete Product with quantity of less than 1
  if ($newquantity < 1) {
    $url = getShopifyAdminUrl() . "products/" . $id . ".json";

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json'));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_VERBOSE, 0);
    curl_setopt($curl, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLOPT_NOBODY, 1);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    $data = curl_exec ($curl);
    $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    curl_close ($curl);

    if ($httpcode == 200) {
                return array(true, "Shopify: Deleted \"$Title\".");
    } else {
                return array(false, "Shopify: Could not delete \"$Title\".");
    }
  } else {  // Adjust Product's quantity

    $url = getShopifyAdminUrl() . "products/" . $id . ".json";
    $request = "{ \"product\": { \"id\": $id, \"variants\": [ { \"id\": $varid, \"inventory_quantity\": $newquantity } ] } }";

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json'));
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_VERBOSE, 0);
    curl_setopt($curl, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
    curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    $data = curl_exec ($curl);
    $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    curl_close ($curl);

    if ($httpcode == 200) {
                return array(true, "Shopify: Updated \"$Title\", Quantity now $newquantity.");
    } else {
                return array(false, "Shopify: Could not update quantity for \"$Title\".");
    }
  }

  return array(false, "Shopify couldn't process \"$Title\".");
}

?>