Documentation

Integrations And Commerce

Technical reference for Postmark, Stripe, Stripe Connect, Search Console, IndexNow, GeoIP, provider inheritance, and commerce readiness.

Source: INTEGRATIONS_AND_COMMERCE.md

DesertCMS keeps provider configuration in the master/operator layer by default. Contributor sites inherit platform services unless a plan explicitly allows a controlled override.

Postmark

Postmark settings include:

postmark_sender_mode =
postmark_from_email =
postmark_server_token =
postmark_webhook_token =

Default contributor behavior is platform-managed email delivery.

A service plan can allow a custom sender signature through allow_postmark_sender_override. When enabled, the contributor site can use its own approved sender identity while platform support still owns delivery readiness.

Keep raw provider tokens out of contributor-facing screens.

Forms can send Postmark notifications for public contact, quote, application, intake, and RSVP submissions. The Forms module uses forms_notification_email first and falls back to the contributor request recipient when a dedicated Forms recipient is not configured. Uploaded files are not attached to the email; the notification links staff back to the authenticated Forms inbox where private uploads can be downloaded.

Stripe Service Billing

Service billing is the hosted-site subscription or plan payment.

Service plan fields include:

  • monthly_price_cents
  • currency
  • stripe_price_id
  • stripe_checkout_session_id
  • stripe_customer_id
  • stripe_subscription_id
  • billing_status
  • billing_current_period_end

The master platform account owns service billing.

Stripe Site Payments

Site payments are visitor purchases on a contributor or master site.

For direct sales, the CMS uses Stripe Checkout with a configured secret key and webhook secret.

For contributor marketplace sales, the desired model is:

  • Checkout uses the master Stripe account.
  • The contributor connects a Stripe payout account.
  • Proceeds transfer to the contributor connected account.
  • The platform keeps the configured fee.

Relevant fields include:

  • allow_stripe_connect
  • stripe_connect_account_id
  • stripe_connect_onboarding_status
  • stripe_connect_charges_enabled
  • stripe_connect_payouts_enabled
  • stripe_platform_fee_bps

Commerce Modes

DesertCMS::Commerce supports:

ModeCheckout
disabledNo checkout.
master_ownedDirect Stripe Checkout for the master instance.
contributor_ownedDirect Stripe Checkout for a contributor instance.
platform_marketplaceMaster Stripe account with contributor connected account and platform fee.
marketplace_pendingPlanning state, not ready for live checkout.

Readiness checks look at module state, selected model, Stripe key, webhook secret, Connect account, and whether the contributor plan allows Connect.

Shop Module

The Shop module adds:

  • Public /shop storefront.
  • Catalog records tied to media assets.
  • Personal, commercial, and full-rights prices.
  • Stripe Checkout session creation.
  • Stripe webhook fulfillment.
  • Order records.

Private source files remain private. Public shop cards use optimized image derivatives.

Full-rights fulfillment can remove an item from sale after purchase.

Search Console

Search Console settings include:

google_oauth_client_id =
google_oauth_client_secret =
google_search_console_property =

Contributor sites inherit indexing defaults unless the plan allows indexing override.

IndexNow

IndexNow settings include:

indexnow_enabled = 0
indexnow_key =

Use IndexNow for sitemap or URL submission only when configured and allowed.

GeoIP

GeoIP is local analytics enrichment.

Supported maintenance commands include:

desertcms-maint.pl geoip-import /var/desertcms/geoip.tsv
desertcms-maint.pl geoip-backfill
desertcms-maint.pl geoip-refresh-dbip-lite

Analytics can store raw IP values based on settings. DB-IP Lite attribution is shown when that source is imported.

Provider Readiness

Provider readiness should be operator-facing.

Check:

  • Postmark token and sender.
  • Stripe key and webhook.
  • Search Console configuration.
  • IndexNow key.
  • OpenBSD TLS and HTTP readiness.
  • Local assets.
  • Worker state.

Contributor-facing screens should summarize inherited status and plan-controlled options without exposing platform internals.