Lỗi trong tạo sản phẩm Front End?


7

Tôi đã thêm sản phẩm ở phía trước.

Tôi nhận được thông báo lỗi dưới đây.

nhập mô tả hình ảnh ở đây

SQLSTATE [23000]: Vi phạm ràng buộc toàn vẹn: 1452 Không thể thêm hoặc cập nhật một hàng con: ràng buộc khóa ngoại không thành công ( magento. catalog_product_entity, CONSTRAINT FK_CAT_PRD_ENTT_ATTR_SET_ID_EAV_ATTR_SET_ATTR_SET_IDFOREIGN KEY ( attribute_set_id) TÀI LIỆU THAM KHẢO eav_attribute_set ( attribute_set_id) TRÊN DE)

public function saveVirtualNewProduct($wholedata)
{           
        $cats=array();
        foreach($wholedata['category'] as $keycat){
            array_push($cats,$keycat);
        }
        if($wholedata['status']==1 && isset($wholedata['wstoreids']) ){
            $status=1; 
            $stores=$wholedata['wstoreids'];
        }
        else{
            $status=Mage::getStoreConfig('marketplace/marketplace_options/product_approval')? 2:1;
            $stores=Mage::app()->getStore()->getStoreId();
        }
        $magentoProductModel = Mage::getModel('catalog/product');
        $magentoProductModel->setData($wholedata);
        $saved=$magentoProductModel->save();
        $lastInserId = $saved->getId();
/* Update  Special from-to Date */
    if($wholedata['special_from_date'] && $wholedata['special_to_date']) 
    {
        //Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
        $product = Mage::getModel('catalog/product')->load($lastInserId);
        $product->setSpecialFromDate($wholedata['special_from_date']);
        $product->setSpecialFromDateIsFormated(true);
        $product->setSpecialToDate($wholedata['special_to_date']);
        $product->setSpecialToDateIsFormated(true);
        $product->save();
    }
/* Update  Special from-to Date */

        $magentoProductModel = Mage::getModel('catalog/product')->load($saved->getId());
        $baseCurrencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
        $currentCurrencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
        $allowedCurrencies = Mage::getModel('directory/currency')->getConfigAllowCurrencies(); 
        $rates = Mage::getModel('directory/currency')->getCurrencyRates($baseCurrencyCode, array_values($allowedCurrencies));

        if($wholedata['special_price']){
            $special_price = $wholedata['special_price']/$rates[$currentCurrencyCode];
            $magentoProductModel->setSpecialPrice($special_price);
        }

        $price = $wholedata['price']/$rates[$currentCurrencyCode];
        $magentoProductModel->setPrice($price);
        $magentoProductModel->setStoresIds(array($stores));
        $storeId = Mage::app()->getStore()->getId();
        $magentoProductModel->setWebsiteIds(array(Mage::getModel('core/store')->load( $storeId )->getWebsiteId()));
        $magentoProductModel->setCategoryIds($cats);
        $magentoProductModel->setStatus($status);
        $saved=$magentoProductModel->save();
        $lastId = $saved->getId();
        $this->_saveStock($lastId,$wholedata['stock'],$wholedata['is_in_stock']);

        $wholedata['id'] = $lastId;

        $collection1=Mage::getModel('marketplace/product');
        $collection1->setmageproductid($lastId);
        $collection1->setuserid($wholedata['userid']);
        $collection1->setstatus($status);
        $collection1->save();

        if($wholedata['type_id']=='virtual'){
        if((isset($_FILES) && count($_FILES) > 0) && !isset($wholedata['csv'])){
                if (!is_dir(Mage::getBaseDir().'/media/marketplace/')){
                mkdir(Mage::getBaseDir().'/media/marketplace/', 0755);
                }
                    if (!is_dir(Mage::getBaseDir().'/media/marketplace/'.$lastId)){
                    mkdir(Mage::getBaseDir().'/media/marketplace/'.$lastId, 0755);
                    }
                foreach($_FILES as $image){
                    $imagesdir = Mage::getBaseDir().'/media/marketplace/'.$lastId.'/';
                    $filename = $image['name'];                 
                    move_uploaded_file($image['tmp_name'],$imagesdir.$filename);    
                    }
                $this->_addImages($lastId,$wholedata['defaultimage']);
            }
        }
        return $lastId;     
    }

Xin mọi người giúp tôi với.

Cảm ơn.


Bạn có tập lệnh thiết lập nào đang chạy không? chỉ một mình thông báo lỗi sẽ khó tìm ra nguyên nhân gây ra nó.
Phong tục David

Mã trên dòng 18 trong MarketplaceaccountControll.php của bạn là gì?
MTM

Ngoài ra một gợi ý nhỏ, tôi đoán bạn không cần phải tải cùng một sản phẩm để cập nhật. bạn có thể cập nhật và lưu bằng mô hình $magentoProductModelkhởi tạo khi bắt đầu chức năng. Điều này sẽ làm giảm chi phí.
MTM

1
Vui lòng kiểm tra hướng dẫn gỡ lỗi tuyệt vời này và báo cáo lại.
Fabian Blechschmidt

Câu trả lời:


1

Bạn đang cố gắng tạo một sản phẩm không có attribute_set_idhoặc có giá trị cho cột đó không tồn tại trong giá trị đặt thuộc tính.

và trên một lưu ý phụ ... bạn sử dụng quá nhiều savecuộc gọi để lưu một sản phẩm.
Xây dựng một mảng lớn với các thuộc tính và gán nó cho mô hình sản phẩm, sau đó chỉ lưu một lần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.