# Adapters
There is 10 types of adapters within snowstorm. These adapters are mostly provider related. For each type of service, we have at least 1 provider. Marketplace and SSO Adapters are exceptions to that rule.
# Marketplace Adapters
These adapters essentially have one purpose, handle search for ticket at a given resort on a given day for the covered product.
This means that this adapter handles stock, but it also checks that the product you are requested tickets for, has available discounts, can still be used, is not over its resort use limit or that the resort even supports it.
These are made in adapters instead as a big huge method that handles everything because each product has its specific set of business rules that apply to it. This way if a bug or a change affects a certain product, it will not disrupt the other products and cause a major issue for the team to fix.
All of these adapters must implement MarketplaceAdapter and extend the MarketplaceDriver class.
# SSO Adapters
The SSO adapters represent one adapter for each type of user on the platform. That is customer, skier and user.
Customers and Skiers are on the frontend part of the system and Users are in the portal only.
The reason we have different adapters is that each of the user type query a different collection in the database. This makes the code clearer and separation of concern is respected.
# Other Adapters
The other adapters, as said before, are related to external services like Stripe, Mailchimp, Sendgrid, etc. They implement what is required of them from the platform.
# Version 2.2.0 Additions
Starting with version 2.2.0 there is a 3rd type of adapter, The CRMAdapter. This type of adapter is responsible of
sending the relevant information about customer, skier, orders, visits, bookings, etc. to it's service provider. For now
in version 2.2.0, the only adapter available is SalesForce for the CSC.