Good news about the user creation ;).
When you put a reference date in the past, or update a customer in Magento, Myddleware will read again the customer in Magento. Then Myddleware will check if this customer has already been sent to Moodle via the current rule.
- If no, Myddleware will create the user in Moodle.
- If yes, Myddleware will try to update the user in Moodle except if the rule's mode is "create_only". In this case, Myddleware will cancel the data transfer. But if the rule allows the data modification, Myddleware will find the Moodle user ID by searching with the Magento customer ID in a previous data transfer in the current rule. Then Myddleware will update the user in Moodle with the user ID found in Myddleware.
In your case, you have deleted the user in Moodle but Myddleware still have the user ID and try to update it even if it is deleted. Moodle doesn't seem to return an error when we try to update a deleted user. This is weird.
So if you delete a user in Moodle, you have 2 methods to handle it :
- First method : delete the customer in Magento too, you will be sur that it won't be read again by Myddleware
- Second method : you have to cancel every data transfert in you rule with the Moodle user ID. It isn't possible to cancel a data transfer already sent in Myddleware UI yet. We think about allow it for super ADMIN user. But for now, you have to update directly the database.
Here is a query for that : UPDATE `Document` SET status = 'Cancel',
global_status = 'Cancel' WHERE `rule_id` = '<your_rule_id>' AND
`target_id` = '<Moodle_user_id>'
Then when you will update the customer in Magento or put the reference date in the past, Myddleware will try to create the user in Moodle.
Please let me know if it solves your problem. Thanks.