Squarespace Store Browser API
An unofficial Browser API to interact with Squarespace Commerce Stores.
SquarespaceStore
implements a two-way MessageChannel to your store within a hidden iframe
to communicate to a Squarespace browsing context.
Using this library, you may:
- List all products in your store
- Retrieve product details from a product url
- Add a product to the browser's Squarespace shopping cart
// Initialize a connection to a Squarespace Commerce Store
const store = new SquarespaceStore('http://www.parlourh.com');
// Fetch all products
store.fetchAllProducts().then(function(products) {
// Products have attributes:
// * id
// * title
// * url
// * imageUrl
// * price
// Add a product to the current browser's cart
store.addToCart(product.id);
});
// Or, fetch product by url
store.fetchProductUrlDetails('http://www.parlourh.com/salon/love-conditioner-smoothing').then(function(product) {
store.addToCart(product.id);
});
// And finally, navigate to the cart checkout page when ready
window.location = store.cartUrl();
Installation
Todo...
Browser Compatibility
This should be compatible with 97.05% of browser usage (as of Nov 2016). If you notice a compatibility issue, please open a Pull Request or file an Issue.
Current Status
This package is stable, however, this uses unofficial APIs and may break from time to time if Squarespace modifies the layout of their templates.
- Products with multiple variants have not been implemented yet.
- No removing / viewing the contents of the cart.
- I've only tested this against one store. So it likely has a couple changes needed to work for yours. Submit an issue or open a PR and it will get fixed.
Copyright and License
Copyright (c) 2016, Boulevard.
Source code is licensed under the MIT License.