* Include @spree/storefront-api-v2-sdk
* Add basic Spree framework structure
* Add Spree as allowed Framework
* Fetch product images, standardize API fetch using Spree SDK
* Include slug and path in products
* Fetch single product during build time
* PLP with searching by category
* Fetch Spree Categories and Brands
* Sort PLP
* Search products by name
* Fix option values collection
* Fix hasNonMasterVariants
* Sort Categories and Brands
* Add configuration to show product options when there's one variant available
* Enable text search for the Spree Framework
* Allow removing line items
* Allow updating line item quantity
* Add __typename to variant options to allow adding the selected variant to the cart
* Use fetch and Request from node-fetch in Spree SDK
* Update Spree SDK fetcher
* Show placeholder message for /chechout and adjust api fetcher type
* Use kebab case instead of camel case
* Remove outdated comments
* Remove outdated comment
* Resolve isColorProductOption duplication
* Type Spree variants and line items and temporarily remove height, width and depth
* Remove outdated comment
* Update comments about cart discounts
* Remove 'spree' prefix from isomorphicConfig and add lastUpdatedProductsPrerenderCount
* Implement getAllProductPaths to prerender some products during build time
* Adjust fetchers to the latest Spree SDK interface
* Add types to Spree taxons mapping
* Revert port change in package.json scripts
* Add basic README describing Spree installation
* Expand README's installation section
* Upgrade Spree SDK to 4.7.0 and add node-fetch to dependencies
* Order providers alphanumerically
Co-authored-by: Damian Legawiec <damian@sparksolutions.co>
* Sort products by available_on when using the Trending sorting in useSearch
* Change the default Spree port to 4000 and update README in sync with Spree Starter changes
* Save primary variant's SKU when normalizing a product from Spree
* Create a new cart if Spree can't find the current using a token
* Add separator to README
* Add missing Error subclass
* Allow placeholder images for products and line items without images
* Add image
* Reset tsconfig.json paths to originla values
* Search taxonomies by permalinks instead of IDs
* Upgrade Spree SDK to version 4.7.1
* Remove references to @framework and use relative paths instead
* Generalize TypeScript and add typings to getPage
* Update fetcher to avoid parsing non-JSON responses
* Use original product image by default instead of resized
* Link to an online demo of the Spree integration in the README
* Flatten fetcher responses
* Include Spree in the list of supported ecommerce backends in README
* Update README.md
* Format Spree's README
* Add link to the Spree demo site in the main README
* Update README.md
* Update README.md
* Allow setting a taxon id for getAllProducts
* Use Spree SDK's JSON:API helpers
* Sort getAllProducts by -updated_at when using a taxonomy
* Remove slash '/' from line item's paths
* Allow filtering variant images by option type
* Upgrade checkout behavior in line with core NextJS Commerce changes
* Remove dummy submitCheckout function
* [NX-24] Display PDP option types sorted by position from Spree
* Supply Spree primary variant if a product has no option variants
* Do not throw an error if a product doesn't have NEXT_PUBLIC_SPREE_IMAGES_OPTION_FILTER
* [NX-43] Uses image transformations when fetching products images
* Use bind to properly call Spree SDK methods and update SDK fetcher in line with SDK 4.12.0
* Fix ESLint issues in useHook
* Support account sign up, login and logout
Also
- Converts the guest cart to a persisted cart tied to the logged in user after log in.
- Fixes issues with use-remove-item. The cart will now properly refresh after an item is removed.
- Uses the logged in user's token to adjust the cart and make other authenticated requests.
- Transparently refreshed the access token of the logged in user with a refresh token. Replays requests to Spree which fail with a 401 error after refreshing the access token.
* Fetch logged in user's cart after login or signup but associate guest cart only after signup
* Support Spree default wishlist show, add and remove wished items operations
* Fetch Spree CMS Pages
* Fix login, handle critical token errors and fix WishlistCard
Fix to WishlistCard changes its props to be consistent with WishlistButton when calling useRemoveItem
* Fix variable name (#574)
Variable name should be `ChevronRight`
* Update get-cart.ts (#474)
include digital items
Co-authored-by: Gonzalo Pozzo <gonzalo.pozzo4@gmail.com>
* Update normalize.ts (#475)
add missing options property to `normalizeLineItem`
Co-authored-by: Gonzalo Pozzo <gonzalo.pozzo4@gmail.com>
* Update add-item.ts (#473)
* Update add-item.ts
include digital items
* Update add-item.ts
include digital items
Co-authored-by: Gonzalo Pozzo <gonzalo.pozzo4@gmail.com>
* fix typo (#572)
Co-authored-by: Gonzalo Pozzo <gonzalo.pozzo4@gmail.com>
* Fix authentication.refreshToken arguments
* Remove redundant comments and logs
* Fix createEmptyCart request to Spree and add option to disable auto login
* Fix formatting issues
* Apply image transformation when fetching images for products in cart
* Replace call to qs with Spree SDK built-in helper
* Upgrade Spree SDK to 5.0.1
* Rename zeitFetch import to vercelFetch
* Abstract fetcher JSON Content-Type checking into separate function
* Rename imageUrl to url
getMediaGallery already provides context for the constant
* Remove return type for getProductPath
The return type can be trivially determined from the returned value.
* Change URL to Spree demo store in root README
Co-authored-by: Gonzalo Pozzo <gonzalo.pozzo4@gmail.com>
* Change label for link to Spree demo store in Spree's README
Co-authored-by: Gonzalo Pozzo <gonzalo.pozzo4@gmail.com>
* Change URL to Spree demo store in Spree's README
Co-authored-by: Gonzalo Pozzo <gonzalo.pozzo4@gmail.com>
* Use only relative paths to /framework/spree from itself
Co-authored-by: tniezg <tomek.niezgoda@mail.com>
Co-authored-by: Damian Legawiec <damian@sparksolutions.co>
Co-authored-by: Robert Nowakowski <aplegatt@gmail.com>
Co-authored-by: Grey <57859708+greyhere@users.noreply.github.com>
Co-authored-by: pfcodes <phil@auroradigit.al>
Co-authored-by: Gonzalo Pozzo <gonzalo.pozzo4@gmail.com>
Co-authored-by: Konrad Kruk <github@konradk.pl>
* Setup Mobile Menu Sidebar
* Setup Basic Mobile Menu Items Styling
* Implement full width styling for mobile devices
* Cleanup
Co-authored-by: Nine <at059214@Abdurahmans-MacBook-Pro.local>
* fix: dynamically import Modal component
fixes error "document is not defined" if the user decides to display a modal at the beginning (for ads, promotions, etc...)
* fix: remove spread operator
* remove top level modal import
* fix import path for Modal
Co-authored-by: Gonzalo Pozzo <gonzalo.pozzo4@gmail.com>
* product list page and search working
* categories working
* clean things up like console.log
* undo these
* don't need sort stuff. update comment
* turns out the if statements here are necesary
* very incomplete progress on sign-in
* Revert "very incomplete progress on sign-in"
This reverts commit a8dd2af268f9c617ba17abf4b3cc7e5de10f8449.
When you navigate to other product page, the options selected by default don't change and the options from the last product navigated are used. Adding a key to "ProductSideBar" component, makes it refresh default options and refresh actual product selected options when i navigate for many products.
* Add title to page and add styling for base typography elements for Text component
* Remove additional title
Co-authored-by: B <curciobelen@gmail.com>
Co-authored-by: Luis Alvarez D <luis@vercel.com>
* Vendure - Fetcher - Globally throw errors
Globally throw errors from the Vendure fetcher when we detect errors in the response body
* Remove unnecessary new function
* Remove unnecessary import
Co-authored-by: Luis Alvarez D <luis@vercel.com>
* Improve a11y on the cart
* Fix button style
* Remove extra space
* Move cart item count to the right position
Co-authored-by: Luis Alvarez D <luis@vercel.com>
* optionsSelections takes an array of options objs
* use options array to match API expectations
Co-authored-by: Ryan Ford <ryanford@users.noreply.github.com>