├── .editorconfig ├── .env.dist ├── .github └── workflows │ ├── ci.yml │ ├── code_quality.yml │ └── documentation.yml ├── .gitignore ├── LICENSE ├── README.md ├── bin └── retailcrm-client ├── composer.json ├── doc ├── compilation_prompt.md ├── customization │ ├── customization.md │ ├── different_psr_implementations.md │ ├── examples │ │ └── custom-api-methods-with-dto │ │ │ ├── README.md │ │ │ ├── app.php │ │ │ ├── composer.json │ │ │ └── src │ │ │ ├── Component │ │ │ ├── Adapter │ │ │ │ └── SymfonyToLiipAdapter.php │ │ │ └── CustomApiMethod.php │ │ │ ├── Dto │ │ │ ├── Customer.php │ │ │ ├── Request │ │ │ │ └── CustomersCreateRequest.php │ │ │ └── Response │ │ │ │ └── CustomersCreateResponse.php │ │ │ └── Factory │ │ │ ├── ClientFactory.php │ │ │ └── SerializerFactory.php │ ├── implementing_custom_api_methods.md │ └── pipelines │ │ ├── implementing_a_handler.md │ │ └── using_a_predefined_handler.md ├── index.md ├── structure.md ├── troubleshooting.md └── usage │ ├── error_handling.md │ ├── event_handing.md │ ├── examples │ ├── complete_error_handling_example.md │ ├── complex_pagination │ │ ├── PaginatedRequestIterator.php │ │ ├── example_customers_history.php │ │ ├── example_customers_list.php │ │ └── index.md │ ├── create_order.md │ ├── fetch_orders.md │ ├── index.md │ └── orders_history.md │ ├── instantiation.md │ ├── sending_a_request.md │ └── usage.md ├── models └── .gitkeep ├── phpcs.xml.dist ├── phpdoc.dist.xml ├── phpmd.xml ├── phpstan-baseline-serializer.neon ├── phpstan-baseline.neon ├── phpstan.neon ├── phpunit.xml.dist ├── src ├── Builder │ ├── ClientBuilder.php │ ├── FilesystemCacheBuilder.php │ └── FormEncoderBuilder.php ├── Client.php ├── Command │ ├── AbstractModelsProcessorCommand.php │ ├── ClearModelsCommand.php │ ├── CompilerPromptCommand.php │ ├── GenerateModelsCommand.php │ └── VerifyModelsCommand.php ├── Component │ ├── ComposerLocator.php │ ├── CustomApiMethod.php │ ├── FilesIteratorChecksumGenerator.php │ ├── FormData │ │ ├── FormEncoder.php │ │ ├── Mapping │ │ │ ├── Accessor.php │ │ │ ├── JsonField.php │ │ │ ├── NoTransform.php │ │ │ ├── PostDeserialize.php │ │ │ ├── PostSerialize.php │ │ │ ├── SerializedName.php │ │ │ └── Type.php │ │ ├── PropertyAnnotations.php │ │ └── Strategy │ │ │ ├── Encode │ │ │ ├── AbstractEncodeStrategy.php │ │ │ ├── DateTimeStrategy.php │ │ │ ├── EncodeStrategyInterface.php │ │ │ ├── EntityStrategy.php │ │ │ ├── SimpleTypeStrategy.php │ │ │ ├── StreamInterfaceStrategy.php │ │ │ └── TypedArrayStrategy.php │ │ │ └── StrategyFactory.php │ ├── ModelsGenerator.php │ ├── PhpFilesIterator.php │ ├── RequestSender.php │ ├── Serializer │ │ ├── Annotation │ │ │ ├── AccessType.php │ │ │ ├── Accessor.php │ │ │ ├── AccessorOrder.php │ │ │ ├── Discriminator.php │ │ │ ├── Exclude.php │ │ │ ├── ExclusionPolicy.php │ │ │ ├── Expose.php │ │ │ ├── Groups.php │ │ │ ├── Inline.php │ │ │ ├── MaxDepth.php │ │ │ ├── PostDeserialize.php │ │ │ ├── PostSerialize.php │ │ │ ├── PreSerialize.php │ │ │ ├── SerializedName.php │ │ │ ├── Since.php │ │ │ ├── SkipWhenEmpty.php │ │ │ ├── Type.php │ │ │ ├── Until.php │ │ │ ├── Version.php │ │ │ └── VirtualProperty.php │ │ ├── ArraySupportDecorator.php │ │ ├── Exception │ │ │ ├── InvalidArgumentException.php │ │ │ ├── InvalidNode.php │ │ │ ├── RuntimeException.php │ │ │ └── SyntaxError.php │ │ ├── Generator │ │ │ ├── DeserializerGenerator.php │ │ │ ├── Recursion.php │ │ │ └── SerializerGenerator.php │ │ ├── ModelsChecksumGenerator.php │ │ ├── Parser │ │ │ ├── JMSCore │ │ │ │ ├── Exception │ │ │ │ │ └── Exception.php │ │ │ │ └── Type │ │ │ │ │ ├── Exception │ │ │ │ │ ├── Exception.php │ │ │ │ │ ├── InvalidNode.php │ │ │ │ │ └── SyntaxError.php │ │ │ │ │ ├── Lexer.php │ │ │ │ │ ├── Parser.php │ │ │ │ │ ├── ParserInterface.php │ │ │ │ │ └── Token.php │ │ │ ├── JMSParser.php │ │ │ └── JMSTypeParser.php │ │ ├── Template │ │ │ ├── AbstractTemplate.php │ │ │ ├── CustomDeserialization.php │ │ │ └── CustomSerialization.php │ │ └── Type │ │ │ └── PropertyTypeMixed.php │ ├── SimpleConnection │ │ ├── RequestVerifier.php │ │ └── TokenCreator.php │ ├── Transformer │ │ ├── DateTimeTransformer.php │ │ ├── RequestTransformer.php │ │ └── ResponseTransformer.php │ └── Utils.php ├── Enum │ ├── ByIdentifier.php │ ├── BySite.php │ ├── CacheDirectories.php │ ├── CombineTechnique.php │ ├── CountryCodeIso3166.php │ ├── Currency.php │ ├── CustomFields │ │ ├── CustomFieldDisplayArea.php │ │ ├── CustomFieldEntity.php │ │ ├── CustomFieldType.php │ │ ├── CustomFieldViewMode.php │ │ └── CustomFieldViewModeMobile.php │ ├── Customers │ │ ├── AttachmentsStatus.php │ │ ├── ContragentType.php │ │ ├── CustomerType.php │ │ ├── Gender.php │ │ └── TasksCountsStatus.php │ ├── Loyalty │ │ ├── AccountStatus.php │ │ ├── BonusOperationEventType.php │ │ ├── BonusOperationType.php │ │ ├── LoyaltyLevelType.php │ │ └── PrivilegeType.php │ ├── NumericBoolean.php │ ├── Order │ │ ├── DeliveryState.php │ │ ├── DiscountType.php │ │ └── PrivilegeType.php │ ├── PaginationLimit.php │ ├── Payments │ │ ├── PaymentInvoiceType.php │ │ └── PaymentObjectType.php │ ├── Product │ │ └── ProductType.php │ ├── Reference │ │ ├── CostGroupColor.php │ │ ├── StoreInventoryType.php │ │ └── StoreType.php │ ├── RequestMethod.php │ ├── SiteAccess.php │ ├── Tasks │ │ └── TaskStatus.php │ ├── Telephony │ │ ├── CallEventHangupStatus.php │ │ ├── CallEventType.php │ │ └── CallResult.php │ ├── Users │ │ └── UserStatus.php │ └── YesNo.php ├── Event │ ├── AbstractRequestEvent.php │ ├── FailureRequestEvent.php │ └── SuccessRequestEvent.php ├── Exception │ ├── Api │ │ ├── AccessDeniedException.php │ │ ├── AccountDoesNotExistException.php │ │ ├── ApiErrorException.php │ │ ├── InvalidCredentialsException.php │ │ ├── MissingCredentialsException.php │ │ ├── MissingParameterException.php │ │ ├── NotFoundException.php │ │ └── ValidationException.php │ ├── ApiException.php │ ├── Client │ │ ├── BuilderException.php │ │ ├── HandlerException.php │ │ └── HttpClientException.php │ └── ClientException.php ├── Factory │ ├── ApiExceptionFactory.php │ ├── ClientFactory.php │ ├── RequestPipelineFactory.php │ ├── ResponsePipelineFactory.php │ ├── SerializerFactory.php │ └── SimpleClientFactory.php ├── Handler │ ├── AbstractHandler.php │ ├── Request │ │ ├── CallbackRequestHandler.php │ │ ├── GetParameterAuthenticatorHandler.php │ │ ├── HeaderAuthenticatorHandler.php │ │ ├── PsrRequestHandler.php │ │ └── RequestDataHandler.php │ └── Response │ │ ├── AbstractResponseHandler.php │ │ ├── AccountNotFoundHandler.php │ │ ├── CallbackResponseHandler.php │ │ ├── ErrorResponseHandler.php │ │ ├── FilesDownloadResponseHandler.php │ │ └── UnmarshalResponseHandler.php ├── Interfaces │ ├── ApiExceptionFactoryAwareInterface.php │ ├── ApiExceptionInterface.php │ ├── AuthenticatorInterface.php │ ├── BuilderInterface.php │ ├── ClientExceptionInterface.php │ ├── ClientFactoryInterface.php │ ├── EventDispatcherAwareInterface.php │ ├── FormEncoderInterface.php │ ├── HandlerInterface.php │ ├── Orders │ │ └── CustomerInterface.php │ ├── PsrFactoriesAwareInterface.php │ ├── RequestInterface.php │ ├── RequestSenderInterface.php │ ├── RequestTransformerInterface.php │ ├── ResponseInterface.php │ ├── ResponseTransformerInterface.php │ └── SerializerAwareInterface.php ├── Model │ ├── Callback │ │ ├── Entity │ │ │ ├── Delivery │ │ │ │ ├── BaseStore.php │ │ │ │ ├── Coordinates.php │ │ │ │ ├── Customer.php │ │ │ │ ├── DeliveryAddress.php │ │ │ │ ├── Manager.php │ │ │ │ ├── Package.php │ │ │ │ ├── PackageItem.php │ │ │ │ ├── PaymentType.php │ │ │ │ ├── RequestProperty │ │ │ │ │ ├── RequestCalculate.php │ │ │ │ │ ├── RequestDelete.php │ │ │ │ │ ├── RequestPrint.php │ │ │ │ │ ├── RequestSave.php │ │ │ │ │ ├── RequestShipmentDelete.php │ │ │ │ │ └── RequestShipmentSave.php │ │ │ │ ├── ResponseProperty │ │ │ │ │ ├── ResponseAutocompleteItem.php │ │ │ │ │ ├── ResponseCalculate.php │ │ │ │ │ ├── ResponseLoadDeliveryData.php │ │ │ │ │ ├── ResponseSave.php │ │ │ │ │ └── ResponseShipmentSave.php │ │ │ │ ├── SaveDeliveryData.php │ │ │ │ ├── SerializedStoreWeekOpeningHours.php │ │ │ │ ├── ShipmentOrder.php │ │ │ │ ├── ShipmentPointList.php │ │ │ │ ├── Store.php │ │ │ │ ├── StoreWorkTime.php │ │ │ │ ├── Tariff.php │ │ │ │ ├── Terminal.php │ │ │ │ └── Unit.php │ │ │ ├── Integration │ │ │ │ ├── BillingInfo.php │ │ │ │ ├── IntegrationModule.php │ │ │ │ └── Settings.php │ │ │ ├── Payments │ │ │ │ ├── Create.php │ │ │ │ ├── ModuleApiRequest.php │ │ │ │ ├── ModuleRefund.php │ │ │ │ └── PaymentCreateResult.php │ │ │ ├── SimpleConnection │ │ │ │ └── RequestProperty │ │ │ │ │ └── RequestConnectionRegister.php │ │ │ └── Store │ │ │ │ ├── InventoriesDataModel.php │ │ │ │ ├── OrderDataModel.php │ │ │ │ ├── PackDataModel.php │ │ │ │ └── PackItemModel.php │ │ ├── Enum │ │ │ └── Recommendations │ │ │ │ └── Mode.php │ │ └── Response │ │ │ ├── Delivery │ │ │ ├── AutocompleteResponse.php │ │ │ ├── CalculateResponse.php │ │ │ ├── GetResponse.php │ │ │ ├── SaveResponse.php │ │ │ ├── ShipmentPointListResponse.php │ │ │ ├── ShipmentSaveResponse.php │ │ │ └── TariffListResponse.php │ │ │ ├── ErrorResponse.php │ │ │ ├── Payments │ │ │ ├── Item.php │ │ │ ├── PaymentCreateResponse.php │ │ │ └── PaymentRefundResponse.php │ │ │ ├── Recommendation │ │ │ └── RecommendationResponse.php │ │ │ ├── SimpleConnection │ │ │ ├── ConnectionConfigResponse.php │ │ │ └── ConnectionRegisterResponse.php │ │ │ └── Store │ │ │ ├── InventoriesUploadResponse.php │ │ │ └── ReserveResponse.php │ ├── Entity │ │ ├── CodeValueModel.php │ │ ├── Costs │ │ │ ├── Cost.php │ │ │ └── CostOrder.php │ │ ├── CursorPagination.php │ │ ├── CustomFields │ │ │ ├── CustomDictionary.php │ │ │ ├── CustomField.php │ │ │ └── SerializedCustomDictionaryElement.php │ │ ├── CustomerInteraction │ │ │ ├── Cart.php │ │ │ ├── CartCustomer.php │ │ │ ├── CartItem.php │ │ │ └── CartOrder.php │ │ ├── Customers │ │ │ ├── Customer.php │ │ │ ├── CustomerAddress.php │ │ │ ├── CustomerContragent.php │ │ │ ├── CustomerHistory.php │ │ │ ├── CustomerNote.php │ │ │ ├── CustomerPhone.php │ │ │ ├── CustomerSubscription.php │ │ │ ├── CustomerTag.php │ │ │ ├── HistoryAddress.php │ │ │ ├── MGChannel.php │ │ │ ├── MGCustomer.php │ │ │ ├── Segment.php │ │ │ ├── SerializedCustomerReference.php │ │ │ ├── Subscription.php │ │ │ └── SubscriptionCategory.php │ │ ├── CustomersCorporate │ │ │ ├── Company.php │ │ │ ├── CustomerContact.php │ │ │ ├── CustomerContactCompany.php │ │ │ ├── CustomerCorporate.php │ │ │ ├── CustomerCorporateHistory.php │ │ │ ├── EntityWithExternalIdInput.php │ │ │ ├── EntityWithExternalIdNameOutput.php │ │ │ ├── SerializedEntityCustomer.php │ │ │ └── SerializedRelationAbstractCustomer.php │ │ ├── Delivery │ │ │ ├── DeliveryCalculation.php │ │ │ ├── DeliveryShipment.php │ │ │ ├── RequestStatusUpdateItem.php │ │ │ ├── SerializedEntityOrder.php │ │ │ ├── SerializedOrder.php │ │ │ ├── SerializedOrderDelivery.php │ │ │ ├── SerializedOrderProduct.php │ │ │ ├── StatusInfo.php │ │ │ └── TimeInterval.php │ │ ├── EntityWithExternalId.php │ │ ├── Files │ │ │ ├── Attachment.php │ │ │ ├── AttachmentCustomer.php │ │ │ ├── AttachmentOrder.php │ │ │ └── File.php │ │ ├── FixExternalRow.php │ │ ├── HistoryApiKey.php │ │ ├── HistoryUser.php │ │ ├── IdModel.php │ │ ├── Integration │ │ │ ├── BillingInfo.php │ │ │ ├── Bot │ │ │ │ └── BotConfiguration.php │ │ │ ├── Currency.php │ │ │ ├── Delivery │ │ │ │ ├── DeliveryConfiguration.php │ │ │ │ ├── DeliveryDataField.php │ │ │ │ ├── PaymentType.php │ │ │ │ ├── Plate.php │ │ │ │ ├── Settings.php │ │ │ │ ├── SettingsStatus.php │ │ │ │ ├── ShipmentPoint.php │ │ │ │ └── Status.php │ │ │ ├── EmbedJs │ │ │ │ └── EmbedJsConfiguration.php │ │ │ ├── IntegrationModule.php │ │ │ ├── IntegrationModuleEditInfo.php │ │ │ ├── Integrations.php │ │ │ ├── Payment │ │ │ │ ├── Actions.php │ │ │ │ ├── PaymentConfiguration.php │ │ │ │ └── Shop.php │ │ │ ├── Recommendation │ │ │ │ ├── Mode.php │ │ │ │ └── RecommendationConfiguration.php │ │ │ ├── Requires.php │ │ │ ├── Store │ │ │ │ ├── Action.php │ │ │ │ └── StoreConfiguration.php │ │ │ ├── Telephony │ │ │ │ ├── SerializedAdditionalCodes.php │ │ │ │ ├── SerializedExternalPhones.php │ │ │ │ └── TelephonyConfiguration.php │ │ │ └── Transport │ │ │ │ └── TransportConfiguration.php │ │ ├── Loyalty │ │ │ ├── BonusDetail.php │ │ │ ├── Customer.php │ │ │ ├── Loyalty.php │ │ │ ├── LoyaltyAccount.php │ │ │ ├── LoyaltyBonus.php │ │ │ ├── LoyaltyCalculation.php │ │ │ ├── LoyaltyEventDiscount.php │ │ │ ├── LoyaltyLevel.php │ │ │ ├── Operation.php │ │ │ ├── OperationBonus.php │ │ │ ├── OperationEvent.php │ │ │ ├── OperationOrder.php │ │ │ ├── OrderProduct.php │ │ │ ├── OrderProductPriceItem.php │ │ │ ├── PriceType.php │ │ │ ├── SerializedCreateLoyaltyAccount.php │ │ │ ├── SerializedLoyalty.php │ │ │ ├── SerializedLoyaltyOrder.php │ │ │ ├── SerializedOrder.php │ │ │ ├── SerializedOrderDelivery.php │ │ │ ├── SerializedOrderProduct.php │ │ │ ├── SerializedOrderProductOffer.php │ │ │ └── SmsVerification.php │ │ ├── Notifications │ │ │ └── Notification.php │ │ ├── Orders │ │ │ ├── Delivery │ │ │ │ ├── CourierPhone.php │ │ │ │ ├── DeliveryData.php │ │ │ │ ├── ItemDeclaredValue.php │ │ │ │ ├── ItemDeclaredValueProduct.php │ │ │ │ ├── OrderDeliveryAddress.php │ │ │ │ ├── Package.php │ │ │ │ ├── PackageItem.php │ │ │ │ ├── PackageItemOrderProduct.php │ │ │ │ ├── SerializedDeliveryService.php │ │ │ │ └── SerializedOrderDelivery.php │ │ │ ├── Items │ │ │ │ ├── AbstractDiscount.php │ │ │ │ ├── ItemProperty.php │ │ │ │ ├── Offer.php │ │ │ │ ├── OrderProduct.php │ │ │ │ ├── OrderProductPriceItem.php │ │ │ │ ├── PriceType.php │ │ │ │ └── Unit.php │ │ │ ├── LinkedOrder.php │ │ │ ├── MarketplaceData.php │ │ │ ├── Order.php │ │ │ ├── OrderContragent.php │ │ │ ├── OrderHistory.php │ │ │ ├── OrderLink.php │ │ │ ├── OrderLoyaltyAccount.php │ │ │ ├── OrderStatusItem.php │ │ │ ├── Payment.php │ │ │ ├── SerializedOrderLink.php │ │ │ ├── SerializedOrderReference.php │ │ │ ├── SerializedPayment.php │ │ │ └── SerializedRelationCustomer.php │ │ ├── Packs │ │ │ ├── OrderProductPack.php │ │ │ └── OrderProductPackHistory.php │ │ ├── Pagination.php │ │ ├── Payments │ │ │ ├── ApiCheckRequest.php │ │ │ ├── ApiCheckResponseResult.php │ │ │ ├── ApiCreateInvoiceRequest.php │ │ │ ├── ApiCreateInvoiceResponseResult.php │ │ │ ├── ApiUpdateInvoiceRequest.php │ │ │ └── ModuleRefund.php │ │ ├── References │ │ │ ├── CostGroup.php │ │ │ ├── CostItem.php │ │ │ ├── Courier.php │ │ │ ├── Currency.php │ │ │ ├── DeliveryService.php │ │ │ ├── DeliveryType.php │ │ │ ├── DeliveryTypePaymentType.php │ │ │ ├── GeoHierarchyRow.php │ │ │ ├── LegalEntity.php │ │ │ ├── MGChannel.php │ │ │ ├── OrderMethod.php │ │ │ ├── OrderProductStatus.php │ │ │ ├── OrderType.php │ │ │ ├── PaymentStatus.php │ │ │ ├── PaymentType.php │ │ │ ├── Point.php │ │ │ ├── PriceType.php │ │ │ ├── SerializedUnit.php │ │ │ ├── Site.php │ │ │ ├── Status.php │ │ │ ├── StatusGroup.php │ │ │ ├── Store.php │ │ │ ├── StoreAddress.php │ │ │ └── StorePhone.php │ │ ├── Settings │ │ │ ├── ChannelSetting.php │ │ │ ├── Feature.php │ │ │ ├── MgOrderCreationSettings.php │ │ │ ├── MgSettings.php │ │ │ ├── NonWorkingDay.php │ │ │ ├── Settings.php │ │ │ ├── Value.php │ │ │ └── WorkTime.php │ │ ├── Source.php │ │ ├── Store │ │ │ ├── Inventory.php │ │ │ ├── Offer.php │ │ │ ├── OfferPrice.php │ │ │ ├── OfferProduct.php │ │ │ ├── PriceUploadInput.php │ │ │ ├── PriceUploadNotFoundResponse.php │ │ │ ├── PriceUploadPricesInput.php │ │ │ ├── Product.php │ │ │ ├── ProductBatchBase.php │ │ │ ├── ProductCreateInput.php │ │ │ ├── ProductEditGroupInput.php │ │ │ ├── ProductEditInput.php │ │ │ ├── ProductEditNotFoundResponse.php │ │ │ ├── ProductGroup.php │ │ │ ├── ProductOffer.php │ │ │ ├── ProductProperty.php │ │ │ ├── ProductPropertyGroup.php │ │ │ ├── ProductPropertyValue.php │ │ │ ├── SerializedProductGroup.php │ │ │ └── StoreOffer.php │ │ ├── Tasks │ │ │ ├── AbstractCustomer.php │ │ │ ├── BaseComment.php │ │ │ ├── Order.php │ │ │ ├── Task.php │ │ │ ├── TaskComment.php │ │ │ └── TaskHistory.php │ │ ├── Telephony │ │ │ ├── Call.php │ │ │ ├── CallEvent.php │ │ │ ├── SerializedCampaign.php │ │ │ ├── SerializedCustomer.php │ │ │ ├── SerializedLinks.php │ │ │ ├── SerializedManager.php │ │ │ └── SerializedWebAnalyticsData.php │ │ ├── Users │ │ │ ├── Group.php │ │ │ └── User.php │ │ ├── Verification │ │ │ ├── SmsVerification.php │ │ │ └── SmsVerificationConfirm.php │ │ └── WebAnalytics │ │ │ ├── ClientId.php │ │ │ ├── Customer.php │ │ │ ├── Order.php │ │ │ ├── Page.php │ │ │ ├── Source.php │ │ │ └── Visit.php │ ├── Filter │ │ ├── Costs │ │ │ └── CostFilter.php │ │ ├── CustomFields │ │ │ ├── CustomDictionaryFilter.php │ │ │ └── CustomFieldFilter.php │ │ ├── Customers │ │ │ ├── CustomerFilter.php │ │ │ ├── CustomerHistoryFilter.php │ │ │ ├── CustomerNoteFilter.php │ │ │ └── CustomerSubscriptionFilter.php │ │ ├── CustomersCorporate │ │ │ ├── CompanyFilter.php │ │ │ ├── CustomerAddressFilter.php │ │ │ ├── CustomerContactFilter.php │ │ │ └── CustomerCorporateFilter.php │ │ ├── Delivery │ │ │ └── ApiDeliveryShipmentFilterType.php │ │ ├── Files │ │ │ └── FileFilter.php │ │ ├── Loyalty │ │ │ ├── LoyaltyAccountApiFilterType.php │ │ │ ├── LoyaltyAccountBonusApiFilterType.php │ │ │ ├── LoyaltyAccountBonusOperationsApiFilterType.php │ │ │ ├── LoyaltyApiFilterType.php │ │ │ └── LoyaltyBonusOperationsApiFilterType.php │ │ ├── Orders │ │ │ ├── OrderFilter.php │ │ │ └── OrderHistoryFilterV4Type.php │ │ ├── Packs │ │ │ ├── OrderProductPackFilter.php │ │ │ └── OrderProductPackHistoryFilterType.php │ │ ├── Segments │ │ │ └── SegmentApiFilter.php │ │ ├── Store │ │ │ ├── InventoryFilterType.php │ │ │ ├── OfferFilterType.php │ │ │ ├── ProductFilterType.php │ │ │ ├── ProductGroupFilterType.php │ │ │ ├── ProductPropertiesFilterType.php │ │ │ ├── ProductProperty.php │ │ │ ├── ProductPropertyGroup.php │ │ │ └── ProductPropertyValuesFilterType.php │ │ ├── Tasks │ │ │ ├── TaskFilter.php │ │ │ └── TaskHistoryFilter.php │ │ └── Users │ │ │ └── ApiUserFilter.php │ ├── Request │ │ ├── Api │ │ │ └── FeaturesCheckRequest.php │ │ ├── ByAndSiteByRequest.php │ │ ├── BySiteRequest.php │ │ ├── Costs │ │ │ ├── CostsCreateRequest.php │ │ │ ├── CostsDeleteRequest.php │ │ │ ├── CostsEditRequest.php │ │ │ ├── CostsRequest.php │ │ │ └── CostsUploadRequest.php │ │ ├── CustomFields │ │ │ ├── CustomDictionaryCreateRequest.php │ │ │ ├── CustomFieldsCreateRequest.php │ │ │ ├── CustomFieldsDictionariesRequest.php │ │ │ └── CustomFieldsRequest.php │ │ ├── CustomerInteraction │ │ │ ├── CustomerInteractionCartClearRequest.php │ │ │ └── CustomerInteractionCartSetRequest.php │ │ ├── Customers │ │ │ ├── CustomersCombineRequest.php │ │ │ ├── CustomersCreateRequest.php │ │ │ ├── CustomersEditRequest.php │ │ │ ├── CustomersFixExternalIdsRequest.php │ │ │ ├── CustomersHistoryRequest.php │ │ │ ├── CustomersNotesCreateRequest.php │ │ │ ├── CustomersNotesRequest.php │ │ │ ├── CustomersRequest.php │ │ │ ├── CustomersSubscriptionsRequest.php │ │ │ └── CustomersUploadRequest.php │ │ ├── CustomersCorporate │ │ │ ├── CustomersCorporateAddressesCreateRequest.php │ │ │ ├── CustomersCorporateAddressesEditRequest.php │ │ │ ├── CustomersCorporateAddressesRequest.php │ │ │ ├── CustomersCorporateCompaniesCreateRequest.php │ │ │ ├── CustomersCorporateCompaniesEditRequest.php │ │ │ ├── CustomersCorporateCompaniesRequest.php │ │ │ ├── CustomersCorporateContactsCreateRequest.php │ │ │ ├── CustomersCorporateContactsEditRequest.php │ │ │ ├── CustomersCorporateContactsRequest.php │ │ │ ├── CustomersCorporateCreateRequest.php │ │ │ ├── CustomersCorporateEditRequest.php │ │ │ ├── CustomersCorporateFixExternalIdsRequest.php │ │ │ ├── CustomersCorporateRequest.php │ │ │ └── CustomersCorporateUploadRequest.php │ │ ├── Delivery │ │ │ ├── DeliveryCalculateRequest.php │ │ │ ├── DeliveryShipmentsCreateRequest.php │ │ │ ├── DeliveryShipmentsRequest.php │ │ │ └── TrackingRequest.php │ │ ├── Files │ │ │ ├── FilesEditRequest.php │ │ │ ├── FilesRequest.php │ │ │ └── FilesUploadRequest.php │ │ ├── Integration │ │ │ ├── IntegrationModuleUpdateScopesRequest.php │ │ │ └── IntegrationModulesEditRequest.php │ │ ├── Loyalty │ │ │ ├── AllBonusOperationsRequest.php │ │ │ ├── BonusAccountDetailsRequest.php │ │ │ ├── LoyaltiesRequest.php │ │ │ ├── LoyaltyAccountCreateRequest.php │ │ │ ├── LoyaltyAccountEditRequest.php │ │ │ ├── LoyaltyAccountsRequest.php │ │ │ ├── LoyaltyBonusChargeRequest.php │ │ │ ├── LoyaltyBonusCreditRequest.php │ │ │ ├── LoyaltyBonusOperationsRequest.php │ │ │ └── LoyaltyCalculateRequest.php │ │ ├── Notifications │ │ │ └── NotificationsSendRequest.php │ │ ├── Orders │ │ │ ├── OrderDeliveryCancelRequest.php │ │ │ ├── OrderLoyaltyCancelBonusOperationsRequest.php │ │ │ ├── OrdersCombineRequest.php │ │ │ ├── OrdersCreateRequest.php │ │ │ ├── OrdersEditRequest.php │ │ │ ├── OrdersFixExternalIdsRequest.php │ │ │ ├── OrdersHistoryRequest.php │ │ │ ├── OrdersLinksCreateRequest.php │ │ │ ├── OrdersLoyaltyApplyRequest.php │ │ │ ├── OrdersPaymentsCreateRequest.php │ │ │ ├── OrdersPaymentsEditRequest.php │ │ │ ├── OrdersRequest.php │ │ │ ├── OrdersStatusesRequest.php │ │ │ └── OrdersUploadRequest.php │ │ ├── Packs │ │ │ ├── PacksCreateRequest.php │ │ │ ├── PacksHistoryRequest.php │ │ │ └── PacksRequest.php │ │ ├── Payments │ │ │ ├── PaymentCheckRequest.php │ │ │ ├── PaymentCreateInvoiceRequest.php │ │ │ └── PaymentUpdateInvoiceRequest.php │ │ ├── References │ │ │ ├── CostGroupsEditRequest.php │ │ │ ├── CostItemsEditRequest.php │ │ │ ├── CouriersCreateRequest.php │ │ │ ├── CurrenciesCreateRequest.php │ │ │ ├── DeliveryServicesEditRequest.php │ │ │ ├── DeliveryTypesEditRequest.php │ │ │ ├── LegalEntityEditRequest.php │ │ │ ├── OrderMethodsEditRequest.php │ │ │ ├── OrderTypesEditRequest.php │ │ │ ├── PaymentStatusesEditRequest.php │ │ │ ├── PaymentTypesEditRequest.php │ │ │ ├── PriceTypesEditRequest.php │ │ │ ├── ProductStatusesEditRequest.php │ │ │ ├── SitesEditRequest.php │ │ │ ├── StatusesEditRequest.php │ │ │ ├── StoresEditRequest.php │ │ │ └── UnitsEditRequest.php │ │ ├── Segments │ │ │ └── SegmentsRequest.php │ │ ├── Store │ │ │ ├── InventoriesRequest.php │ │ │ ├── InventoriesUploadRequest.php │ │ │ ├── OffersRequest.php │ │ │ ├── PricesUploadRequest.php │ │ │ ├── ProductBatchEditRequest.php │ │ │ ├── ProductGroupsCreateRequest.php │ │ │ ├── ProductGroupsEditRequest.php │ │ │ ├── ProductGroupsRequest.php │ │ │ ├── ProductPropertiesRequest.php │ │ │ ├── ProductPropertiesSort.php │ │ │ ├── ProductPropertyValuesRequest.php │ │ │ ├── ProductsBatchCreateRequest.php │ │ │ └── ProductsRequest.php │ │ ├── Tasks │ │ │ ├── TaskGetCommentsRequest.php │ │ │ ├── TaskHistoryRequest.php │ │ │ ├── TasksCreateRequest.php │ │ │ └── TasksRequest.php │ │ ├── Telephony │ │ │ ├── TelephonyCallEventRequest.php │ │ │ ├── TelephonyCallsUploadRequest.php │ │ │ └── TelephonyManagerRequest.php │ │ ├── Traits │ │ │ ├── HistoryPageLimitTrait.php │ │ │ └── PageLimitTrait.php │ │ ├── Users │ │ │ ├── UserGroupsRequest.php │ │ │ ├── UsersRequest.php │ │ │ └── UsersStatusRequest.php │ │ ├── Verification │ │ │ └── SmsVerificationConfirmRequest.php │ │ └── WebAnalytics │ │ │ ├── ClientIdUploadRequest.php │ │ │ ├── SourcesUploadRequest.php │ │ │ └── VisitsUploadRequest.php │ ├── RequestData.php │ ├── Response │ │ ├── AbstractCursorPaginatedResponse.php │ │ ├── AbstractPaginatedResponse.php │ │ ├── Api │ │ │ ├── ApiVersionsResponse.php │ │ │ ├── Credentials.php │ │ │ ├── FeaturesCheckResponse.php │ │ │ └── SystemInfoResponse.php │ │ ├── Costs │ │ │ ├── CostsDeleteResponse.php │ │ │ ├── CostsGetResponse.php │ │ │ ├── CostsResponse.php │ │ │ └── CostsUploadResponse.php │ │ ├── CustomFields │ │ │ ├── CustomDictionaryCreateResponse.php │ │ │ ├── CustomDictionaryGetResponse.php │ │ │ ├── CustomFieldsCreateResponse.php │ │ │ ├── CustomFieldsDictionariesResponse.php │ │ │ ├── CustomFieldsEditResponse.php │ │ │ ├── CustomFieldsGetResponse.php │ │ │ └── CustomFieldsResponse.php │ │ ├── CustomerInteraction │ │ │ └── CustomerInteractionCartGetResponse.php │ │ ├── Customers │ │ │ ├── CustomerNotesResponse.php │ │ │ ├── CustomersEditResponse.php │ │ │ ├── CustomersGetResponse.php │ │ │ ├── CustomersHistoryResponse.php │ │ │ ├── CustomersResponse.php │ │ │ └── CustomersUploadResponse.php │ │ ├── CustomersCorporate │ │ │ ├── CustomersCorporateAddressesResponse.php │ │ │ ├── CustomersCorporateCompaniesResponse.php │ │ │ ├── CustomersCorporateContactsResponse.php │ │ │ ├── CustomersCorporateGetResponse.php │ │ │ ├── CustomersCorporateHistoryResponse.php │ │ │ └── CustomersCorporateResponse.php │ │ ├── Delivery │ │ │ ├── DeliveryCalculateResponse.php │ │ │ ├── DeliveryShipmentsCreateResponse.php │ │ │ ├── DeliveryShipmentsGetResponse.php │ │ │ └── DeliveryShipmentsResponse.php │ │ ├── ErrorResponse.php │ │ ├── Files │ │ │ ├── FilesDownloadResponse.php │ │ │ ├── FilesGetResponse.php │ │ │ ├── FilesResponse.php │ │ │ └── FilesUploadResponse.php │ │ ├── IdResponse.php │ │ ├── Integration │ │ │ ├── IntegrationModuleUpdateScopesResponse.php │ │ │ ├── IntegrationModulesEditResponse.php │ │ │ └── IntegrationModulesGetResponse.php │ │ ├── Loyalty │ │ │ ├── AllBonusOperationsResponse.php │ │ │ ├── BonusAccountDetailsResponse.php │ │ │ ├── LoyaltiesResponse.php │ │ │ ├── LoyaltyAccountActivateResponse.php │ │ │ ├── LoyaltyAccountCreateResponse.php │ │ │ ├── LoyaltyAccountResponse.php │ │ │ ├── LoyaltyAccountsResponse.php │ │ │ ├── LoyaltyBonusCreditResponse.php │ │ │ ├── LoyaltyBonusOperationsResponse.php │ │ │ ├── LoyaltyBonusStatisticResponse.php │ │ │ ├── LoyaltyCalculateResponse.php │ │ │ └── LoyaltyResponse.php │ │ ├── Orders │ │ │ ├── OrdersCombineResponse.php │ │ │ ├── OrdersCreateResponse.php │ │ │ ├── OrdersGetResponse.php │ │ │ ├── OrdersHistoryResponse.php │ │ │ ├── OrdersLoyaltyApplyResponse.php │ │ │ ├── OrdersResponse.php │ │ │ ├── OrdersStatusesResponse.php │ │ │ └── OrdersUploadResponse.php │ │ ├── Packs │ │ │ ├── PacksGetResponse.php │ │ │ ├── PacksHistoryResponse.php │ │ │ └── PacksResponse.php │ │ ├── Payments │ │ │ ├── PaymentCheckResponse.php │ │ │ └── PaymentCreateInvoiceResponse.php │ │ ├── References │ │ │ ├── CostGroupsResponse.php │ │ │ ├── CostItemsResponse.php │ │ │ ├── CountriesResponse.php │ │ │ ├── CouriersResponse.php │ │ │ ├── CurrenciesResponse.php │ │ │ ├── DeliveryServicesResponse.php │ │ │ ├── DeliveryTypesResponse.php │ │ │ ├── LegalEntitiesResponse.php │ │ │ ├── MgChannelsResponse.php │ │ │ ├── OrderMethodsResponse.php │ │ │ ├── OrderTypesResponse.php │ │ │ ├── PaymentStatusesResponse.php │ │ │ ├── PaymentTypesResponse.php │ │ │ ├── PriceTypesResponse.php │ │ │ ├── ProductStatusesResponse.php │ │ │ ├── SitesResponse.php │ │ │ ├── StatusGroupsResponse.php │ │ │ ├── StatusesResponse.php │ │ │ ├── StoresResponse.php │ │ │ └── UnitsResponse.php │ │ ├── Segments │ │ │ └── SegmentsResponse.php │ │ ├── Settings │ │ │ └── SettingsResponse.php │ │ ├── Store │ │ │ ├── InventoriesResponse.php │ │ │ ├── InventoriesUploadResponse.php │ │ │ ├── OffersResponse.php │ │ │ ├── PricesUploadResponse.php │ │ │ ├── ProductBatchEditResponse.php │ │ │ ├── ProductGroupsResponse.php │ │ │ ├── ProductPropertiesResponse.php │ │ │ ├── ProductPropertyValuesResponse.php │ │ │ ├── ProductsBatchCreateResponse.php │ │ │ └── ProductsResponse.php │ │ ├── SuccessResponse.php │ │ ├── Tasks │ │ │ ├── TaskGetCommentsResponse.php │ │ │ ├── TasksGetResponse.php │ │ │ ├── TasksHistoryResponse.php │ │ │ └── TasksResponse.php │ │ ├── Telephony │ │ │ ├── CallEventResponse.php │ │ │ ├── CallsUploadResponse.php │ │ │ └── ManagerResponse.php │ │ ├── Users │ │ │ ├── UserGroupsResponse.php │ │ │ ├── UsersGetResponse.php │ │ │ └── UsersResponse.php │ │ ├── Verification │ │ │ ├── SmsVerificationConfirmResponse.php │ │ │ └── SmsVerificationStatusResponse.php │ │ └── WebAnalytics │ │ │ ├── ClientIdUploadResponse.php │ │ │ ├── SourcesUploadResponse.php │ │ │ └── VisitsUploadResponse.php │ └── ResponseData.php ├── ResourceGroup │ ├── AbstractApiResourceGroup.php │ ├── Api.php │ ├── Costs.php │ ├── CustomFields.php │ ├── CustomMethods.php │ ├── CustomerInteraction.php │ ├── Customers.php │ ├── CustomersCorporate.php │ ├── Delivery.php │ ├── Features.php │ ├── Files.php │ ├── Integration.php │ ├── Loyalty.php │ ├── Notifications.php │ ├── Orders.php │ ├── Packs.php │ ├── Payments.php │ ├── References.php │ ├── Segments.php │ ├── Settings.php │ ├── Statistics.php │ ├── Store.php │ ├── Tasks.php │ ├── Telephony.php │ ├── Users.php │ ├── Verification.php │ └── WebAnalytics.php └── Traits │ ├── ApiExceptionFactoryAwareTrait.php │ ├── BaseUrlAwareTrait.php │ ├── EventDispatcherAwareTrait.php │ ├── PsrFactoriesAwareTrait.php │ └── SerializerAwareTrait.php └── tests ├── bootstrap.php ├── src ├── Builder │ └── ClientBuilderTest.php ├── ClientTest.php ├── Command │ ├── ClearModelsCommandTest.php │ ├── CompilerPromptCommandTest.php │ ├── GenerateModelsCommandTest.php │ └── VerifyModelsCommandTest.php ├── Component │ ├── ComposerLocatorTest.php │ ├── CustomApiMethodTest.php │ ├── FilesIteratorChecksumGeneratorTest.php │ ├── PhpFilesIteratorTest.php │ ├── Serializer │ │ └── ModelsChecksumGeneratorTest.php │ ├── SimpleConnection │ │ ├── RequestVerifierTest.php │ │ └── TokenCreatorTest.php │ └── UtilsTest.php ├── Exception │ └── ClientExceptionTest.php ├── Factory │ ├── ApiExceptionFactoryTest.php │ ├── ClientFactoryTest.php │ └── SimpleClientFactoryTest.php ├── Handler │ ├── Request │ │ └── CallbackRequestHandlerTest.php │ └── Response │ │ ├── CallbackResponseHandlerTest.php │ │ └── FilesDownloadResponseHandlerTest.php ├── Model │ ├── Callback │ │ └── Entity │ │ │ ├── Delivery │ │ │ ├── CustomerTest.php │ │ │ └── ShipmentPointListTest.php │ │ │ ├── Integration │ │ │ └── SettingsTest.php │ │ │ └── SimpleConnection │ │ │ └── RequestProperty │ │ │ └── RequestConnectionRegisterTest.php │ └── Entity │ │ └── Integration │ │ └── Delivery │ │ └── StatusTest.php └── ResourceGroup │ ├── AbstractApiResourceGroupTest.php │ ├── ApiTest.php │ ├── CostsTest.php │ ├── CustomFieldsTest.php │ ├── CustomMethodsTest.php │ ├── CustomerInteractionTest.php │ ├── CustomersCorporateTest.php │ ├── CustomersTest.php │ ├── DeliveryTest.php │ ├── ErrorTest.php │ ├── FeaturesTest.php │ ├── FilesTest.php │ ├── IntegrationTests.php │ ├── LoyaltyTest.php │ ├── NotificationsTest.php │ ├── OrdersTest.php │ ├── PacksTest.php │ ├── PaymentsTest.php │ ├── ReferencesTest.php │ ├── SegmentsTest.php │ ├── SettingsTest.php │ ├── StatisticsTest.php │ ├── StoreTest.php │ ├── TasksTest.php │ ├── TelephonyTest.php │ ├── UsersTest.php │ ├── VerificationTest.php │ └── WebAnalyticsTest.php └── utils ├── APIVersionsResponse.php ├── ArrayLogger.php ├── ClientFactoryDependentService.php ├── Exception └── MatcherException.php ├── Factory └── TestClientFactory.php ├── JsonFormFieldMatcher.php ├── PockBuilder.php ├── ReflectionUtils.php ├── TestCase ├── AbstractApiResourceGroupTestCase.php └── ClientTestCase.php └── TestConfig.php /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 4 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.{less,css,yml,json}] 12 | indent_size = 2 13 | 14 | [*.md] 15 | trim_trailing_whitespace = false 16 | -------------------------------------------------------------------------------- /.env.dist: -------------------------------------------------------------------------------- 1 | # This file can be used change api url and api key in tests. Useful when you want to use real networking for test case. 2 | # Follow these steps if you want to use real networking for your test case: 3 | # - Replace credentials below with your own. 4 | # - Use `php-http/curl-client` as an argument for `TestClientFactory::createClient`. 5 | API_URL=https://test.retailcrm.pro/ 6 | API_KEY=testkey 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Composer files. 2 | /vendor 3 | composer.lock 4 | composer.phar 5 | 6 | # Code Quality tools artifacts. 7 | coverage.xml 8 | test-report.xml 9 | phpunit.xml 10 | .php_cs.cache 11 | .phpunit.result.cache 12 | 13 | # phpDocumentor files. 14 | .phpdoc 15 | docs 16 | phpDocumentor.phar 17 | 18 | # Ignore autogenerated code. 19 | models/*.php 20 | models/checksum.json 21 | 22 | # Different environment-related files. 23 | .idea 24 | .DS_Store 25 | .settings 26 | .buildpath 27 | .project 28 | .swp 29 | /nbproject 30 | .env 31 | 32 | .docker 33 | docker* 34 | Makefile 35 | -------------------------------------------------------------------------------- /doc/customization/examples/custom-api-methods-with-dto/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "retailcrm/custom-api-methods-with-dto-example", 3 | "description": "This project demonstrates DTO usage with the custom methods.", 4 | "type": "project", 5 | "require": { 6 | "retailcrm/api-client-php": "^6", 7 | "symfony/serializer": "^5.3", 8 | "symfony/property-access": "^5.3" 9 | }, 10 | "license": "MIT", 11 | "autoload": { 12 | "psr-4": { 13 | "RetailCrm\\Examples\\CustomMethodsDto\\": "src/" 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /doc/customization/examples/custom-api-methods-with-dto/src/Dto/Customer.php: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | src/ 12 | tests/ 13 | 14 | src/Component/Serializer/Generator/* 15 | src/Component/Serializer/Parser/* 16 | src/Component/Serializer/ArraySupportDecorator.php 17 | 18 | -------------------------------------------------------------------------------- /phpdoc.dist.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | RetailCRM API Client 9 | 10 | docs/build/html 11 | docs/build/cache 12 | 13 | 14 | 15 | public 16 | 17 | src 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- 1 | includes: 2 | - phpstan-baseline-serializer.neon 3 | - phpstan-baseline.neon # TODO: This should be removed eventually. 4 | 5 | parameters: 6 | level: max 7 | paths: 8 | - src 9 | - tests 10 | -------------------------------------------------------------------------------- /src/Component/FormData/Mapping/JsonField.php: -------------------------------------------------------------------------------- 1 | format($this->innerType); 30 | } 31 | 32 | return null; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/AccessType.php: -------------------------------------------------------------------------------- 1 | 12 | * @internal 13 | */ 14 | final class AccessType 15 | { 16 | /** 17 | * @Required 18 | * @var string 19 | */ 20 | public $type; 21 | } 22 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/Accessor.php: -------------------------------------------------------------------------------- 1 | 12 | * @internal 13 | */ 14 | final class Accessor 15 | { 16 | /** 17 | * @var string 18 | */ 19 | public $getter; 20 | 21 | /** 22 | * @var string 23 | */ 24 | public $setter; 25 | } 26 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/AccessorOrder.php: -------------------------------------------------------------------------------- 1 | 14 | * @internal 15 | */ 16 | final class AccessorOrder 17 | { 18 | /** 19 | * @Required 20 | * @var string 21 | */ 22 | public $order; 23 | 24 | /** 25 | * @var array 26 | */ 27 | public $custom = []; 28 | } 29 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/Discriminator.php: -------------------------------------------------------------------------------- 1 | 11 | * @internal 12 | */ 13 | class Discriminator 14 | { 15 | /** @var array */ 16 | public $map; 17 | 18 | /** @var string */ 19 | public $field = 'type'; 20 | 21 | /** @var bool */ 22 | public $disabled = false; 23 | 24 | /** @var string[] */ 25 | public $groups = []; 26 | } 27 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/Exclude.php: -------------------------------------------------------------------------------- 1 | 11 | * @internal 12 | */ 13 | final class Exclude 14 | { 15 | /** 16 | * @var string 17 | */ 18 | public $if; 19 | } 20 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/Expose.php: -------------------------------------------------------------------------------- 1 | 11 | * @internal 12 | */ 13 | final class Expose 14 | { 15 | /** 16 | * @var string 17 | */ 18 | public $if; 19 | } 20 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/Groups.php: -------------------------------------------------------------------------------- 1 | 11 | * @internal 12 | */ 13 | final class Groups 14 | { 15 | /** @var array @Required */ 16 | public $groups; 17 | } 18 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/Inline.php: -------------------------------------------------------------------------------- 1 | 11 | * @internal 12 | */ 13 | final class Inline 14 | { 15 | } 16 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/MaxDepth.php: -------------------------------------------------------------------------------- 1 | 11 | * @internal 12 | */ 13 | final class MaxDepth 14 | { 15 | /** 16 | * @Required 17 | * @var int 18 | */ 19 | public $depth; 20 | } 21 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/PostDeserialize.php: -------------------------------------------------------------------------------- 1 | 17 | * @internal 18 | */ 19 | final class PostDeserialize 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/PostSerialize.php: -------------------------------------------------------------------------------- 1 | 11 | * @internal 12 | */ 13 | final class PostSerialize 14 | { 15 | } 16 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/PreSerialize.php: -------------------------------------------------------------------------------- 1 | 18 | * @internal 19 | */ 20 | final class PreSerialize 21 | { 22 | } 23 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/Since.php: -------------------------------------------------------------------------------- 1 | 11 | * @internal 12 | */ 13 | final class Since extends Version 14 | { 15 | } 16 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/SkipWhenEmpty.php: -------------------------------------------------------------------------------- 1 | 11 | * @internal 12 | */ 13 | final class SkipWhenEmpty 14 | { 15 | } 16 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/Type.php: -------------------------------------------------------------------------------- 1 | 11 | * @internal 12 | */ 13 | final class Type 14 | { 15 | /** 16 | * @Required 17 | * @var string 18 | */ 19 | public $name; 20 | } 21 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/Until.php: -------------------------------------------------------------------------------- 1 | 11 | * @internal 12 | */ 13 | final class Until extends Version 14 | { 15 | } 16 | -------------------------------------------------------------------------------- /src/Component/Serializer/Annotation/Version.php: -------------------------------------------------------------------------------- 1 | 12 | * @internal 13 | */ 14 | abstract class Version 15 | { 16 | /** 17 | * @Required 18 | * @var string 19 | */ 20 | public $version; 21 | } 22 | -------------------------------------------------------------------------------- /src/Component/Serializer/Exception/InvalidArgumentException.php: -------------------------------------------------------------------------------- 1 | 15 | * @internal 16 | */ 17 | class InvalidArgumentException extends BaseException 18 | { 19 | } 20 | -------------------------------------------------------------------------------- /src/Component/Serializer/Exception/InvalidNode.php: -------------------------------------------------------------------------------- 1 | 20 | * @internal 21 | */ 22 | class InvalidNode extends LogicException 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /src/Component/Serializer/Exception/RuntimeException.php: -------------------------------------------------------------------------------- 1 | 15 | * @internal 16 | */ 17 | class RuntimeException extends BaseException 18 | { 19 | public static function noMetadataForProperty(string $class, string $prop): self 20 | { 21 | return new self(sprintf( 22 | 'You must define a type for %s::$%s.', 23 | $class, 24 | $prop 25 | )); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Component/Serializer/Exception/SyntaxError.php: -------------------------------------------------------------------------------- 1 | 20 | * @internal 21 | */ 22 | class SyntaxError extends RuntimeException 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /src/Component/Serializer/Parser/JMSCore/Exception/Exception.php: -------------------------------------------------------------------------------- 1 | 11 | */ 12 | interface Exception extends \Throwable 13 | { 14 | } 15 | -------------------------------------------------------------------------------- /src/Component/Serializer/Parser/JMSCore/Type/Exception/Exception.php: -------------------------------------------------------------------------------- 1 | apiKey, $secret); 12 | 13 | return hash_equals($hash, $registerRequest->token); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Component/SimpleConnection/TokenCreator.php: -------------------------------------------------------------------------------- 1 | getErrorResponse()->combinedTo; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Exception/Api/ValidationException.php: -------------------------------------------------------------------------------- 1 | getMessage(), $this->getCode(), $this->getTraceAsString()); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/Factory/SerializerFactory.php: -------------------------------------------------------------------------------- 1 | ") 26 | * @JMS\SerializedName("offers") 27 | */ 28 | public $offers; 29 | } 30 | -------------------------------------------------------------------------------- /src/Model/Callback/Enum/Recommendations/Mode.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("result") 28 | */ 29 | public $result; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Callback/Response/ErrorResponse.php: -------------------------------------------------------------------------------- 1 | ") 34 | * @JMS\SerializedName("names") 35 | */ 36 | public $names; 37 | } 38 | -------------------------------------------------------------------------------- /src/Model/Entity/Integration/Requires.php: -------------------------------------------------------------------------------- 1 | ") 26 | * @JMS\SerializedName("actions") 27 | */ 28 | public $actions; 29 | } 30 | -------------------------------------------------------------------------------- /src/Model/Entity/Loyalty/BonusDetail.php: -------------------------------------------------------------------------------- 1 | ") 26 | * @JMS\SerializedName("date") 27 | */ 28 | public $date; 29 | 30 | /** 31 | * @var float 32 | * 33 | * @JMS\Type("float") 34 | * @JMS\SerializedName("amount") 35 | */ 36 | public $amount; 37 | } 38 | -------------------------------------------------------------------------------- /src/Model/Entity/Loyalty/LoyaltyEventDiscount.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("activationDate") 28 | */ 29 | public $activationDate; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Entity/Loyalty/OperationEvent.php: -------------------------------------------------------------------------------- 1 | code = $code; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/Model/Entity/Loyalty/SerializedLoyalty.php: -------------------------------------------------------------------------------- 1 | ") 35 | * @JMS\SerializedName("updated_at") 36 | */ 37 | public $updatedAt; 38 | } 39 | -------------------------------------------------------------------------------- /src/Model/Entity/Store/ProductCreateInput.php: -------------------------------------------------------------------------------- 1 | ") 26 | * @Form\SerializedName("date") 27 | */ 28 | public $date; 29 | } 30 | -------------------------------------------------------------------------------- /src/Model/Filter/Store/ProductProperty.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("features") 28 | */ 29 | public $features; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Request/Costs/CostsDeleteRequest.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @Form\SerializedName("ids") 28 | */ 29 | public $ids = []; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Request/Costs/CostsEditRequest.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @Form\SerializedName("costs") 28 | * @Form\JsonField() 29 | */ 30 | public $costs; 31 | } 32 | -------------------------------------------------------------------------------- /src/Model/Request/CustomerInteraction/CustomerInteractionCartSetRequest.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @Form\SerializedName("statusUpdate") 28 | * @Form\JsonField() 29 | */ 30 | public $statusUpdate; 31 | } 32 | -------------------------------------------------------------------------------- /src/Model/Request/Files/FilesEditRequest.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("versions") 28 | */ 29 | public $versions; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Api/FeaturesCheckResponse.php: -------------------------------------------------------------------------------- 1 | ") 28 | * @JMS\SerializedName("features") 29 | */ 30 | public $features; 31 | } 32 | -------------------------------------------------------------------------------- /src/Model/Response/Costs/CostsGetResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("costs") 28 | */ 29 | public $costs; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Costs/CostsUploadResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("uploadedCosts") 28 | */ 29 | public $uploadedCosts; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/CustomFields/CustomDictionaryCreateResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("notes") 28 | */ 29 | public $notes; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Customers/CustomersEditResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("customers") 28 | */ 29 | public $customers; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Delivery/DeliveryShipmentsCreateResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("files") 28 | */ 29 | public $files; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Files/FilesUploadResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("loyalties") 28 | */ 29 | public $loyalties; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Loyalty/LoyaltyAccountResponse.php: -------------------------------------------------------------------------------- 1 | 25 | * 26 | * @JMS\Type("array") 27 | * @JMS\SerializedName("errors") 28 | */ 29 | public $errors; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Orders/OrdersCreateResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("orders") 28 | */ 29 | public $orders; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Orders/OrdersStatusesResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("orders") 28 | */ 29 | public $orders; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Packs/PacksGetResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("packs") 28 | */ 29 | public $packs; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Payments/PaymentCheckResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("costGroups") 28 | */ 29 | public $costGroups; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/CostItemsResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("costItems") 28 | */ 29 | public $costItems; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/CountriesResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("countriesIso") 28 | */ 29 | public $countriesIso; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/CouriersResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("couriers") 28 | */ 29 | public $couriers; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/CurrenciesResponse.php: -------------------------------------------------------------------------------- 1 | ") 28 | * @JMS\SerializedName("currencies") 29 | */ 30 | public $currencies; 31 | } 32 | -------------------------------------------------------------------------------- /src/Model/Response/References/DeliveryTypesResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("deliveryTypes") 28 | */ 29 | public $deliveryTypes; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/LegalEntitiesResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("legalEntities") 28 | */ 29 | public $legalEntities; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/MgChannelsResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("mgChannels") 28 | */ 29 | public $mgChannels; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/OrderMethodsResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("orderMethods") 28 | */ 29 | public $orderMethods; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/OrderTypesResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("orderTypes") 28 | */ 29 | public $orderTypes; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/PaymentStatusesResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("paymentStatuses") 28 | */ 29 | public $paymentStatuses; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/PaymentTypesResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("paymentTypes") 28 | */ 29 | public $paymentTypes; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/PriceTypesResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("priceTypes") 28 | */ 29 | public $priceTypes; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/SitesResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("sites") 28 | */ 29 | public $sites; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/StatusGroupsResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("statusGroups") 28 | */ 29 | public $statusGroups; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/StatusesResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("statuses") 28 | */ 29 | public $statuses; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/StoresResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("stores") 28 | */ 29 | public $stores; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/References/UnitsResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("units") 28 | */ 29 | public $units; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Segments/SegmentsResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("segments") 28 | */ 29 | public $segments; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Settings/SettingsResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("offers") 28 | */ 29 | public $offers; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Store/OffersResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("offers") 28 | */ 29 | public $offers; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Store/ProductGroupsResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("productGroup") 28 | */ 29 | public $productGroup; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Store/ProductPropertiesResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("properties") 28 | */ 29 | public $properties; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Store/ProductsResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("products") 28 | */ 29 | public $products; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/SuccessResponse.php: -------------------------------------------------------------------------------- 1 | ") 28 | * @JMS\SerializedName("comments") 29 | */ 30 | public $comments; 31 | } 32 | -------------------------------------------------------------------------------- /src/Model/Response/Tasks/TasksGetResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("tasks") 28 | */ 29 | public $tasks; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Users/UserGroupsResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("groups") 28 | */ 29 | public $groups; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Users/UsersGetResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("users") 28 | */ 29 | public $users; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/Verification/SmsVerificationStatusResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("failedClientIds") 28 | */ 29 | public $failedClientIds; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/WebAnalytics/SourcesUploadResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("failedSources") 28 | */ 29 | public $failedSources; 30 | } 31 | -------------------------------------------------------------------------------- /src/Model/Response/WebAnalytics/VisitsUploadResponse.php: -------------------------------------------------------------------------------- 1 | ") 27 | * @JMS\SerializedName("failedVisits") 28 | */ 29 | public $failedVisits; 30 | } 31 | -------------------------------------------------------------------------------- /src/Traits/BaseUrlAwareTrait.php: -------------------------------------------------------------------------------- 1 | baseUrl, $route); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /tests/src/Command/GenerateModelsCommandTest.php: -------------------------------------------------------------------------------- 1 | execute([]); 28 | 29 | self::assertStringContainsString('Done, generated code for', $tester->getDisplay()); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /tests/src/Command/VerifyModelsCommandTest.php: -------------------------------------------------------------------------------- 1 | execute([]); 28 | 29 | self::assertStringContainsString('Models are up to date.', $tester->getDisplay()); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /tests/src/Component/SimpleConnection/TokenCreatorTest.php: -------------------------------------------------------------------------------- 1 | success = $success; 33 | $this->versions = $versions; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /tests/utils/Exception/MatcherException.php: -------------------------------------------------------------------------------- 1 | $value 27 | * 28 | * @return $this 29 | * @throws \Pock\Exception\JsonException 30 | */ 31 | public function matchJsonFormField(string $name, $value): self 32 | { 33 | $this->addMatcher(new JsonFormFieldMatcher($name, $value)); 34 | 35 | return $this; 36 | } 37 | } 38 | --------------------------------------------------------------------------------