Tôi đang tự động tạo tùy chọn cho các sản phẩm của mình bất cứ khi nào sản phẩm được tạo. Những gì tôi đã nhận được cho đến nay là một người quan sát bắn vào catalog_product_save_before
sự kiện và chạy mã sau đây:
//check that we haven't made the option already
$options = $product->getProductOptions();
foreach ($options as $option) {
if ($option['title'] == 'Auto Date & Time' && $option['type'] == 'date_time' && !$option['is_delete']) {
//we've already added the option
return;
}
}
$options[] = array(
'title' => $product->getDateLabel(),
'type' => 'date_time',
'is_require' => 1,
'sort_order' => 0,
'is_delete' => '',
'previous_type' => '',
'previous_group' => '',
'price' => '0.00',
'price_type' => 'fixed',
'sku' => ''
);
$product->setProductOptions($options);
$product->setCanSaveCustomOptions(true);
//this line doesnt make sense here, but it works ... kinda
$product->save();
Nếu tôi rời khỏi $product->save()
, tôi sẽ kết thúc với 2 tùy chọn tùy chỉnh được tạo, mặc dù tôi đã kiểm tra để xác minh lần thứ 2 sự kiện kích hoạt câu lệnh return được gọi trong vòng lặp foreach.
Nếu tôi lấy nó ra. Không có tùy chọn tùy chỉnh được tạo ra.
Ai đó có thể cho tôi biết những gì tôi đang làm sai?
Tôi đang làm việc với Magento 1.7