CreamySales – Conversion Widgets for WooCommerce

Katrangan

CreamySales connects your WooCommerce store to the CreamySales platform, allowing you to display conversion-focused widgets on your storefront.

The plugin is a lightweight connector. Widget creation, design settings, store management, and usage limits are managed from your CreamySales dashboard.

What the Plugin Does

  • Connects your WooCommerce store to your CreamySales account.
  • Loads the CreamySales widget script on your storefront.
  • Allows widgets configured in the CreamySales dashboard to appear on your site.
  • Supports WooCommerce stores using Hebrew, English, RTL, and LTR layouts.

Available Widgets

Social Proof Notifications

Display recent purchase notifications to visitors while they browse your store.

Cart Upsell Popups

Show targeted product offers before checkout to help increase average order value.

Sold Count

Display sold-count information on product pages to show demand and activity.

Widget availability may depend on your CreamySales plan.

Features

  • Built for WooCommerce.
  • Managed from a central dashboard.
  • Works across multiple stores.
  • Customizable widget design and behavior.
  • Supports Hebrew and English.
  • Supports RTL and LTR layouts.
  • Loads asynchronously on the frontend.
  • No theme file changes required.
  • Supports semantic product-title and active-main-image popup placement across classic and block templates.

How It Works

  1. Install and activate the plugin.
  2. Create or log in to your CreamySales account.
  3. Connect your WooCommerce store.
  4. Configure widgets from the CreamySales dashboard.
  5. The plugin loads the active widgets on your storefront.

Performance

The CreamySales frontend script loads asynchronously and is designed to avoid blocking page rendering.

Theme Compatibility

CreamySales widgets are displayed independently from your WooCommerce theme templates, so no theme modifications are required.

For location-dependent product popups, CreamySales resolves semantic anchors through explicit manual targets, Elementor Pro WooCommerce widgets, WooCommerce Blocks, classic WooCommerce hooks, and conservative standard WooCommerce markup. If no reliable target exists, only that location-dependent popup is suppressed.

External Service

This plugin connects to the CreamySales platform at https://creamysales.com in order to connect your WooCommerce store, load and manage dashboard-configured widgets, synchronize plugin settings, check service connectivity, and record widget interaction events.

A CreamySales account is required to use the service. The service is provided by CreamySales.

The plugin sends the following data to CreamySales:

  • Store connection data, including the CreamySales domain ID and plugin enablement status, when settings are saved, when the hourly connection check runs, and when an administrator manually tests the connection.
  • The dashboard API key in the X-Creamy-Key request header when the plugin communicates with the CreamySales dashboard API.
  • The CreamySales domain ID when requesting the site-specific widget script. The returned script is stored locally under the WordPress uploads directory for performance and integrity control.
  • The public site key and widget interaction data from storefront visitors when the frontend collector sends widget analytics and events to CreamySales.
  • Limited recent WooCommerce purchase display data, including the customer’s first initial or configured complete first name, optional city and country, product name, purchase time, and product thumbnail URL, may be returned by the site’s own REST endpoint to display social proof widgets to storefront visitors.
  • Aggregate product and variation sales quantities for the configured period may be returned by the site’s public sold-count REST endpoint. This response does not contain customer information.
  • When the plugin is enabled and an order containing an applied LMS CreamySales coupon reaches processing or completed status, the plugin sends the CreamySales domain ID and dashboard authentication key, event type, order ID and total value, coupon code, product and variation IDs, actual discounted line-item price, and coupon discount type and value. Customer names, email addresses, postal addresses, and other personal data are not included.

CreamySales uses this data to provide widget display, widget configuration, service connectivity checks, usage limits, analytics, and dashboard synchronization.

Terms of Service: https://creamysales.com/terms

Privacy Policy: https://creamysales.com/privacy-policy

Gambar conto

Pemasangan

  1. Upload the plugin files to /wp-content/plugins/creamysales/, or install the plugin through the WordPress Plugins screen.
  2. Activate the plugin in WordPress.
  3. Go to Settings -> CreamySales.
  4. Connect your store to your CreamySales account.
  5. Configure your widgets from the CreamySales dashboard.

FAQ

Is CreamySales free?

CreamySales offers a free plan for small stores. Paid plans are available for stores that need higher limits or additional features.

Does the plugin work without a CreamySales account?

No. The plugin connects your WooCommerce store to the CreamySales platform, so an account is required.

Does the plugin modify my theme?

No. The widgets are loaded separately and do not require changes to your theme files.

Does it support Hebrew?

Yes. CreamySales supports Hebrew and RTL layouts, as well as English and LTR layouts.

