Snipcart

Craft e-commerce in a day.

$179

1.2.2

November 8, 2019
added
  • Added ability to force ShipStation re-feed attempts from the command line.

  • Improved logging for ShipStation re-feed attempts.

  • Console ShipStation verifier now has an optional limit argument.

  • Added support for GBP £.

changed
  • Console ShipStation verifier skips checking orders without shippable items.

1.2.1

November 1, 2019
added
  • Added support for test mode!

  • Added Discounts::updateDiscount().

  • Added status constants to Snipcart Order model.

fixed
  • Fixed a template bug that could have wrongly indicated an expired discount.

  • Fixed an error when clearing the Snipcart API cache from the Clear Caches utility.

  • Fixed a few template template display bugs where some details may not be present.

  • Custom product options can now be plain text inputs. (No array of choices required.)

1.2.0

October 17, 2019
added
  • Added GraphQL support to Product Details fields.

  • Exposed shipping data re-feed attempt window as a configurable setting.

fixed
  • Minor code improvements.

1.1.4

September 23, 2019
fixed
  • Removed a changed API reference that caused an error in the Abandoned Cart list.

1.1.3

August 15, 2019
fixed
  • Fixed a query error that could prevent Product Details fields from saving.

1.1.2

July 6, 2019
fixed
  • Added support for Craft 3.2.0-RC2.

1.1.1

June 2, 2019
fixed
  • Fixed a template bug that caused the Customers search field to disappear when there were no results.

1.1.0

May 31, 2019
deprecated
  • InventoryEvent::$entry is now deprecated. Use InventoryEvent::$element instead.

  • Products::reduceProductInventory() is now deprecated. Use Products::reduceInventory() instead, which takes a single Snipcart Item as an argument.

  • Orders::updateElementsFromOrder() is now deprecated. Use Orders::updateProductsFromOrder() instead.

added
  • Added Matrix support for Product Details field.

  • Added ability to provide a custom name and url in getBuyNowButton(), which defaults to Entry or parent Entry's Title and URL.

fixed
  • Product Details SKU is now properly validated to be unique.

1.0.7

April 28, 2019
added
  • Added code to prevent Snipcart API changes from resulting in control panel errors.

fixed
  • Fixed minor control panel view inconsistencies.

  • Fixed an error that could occur if ModelHelper::stripUnknownProperties() received non-iterable data.

  • Fixed a bug that prevented API response cache from being disabled.

  • Added a new Discount property that might have thrown errors in the control panel.

changed
  • Updated charting library and made minor stylistic and readability improvements.

1.0.6.1

March 18, 2019
fixed
  • Fixed a bug that affected chart's date range display.

1.0.6

March 18, 2019
added
  • Added store performance chart to the CP section and made date range editable.

  • Improved dashboard widget charts.

  • Added FormatHelper::formatCurrency() and craft.snipcart.formatCurrency() for consistent currency display that honors default store currency setting.

changed
  • Optimized AssetBundles.

fixed
  • Fixed minor padding issues for the very last elements in some control panel views.

1.0.5

March 10, 2019
added
  • getBuyNowButton() can now take an image parameter.

  • cartLink() supports a showCount setting for optionally removing the cart button's dynamic item count.

changed
  • cartSnippet() now includes Snipcart's base theme stylesheet by default.

  • getBuyNowButton() now adds .btn as a default that can be removed.

1.0.4

March 9, 2019
added
  • Added Twig template methods: craft.snipcart.getCustomer(), craft.snipcart.getOrder() and craft.snipcart.getSubscription().

  • Added ability to override Twig getBuyNowButton() price with support for multiple currencies.

  • getBuyNowButton() can now include custom options with negative price adjustments.

fixed
  • Currency setting is now saved properly.

  • Improved consistency of currency values displayed in the control panel and email templates.

  • Fixed UnknownPropertyException when viewing Discounts because of new normalizedRate property.

1.0.3

March 5, 2019
fixed
  • Fixed a bug where passing a null value for Product Details customOptions would throw a warning in PHP 7.2.

