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 OrderID = val( structKeyExists(data,"OrderID") ? data.OrderID : 0 )>
|
||||||
<cfset ParentLineItemID = val( structKeyExists(data,"ParentOrderLineItemID") ? data.ParentOrderLineItemID : 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 OriginalItemID = structKeyExists(data,"ItemID") ? data.ItemID : 0>
|
||||||
<cfset ItemID = val(OriginalItemID)>
|
<cfset ItemID = val(OriginalItemID)>
|
||||||
|
|
||||||
|
|
@ -399,10 +400,27 @@
|
||||||
</cfif>
|
</cfif>
|
||||||
</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>
|
<cfif ForceNew>
|
||||||
<!--- ForceNew: Skip existing lookup, will always create new line item --->
|
<!--- ForceNew: Skip existing lookup, will always create new line item --->
|
||||||
<cfset qExisting = queryNew("ID", "integer")>
|
<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>
|
<cfelse>
|
||||||
<cfset qExisting = queryTimed(
|
<cfset qExisting = queryTimed(
|
||||||
"
|
"
|
||||||
|
|
@ -411,6 +429,7 @@
|
||||||
WHERE OrderID = ?
|
WHERE OrderID = ?
|
||||||
AND ParentOrderLineItemID = ?
|
AND ParentOrderLineItemID = ?
|
||||||
AND ItemID = ?
|
AND ItemID = ?
|
||||||
|
AND IsDeleted = 0
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
",
|
",
|
||||||
[
|
[
|
||||||
|
|
|
||||||
Reference in a new issue