Where do I configure the widgets?

Widgets are configured from the CreamySales dashboard.

Does the plugin slow down my store?

The CreamySales script loads asynchronously and is designed to minimize frontend performance impact.

Can developers customize the recent purchase display data?

Yes. The plugin provides filters for the public herd endpoint so site-specific order data can be adapted without editing plugin files.

Available filters:

  • creamysales_herd_order_city filters the displayed city. It receives the sanitized city, the WooCommerce order, and the raw city value.
  • creamysales_herd_order_country filters the displayed country. It receives the sanitized country, the WooCommerce order, the country code, and the raw country value.
  • creamysales_herd_purchase_item filters the full purchase display item before the final public response is sanitized.

For example, if a site stores a city post ID in the WooCommerce city field:

add_filter( 'creamysales_herd_order_city', function ( $city, $order, $raw_city ) {
    if ( is_numeric( $raw_city ) ) {
        $title = get_the_title( (int) $raw_city );
        return $title ? $title : $city;
    }

    return $city;
}, 10, 3 );

The final herd endpoint response is still limited to the public fields name, city, country, time, p_name, and p_img. The CreamySales dashboard can configure whether name contains the complete billing first name and whether city and country are shown.

How can developers customize semantic popup placement?

CreamySales supports product title and main-image placement plus Elementor Pro product widget anchors for price, rating, stock, short description, add to cart, meta, content, tabs, additional information, upsells, related products, and breadcrumbs. Manual integrations can use:

[creamy_anchor name="product.title.after"]


creamy_render_anchor( 'product.title.after' );

Custom themes can place <span data-creamy-anchor="product.title.after"></span> immediately after their title and add data-creamy-anchor-target="product.main_image" to the stable gallery wrapper containing the current image. This markup defines placement while the CreamySales renderer supplies popup HTML through the namespaced window.CreamySalesAnchors API. Manual theme markup has the highest resolver priority. Complete examples and debugging instructions are in docs/semantic-anchors.md.

Small custom-theme example:

<h1 class="custom-product-title">Product title</h1>
<span data-creamy-anchor="product.title.after"></span>

<div class="custom-product-gallery" data-creamy-anchor-target="product.main_image">
    <img src="product.jpg" alt="Product name">
</div>

Use the stable gallery wrapper as the product.main_image target rather than adding the target attribute directly to the image. CreamySales will resolve the currently visible image inside that wrapper and keep image overlays synchronized when the gallery or selected variation changes.

Where can I get support?

Visit https://creamysales.com or contact support@creamysales.com.

Mācā ulang

There are no reviews for this plugin.

Contributors & Developers

“CreamySales – Conversion Widgets for WooCommerce” is open source software. The following people have contributed to this plugin.

Kontributor

Caathetan Owahan

1.46

  • Document and narrowly suppress false-positive sold-count SQL warnings.
  • Fix the remaining settings update assignment alignment warning.

1.45

  • Inline prepared sold-count query templates for Plugin Check data-flow compatibility.

1.44

  • Resolve Plugin Check warnings for the bootstrap variable and prepared sold-count queries.

1.43

  • Add a custom-theme semantic anchor markup example to the FAQ.

1.42

  • Add explicit custom-theme HTML integration documentation for semantic popup anchors.
  • Make REST option updates atomic and run connection checks only after settings are persisted.
  • Replace dated recurring aggregation jobs and per-request script cache busting with stable schedules and content versions.
  • Reduce repeated schema, order diagnostic, and current-day aggregation work.
  • Consolidate CreamySales HTTP transport and remove unreachable compatibility, queue, authentication, and metadata code.

1.41

  • Detect Elementor Pro during its early WordPress bootstrap so dedicated product title and product widget anchors activate reliably.

1.40

  • Add isolated Elementor Pro WooCommerce semantic-anchor integration for product title, image, price, rating, stock, short description, add to cart, meta, content, tabs, additional information, upsells, related products, and breadcrumbs.
  • Prefer manual targets, then Elementor single-template widgets, while rejecting hidden, loop, popup, and ambiguous Elementor candidates.
  • Reuse the shared flow and image-overlay runtime without Elementor-specific observers or listeners.

1.39

  • Reuse shared page-class definitions and one body-class snapshot for WooCommerce page detection.
  • Reuse the plugin URL constant for bundled frontend asset URLs.

1.38

  • Add native product ID detection to the WooCommerce page-context JavaScript API.

1.37

  • Add a lightweight JavaScript API for detecting native WooCommerce product, shop, category, cart, and checkout pages.

1.36

  • Accept sold-count product IDs as one comma-separated query parameter.
  • Reject array-style and malformed sold-count product ID parameters.

