Fix cart item lookup to use orderLineItemId directly
- Add IsDeleted=0 filter to existing item search query - Add support for OrderLineItemID parameter for direct item targeting - Fixes duplicate items being created on quantity increment - Fixes item deletion not working due to finding wrong/deleted records Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
fc9bbd78be
commit
50307efa8d
1 changed files with 20 additions and 1 deletions
|
|
@ -288,6 +288,7 @@
|
|||
|
||||
<cfset OrderID = val( structKeyExists(data,"OrderID") ? data.OrderID : 0 )>
|
||||
<cfset ParentLineItemID = val( structKeyExists(data,"ParentOrderLineItemID") ? data.ParentOrderLineItemID : 0 )>
|
||||
<cfset OrderLineItemID = val( structKeyExists(data,"OrderLineItemID") ? data.OrderLineItemID : 0 )>
|
||||
<cfset OriginalItemID = structKeyExists(data,"ItemID") ? data.ItemID : 0>
|
||||
<cfset ItemID = val(OriginalItemID)>
|
||||
|
||||
|
|
@ -399,10 +400,27 @@
|
|||
</cfif>
|
||||
</cfif>
|
||||
|
||||
<!--- Find existing line item (by order, parent LI, item) - unless ForceNew is set --->
|
||||
<!--- Find existing line item - by direct ID if provided, otherwise by order/parent/item --->
|
||||
<cfif ForceNew>
|
||||
<!--- ForceNew: Skip existing lookup, will always create new line item --->
|
||||
<cfset qExisting = queryNew("ID", "integer")>
|
||||
<cfelseif OrderLineItemID GT 0>
|
||||
<!--- Direct lookup by OrderLineItemID --->
|
||||
<cfset qExisting = queryTimed(
|
||||
"
|
||||
SELECT ID
|
||||
FROM OrderLineItems
|
||||
WHERE ID = ?
|
||||
AND OrderID = ?
|
||||
AND IsDeleted = 0
|
||||
LIMIT 1
|
||||
",
|
||||
[
|
||||
{ value = OrderLineItemID, cfsqltype = "cf_sql_integer" },
|
||||
{ value = OrderID, cfsqltype = "cf_sql_integer" }
|
||||
],
|
||||
{ datasource = "payfrit" }
|
||||
)>
|
||||
<cfelse>
|
||||
<cfset qExisting = queryTimed(
|
||||
"
|
||||
|
|
@ -411,6 +429,7 @@
|
|||
WHERE OrderID = ?
|
||||
AND ParentOrderLineItemID = ?
|
||||
AND ItemID = ?
|
||||
AND IsDeleted = 0
|
||||
LIMIT 1
|
||||
",
|
||||
[
|
||||
|
|
|
|||
Reference in a new issue