Tisman asiakkaiden synkronoinnin esimerkki
Esimerkkitoteutus Tisman asiakkaiden API synkronoinnista
Sisällysluettelo
Asiakkaiden tuonti (Tisma ➜ verkkokauppa)
Vaihe | Koodi | Selite |
---|---|---|
1. XML-sanoma saapuu | CustomerRepository::handleCustomerImport(SimpleXMLElement $message) |
Vastaanottaa Tisman <asiakas>-sanoman. |
2. Pura tiedot | • Hakee asiakaskoodi ja lismuu (L, M, P).• Rakentaa $customerData vain *customers_api*-kentistä.• Numerokentät normalisoidaan. |
|
3. Suorita toimenpide |
switch ($action) →• L: createCustomer() • M: updateCustomer() • P: deleteCustomer()
|
|
4. Lokitus | LogManager::save() |
Epäloogiset tilanteet talletetaan lokiin. |
Tulos: *customers_api* peilaa Tisman asiakasrekisteriä ja toimii avainkytkentänä kaupan ID:n ja Tisman asiakaskoodi
:n välillä.
Asiakkaiden lähetys (verkkokauppa ➜ Tisma)
Vaihe | Koodi | Selite |
---|---|---|
1. Käynnistin | CustomerExportRepository::handleCustomerExport(array $account) |
Kutsutaan esim. tilin luonnin yhteydessä. |
2. Etsi / luo asiakaskoodi | • Jos customers_api_id jo olemassa, käytetään sitä.• Muuten haetaan *customers_api*-taulusta. • Ellei löydy, generoidaan väliaikainen V{customers_id} . |
|
3. XML-generointi | getCustomerXml() |
Luo <asiakas>-sanoman (lismuu = L tai M). |
4. Tallennus / siirto | XmlCreator::createXml('asiakas-{id}.xml', ...) |
Tiedosto toimitetaan Tismaan integraatioagentilla. |
5. Synkronointi | ApiHelpers::saveApiCustomersId() |
Päivittää *customers_api*:n, jotta sama koodi käytössä jatkossa. |
Asiakastietojen hyödyntäminen tilaus-sanomassa
-
OrderRepository::handleExport(int $orderId)
rakentaa <tilaus>-sanoman. - Kentät
toimitus_kdi
,asiakaskoodi
jamaksuehto
määritellään *customers_api*-koodien perusteella. - Erikoistapa:
-
Nets → aina väliaikainen
V{customerId}
. -
Lasku →
customerApiBillingId
, jos olemassa. - Muut → normaali
customerApiId
.
-
Nets → aina väliaikainen
- Näin asiakaskohtaiset alennukset, maksuehdot, kieli- ja ryhmäasetukset kulkevat jokaisessa tilauksessa ilman duplikaattiasiakkaita.
Yhteenveto
- Import pitää *customers_api*:n synkassa Tisman kanssa.
- Export hyödyntää samaa taulua varmistaakseen, että tilaus viittaa olemassa olevaan asiakkuuteen.
- Väliaikainen
V
-koodi mahdollistaa myynnin heti, vaikka Tisman asiakaskorttia ei vielä olisi, vähentäen duplikaatteja.