├── .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 |
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 |
--------------------------------------------------------------------------------