I have 3 orders that are paid for using the same name, email and other information, but stored in the API with a different customer_id. Other times, 2 out of 3 customer_id are missing from customer API. And on the dashboard, all payment history from the 2 customer_id goes to the remaining 1 customer_id. But when I check in the API, the payment and the order are still records from the different customer_id. Then how do I get all the payment and order histories that have the same email but also have different customer_id which already missing like on the dashboard?
That sounds like the customer profiles were merged and this is expected. You can still use
RetrieveCustomer with the old
customer_id and that will return the new
customer_id. When duplicate customer profiles are identified and merged, either manually by the seller or using automated detection, the existing profiles are merged into a single profile that is assigned a new ID.
If you specify the ID of a customer profile that was deleted in a merge operation, the Customers API returns the new customer profile. For example, suppose customers A and B are merged and a new customer C is created. If you call
RetrieveCustomer using the ID of customer A or B, the Customers API returns customer C.
I get the point. This means we have to get the old
customer_id first, right? So we can’t group orders and invoices using
SearchInvoice based on
customer_id in customer API because there is only a new
customer_id? Or is there another way?
Yes, any time you don’t have a matching
customer_id you’ll need to call the Customers API to see if that’s a merged profile.
@nabilahk11 - Could you please share the order IDs on which you are seeing this behavior? I wanted to ask if any of these orders were created through the API.
Here is the order ID:
By the way, I’ve managed to group the orders from the payment API then filtered them manually. And it works