Example #1
0
 public function ajaxProcessDeleteProductAttribute()
 {
     if (!Combination::isFeatureActive()) {
         return;
     }
     if ($this->tabAccess['delete'] === '1') {
         $id_product = (int) Tools::getValue('id_product');
         $id_product_attribute = (int) Tools::getValue('id_product_attribute');
         if ($id_product && Validate::isUnsignedId($id_product) && Validate::isLoadedObject($product = new Product($id_product))) {
             $product->deleteAttributeCombination((int) $id_product_attribute);
             $product->checkDefaultAttributes();
             if (!$product->hasAttributes()) {
                 $product->cache_default_attribute = 0;
                 $product->update();
             } else {
                 Product::updateDefaultAttribute($id_product);
             }
             $json = array('status' => 'ok', 'message' => $this->_conf[1]);
         } else {
             $json = array('status' => 'error', 'message' => $this->l('You cannot delete this attribute.'));
         }
     } else {
         $json = array('status' => 'error', 'message' => $this->l('You do not have permission to delete this.'));
     }
     die(Tools::jsonEncode($json));
 }
 public function ajaxProcessDeleteProductAttribute()
 {
     if (!Combination::isFeatureActive()) {
         return;
     }
     if ($this->tabAccess['delete'] === '1') {
         $id_product = (int) Tools::getValue('id_product');
         $id_product_attribute = (int) Tools::getValue('id_product_attribute');
         if ($id_product && Validate::isUnsignedId($id_product) && Validate::isLoadedObject($product = new Product($id_product))) {
             if (($depends_on_stock = StockAvailable::dependsOnStock($id_product)) && StockAvailable::getQuantityAvailableByProduct($id_product, $id_product_attribute)) {
                 $json = array('status' => 'error', 'message' => $this->l('It is not possible to delete a combination while it still has some quantities in the Advanced Stock Management. You must delete its stock first.'));
             } else {
                 $product->deleteAttributeCombination((int) $id_product_attribute);
                 $product->checkDefaultAttributes();
                 Tools::clearColorListCache((int) $product->id);
                 if (!$product->hasAttributes()) {
                     $product->cache_default_attribute = 0;
                     $product->update();
                 } else {
                     Product::updateDefaultAttribute($id_product);
                 }
                 if ($depends_on_stock && !Stock::deleteStockByIds($id_product, $id_product_attribute)) {
                     $json = array('status' => 'error', 'message' => $this->l('Error while deleting the stock'));
                 } else {
                     $json = array('status' => 'ok', 'message' => $this->_conf[1], 'id_product_attribute' => (int) $id_product_attribute);
                 }
             }
         } else {
             $json = array('status' => 'error', 'message' => $this->l('You cannot delete this attribute.'));
         }
     } else {
         $json = array('status' => 'error', 'message' => $this->l('You do not have permission to delete this.'));
     }
     die(Tools::jsonEncode($json));
 }