All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning (http://semver.org/).
- Increase APIs timeout to 10 seconds
- Request custom fields within the search operation
- Drop support for phpseclib v2
- Uses gcm as encryption algorithm for exporting data
- Add support for parent category ids in the Product model
- Logs a message if API responses are empty
- Fix an issue where passing an empty array to Category Merchandising rules parameter would cause an the rules to be ignored
- Add support for search requests
- Restore the DeleteProduct operation (from 6.2.2)
- Bump phpseclib/phpseclib and guzzlehttp/psr7 due to security fixes
- Create CategoryUpdate Graphql Service
- Fix an issue that would cause category id's to be removed by the crawler (from 6.2.1)
- Update category model to use relevant fields
- Create category collection for batched operations
- Restore the DeleteProduct operation
- Fix an issue that would cause category id's to be removed by the crawler
- Remove DeleteProduct operation
- Fix GraphQl query for failing Prestashop validation
- Add category ids to the product model
- Remove unique platform installation id from connection parameters
- Bring the function that replaces or adds a query parameters to a url back in the HttpRequest class
- Remove NostoIframe.js and all references to the iframe
- Remove NPM and Gruntfile
- Add support for both version 2 and 3 of phpseclib/phpseclib library (for compatibility with Magento versions 2.3.x and 2.4.x)
- Suppress missing return type for inherit class (Needed to run with PHP 8.1)
- Update local mock server from api-mock to drakov, fix failing unit test
- Upgrade phpseclib/phpseclib lib from 2.0.36 to 3.0.14
- Upgrade vlucas/phpdotenv lib to ^3.6
- Remove personally identifiable information from GraphQL order queries
- Add GraphQL session tests
- Add functionality to parse the list of product ids inside CategoryMerchandisingResult
- Fix
setPrice
function signature to build CM filters
- Pass previous exception to NonBuildableProductException constructor
- Introduce NewSession operation to create a Nosto customer
- Round product price, list_price and supplier_cost to 2 decimals
- Update phpseclib and dev dependencies
- Add query parameter for merchant id in rest API
- Upgrade JS dependencies
- Fix CMP throwing exception issue when batchToken value is null
- Fix error message parsing for application/json type
- Fix page number for CMP request
- Handle token mutability in BatchedCategoryMerchandising
- Add support for initial batch token in batched CMP operation
- Add possibility to use batch token in graphql calls
- Introduce a batched CMP operation that can fetch more than 250 products from Nosto
- Introduce a utility class for serialising and deserialising objects
- Handle recommendation response parsing without resultId
- Upgrade vlucas/phpdotenv to support versions up to 3.6
- Namespace
Nosto\Object
renamed toNosto\Model
- Introduce object for sort order tagging
- Add skipVCEvent to CMP graphql query
- Add exception class for missing APPS token
- Update composer lock causing problems with installations using PHP < 7.2
- Return empty string instead of throwing exception in OrderStatus Handlers
- Update composer dependencies
- Add a null check for customer before trying to populate customer data in order confirmation graphql call
- Support faceting and pagination in Category Merchandising query
- Introduce new exception types for product building failures
- Sort attributes when serializing objects to avoid mismatches caused by attribute order when comparing serialized objects
- Update CMP GraphQL query to use category name as recommendation parameter
- Remove redundant fields from category recommendation GraphQL query - only leave the productId
- Avoid redundant product API calls if no products have been added to the collection to be updated or deleted
- Fix category merchandising GraphQL query setting wrong preview value
- Handle order confirmations through GraphQL instead of legacy REST API
- Introduce operation for sending order status updates separately
- Implement recursive sanitizing
- Refactor recommendation operation classes
- Refactor result handling
- Add inventory level data to SKUs
- Set vlucas/phpdotenv to be compatible with any version below 3.0
- Make DotEnv dependency compatible with 2.x and 3.x versions
- Add date published to product interface and product object
- Fix GraphQL URL
- Add
APPS
token as a default token to be generated on account creation - Add helper method to check array contains only scalar values
- Rename
HtmlMarkupSerializationHelper::canEndoded
toHtmlMarkupSerializationHelper::canBeEncoded
- Fix Jenkins checkstyle reports
- Rewrite Jenkinsfile to use modern format
- Add memory utility class to SDK
- Implement Clear Upsert Collection method to lower memory consumption
- Add OutOfMemory exception type
- Introduce constants for Nosto product tags to avoid typos
- Add Nosto account & active domain to the API calls
- Implement automatic HTML entity encoding for objects
- Fix HTML serializer for values 0 of type float
- Fix double URL encoding issue in Oauth URLs
- Handle HTTP/2 response codes correctly
- Refactor test cases
- Update copyrights year
- Add pull request template
- Update
Phan
version and vendor - Add test for correct error parsing
- Encode the redirect URL
- Add test for special character serialization
- Refactor error throwing
- Fix dependency constraint causing issues with Magento 2.3 installations
- Enrich customer tagging with address related data
- Fix annotation types in
src\Object\Category
class
- Enrich customer tagging
- Enrich category tagging
- Remove the main product image URL from the alternative images when serialized to HTML
- Add support for email widget url formatting
- Fix the import path for graphql request
- Add support for GraphQL API calls
- Add support for marketing permission api operation
- Make MarkupableString mutable
- Fix Serializable Objects
- Implements Markupable Category, Pagetype and SearchTerm Objects
- Generate API_EMAIL token during signup
- Rename opt-in attribute
- Fix html serialization bug for attributes having boolean false as a value
- Add tests for serializing Buyer object
- Add opt-in attribute to customer
- Introduce ModelFilter class for filtering purposes
- Improve the error handling in Oauth and in account uninstall
- Improve the error handling in Oauth and in account uninstall
- Fix the issue that custom field keys were converted to snake case
- Add helper method for serializing collection to json
- Add more tests for serialization
- Introduce operation class for deleting / discontinuing products
- Refactor operation classes to use common authenticated abstract class
- Fix array handling bug in serializer
- Add few tests for serialization
- Make the validator use getters instead of accessing attributes directly
- Define productId as mandatory for product object
- Add CartOperation to support sending cart update events to nosto
- Remove static abstract function because it is not allowed in php strict mode
- Add sku id to cart LineItem
- Rename Cart::restoreCartUrl to Cart::restoreLink for supporting html serializer
- Change product tag1, tag2 and tag3 tagging to tags1, tags2 and tags3
- Fix doc block for Order::setCreated()
- Remove DateTimeInterface type hint from Order class
- Add PHP version compatibility checks
- Update Dockerfile to use PHP 7.0.25
- Support tagging html markup generation
- Add "Custom Fields" property to product class
- Add notranslate tag to avoid tagging being translated by browser plugin
- Support setting response timeout on each request
- Add phone, post code and country fields to person object
- Fix the iframe regular expression
- Move symfony console dependency under require-dev
- Add support for variation
- Add support for getting X-Request-ID from http response and http exception
- Revert phpseclib dependency to 2.0.*
- Fix the phpseclib dependency version
- Rename custom_attributes to custom_fields for SKU
- Add support for using product thumb url
- Fix product adding sku issue
- Fix providing default nosto backend url
- Fix handling the 100 (Continue) HTTP header
- Make the abstract collections countable
- Correct the de-duplication of the alternate image URLs
- Add collection for SKUs
- Add set availability method to SKU model
- Make the serializer to handle collections (implementations of Iterable interface)
- Add namespaces and comply to PSR-4
- Add support for SKUs (variations)
- Introduce traits
- Introduce several new interfaces and implementations of those interfaces
- Unify Nosto API communications into operation classes
- Refactor and rearrange various parts of the codebase
- Remove price formatting from product serializer
- Add optional precision attribute to price formatter
- Remove usage is superglobals ($_ENV, $_SERVER, etc.)
- Add get modules to iframe interface
- Introduce new product fields / product attributes
- Add logic for getting missing tokens
- Add notification classes
- Remove getDatePublished from product interface
- Decrease the API call timeout
- Add type check for price formatter
- Add checks for missing tokens
- Code style fixes
- Add support for account details
- Improve the exception handling
- Add constants to product interface
- Add support for using external order ref
- Add support for account details
- Support for exchange rates
- Code style fixes