1.35

  • Default main-image popup width to auto.
  • Place default top-edge popups on the left in LTR layouts and the right in RTL layouts.

1.34

  • Standardize plugin JavaScript naming, parameters, variables, spacing, and function documentation.
  • Add snake_case semantic-anchor and development test APIs while retaining deprecated renderer compatibility aliases.
  • Document all public JavaScript functions and the cached product sold-count endpoint.

1.33

  • Add public creation, replacement, and removal APIs for renderer-provided popup HTML.
  • Mount main-image popups as absolute gallery children without page-scroll positioning.
  • Retain the fixed body portal and throttled scroll handling only as a compatibility fallback.
  • Make image-popup text selectable and popup controls clickable by default while retaining a low z-index.

1.32

  • Default main-image popups to a passive full-width top bar below standard gallery controls.
  • Add configurable image-popup width, position, and interactivity.
  • Reduce scrolling cost with geometry-only, animation-frame overlay updates and focused DOM mutation handling.

1.31

  • Recognize the main product core/post-title block as a semantic title anchor while rejecting product-loop titles.
  • Make administrator-authorized frontend anchor diagnostics visibly announce themselves in the browser console.

1.30

  • Add extensible semantic popup anchors for content after the product title and overlays on the active main product image.
  • Integrate automatic resolution with manual markup, WooCommerce Blocks, classic dynamic-priority hooks, and conservative DOM fallbacks.
  • Add synchronized external overlays, provider-isolated diagnostics, extension APIs, tests, and developer documentation.

1.29

  • Normalize legacy dashboard option field names to the renamed herd and sold-count database fields.

1.28

  • Rename the herd options to show_full_first_name and location.
  • Limit the expanded herd customer name to the complete billing first name.
  • Rename the sold-count count_period setting to period.

1.27

  • Store nested herd name/location and sold-count period settings received through the authenticated options route.
  • Add a cached public sold-count endpoint for bounded product and variation ID sets.
  • Support rolling week, 30-day, 60-day, yearly, and all-time sales periods.

1.26

  • Remove the local Conversion Events option.
  • Send eligible conversion events whenever the CreamySales plugin is enabled.

1.25

  • Check required PHP files before loading plugin modules.
  • Skip initialization and show an administrator notice when required WooCommerce APIs are unavailable.
  • Restrict CreamySales admin styles to the plugin settings page.

1.24

  • Restore files omitted from the previous release package.

1.23

  • Update LMS conversion events to the current CreamySales payload schema.
  • Include order value, coupon code, normalized discount type, and actual discounted line-item pricing.
  • Redact the dashboard key from administrator conversion-test diagnostics.

1.22

  • Add an administrator conversion-test tab with HPOS-compatible WooCommerce order autocomplete.
  • Allow immediate LMS conversion tests without changing automatic delivery metadata or retries.
  • Show the sanitized request payload and CreamySales response for test diagnostics.

1.21

  • Add privacy-minimized LMS conversion events for eligible processing and completed WooCommerce orders.
  • Add asynchronous delivery, retries, idempotency, and successful-delivery order metadata.
  • Add an administrator setting to disable conversion events.

1.20.1

  • Complete AJAX settings saves without returning HTTP 502 when remote enablement synchronization fails.
  • Disable CreamySales locally when a remote disable request fails, while retaining the error for retry and diagnostics.

1.20

  • Synchronize plugin enable and disable changes with the CreamySales service before updating local state.
  • Preserve the previous local status when the service rejects a request or returns a technical error.
  • Show CreamySales plan-limit and enablement errors in the AJAX settings response.

1.19.2

  • Highlight incompatible resolved order city and country values in the Plugin Check tab.
  • Link order-data warnings to the CreamySales WordPress.org FAQ for custom herd endpoint mapping.

1.19.1

  • Add an admin warning when the latest order city or country values do not look compatible with the herd endpoint.

1.19

  • Add a WooCommerce order data compatibility check for herd endpoint city and country values.
  • Restore CreamySales service-health notices on the WooCommerce submenu settings screen.

1.18.1

  • Update WooCommerce tested compatibility to 10.8.1.

1.18

  • Move the CreamySales admin page under WooCommerce and add an external-link icon to the plugin support URL.

1.17

  • Add plugin support links to the CreamySales admin settings page.

1.16

  • Preserve custom textual herd endpoint country values while avoiding numeric country IDs by default.

1.15

  • Add herd endpoint filters for site-specific city, country, and purchase display data.

1.14

  • Normalize herd endpoint country values through WooCommerce country codes.

1.10

  • Initial public release.