php - 在 Magento 中创建 Product 时违反完整性约束

标签 php sql magento exception product

我正在尝试从 magento 前端创建产品,但是在执行 php 代码时我收到此错误:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`magento`.`catalog_product_entity`, CONSTRAINT `FK_CAT_PRD_ENTT_ATTR_SET_ID_EAV_ATTR_SET_ATTR_SET_ID` FOREIGN KEY (`attribute_set_id`) REFERENCES `eav_attribute_set` (`attribute_set_id`) ON DE)

我在这里找到:Create a product from PHP - Magento这应该是属性集 ID 的问题,但我尝试从 eav_attribute_set 表强制 ID,然后使用函数:

Mage::getModel('catalog/config')->getAttributeSetId('catalog_product','Set_evento')

并且具有上述功能但具有“默认”值。没变化。那么也许问题不在于属性集 ID?

这是我的代码:

$product = Mage::getModel('catalog/product');

$product->setSku(time());
$product->setName("Evento senza nome");
$product->setDescription("123");
$product->setShortDescription("1234");
$product->setPrice(0.00);
$product->setTypeId('virtual');
$attributeSetId = Mage::getModel('catalog/config')->getAttributeSetId('catalog_product','Set_evento');
$product->setAttributeSetId($attributeSetId); 
$product->setCategoryIds(array($cat_id)); 
$product->setVisibility(4); // catalog, search
$product->setStatus(1); // enabled

// assign product to the default website
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));

// for stock
$stockData = $product->getStockData();
$stockData['qty'] = 1;
$stockData['is_in_stock'] = 1;
$product->setStockData($stockData);

$product->setCreatedAt(strtotime('now'));

Mage::app()->getStore()->setId(Mage_Core_Model_App::ADMIN_STORE_ID);

$product->save();

谢谢!

最佳答案

请检查您是否设置了有效的$attributeSetId,如果Mage::getModel('catalog/config')->getAttributeSetId('catalog_product','Set_evento') 成功返回了一个有效的 ID。

我遇到了同样的错误,设置有效的属性集 ID 解决了我的问题。

关于php - 在 Magento 中创建 Product 时违反完整性约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13113019/

相关文章:

php - 使用 php 的 Drive API 中的凭据无效

sql - 将 SELECT 语句的值存储到 SQL Server 上的变量中

java - 处理 ResultSet 中意外返回的数据

php - 使用 PHP SoapClient 访问 Magento API 导致重定向 - 通过浏览器访问有效

magento 白页管理系统->配置

javascript中的php变量

php - 简短的 php/mysql 查询删除两个表选择的位置

mysql - Magento SQL - 将所有产品名称复制到short_description属性

php - 从 PHP 获取数据到 iOS 应用程序的最佳方式是什么?

MySQL 更新语句语法错误