在 Prestashop 1.6 上以编程方式将产品添加到高级库存管理

Adding a product to advanced stock management programmatically on Prestashop 1.6

我正在尝试分配某些产品以用于高级库存管理,在数据库中似乎没问题,但有些事情没有在 BO 上打勾,我想知道这是否会产生任何影响。

例如,在 BO 中选择商店组和产品时,我没有看到 "I want to use advanced stock management for this product" 被勾选,而 "depends on stock" 单选按钮被正确选择(因此被禁用,因为复选框(如果保持不变)。我不知道这对产品库存是否有问题。如果有人对此有任何意见,我们将不胜感激。

这是我目前的情况:

$warehouse = new Warehouse(1);
$stock_manager = StockManagerFactory::getManager();
foreach($prods as $prod)
{
    StockAvailable::setProductDependsOnStock($prod['id_product'], 1);
    if ($stock_manager->addProduct($prod['id_product'], 0, $warehouse, 1, 5, 0.1, 1))
    {
        StockAvailable::synchronize($prod['id_product']);
    }
}

StockAvailable::setProductDependsOnStock 没有为该产品启用 AdvancedStockManagement。您还需要设置产品 AdvancedStockManagement。您可以使用:

$warehouse = new Warehouse(1);
$stock_manager = StockManagerFactory::getManager();
foreach($prods as $prod)
{
    $product = new Product($prod['id_product']);
    if(!$product->advanced_stock_management)
        $product->setAdvancedStockManagement(true);
    StockAvailable::setProductDependsOnStock($prod['id_product'], 1);
    if ($stock_manager->addProduct($prod['id_product'], 0, $warehouse, 1, 5, 0.1, 1))
    {
        StockAvailable::synchronize($prod['id_product']);
    }
}