1.0.2

March 4, 2019
fixed
  • Fixed bug populating existing Element's product detail.

1.0.1

March 3, 2019
added
  • Added support for pre-3.1 versions of Craft CMS.

fixed
  • Fixed an issue that would cause a Section re-save task to fail after a Product Details field is added to an existing Section.

  • Product defaults are honored correctly per field setting on new and existing entries.

  • Fixed a JS error in Product Details field settings.

1.0.0

February 27, 2019
changed
  • Removed beta tag! 🎉

1.0.0-beta.27

February 27, 2019
fixed
  • Improved safety of CraftQL check.

1.0.0-beta.26

February 27, 2019
fixed
  • Fixed Install migration to prevent blocking re-install.

changed
  • Added a nicer configured+empty landing state graphic.

1.0.0-beta.25

February 26, 2019
fixed
  • Cleaned up docblocks and variable names for consistency.

changed
  • Required endpoint parameter for get() , post(), put(), and delete() API service methods.

1.0.0-beta.24

February 24, 2019
fixed
  • Fixed a bug that kept static config settings from counting toward a configured state.

1.0.0-beta.23

February 24, 2019
added
  • Added pagination support to Abandoned Carts.

  • Added a friendlier CP section empty state before plugin is configured.

changed
  • Ajaxified CP landing stat panels to speed up page load.

  • Spiffed up the Craft Commerce comparison table in the readme.

fixed
  • Fixed template error when shipFrom settings are empty.

  • Fixed incorrect reference that interfered with subscription invoice creation webhook.

  • Invalid/unparsed environment variables won't count as a "configured" state for the plugin.

1.0.0-beta.22

February 18, 2019
added
  • Added Notifications service.

fixed
  • Fixed bug in console Snipcart → ShipStation verification utility.

1.0.0-beta.21

February 17, 2019
added
changed
  • Isolated API caches with TagDependency.

  • Refactored webhooks into component.

fixed
  • Stopped inventory event from firing for products that don't store inventory.

1.0.0-beta.20

February 17, 2019
added
  • Added support for additional AbandonedCart attributes.

1.0.0-beta.19

February 16, 2019
added
  • Added Fields service.

fixed
  • Improved webhook resilience in some cases when incoming payloads contain unexpected attributes.

1.0.0-beta.18

February 15, 2019
added
  • Added new Order and Item attributes.

1.0.0-beta.17

February 14, 2019
added
  • Added inventory to the Product Details field type.

  • Added the ability to designate a custom admin order notification email template.

  • Webhook log now stores mode.

  • Added support for displaying Subscriptions and cancelling them from the control panel.

  • Added Overview tab for control panel section.

  • Added Event hook for registering shipping providers.

  • Some settings now offer env and template suggestions.

  • Added environment variable support for Snipcart + ShipStation API keys.

changed
  • Flattened migrations into single Install.

  • Improved several control panel views.

  • Optimized control panel assets.

  • Vastly improved speed and flexibility of Dashboard widget.

  • Refactored control panel views.

removed
  • Deleted many SnipcartVariable methods after refactor.

  • Cleaned up Orders interface, removing several methods.

  • Removed ability to define custom product fields.

  • Removed unused Packaging Types.

1.0.0-beta.16

December 27, 2018
added
  • Added Product Details field type for quick setup.

  • Added control panel views for Discounts, Abandoned Carts, and Subscriptions.

  • Added ability to create a Discount via control panel.

changed
  • Improved plugin settings control panel layout.

  • Refactored and expanded Events.

  • References to WebhookEvent should now be ShippingRateEvent.

1.0.0-beta.15

December 24, 2018
changed
  • Refactored ShippingProvider to expose REST API methods.

  • Various code quality improvements.

fixed
  • Fixed incorrect item weights when converting a Snipcart order into a ShipStation order.

1.0.0-beta.14

December 20, 2018
changed
  • ShipStation's _getOrderNotes() and _getGiftNote() will no longer return empty values.

1.0.0-beta.13

