2012-11-08 43 views
5

Tôi đã tạo ra một Observer.php cho sự kiện catalog_product_new_actiongiá trị sản phẩm Set mặc định khi thêm sản phẩm mới trong Magento 1,7

<?php 
class Starmall_Productobserver_Model_Observer 
{ 

    public function initProduct(Varien_Event_Observer $observer) 
    { 
     $product = $observer->getEvent()->getProduct(); 
      $product->setWeight(1); 
      $product->setStatus(1); 
      $product->setTaxClassId(1); 
      $product->setPrice(1); 

      $product->setStockData(array(
        'is_in_stock' => 1, 
        'qty' => 99999 
      )); 
    } 

} 

Khi tôi thêm một sản phẩm mới trọng lượng, tình trạng, lớp thuế và giá cả được thiết lập một cách chính xác để mặc định của tôi. Số lượng cổ phiếu và số lượng cổ phiếu không được đặt.

Làm cách nào tôi có thể đặt các giá trị cổ phiếu này trong người quan sát?

LƯU Ý: Tôi đang sử dụng màn hình Quản lý sản phẩm hiện tại ngay sau khi nhấp vào nút Add Product.

Giải pháp sau hoạt động. Số liệu dự trữ được thiết lập một cách chính xác (xem RS câu trả lời):

 public function initProduct(Varien_Event_Observer $observer) 
     { 
      $product = $observer->getEvent()->getProduct(); 
      $product->setWeight(1); 
      $product->setStatus(1); 
      $product->setTaxClassId(1); 
      $product->setPrice(1); 
      $product->setWebsiteIDs(array(1)); 

      $stockItem = Mage::getModel('cataloginventory/stock_item'); 
      $stockItem->assignProduct($product); 
      $stockItem->setData('is_in_stock', 1); 
      $stockItem->setData('qty', 1); 

      $product->setStockItem($stockItem); 
     } 

Trả lời

5
.... 

//$product->save(); 

$stockItem = Mage::getModel('cataloginventory/stock_item'); 
$stockItem->assignProduct($product); 
$stockItem->setData('is_in_stock', 1); 
$stockItem->setData('stock_id', 1); 
$stockItem->setData('store_id', 1); 
$stockItem->setData('manage_stock', 0); 
$stockItem->setData('use_config_manage_stock', 0); 
$stockItem->setData('min_sale_qty', 0); 
$stockItem->setData('use_config_min_sale_qty', 0); 
$stockItem->setData('max_sale_qty', 1000); 
$stockItem->setData('use_config_max_sale_qty', 0); 

//$stockItem->save(); 

Đọc thêm tại http://blog.magentoconnect.us/creating-magento-products-on-the-fly/

+0

Cảm ơn! Điều này làm việc, hơi thay đổi nó. Xem câu hỏi đã chỉnh sửa với giải pháp. Vấn đề là '$ product-> save()'. Điều này cho phép một ngoại lệ '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 hàng con: ràng buộc khóa ngoài không thành công' – Guus

Các vấn đề liên quan