在 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']);
}
}
我正在尝试分配某些产品以用于高级库存管理,在数据库中似乎没问题,但有些事情没有在 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']);
}
}