Olet tässä:
Transaktion lisätietorivin tarkennetun hinnoittelun käyttäminen mukautettujen kenttien kartoittamiseen
Käyttäjät voivat päivittää myynnin transaktioiden kohteiden tai myynnin transaktioiden kohteiden lisätietojen mukautettuja kenttiä hinnoittelutoimenpiteiden avulla käyttämällä Lisätietorivin hinnoittelu -ominaisuutta. Tämän ominaisuuden avulla käyttäjien ei tarvitse enää käyttää mukautettuja käynnistimiä tai kulkuja päivittääkseen kyseisiä kenttiä. Tämä ominaisuus on hyödyllinen muutosten, uusimisen ja peruutusten käyttötapauksissa.
Vaaditut versiot
| Käytettävissä: Lightning Experiencessa |
| Käytettävissä: Revenue Cloudin Enterprise-, Unlimited- ja Developer Edition -versioissa, joissa on transaktioiden hallinta käytössä |
| Tarvittavat käyttöoikeudet | |
|---|---|
| Lisätietorivin hinnoittelun määrittäminen ja käyttäminen: | Salesforce-pääkäyttäjä JA Pricing Design Time -käyttäjä -käyttöoikeusjoukko |
Suorita nämä tehtävät ennen aloittamista.
- Ota Lisätietorivin hinnoittelu -ominaisuus käyttöön valitsemalla Määritykset-valikosta Tuottoasetukset ja ottamalla käyttöön Lisätietorivin hinnoittelu -asetus.
- Määritä hinnoittelujärjestelmäsi.
- Kontekstitunnisteiden kartoitusten lisääminen Hinnoittelutoimenpiteiden kartan rivikohdeelementtiin JSON:n avulla
Jos haluat määrittää hinnoittelutoimenpiteen käyttämään lisätietorivin hinnoittelua, kopioi ja liitä kartan rivikohteen JSON-tiedosto hinnoittelutoimenpiteeseen Revenue Pricing -ominaisuudessa. - Kontekstitunnisteiden kartoitusten lisääminen Discovery-toimenpidekartan rivikohteen elementtiin JSON:n avulla
Jos haluat määrittää havaintojen toimenpiteen käyttämään lisätietorivin hinnoittelua johdettujen hinnoittelujen tuotteiden kanssa, kopioi ja liitä johdetun hinnoittelun JSON-koodin karttarivikohde havaintojen toimenpiteeseen Revenue Pricing -ominaisuudessa.
Tuottohinnoittelun päivittäminen
Jos haluat määrittää lisätietorivin lisämaksun, muokkaa tuottojen hinnoittelutapaa.
- Etsi ja avaa sovelluskäynnistimestä hinnoittelutoimenpiteet ja valitse päivitettävä hinnoittelutoimenpide.
- Muokkaa hinnoittelutoimenpiteitä lisäämällä uuden kartan rivikohteen elementin hinnoittelutoimenpiteen hinnoitteluasetuksen vieressä olevaksi toiseksi elementiksi.
-
Lisää kontekstitunnisteiden kartoituksia kartan rivikohteeseen.
Syöttömuuttuja
Tuloksen muuttuja
LineItem
SalesTrxnItemDetailSource
LineItemQuantity
ItemDetailQuantity
NetUnitPrice
ItemDetailNetUnitPrice
price_water_fall
DetailPriceWaterfallIdentifier
InputUnitPrice
ItemDetailUnitPrice
ItemBillingReference
ItemDetailBillingReference
ItemNetTotalPrice
ItemDetailTotalPrice
TotalLineAmount
ItemDetailTotalLineAmount
EffectiveFrom
ItemDetailEffectiveFrom__std
EffectiveTo
ItemDetailEffectiveTo__std
PricingTermCount
ItemDetailPricingTermCount__std
itemTransientEndDate
ItemDetailTransientEndDate__std
ItemPricingSource
ItemDetailPricingSource__std
DerivedPricingAttribute
ItemDetailDerivedPricingAttribute__std
ItemGroupSummarySubtotal
ItemDetailGroupSummaryTotal__std
ListPrice
ItemDetailListPrice__std
IsContracted
ItemDetailIsContracted__std
ItemContractPrice
ItemDetailContractPrice__std
STI_TenantName__c
STID_TenantName__c
Kun olet lisännyt kontekstitunnisteiden kartoitukset, näet SalesTransaction- ja SalesTransactionItemDetail-toimintojen väliset oletusarvoiset kartoitukset päivitetyillä kontekstimääritelmillä.
Johdetun hinnoittelun Discoveryn toimenpiteen päivittäminen
Jos käytät johdettua hinnoittelua, tee lisämuutoksia löydön toimenpiteeseesi, kun olet suorittanut muutokset tuottohinnoittelun toimenpiteeseesi. Nämä muutokset ovat tarpeen määrittääkseen kelvolliset lisäävät ja johdetut tuotteet.
- Etsi ja avaa sovelluskäynnistimestä Discovery Procedures ja valitse päivitettävä havainto-ohjelma.
-
Lisää hintaan perustuviin tuotteisiin kaksi uutta elementtiä havainto-ohjelmaan: Discovery-asetukset ja Kartan rivikohde.
Lisää nämä muuttujat Discovery-asetuksiin.
- Input-muuttuja: Rivikohde
- Tulosmuuttuja: LineItem
Lisää nämä muuttujat kartan rivikohteeseen.- Input-muuttuja: SalesTransactionItem
- Tulosmuuttuja: SalesTransactionItemDetail
Lisää nämä lisämuuttujat kartan rivikohteeseen.
Syöttömuuttuja
Tuloksen muuttuja
LineItem
SalesTrxnItemDetailSource
EffectiveFrom
ItemDetailEffectiveFrom__std
EffectiveTo
ItemDetailEffectiveTo__std
DerivedPricingAttribute
ItemDetailDerivedPricingAttribute__std
-
Tukee mukautettuja kenttiä käyttämällä hinnoittelutoimenpiteitä ARC-käyttötarkoituksiin.
Mukautettujen kenttien määritykset ovat käytettävissä, jos käytät ARC API -rajapintoja ja haluat käyttää mukautettuja kenttiä.
- Lisää QuoteLineItem-, QuoteLineItem Detail-, OrderProduct- ja OrderProductDetails-objekteihin mukautettuja kenttiä.
- Luo kontekstin määritelmässä merkintä näille mukautetuille kentille sekä SalesTransactionItem- että SalesTransactionItemDetail-noodeissa.
- Luo pakolliset kartoitukset QuoteEntitiesMapping- ja OrderEntitiesMapping-ominaisuuksissa.
-
Muokkaa mukautettujen kenttien tuottohinnoittelua.
- Muokkaa MapLineItem-elementtiä hinnoittelutoimenpiteessä lisätäksesi kartoituksen SalesTransactionItem.CustomField- ja SalesTransactionItemDetail.CustomField-kenttien välillä.
-
Luo hinnoittelutoimenpiteessä tarvittavat mukautuselementit kohdistaaksesi arvon SalesTransactionItem.CustomField-kenttään.
Hinnoittelutoimenpide havaitsee automaattisesti, onko tietyllä rivillä lisätietomerkintöjä, ja kirjoittaa nimiin SalesTransactionItemDetail.CustomField, jos sellaisia on. Muussa tapauksessa se kirjoittaa arvoon SalesTransactionItem.CustomField.
Uusien myyntitapahtumien aikana CustomField on SalesTransactionItem täytetään. Jos ARC-skenaario sisältää lisätietorivejä, lisätietorivi kirjoitetaan SalesTransactionItemDetailissa CustomField-kenttään. Jos ARC:lle ei ole luotu lisätietoriviä, lisätietorivi on CustomField on SalesTransactionItem.
-
Jos haluat kirjoittaa QuoteLineItem- tai OrderProducts-kenttiin mukautettuja kenttiä lisätietorivillä, suorita tämä lisämääritys, joka sisältää toimintasuunnitelmat ja Apex.
- Ota toimintasuunnitelma käyttöön. Etsi ja avaa Määritykset-valikosta Tuottoasetukset ja ota käyttöön Toimenpidesuunnitelman orkestrointi hinnoittelulle -asetus.
- Luo tarjoukselle ja tilaukselle toimintasuunnitelma.
- Varmista toimintasuunnitelmassa, että kaikki vaiheet sisältävät MapLineItem-elementin. Muokkaa kartoituksia hinnoittelutoimenpiteessä käytettyjen kenttien perusteella.
- Käytä tätä ApexCustomFieldHandler Apex-luokan esimerkkiä, jota voit parantaa päivittääksesi useita mukautettuja kenttiä tarvittaessa. Tämä luokka kyselee SalesTransactionItem- ja SalesTransactionItemDetail-noodeja, noutaa mukautettujen kenttien arvoja lisätietokohteista ja päivittää sitten vastaavat mukautetut kentät SalesTransactionItem-kentässä.
global class ApexCustomFieldHandler implements RevSignaling.SignalingApexProcessor {
public virtual class BaseException extends Exception {}
public class OtherException extends BaseException {}
public RevSignaling.TransactionResponse execute(RevSignaling.TransactionRequest request) {
String contextId = request.ctxInstanceId;
Context.IndustriesContext industriesContext = new Context.IndustriesContext();
// STEP 2 - Query SalesTransactionItem nodes
Map<String, Object> inputQueryItem = new Map<String, Object>{
'contextId' => contextId,
'tags' => new List<String>{ 'SalesTransactionItem', 'SalesTransactionItemDetail' }
};
Map<String, Object> itemQueryOutput = industriesContext.queryTags(inputQueryItem);
Map<String, Object> itemQueryResult = (Map<String, Object>) itemQueryOutput.get('queryResult');
List<Object> itemData = (List<Object>) itemQueryResult.get('SalesTransactionItem');
List<Object> itemDetailData = (List<Object>) itemQueryResult.get('SalesTransactionItemDetail');
Map<String, String> salesTransactionItemIdToCustomAggregatedValue = new Map<String, String>();
// STEP 3 - Custom Field Value from SalesTransactionItemDetail
for(Object itemDetailObj : itemDetailData) {
Map<String, Object> itemDetailNode = (Map<String, Object>) itemDetailObj;
Map<String, Object> detailTagMap = (Map<String, Object>) itemDetailNode.get('tagValue');
String lineItemId = (String)((Map<String, Object>) detailTagMap.get('SalesTrxnItemDetailParent')).get('tagValue');
String cfValue = (String)((Map<String, Object>) detailTagMap.get('STID_TenantName__c')).get('tagValue');
System.debug('Custom Field Value for Detail Item' + cfValue);
if(cfValue != null) {
salesTransactionItemIdToCustomAggregatedValue.put(lineItemId, cfValue);
}
}
// STEP 4 - Build update list
List<Map<String, Object>> itemNodeUpdates = new List<Map<String, Object>>();
for (Object itemObj : itemData) {
Map<String, Object> itemNode = (Map<String, Object>) itemObj;
Map<String, Object> tagMap = (Map<String, Object>) itemNode.get('tagValue');
String lineItemId = (String)((Map<String, Object>) tagMap.get('LineItem')).get('tagValue');
List<Object> dataPath = (List<Object>) itemNode.get('dataPath');
dataPath.remove(0); // Remove contextId
itemNodeUpdates.add(new Map<String, Object>{
'nodePath' => new Map<String, Object>{ 'dataPath' => dataPath },
'attributes' => new List<Object>{
new Map<String, Object>{
'attributeName' => 'STI_TenantName__c',
'attributeValue' => salesTransactionItemIdToCustomAggregatedValue.get(lineItemId)
}
}
});
}
// STEP 5 - Create collection context update
if (!itemNodeUpdates.isEmpty()) {
Map<String, Object> updateInput = new Map<String, Object>{
'contextId' => contextId,
'nodePathAndAttributes' => itemNodeUpdates
};
//Step 6 - Update context
System.debug('--- PREHOOK: SUBMITTING CONTEXT UPDATE ---');
System.debug(JSON.serializePretty(updateInput));
industriesContext.updateContextAttributes(updateInput);
}
RevSignaling.TransactionResponse response = new RevSignaling.TransactionResponse();
response.status = RevSignaling.TransactionStatus.SUCCESS;
return response;
}
}

