2

当我尝试插入价格手册条目时,我收到以下错误:“没有为此产品定义标准价格”

在上传数据之前,我遵循了以下内容:上传标准价格手册条目(所有具有标准价格手册的产品,IsActive = true,UseStdPrice = false)

我不确定问题的原因。这个问题可能不太清楚,无法理解。如果您需要更多详细信息,请告诉我。

4

2 回答 2

2

这不是一个与编程相关的问题,我认为它更像是一个管理或数据输入问题。也许这就是这个问题没有受到关注的原因之一。你最好在salesforce.stackexchange.com上询问

首先 - 你确定你真的在使用标准价格手册吗?标准价格手册将勾选复选框,并且将是给定组织中最旧的价格手册:

在此处输入图像描述

我有一种奇怪的感觉,您实际上是在尝试上传到自定义价格手册。不要让这个名字欺骗你,它可能被称为“标准”,但如果它没有复选框......

帮助

标准价格手册是所有产品的主列表,每个产品都有其相关的默认标准价格。标准价格手册会自动列出所有具有标准价格的有效产品。一个组织只有一个标准价格手册。

自定义价格手册是可以具有标准或自定义(列表)价格的产品的专门列表。定制价格手册非常适合向不同细分市场提供不同价格的产品。对于每个自定义价格手册,您可以确定包含哪些产品,以及它们是按您的标准价格提供,还是以更高或更低的价格提供。

因此,要“将某些产品上传到标准价格手册”,您必须创建一个新PricebookEntry记录。定制和标准价格手册的流程相同。我使用 Apex 而不是 Data Loader:

Pricebook2 pBook = [SELECT Id, Name FROM Pricebook2 WHERE IsStandard = true];

Id productId = '01t70000009GfMN'; // my freshly made product that doesn't have standard price (yet) and is not listed in any custom pricebook

PricebookEntry pe = new PricebookEntry(
    Pricebook2Id = pBook.Id,
    Product2Id = productId,
    UnitPrice = 1000,
    IsActive = true
);

insert pe;

像魅力一样工作(请注意屏幕截图“谎言” - 它表示价格手册的相关列表有 0 个项目,即使我们刚刚插入了一个项目。这是因为标准与自定义拆分):

在此处输入图像描述

只有在插入此标准价格手册条目后,您才能继续插入自定义价格手册的条目。

您可能会在http://www.jeffdouglas.com/download/products-pricebooks.pdf找到一些更有用的信息,也许在 Apex v24.0 中对 OpportunityLineItem 进行单元测试时如何避免 STANDARD_PRICE_NOT_DEFINED?也是(它与单元测试相关,但那里的一些链接很有用)。

于 2014-01-02T12:13:36.043 回答
0

从夏季 14 开始,您还可以使用

Id pricebookId = Test.getStandardPricebookId();

获取可以在标准 PriceBookEntries 上使用的标准价格手册的 ID。

有关更多信息,请参阅https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_methods_system_test.htm#apex_System_Test_getStandardPricebookId

于 2014-12-16T15:33:35.770 回答