Kartris communicates with the Bitcoin client via a JSON
interface. When the order is created in the checkout, Kartris contacts
the Bitcoin client and tells it to generate a new payment address,
which is notified to Kartris. Kartris saves the order in the database,
shows the 'checkout complete' page which shows the Bitcoin payment
address the customer must make payment to. This is also emailed to the
customer.
Because each order generates its own
payment address, it's easier to tie up incoming payments with the
corresponding order. A .vbs script which can be run on a schedule
checks to see what pending Bitcoin orders are in Kartris, and whether
the required number of confirmations have been made yet. If they have,
the script calls back Kartris to notify it. The order status is then
automatically updated as 'paid'.