December 20, 2018
changed
  • Breaking changes for everyone!

  • Massively refactored services and models, which will definitely break any services or models you're using directly.

  • Renamed all ShipStation models and moved them to their own namespace.

  • Renamed all Snipcart models.

  • WebhookEvent's packaging property is now package.

  • Abstracted ShipStation service into Shipments, meaning it's now accessed via Snipcart::$plugin->shipments->shipStation. Note that the intent is for other services to interact directly with Shipments, to which EVENT_BEFORE_RETURN_SHIPPING_RATES has moved. Listeners should subscribe to Shipments::EVENT_BEFORE_RETURN_SHIPPING_RATES.

  • Listeners should now subscribe to Orders::EVENT_BEFORE_REQUEST_SHIPPING_RATES instead of SnipcartService::EVENT_BEFORE_REQUEST_SHIPPING_RATES.

  • Listeners should now subscribe to Products::EVENT_PRODUCT_INVENTORY_CHANGE instead of SnipcartService::EVENT_PRODUCT_INVENTORY_CHANGE.

1.0.0-beta.12

December 18, 2018
fixed
  • Fixed missing ShipStation fields, prevent wrapping additional email prices.

1.0.0-beta.11

December 17, 2018
fixed
  • Fixed token verification.

1.0.0-beta.10

December 17, 2018
changed
  • VerifyController requests un-cached Snipcart orders.

1.0.0-beta.9

December 17, 2018
added
  • Spiffed up and added re-feed attempt status to order failure notifications.

changed
  • Added explicit type coercion in a few places.

fixed
  • Fixed type error that impacted VerifyController.

  • Reverted ShipStationOrderItem fields().

1.0.0-beta.8

December 17, 2018
added
  • Separated parts of SnipcartService into new ApiService.

changed
  • Changed the way API exceptions are handled to reduce disruption and log failures.

  • Refactored SnipcartService to be cleaner.

  • Renamed SnipcartService's processShippingRates() to getShippingRatesForOrder().

  • Models now use proper DateTime values.

  • Improved ShipStation order verifier accuracy.

  • Updated webhook controller's handleOrderCompletedEvent() to continue through problems and report errors by model. Any errors at all will result in success: false.

  • Renamed listAbandoned template variable to listAbandonedCarts.

fixed
  • Minor fix for mobile order email price wrapping.

1.0.0-beta.7

December 15, 2018
added
  • Added package detail to Snipcart rate response.

changed
  • Use billingAddressName instead of cardholderName in order notification emails.

  • Return JSON for all webhook requests.

  • Keep ShipStation service from failing if Snipcart order has null value for custom fields.

  • Rename webhook controller's badResponse() to badRequestResponse().

fixed
  • Fix type issues with SnipcartOrder model.

  • Return magic variables when SnipcartOrder is treated as an array.

  • Respond calmly to missing webhook event names or content and don't allow logging.

1.0.0-beta.6

December 14, 2018
added
  • Added weight property to SnipcartItem model.

  • Added hasPhysicalDimensions() for both Snipcart and ShipStation item models.

changed
  • Changed ShipStation service method names to better reflect what they do.

fixed
  • Fixed incorrect docblock details.

1.0.0-beta.5

December 13, 2018
changed
  • ShipStationService's getWeightFromSnipcartData() is now getWeightFromSnipcartOrder().

1.0.0-beta.4

December 13, 2018
changed
  • Improved code quality throughout models.

fixed
  • Fixed SnipStation gift setting detection.

1.0.0-beta.3

December 13, 2018
changed
  • Made cosmetic fixes to console order verification tool.

  • ShipStation order model no longer limits string length; longer customer and gift messages won't cause webhook failure.

fixed
  • Fixed webhook and service bugs.

1.0.0-beta.2

December 13, 2018
changed
  • Improved class documentation.

  • Improved console verification tool.

  • Improved code quality with optimizations and type hints.

fixed
  • Fixed several incorrect references.

1.0.0-beta.1

December 10, 2018
added
  • Initial GitHub release.