Trigger cart item
trigger CartItemTrigger on Cart_Item__c (before insert, before update) {
// Step 1: Collect all Product Ids from Cart Items
Set<Id> productIds = new Set<Id>();
for (Cart_Item__c item : Trigger.new) {
if (item.Product__c != null) {
productIds.add(item.Product__c);
}
}
// Step 2: Query related Order Line Items
Map<Id, Order_Line_Item__c> productToOrderLineItemMap = new Map<Id, Order_Line_Item__c>();
for (Order_Line_Item__c oli : [
SELECT Product__c, ListPrice__c
FROM Order_Line_Item__c
WHERE Product__c IN :productIds
LIMIT 1
]) {
productToOrderLineItemMap.put(oli.Product__c, oli);
}
// Step 3: Set ListPrice__c in Cart Items
for (Cart_Item__c item : Trigger.new) {
if (item.Product__c != null && productToOrderLineItemMap.containsKey(item.Product__c)) {
item.ListPrice__c = productToOrderLineItemMap.get(item.Product__c).ListPrice__c;
}
}
}
Comments
Post a Comment