public function set_products($params)
 {
     JSONAPIHelpers::debug("set_products beginning");
     $products = $this->orEq($params, 'payload', array());
     foreach ($products as &$attrs) {
         $product = null;
         if (isset($attrs['id'])) {
             $product = API\Product::find($attrs['id']);
         } else {
             if (isset($attrs['sku']) && !empty($attrs['sku'])) {
                 $product = API\Product::find_by_sku($attrs['sku']);
             }
         }
         if ($product && is_object($product) && $product->isValid()) {
             $product->fromApiArray($attrs);
             $product->update();
             $attrs = $product->asApiArray();
         } else {
             $this->result->addWarning(__('Product does not exist.', 'woocommerce_json_api'), JSONAPI_PRODUCT_NOT_EXISTS, array('id' => isset($attrs['id']) ? $attrs['id'] : 'none', 'sku' => isset($attrs['sku']) ? $attrs['sku'] : 'none'));
             // Let's create the product if it doesn't exist.
             JSONAPIHelpers::debug("Creating a new product");
             $product = new API\Product();
             $product->create($attrs);
             if (!$product->isValid()) {
                 JSONAPIHelpers::debug("Product is not valid!");
                 return $this->done();
             } else {
                 $this->result->addNotification(__('Created product', 'woocommerce_json_api'), array('id' => $product->_actual_model_id, 'sku' => $product->sku));
             }
             $attrs = $product->asApiArray();
         }
     }
     $this->result->setPayload($products);
     JSONAPIHelpers::debug("set_products done.");
     return $this->done();
 }