Communications
For web-based systems we send POST data to a https url and process the response in either XML or JSON
For desktop systems we can connect over tcp (ip address / port ) or a binary dll and send data to system via XML, JSON, or parameters to api. This must be available for macOS 10.13+ (64 bit) and Windows 10+ (32 and 64 bit)
Authentication
We can either request a session key from SMS, that is used in every request, or we can pass down users login details on every call. The authenticated data would consist of some UID (email / username) and a hashed password which can be stored locally for automatic login.
Data Transfer
ProSelect albums it's clients and their orders and payments can be linked to SMS elements. It all depends on how the SMS stores its data as to how, and to what, ProSelect elements are linked to.
Album
- ProSelect albums can be linked to a SMS element, they can also be unlinked. Opening linked albums ensures integration is enabled or disables exporting.
Clients
- New ProSelect clients can be sent to SMS [PUSH]
- New SMS Clients can be loaded into ProSelect [PULL]
- Currently, synced clients can be updated based on changes from SMS or ProSelect. Conflicts for client details, address, etc, can be resolved within ProSelect [SYNC]
- ProSelect clients can be unlinked from SMS elements
Orders
- Orders can be only created from ProSelect
- New orders that have not been exported can be sent to SMS [PUSH]
- A full resend of all orders can be sent. [PUSH]
- ProSelect cannot sync any changes made in SMS against orders
Payments
- ProSelect can send new payments to SMS [PUSH]
- ProSelect can receive a full list of payments from SMS [PULL] and replace any previously exported payments [PULL OR SYNC]
- Imported payment conflicts can be resolved during sync / import (eg payment methods do not match)
Workflow Examples
ProSelect Initiated
- Create new Album
- Add clients, place orders, take payments
- Authenticate with SMS
- Link an Album and Sync Clients with SMS Elements
- Export new Orders
- Export Payments
- Save and close album
- Add payments in SMS
- Open album in ProSelect
- Update Payments from SMS
- Save Album and Close
SMS Initiated
- Create "Session" + "Clients"
- Take Payment
- Open ProSelect, validate and sync new album with SMS elements
- Import clients and payments
- Place orders in ProSelect
- Take Payments in ProSelect
- Export new orders to SMS
- Export new payments to SMS
- Sync payments from SMS to ensure up to date
- Save and close album
KnowledgeBase Article: Studio Management Software Integration Development Notes