我尝试以编程方式添加产品。我使用下面的代码
$cart = Mage::getSingleton('checkout/cart');
$cart->init();
$paramater = array(
'product' => $product->getId(),
'related_product' => null,
'qty' => 1,
'form_key' => Mage::getSingleton('core/session')->getFormKey()
);
$request = new Varien_Object();
$request->setData($paramater);
$cart->addProduct($product, $request);
$cart->save();
此代码在登录后工作正常。但是在登录之前,我遇到以下错误。
a:5:{i:0; s:640:“ SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败(
db_magento_nua
。{{1 }},约束sales_flat_quote_item
外键(FK_SALES_FLAT_QUOTE_ITEM_QUOTE_ID_SALES_FLAT_QUOTE_ENTITY_ID
)参考quote_id
(sales_flat_quote
)在DELE上),查询为:INSERT INTOentity_id
({{1} },sales_flat_quote_item
,created_at
,updated_at
,product_id
,store_id
,is_virtual
,sku
,name
,is_qty_decimal
,weight
,qty
,custom_price
,product_type
)值('2019-06-11 12:17:58','2019-06- 11 12:17:58',?,?,?,?,?,?,?,?,?,?,?,?,?)“; i:1; s:2586:”#0 / var / www / html / lib / Varien / Db / Statement / Pdo / Mysql.php(110):Zend_Db_Statement_Pdo-> _ execute(Array)
有人可以帮助我解决此问题吗?预先感谢。
答案 0 :(得分:1)
尝试使用 Validators
<mat-form-field class="px-3 mb-1">
<input matInput [formControl]="FormControl1" placeholder="VALUE 1" (blur)="update()" type="number" required>
<mat-error *ngIf="FormControl1.hasError('required')">FormControl1 *</mat-error>
<mat-error *ngIf="FormControl1.hasError('min')">FormControl1 > 0</mat-error>
<mat-error *ngIf="FormControl1.hasError('max')">FormControl1 < 31</mat-error>
<mat-error *ngIf="FormControl1.hasError('error')">TEST error "2"</mat-error>
</mat-form-field>
<mat-form-field class="px-3 mb-1">
<input matInput [formControl]="FormControl2" placeholder="VALUE 2" (blur)="update()" type="number" required>
<mat-error *ngIf="FormControl2.hasError('required')">FormControl2 *</mat-error>
<mat-error *ngIf="FormControl2.hasError('min')">FormControl2 > 0</mat-error>
<mat-error *ngIf="FormControl2.hasError('max')">FormControl2 < 31</mat-error>
</mat-form-field>
答案 1 :(得分:1)
我为此找到了解决方案。由于没有报价,我无法添加项目。在将产品添加到购物车之前,我只需要启动报价即可。我现在使用下面的代码添加产品。
$cart = Mage::getSingleton('checkout/cart');
$cart->init();
$quote = $cart->getQuote();
$paramater = array(
'product' => $product->getId(),
'qty' => 1,
'form_key' => Mage::getSingleton('core/session')->getFormKey()
);
$request = new Varien_Object();
$request->setData($paramater);
$quote->addProduct($product, $request);
$quote->save();
$cart->save();
以上代码按预期工作。