Implementation of BillingAccountContact
Related to #6012 (closed)
This issue is part of the creation and implementation of the BillingAccountContact model to cache the "Bill to" and "Sold to" Zuora contacts:
- Rename current BillingAccountContact helper class (closed)
-
Creation of the
BillingAccountContactmodel (closed) -
Implementation of
BillingAccountContact👈 You are here - Mechanism to keep BillingAccountContact data in sync with Zuora
- Data backfill for existing
BillingAccountobjects
Proposal
This issue tracks work done towards the implementation of the new BillingAccountContact model. As we won't want to stop calling the Zuora::Contact API right away, this implementation should be done behind a new feature flag.
-
Proposed feature flag:
billing_account_contact_cache: https://gitlab.com/gitlab-org/customers-gitlab-com/-/feature_flags/207/edit
Work here includes the following items (not exclusively):
- Implementation of
BillingAccountContactinBillingAccount#contact. - The removal of the use of
zuora_sold_to_contactinBillingAccountand elsewhere. - "Bill to" and "Sold to" objects in Rails Admin will also have to be retrieved locally.
- Implement the use of
BillingAccountContactdetails as a replacement for contact details present inCustomer.
Once we have this functionality, we may want to revisit the docs for adding/changing subscription contacts and changing CDot account owner information.
Result
With the new feature flag turned on, we should be able to update Bill to and Sold to contacts for a given account on Zuora and see these changes reflected locally.