Overview
  • Package
  • Class
  • Tree
  • Todo

Packages

  • AddonValue
    • Interfaces
  • AdminHttpViewControllers
  • ApiV2Controllers
  • Authentication
    • Collections
    • Entities
    • Factories
    • Interfaces
    • Strategies
  • Category
    • Collections
    • Entities
    • Factories
    • Interfaces
    • Providers
    • Repositories
    • Storages
  • Customer
    • Address
    • Country
    • CountryZone
    • Interfaces
    • Storages
    • Validation
    • ValueObjects
  • Email
    • Collections
    • Entities
    • Exceptions
    • Interfaces
    • Repository
    • ValueObjects
  • Extensions
    • Customers
    • Emails
    • Helpers
    • Invoices
    • Orders
    • Serializers
    • Templates
  • Http
    • Collections
    • Exceptions
    • Factories
    • Interfaces
    • ValueObjects
  • HttpViewControllers
  • InfoBox
    • Collections
    • Entities
    • Factories
    • Interfaces
    • Repositories
  • Invoice
    • Interfaces
    • ValueObjects
  • Loaders
    • CrossCuttingLoader
    • GXCoreLoader
    • Interfaces
  • Modules
    • Collections
    • Controllers
    • Interfaces
  • None
  • Order
    • Collections
    • Entities
    • Factories
    • Interfaces
    • Repositories
    • Storages
    • ValueObjects
  • Precheck
  • Product
    • Collections
    • Entities
    • Factories
    • Interfaces
    • Providers
    • Repositories
    • Storages
  • ProductModule
    • Collections
    • Deleter
    • Entities
    • Factories
    • Interface
    • Interfaces
    • Reader
    • Repositories
    • Writer
  • Shared
    • ClassFinder
    • Exceptions
    • FileSystem
    • Interfaces
    • Storage
    • Types
  • SharedShoppingCart
    • Interfaces
  • Slider
    • Collections
    • Entities
    • Factories
    • Interfaces
    • Repositories
    • Storages
  • Statistics
    • Interfaces
  • UserConfiguration
    • Interfaces
    • Repository

Classes

  • AbstractAddonValueServiceFactory
  • AbstractAddonValueStorage
  • AbstractApiV2Controller
  • AbstractCategoryServiceFactory
  • AbstractCollection
  • AbstractCreateAccountProcess
  • AbstractCustomerFactory
  • AbstractCustomerServiceFactory
  • AbstractFileStorage
  • AbstractHttpContextFactory
  • AbstractHttpViewControllerRegistryFactory
  • AbstractImagesApiV2Controller
  • AbstractInvoiceServiceFactory
  • AbstractJsonSerializer
  • AbstractModuleCenterModule
  • AbstractModuleCenterModuleController
  • AbstractOrderServiceFactory
  • AbstractProductAttributeServiceFactory
  • AbstractProductServiceFactory
  • AbstractSliderServiceFactory
  • AddonValueService
  • AddonValueServiceFactory
  • AddonValueStorageFactory
  • AddressBlock
  • AddressBookService
  • AddressClass
  • AddressesApiV2Controller
  • AddressFormatProvider
  • AddressJsonSerializer
  • AdminFavoritesAjaxController
  • AdminHttpViewController
  • AdminInfoBoxAjaxController
  • AdminLayoutHttpControllerResponse
  • AdminPageHttpControllerResponse
  • AfterbuyAjaxController
  • AfterbuyModuleCenterModule
  • AfterbuyModuleCenterModuleController
  • AmazonAdvPaymentsModuleCenterModuleController
  • Asset
  • AssetCollection
  • AttachmentCollection
  • AttachmentName
  • AttachmentPath
  • AttachmentsApiV2Controller
  • AttachmentsHandler
  • AuthFactory
  • AuthService
  • AuthSettings
  • AuthStrategyCollection
  • BoolType
  • BrickfoxModuleCenterModule
  • BrickfoxModuleCenterModuleController
  • CacheTokenHelper
  • CartController
  • CartDropdownController
  • CartShippingCostsController
  • CategoriesApiV2Controller
  • Category
  • CategoryAddonValueStorage
  • CategoryFactory
  • CategoryIconsApiV2Controller
  • CategoryImagesApiV2Controller
  • CategoryJsonSerializer
  • CategoryListItem
  • CategoryListItemCollection
  • CategoryListItemJsonSerializer
  • CategoryListProvider
  • CategoryListProviderFactory
  • CategoryObjectService
  • CategoryReadService
  • CategoryRepository
  • CategoryRepositoryDeleter
  • CategoryRepositoryReader
  • CategoryRepositoryWriter
  • CategoryServiceFactory
  • CategorySettings
  • CategorySettingsRepository
  • CategorySettingsRepositoryReader
  • CategorySettingsRepositoryWriter
  • CategoryWriteService
  • CheckQuantityController
  • CheckStatusController
  • ClassFinder
  • ColorHelper
  • ContactCollection
  • ContactName
  • ContactType
  • ContentNavigationCollection
  • CookieBarController
  • CountriesApiV2Controller
  • CountryJsonSerializer
  • CountryService
  • CreateAccountProcess
  • CreateGuestController
  • CreateRegistreeController
  • CrossCuttingLoader
  • CurrencyCode
  • Customer
  • CustomerAccountInputValidator
  • CustomerAdditionalAddressInfo
  • CustomerAddonValueStorage
  • CustomerAddress
  • CustomerAddressDeleter
  • CustomerAddressInputValidator
  • CustomerAddressReader
  • CustomerAddressRepository
  • CustomerAddressWriter
  • CustomerB2BStatus
  • CustomerCallNumber
  • CustomerCity
  • CustomerCompany
  • CustomerCountry
  • CustomerCountryIso2
  • CustomerCountryIso3
  • CustomerCountryName
  • CustomerCountryReader
  • CustomerCountryRepository
  • CustomerCountryZone
  • CustomerCountryZoneIsoCode
  • CustomerCountryZoneName
  • CustomerCountryZoneReader
  • CustomerCountryZoneRepository
  • CustomerDateOfBirth
  • CustomerDeleter
  • CustomerEmail
  • CustomerFactory
  • CustomerFirstname
  • CustomerGender
  • CustomerHashedPassword
  • CustomerHouseNumber
  • CustomerInputToCollectionTransformer
  • CustomerInputValidator
  • CustomerInputValidatorSettings
  • CustomerJsonSerializer
  • CustomerLastname
  • CustomerLoginController
  • CustomerMemo
  • CustomerMemoCollection
  • CustomerNumber
  • CustomerPassword
  • CustomerPostcode
  • CustomerReader
  • CustomerReadService
  • CustomerRegistrationInputValidatorService
  • CustomerRepository
  • CustomersApiV2Controller
  • CustomerService
  • CustomerServiceFactory
  • CustomerServiceSettings
  • CustomerStatusHelper
  • CustomerStatusInformation
  • CustomerStatusProvider
  • CustomerStreet
  • CustomerSuburb
  • CustomerVatNumber
  • CustomerWriter
  • CustomerWriteService
  • DashboardController
  • DataTableColumn
  • DataTableColumnCollection
  • DataTableColumnType
  • DataTableHelper
  • DecimalType
  • DefaultApiV2Controller
  • DefaultTemplateSettings
  • DocumentFileStorage
  • DynamicShopMessagesController
  • EditableCollection
  • EditableKeyValueCollection
  • EkomiModuleCenterModule
  • EkomiModuleCenterModuleController
  • Email
  • EmailAddress
  • EmailAttachment
  • EmailCollection
  • EmailContact
  • EmailContent
  • EmailDeleter
  • EmailFactory
  • EmailJsonSerializer
  • EmailParser
  • EmailReader
  • EmailRepository
  • EmailsApiV2Controller
  • EmailsController
  • EmailService
  • EmailStringType
  • EmailSubject
  • EmailWriter
  • EmbeddedModuleController
  • EmptyCurrencyCode
  • EmptyDateTime
  • EmptyLanguageCode
  • EmptyProductImage
  • EnvCategoryServiceSettings
  • EnvInvoiceServiceSettings
  • EnvironmentClassFinderSettings
  • EnvironmentHttpContextFactory
  • EnvironmentHttpViewControllerRegistryFactory
  • EnvProductImageFileStorageSettings
  • EnvSlideImageFileStorageSettings
  • ExistingDirectory
  • ExistingFile
  • ExtraContentController
  • FileDownloadInformation
  • FilenameStringType
  • FilesystemHelper
  • FilterController
  • FindologicModuleCenterModule
  • FindologicModuleCenterModuleController
  • GoogleAdwordConversionModuleCenterModule
  • GoogleAdwordConversionModuleCenterModuleController
  • GXCoreLoader
  • GXCoreLoaderSettings
  • GXEngineOrder
  • GXEngineProduct
  • HeidelpayModuleCenterModuleController
  • HermesModuleCenterModule
  • HermesModuleCenterModuleController
  • HttpApiV2Controller
  • HttpContext
  • HttpContextReader
  • HttpControllerResponse
  • HttpDispatcher
  • HttpResponseProcessor
  • HttpService
  • HttpServiceFactory
  • HttpViewController
  • HttpViewControllerFactory
  • HttpViewControllerRegistry
  • IdCollection
  • IdType
  • IloxxModuleCenterModule
  • IloxxModuleCenterModuleController
  • ImageFileStorage
  • ImageProcessingController
  • ImageRequestController
  • InfoBoxFactory
  • InfoBoxMessage
  • InfoBoxMessageCollection
  • InfoBoxRepository
  • InfoBoxRepositoryDeleter
  • InfoBoxRepositoryReader
  • InfoBoxRepositoryWriter
  • InfoBoxService
  • IntrashipModuleCenterModule
  • IntrashipModuleCenterModuleController
  • IntType
  • InvoiceActions
  • InvoiceArchiveReadService
  • InvoiceArchiveWriteService
  • InvoiceFileEntitler
  • InvoiceInformation
  • InvoiceListGenerator
  • InvoiceListItem
  • InvoiceListItemCollection
  • InvoiceRepository
  • InvoiceServiceFactory
  • InvoicesModalsAjaxController
  • InvoicesOverviewAjaxController
  • InvoicesOverviewColumns
  • InvoicesOverviewController
  • InvoicesOverviewTooltips
  • ItRechtModuleCenterModule
  • ItRechtModuleCenterModuleController
  • JanolawModuleCenterModule
  • JanolawModuleCenterModuleController
  • JsConfigurationController
  • JSEngineConfiguration
  • JsonHttpControllerResponse
  • JsTranslationsController
  • KeyValueCollection
  • KlarnaModuleCenterModuleController
  • LanguageCode
  • LanguageHelper
  • LanguageProvider
  • LawsController
  • LegacyProductImageProcessing
  • LettrModuleCenterModule
  • LettrModuleCenterModuleController
  • LiveSearchController
  • MagnalisterModuleCenterModule
  • MagnalisterModuleCenterModuleController
  • MailbeezModuleCenterModule
  • MailbeezModuleCenterModuleController
  • MailerAdapter
  • MaxFileSizeController
  • Md5Strategy
  • MediafinanzModuleCenterModule
  • MediafinanzModuleCenterModuleController
  • ModuleCenterController
  • ModuleCenterModuleCollection
  • NewAttributesController
  • NewsletterLinkModuleCenterModule
  • NewsletterLinkModuleCenterModuleController
  • NonEmptyStringType
  • OldOrderOverviewModuleCenterModule
  • OldOrderOverviewModuleCenterModuleController
  • OrderActions
  • OrderAddonValueStorage
  • OrderAddressBlock
  • OrderFactory
  • OrderItem
  • OrderItemAddonValueStorage
  • OrderItemAttribute
  • OrderItemAttributeCollection
  • OrderItemAttributeFactory
  • OrderItemAttributeRepository
  • OrderItemAttributeRepositoryDeleter
  • OrderItemAttributeRepositoryFactory
  • OrderItemAttributeRepositoryReader
  • OrderItemAttributeRepositoryWriter
  • OrderItemCollection
  • OrderItemDownloadInformation
  • OrderItemDownloadInformationCollection
  • OrderItemFactory
  • OrderItemProperty
  • OrderItemPropertyFactory
  • OrderItemPropertyRepository
  • OrderItemPropertyRepositoryDeleter
  • OrderItemPropertyRepositoryReader
  • OrderItemPropertyRepositoryWriter
  • OrderItemRepository
  • OrderItemRepositoryDeleter
  • OrderItemRepositoryReader
  • OrderItemRepositoryWriter
  • OrderJsonSerializer
  • OrderListGenerator
  • OrderListItem
  • OrderListItemCollection
  • OrderListItemJsonSerializer
  • OrderObjectService
  • OrderPaymentType
  • OrderReadService
  • OrderRepository
  • OrderRepositoryDeleter
  • OrderRepositoryReader
  • OrderRepositoryWriter
  • OrdersApiV2Controller
  • OrderServiceFactory
  • OrderServiceSettings
  • OrderShippingType
  • OrdersHistoryApiV2Controller
  • OrdersItemsApiV2Controller
  • OrdersItemsAttributesApiV2Controller
  • OrdersModalsAjaxController
  • OrdersOverviewAjaxController
  • OrdersOverviewColumns
  • OrdersOverviewController
  • OrdersOverviewTooltips
  • OrderStatusHistoryListItem
  • OrderStatusHistoryListItemCollection
  • OrderStatusHistoryStorage
  • OrderStatusStyles
  • OrdersTotalsApiV2Controller
  • OrderTooltipController
  • OrderTotal
  • OrderTotalCollection
  • OrderTotalFactory
  • OrderTotalRepository
  • OrderTotalRepositoryDeleter
  • OrderTotalRepositoryReader
  • OrderTotalRepositoryWriter
  • OrderTrackingInformationCollection
  • OrderWriteService
  • PackedDownloadController
  • PasswordEncryptionSettings
  • PasswordHashStrategy
  • PathType
  • PayOneModuleCenterModuleController
  • PayPalConfigurationController
  • PayPalController
  • PaypalNGModuleCenterModuleController
  • PostfinderModuleCenterModule
  • PostfinderModuleCenterModuleController
  • Precheck
  • ProductAddonValueStorage
  • ProductAttribute
  • ProductAttributeCollection
  • ProductAttributeFactory
  • ProductAttributeObjectService
  • ProductAttributeRepository
  • ProductAttributeRepositoryDeleter
  • ProductAttributeRepositoryReader
  • ProductAttributeRepositoryWriter
  • ProductAttributeService
  • ProductAttributeServiceFactory
  • ProductAttributesModuleCenterModule
  • ProductAttributesModuleCenterModuleController
  • ProductCategoryLinker
  • ProductFactory
  • ProductImage
  • ProductImageCollection
  • ProductImageContainer
  • ProductImageContainerRepository
  • ProductImageFileStorage
  • ProductImagesApiV2Controller
  • ProductJsonSerializer
  • ProductListItem
  • ProductListItemCollection
  • ProductListItemJsonSerializer
  • ProductListProvider
  • ProductListProviderFactory
  • ProductObjectService
  • ProductPermissionSetter
  • ProductQuestionController
  • ProductReadService
  • ProductRepository
  • ProductRepositoryDeleter
  • ProductRepositoryReader
  • ProductRepositoryWriter
  • ProductsApiV2Controller
  • ProductServiceFactory
  • ProductSettings
  • ProductSettingsRepository
  • ProductSettingsRepositoryReader
  • ProductSettingsRepositoryWriter
  • ProductsLinksApiV2Controller
  • ProductWriteService
  • ProtectedShopsModuleCenterModule
  • ProtectedShopsModuleCenterModuleController
  • RedirectHttpControllerResponse
  • SessionTimeoutAjaxController
  • SharedShoppingCartConfigurationController
  • SharedShoppingCartController
  • SharedShoppingCartDeleter
  • SharedShoppingCartModuleCenterModule
  • SharedShoppingCartModuleCenterModuleController
  • SharedShoppingCartReader
  • SharedShoppingCartRepository
  • SharedShoppingCartService
  • SharedShoppingCartSettings
  • SharedShoppingCartWriter
  • ShipcloudController
  • ShipcloudModuleCenterModule
  • ShipcloudModuleCenterModuleController
  • ShopKeyController
  • Slide
  • SlideCollection
  • SlideImage
  • SlideImageArea
  • SlideImageAreaCollection
  • SlideImageAreaRepository
  • SlideImageAreaRepositoryDeleter
  • SlideImageAreaRepositoryReader
  • SlideImageAreaRepositoryWriter
  • SlideImageCollection
  • SlideImageFileStorage
  • SlideImageRepository
  • SlideImageRepositoryDeleter
  • SlideImageRepositoryReader
  • SlideImageRepositoryWriter
  • Slider
  • SliderAssignmentRepository
  • SliderCollection
  • SlideRepository
  • SlideRepositoryDeleter
  • SlideRepositoryReader
  • SlideRepositoryWriter
  • SliderJsonSerializer
  • SliderReadService
  • SliderRepository
  • SliderRepositoryDeleter
  • SliderRepositoryReader
  • SliderRepositoryWriter
  • SlidersDetailsAjaxController
  • SlidersDetailsController
  • SliderServiceFactory
  • SlidersOverviewAjaxController
  • SlidersOverviewController
  • SliderWriteService
  • StaticCrossCuttingLoader
  • StaticGXCoreLoader
  • StatisticsService
  • StoredCategory
  • StoredOrderItem
  • StoredOrderItemAttribute
  • StoredOrderItemAttributeCollection
  • StoredOrderItemCollection
  • StoredOrderItemProperty
  • StoredOrderTotal
  • StoredOrderTotalCollection
  • StoredProduct
  • StoredProductAttribute
  • StoredProductAttributeCollection
  • StringCollection
  • StringHelper
  • StringType
  • StyleEdit3AuthenticationController
  • TemplateConfigurationController
  • TrustedShopsModuleCenterModule
  • TrustedShopsModuleCenterModuleController
  • UnknownCustomerCountry
  • UploadedFile
  • UrlRewrite
  • UrlRewriteCollection
  • UrlRewriteStorage
  • UserConfigurationController
  • UserConfigurationReader
  • UserConfigurationService
  • UserConfigurationWriter
  • UsernamePasswordCredentials
  • VatNumberValidator
  • WishListController
  • WritableDirectory
  • WritableFile
  • YategoModuleCenterModule
  • YategoModuleCenterModuleController
  • YoochooseModuleCenterModule
  • YoochooseModuleCenterModuleController
  • ZoneJsonSerializer
  • ZonesApiV2Controller

Interfaces

  • AddonValueContainerInterface
  • AddonValueServiceInterface
  • AddonValueStorageFactoryInterface
  • AddressBlockInterface
  • AddressBookServiceInterface
  • AddressClassInterface
  • AddressFormatProviderInterface
  • AdminStatusOnlyInterface
  • AssetCollectionInterface
  • AssetInterface
  • AttachmentCollectionInterface
  • AttachmentNameInterface
  • AttachmentPathInterface
  • AttachmentsHandlerInterface
  • AuthCredentialsInterface
  • AuthFactoryInterface
  • AuthServiceInterface
  • AuthSettingsInterface
  • AuthStrategyInterface
  • CacheTokenHelperInterface
  • CategoryFactoryInterface
  • CategoryInterface
  • CategoryListProviderFactoryInterface
  • CategoryListProviderInterface
  • CategoryObjectServiceInterface
  • CategoryReadServiceInterface
  • CategoryRepositoryDeleterInterface
  • CategoryRepositoryInterface
  • CategoryRepositoryReaderInterface
  • CategoryRepositoryWriterInterface
  • CategoryServiceSettingsInterface
  • CategorySettingsInterface
  • CategorySettingsRepositoryInterface
  • CategorySettingsRepositoryReaderInterface
  • CategorySettingsRepositoryWriterInterface
  • CategoryWriteServiceInterface
  • ClassFinderInterface
  • ClassFinderSettingsInterface
  • ContactCollectionInterface
  • ContactNameInterface
  • ContactTypeInterface
  • ContentNavigationCollectionInterface
  • ContentViewInterface
  • CountryServiceInterface
  • CrossCuttingLoaderInterface
  • CrossCuttingObjectInterface
  • CustomerAccountInputValidatorInterface
  • CustomerAdditionalAddressInfoInterface
  • CustomerAddressDeleterInterface
  • CustomerAddressInputValidatorInterface
  • CustomerAddressInterface
  • CustomerAddressReaderInterface
  • CustomerAddressRepositoryInterface
  • CustomerAddressWriterInterface
  • CustomerB2BStatusInterface
  • CustomerCallNumberInterface
  • CustomerCityInterface
  • CustomerCompanyInterface
  • CustomerCountryInterface
  • CustomerCountryIso2Interface
  • CustomerCountryIso3Interface
  • CustomerCountryNameInterface
  • CustomerCountryReaderInterface
  • CustomerCountryRepositoryInterface
  • CustomerCountryZoneInterface
  • CustomerCountryZoneIsoCodeInterface
  • CustomerCountryZoneNameInterface
  • CustomerCountryZoneReaderInterface
  • CustomerCountryZoneRepositoryInterface
  • CustomerDeleterInterface
  • CustomerEmailInterface
  • CustomerFirstnameInterface
  • CustomerGenderInterface
  • CustomerHouseNumberInterface
  • CustomerInputValidatorInterface
  • CustomerInputValidatorSettingsInterface
  • CustomerInterface
  • CustomerLastnameInterface
  • CustomerNumberInterface
  • CustomerPasswordInterface
  • CustomerPostcodeInterface
  • CustomerReaderInterface
  • CustomerReadServiceInterface
  • CustomerRegistrationInputValidatorServiceInterface
  • CustomerRepositoryInterface
  • CustomerServiceInterface
  • CustomerServiceSettingsInterface
  • CustomerStatusHelperInterface
  • CustomerStatusProviderInterface
  • CustomerStreetInterface
  • CustomerSuburbInterface
  • CustomerVatNumberInterface
  • CustomerWriterInterface
  • CustomerWriteServiceInterface
  • EmailAddressInterface
  • EmailAttachmentInterface
  • EmailCollectionInterface
  • EmailContactInterface
  • EmailContentInterface
  • EmailDeleterInterface
  • EmailFactoryInterface
  • EmailInterface
  • EmailReaderInterface
  • EmailRepositoryInterface
  • EmailServiceInterface
  • EmailSubjectInterface
  • EmailWriterInterface
  • FilesystemHelperInterface
  • GXCoreLoaderInterface
  • GXCoreLoaderSettingsInterface
  • HttpContextInterface
  • HttpContextReaderInterface
  • HttpControllerResponseInterface
  • HttpDispatcherInterface
  • HttpResponseProcessorInterface
  • HttpServiceFactoryInterface
  • HttpServiceInterface
  • HttpViewControllerFactoryInterface
  • HttpViewControllerInterface
  • HttpViewControllerRegistryInterface
  • IdInterface
  • InfoBoxFactoryInterface
  • InfoBoxMessageInterface
  • InfoBoxRepositoryDeleterInterface
  • InfoBoxRepositoryInterface
  • InfoBoxRepositoryReaderInterface
  • InfoBoxRepositoryWriterInterface
  • InfoBoxServiceInterface
  • InvoiceArchiveReadServiceInterface
  • InvoiceArchiveWriteServiceInterface
  • InvoiceFileEntitlerInterface
  • InvoiceListGeneratorInterface
  • InvoiceRepositoryInterface
  • InvoiceServiceSettingsInterface
  • LanguageHelperInterface
  • LanguageProviderInterface
  • MailerAdapterInterface
  • ModuleCenterModuleCollectionInterface
  • ModuleCenterModuleInterface
  • OrderFactoryInterface
  • OrderInterface
  • OrderItemAttributeFactoryInterface
  • OrderItemAttributeInterface
  • OrderItemAttributeRepositoryDeleterInterface
  • OrderItemAttributeRepositoryFactoryInterface
  • OrderItemAttributeRepositoryInterface
  • OrderItemAttributeRepositoryReaderInterface
  • OrderItemAttributeRepositoryWriterInterface
  • OrderItemFactoryInterface
  • OrderItemInterface
  • OrderItemPropertyFactoryInterface
  • OrderItemPropertyRepositoryDeleterInterface
  • OrderItemPropertyRepositoryReaderInterface
  • OrderItemPropertyRepositoryWriterInterface
  • OrderItemRepositoryDeleterInterface
  • OrderItemRepositoryInterface
  • OrderItemRepositoryReaderInterface
  • OrderItemRepositoryWriterInterface
  • OrderListGeneratorInterface
  • OrderObjectServiceInterface
  • OrderPaymentTypeInterface
  • OrderReadServiceInterface
  • OrderRepositoryDeleterInterface
  • OrderRepositoryInterface
  • OrderRepositoryReaderInterface
  • OrderRepositoryWriterInterface
  • OrderServiceSettingsInterface
  • OrderShippingTypeInterface
  • OrderStatusHistoryReaderInterface
  • OrderStatusHistoryWriterInterface
  • OrderTotalFactoryInterface
  • OrderTotalInterface
  • OrderTotalRepositoryDeleterInterface
  • OrderTotalRepositoryInterface
  • OrderTotalRepositoryReaderInterface
  • OrderTotalRepositoryWriterInterface
  • OrderWriteServiceInterface
  • ProductAttributeFactoryInterface
  • ProductAttributeInterface
  • ProductAttributeObjectServiceInterface
  • ProductAttributeRepositoryDeleterInterface
  • ProductAttributeRepositoryInterface
  • ProductAttributeRepositoryReaderInterface
  • ProductAttributeRepositoryWriterInterface
  • ProductAttributeServiceInterface
  • ProductCategoryLinkerInterface
  • ProductFactoryInterface
  • ProductImageContainerInterface
  • ProductImageContainerRepositoryInterface
  • ProductImageInterface
  • ProductImagePathsSettingsInterface
  • ProductImageProcessingInterface
  • ProductInterface
  • ProductListProviderFactoryInterface
  • ProductListProviderInterface
  • ProductObjectServiceInterface
  • ProductPermissionSetterInterface
  • ProductReadServiceInterface
  • ProductRepositoryDeleterInterface
  • ProductRepositoryInterface
  • ProductRepositoryReaderInterface
  • ProductRepositoryWriterInterface
  • ProductSettingsInterface
  • ProductSettingsRepositoryInterface
  • ProductSettingsRepositoryReaderInterface
  • ProductSettingsRepositoryWriterInterface
  • ProductWriteServiceInterface
  • SerializerInterface
  • SharedShoppingCartDeleterInterface
  • SharedShoppingCartReaderInterface
  • SharedShoppingCartRepositoryInterface
  • SharedShoppingCartServiceInterface
  • SharedShoppingCartSettingsInterface
  • SharedShoppingCartWriterInterface
  • SlideImageAreaInterface
  • SlideImageAreaRepositoryDeleterInterface
  • SlideImageAreaRepositoryInterface
  • SlideImageAreaRepositoryReaderInterface
  • SlideImageAreaRepositoryWriterInterface
  • SlideImageInterface
  • SlideImagePathsSettingsInterface
  • SlideImageRepositoryDeleterInterface
  • SlideImageRepositoryInterface
  • SlideImageRepositoryReaderInterface
  • SlideImageRepositoryWriterInterface
  • SlideInterface
  • SliderAssignmentRepositoryInterface
  • SlideRepositoryDeleterInterface
  • SlideRepositoryInterface
  • SlideRepositoryReaderInterface
  • SlideRepositoryWriterInterface
  • SliderInterface
  • SliderReadServiceInterface
  • SliderRepositoryDeleterInterface
  • SliderRepositoryInterface
  • SliderRepositoryReaderInterface
  • SliderRepositoryWriterInterface
  • SliderWriteServiceInterface
  • StatisticsServiceInterface
  • StoredCategoryInterface
  • StoredOrderItemAttributeInterface
  • StoredOrderItemInterface
  • StoredOrderTotalInterface
  • StoredProductAttributeInterface
  • StoredProductInterface
  • StringHelperInterface
  • UrlKeywordsRepairerInterface
  • UserConfigurationReaderInterface
  • UserConfigurationServiceInterface
  • UserConfigurationWriterInterface
  • VatNumberValidatorInterface

Exceptions

  • AjaxException
  • AttachmentNotFoundException
  • FileNotFoundException
  • HttpApiV2Exception
  • InvalidCustomerDataException
  • MissingControllerNameException
  • UnknownEnvironmentException
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 
<?php
/* --------------------------------------------------------------
   OrderActions.inc.php 2016-09-19
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2016 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------
*/

/**
 * Class OrderActions
 *
 * @category   System
 * @package    Extensions
 * @subpackage Orders
 */
class OrderActions
{
    /**
     * Cancels an order.
     * The method use the old logic of the gm_send_orders.php file and will be refactored soon.
     *
     * @param array           $orderIds
     * @param BoolType        $restockQuantity
     * @param BoolType        $recalculateShippingStatus
     * @param BoolType        $resetArticleStatus
     * @param BoolType        $notifyCustomer
     * @param BoolType        $sendComment
     * @param StringType|null $comment
     */
    public function cancelOrder(array $orderIds,
                                BoolType $restockQuantity,
                                BoolType $recalculateShippingStatus,
                                BoolType $resetArticleStatus,
                                BoolType $notifyCustomer,
                                BoolType $sendComment,
                                StringType $comment = null)
    {
        require_once(DIR_FS_INC . 'xtc_php_mail.inc.php');
        require_once(DIR_FS_INC . 'xtc_get_order_data.inc.php');
        require_once(DIR_FS_INC . 'xtc_get_attributes_model.inc.php');
        require_once(DIR_FS_INC . 'xtc_not_null.inc.php');
        require_once(DIR_FS_INC . 'xtc_format_price_order.inc.php');
        require_once(DIR_WS_CLASSES . 'order.php');
        require_once(DIR_FS_CATALOG . 'gm/inc/gm_prepare_number.inc.php');
        require_once(DIR_FS_CATALOG . 'gm/inc/gm_save_order.inc.php');
        $smarty = MainFactory::create('Smarty');
        
        foreach($orderIds as $oID)
        {
            $order       = MainFactory::create('order', $oID);
            $gm_status   = gm_get_conf('GM_ORDER_STATUS_CANCEL_ID');
            $gm_comments = $comment ? xtc_db_prepare_input($comment->asString()) : '';
            
            $check_status_query = xtc_db_query("
                                            SELECT
                                                o.customers_name,
                                                o.customers_email_address,
                                                o.orders_status,
                                                o.language,
                                                o.date_purchased,
                                                l.languages_id
                                            FROM
                                                " . TABLE_ORDERS . " o
                                                LEFT JOIN languages l ON (o.language = l.directory)
                                            WHERE
                                                o.orders_id = '" . xtc_db_input($oID) . "'
                                            LIMIT 1
                                            ");
            
            $check_status = xtc_db_fetch_array($check_status_query);
            
            if($check_status['orders_status'] != $gm_status)
            {
                
                xtc_db_query("
                        UPDATE " . TABLE_ORDERS . "
                        SET
                            orders_status   = '" . $gm_status . "',
                            last_modified   = now(),
                            gm_cancel_date  = now()
                        WHERE
                            orders_id = '" . xtc_db_input($oID) . "'
                        ");
                
                if($notifyCustomer->asBool())
                {
                    if($sendComment->asBool())
                    {
                        $notify_comments = $gm_comments;
                    }
                    else
                    {
                        $notify_comments = '';
                    }
                    
                    // assign language to template for caching
                    $smarty->assign('language', $_SESSION['language']);
                    $smarty->caching = false;
                    
                    // set dirs manual
                    $smarty->template_dir = DIR_FS_CATALOG . 'templates';
                    $smarty->compile_dir  = DIR_FS_CATALOG . 'templates_c';
                    $smarty->config_dir   = DIR_FS_CATALOG . 'lang';
                    
                    $smarty->assign('tpl_path', 'templates/' . CURRENT_TEMPLATE . '/');
                    $smarty->assign('logo_path',
                                    HTTP_SERVER . DIR_WS_CATALOG . 'templates/' . CURRENT_TEMPLATE . '/img/');
                    
                    $smarty->assign('NAME', $check_status['customers_name']);
                    $smarty->assign('GENDER', $order->customer['gender']);
                    $smarty->assign('ORDER_NR', $oID);
                    $smarty->assign('ORDER_LINK',
                                    xtc_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $oID,
                                                          'SSL'));
                    $smarty->assign('ORDER_DATE', xtc_date_long($check_status['date_purchased']));
                    $smarty->assign('NOTIFY_COMMENTS', $notify_comments);
                    $smarty->assign('ORDER_STATUS',
                                    xtc_get_orders_status_name($gm_status, $check_status['languages_id']));
                    
                    if(defined('EMAIL_SIGNATURE'))
                    {
                        $smarty->assign('EMAIL_SIGNATURE_HTML', nl2br(EMAIL_SIGNATURE));
                        $smarty->assign('EMAIL_SIGNATURE_TEXT', EMAIL_SIGNATURE);
                    }
                    
                    $html_mail = fetch_email_template($smarty, 'change_order_mail', 'html', '',
                                                      $check_status['languages_id']);
                    $txt_mail  = fetch_email_template($smarty, 'change_order_mail', 'txt', '',
                                                      $check_status['languages_id']);
                    
                    $languageTextManager = MainFactory::create('LanguageTextManager', 'gm_order_menu',
                                                               $check_status['languages_id']);
                    $subject             = $languageTextManager->get_text('TITLE_GM_CANCEL_SUBJECT_1') . $oID
                                           . $languageTextManager->get_text('TITLE_GM_CANCEL_SUBJECT_2')
                                           . xtc_date_short(date('Y-m-d'))
                                           . $languageTextManager->get_text('TITLE_GM_CANCEL_SUBJECT_3');
                    
                    xtc_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, $check_status['customers_email_address'],
                                 $check_status['customers_name'], '', EMAIL_BILLING_REPLY_ADDRESS,
                                 EMAIL_BILLING_REPLY_ADDRESS_NAME, '', '', $subject, $html_mail, $txt_mail);
                    
                    $customer_notified = '1';
                    
                    xtc_db_query("INSERT INTO " . TABLE_ORDERS_STATUS_HISTORY
                                 . " (orders_id, orders_status_id, date_added, customer_notified, comments) values ('"
                                 . xtc_db_input($oID) . "', '" . xtc_db_input($gm_status) . "', now(), '"
                                 . $customer_notified . "', '" . xtc_db_input($gm_comments) . "')");
                    
                    $gm_reactivateArticle = $resetArticleStatus->asBool();
                    $gm_reshipp           = $recalculateShippingStatus->asBool();
                    $restockQuantity->asBool() ? xtc_remove_order($oID, true, true, $gm_reshipp,
                                                                  $gm_reactivateArticle) : null;
                }
                else
                {
                    $customer_notified = '0';
                    
                    xtc_db_query("INSERT INTO " . TABLE_ORDERS_STATUS_HISTORY
                                 . " (orders_id, orders_status_id, date_added, customer_notified, comments) values ('"
                                 . xtc_db_input($oID) . "', '" . xtc_db_input($gm_status) . "', now(), '"
                                 . $customer_notified . "', '" . xtc_db_input($gm_comments) . "')");
                    
                    $gm_reactivateArticle = $resetArticleStatus->asBool();
                    $gm_reshipp           = $recalculateShippingStatus->asBool();
                    $restockQuantity->asBool() ? xtc_remove_order($oID, true, true, $gm_reshipp,
                                                                  $gm_reactivateArticle) : null;
                }
            }
        }
    }
    
    
    /**
     * Removes an order.
     * The method use the old logic of the xtc_remove_order function and will be refactored soon.
     *
     * @param IdType        $orderId
     * @param BoolType|null $restockQuantity
     * @param BoolType|null $recalculateShippingStatus
     * @param BoolType|null $resetProductStatus
     */
    public function removeOrderById(IdType $orderId,
                                    BoolType $restockQuantity = null,
                                    BoolType $recalculateShippingStatus = null,
                                    BoolType $resetProductStatus = null)
    {
        
        xtc_remove_order($orderId->asInt(), $restockQuantity->asBool(), false, $recalculateShippingStatus->asBool(),
                         $resetProductStatus->asBool());
    }
    
    
    /**
     * Outputs the concatenated invoice PDFs.
     *
     * @param array $orderIds The order IDs to be included in the concatenated file.
     *
     * @throws InvalidArgumentException
     */
    public function bulkPdfInvoices(array $orderIds)
    {
        $countFiles = 0;
        $basePath = DIR_FS_CATALOG . 'export/invoice/';
        
        /** @var InvoiceArchiveReadService $invoiceReader */
        $invoiceReader   = StaticGXCoreLoader::getService('InvoiceArchiveRead');
        
        $mPDF = new mPDF();
        $mPDF->SetImportUse();
        
        foreach($orderIds as $index => $orderId)
        {
            $invoices = $invoiceReader->getInvoiceListByConditions(['order_id' => $orderId], null, null, new StringType('invoice_date DESC'));
            
            /** @var InvoiceListItem $invoice */
            $invoice = $invoices->getItem(0);
            
            $filePath  = $basePath . $invoice->getInvoiceFilename();
            
            if(!is_null($filePath))
            {
                $countFiles++;
                $pageCount = $mPDF->SetSourceFile($filePath);
                
                for($i = 1; $i <= $pageCount; $i++)
                {
                    $currentPageNumber = $mPDF->ImportPage($i);
                    $mPDF->UseTemplate($currentPageNumber);
                    
                    $onLastPage = ($index + 1) === count($orderIds);
                    
                    if(($onLastPage && $i < $pageCount) || (!$onLastPage && $i <= $pageCount))
                    {
                        $mPDF->AddPage();
                    }
                }
            }
        }
        
        // Set PDF permissions depending the database settings.
        $permissions = $this->_getPdfPermissions();
        $mPDF->setProtection($permissions);
        
        // Output the PDF file for browser download.
        if($countFiles > 1){
            $mPDF->Output('Invoices-' . date('Y_m_d') . '.pdf', 'D');
        }else{
            $invoices = $invoiceReader->getInvoiceListByConditions(['order_id' => reset($orderIds)], null, null, new StringType('invoice_date DESC'));
            /** @var InvoiceListItem $invoice */
            $invoice = $invoices->getItem(0);
            
            $mPDF->Output('Invoice-' . $invoice->getInvoiceNumber() . '-' . $invoice->getInvoiceDate()->format('d_m_Y') . '.pdf', 'D');
        }
    }
    
    
    /**
     * Outputs the concatenated packing-slip PDFs.
     *
     * @param array $orderIds The order IDs to be included in the concatenated file.
     *
     * @throws InvalidArgumentException
     */
    public function bulkPdfPackingSlips(array $orderIds)
    {
        $this->_createBulkPdf($orderIds, 'packingslip');
    }
    
    
    /**
     * Outputs a bulk PDF file through the use of mPDF.
     *
     * This method will parse the latest generated PDFs of the provided orders and will concatenate them into
     * a single file. This file will be then outputted directly so that browsers download it immediately.
     *
     * @param array  $orderIds The selected order IDs.
     * @param string $type     Bulk PDF type ('invoice' or 'packingslip').
     *
     * @throws InvalidArgumentException If $type argument is not valid, and
     *
     * @see mPDF
     */
    protected function _createBulkPdf(array $orderIds, $type)
    {
        if($type !== 'invoice' && $type !== 'packingslip')
        {
            throw new InvalidArgumentException('Invalid bulk PDF type provided (expected "invoice" or "packingslip",'
                                               . ' got ' . $type . ').');
        }
        
        $mPDF = new mPDF();
        $mPDF->SetImportUse();
        
        $countFiles = 0;
        $basePath   = DIR_FS_CATALOG . 'export/' . $type . '/';
        
        foreach($orderIds as $index => $orderId)
        {
            $filePath  = array_pop(glob($basePath . $orderId . '*'));
            
            if(!is_null($filePath))
            {
                $countFiles++;
                $pageCount = $mPDF->SetSourceFile($filePath);
                
                for($i = 1; $i <= $pageCount; $i++)
                {
                    $currentPageNumber = $mPDF->ImportPage($i);
                    $mPDF->UseTemplate($currentPageNumber);
                    
                    $onLastPage = ($index + 1) === count($orderIds);
                    
                    if(($onLastPage && $i < $pageCount) || (!$onLastPage && $i <= $pageCount))
                    {
                        $mPDF->AddPage();
                    }
                }
            }
        }
        
        // Set PDF permissions depending the database settings. 
        $permissions = $this->_getPdfPermissions();
        $mPDF->setProtection($permissions);
        
        // Output the PDF file for browser download.
        if($countFiles > 1){
            $mPDF->Output('Packing-Slips-' . date('Y_m_d') . '.pdf', 'D');
        }else{
            $db          = StaticGXCoreLoader::getDatabaseQueryBuilder();
            $packingSlip = $db->select(['number', 'date'])
                              ->where('order_id = ' . reset($orderIds))
                              ->order_by('number', 'desc')
                              ->limit(1)
                              ->get('packing_slips')
                              ->result_array();
            
            $mPDF->Output('Packing-Slip-' . $packingSlip[0]['number'] . '-' . date('d_m_Y', strtotime($packingSlip[0]['date'])) . '.pdf', 'D');
        }
    }
    
    
    /**
     * @param IdType     $orderId
     * @param IdType     $statusId
     * @param StringType $comment
     * @param BoolType   $notifyCustomer
     * @param BoolType   $sendParcelTrackingCode
     * @param BoolType   $sendComment
     */
    public function changeOrderStatus(IdType $orderId,
                                      IdType $statusId,
                                      StringType $comment,
                                      BoolType $notifyCustomer,
                                      BoolType $sendParcelTrackingCode,
                                      BoolType $sendComment)
    {
        require_once(DIR_FS_INC . 'xtc_php_mail.inc.php');
        
        $orderReadService  = StaticGXCoreLoader::getService('OrderRead');
        $orderWriteService = StaticGXCoreLoader::getService('OrderWrite');
        $cidb              = StaticGXCoreLoader::getDatabaseQueryBuilder();
        $languageProvider  = MainFactory::create('LanguageProvider', $cidb);
        
        $orderWriteService->updateOrderStatus($orderId, $statusId, $comment, $notifyCustomer);
        
        $order = $orderReadService->getOrderById($orderId);
        
        if($notifyCustomer->asBool() === true)
        {
            $smarty               = MainFactory::create('Smarty');
            $smarty->caching      = false;
            $smarty->template_dir = DIR_FS_CATALOG . 'templates';
            $smarty->compile_dir  = DIR_FS_CATALOG . 'templates_c';
            $smarty->config_dir   = DIR_FS_CATALOG . 'lang';
            
            $mailLogo                 = MainFactory::create_object('GMLogoManager', array('gm_logo_mail'));
            $parcelTrackingCodeItem   = MainFactory::create_object('ParcelTrackingCode');
            $parcelTrackingCodeReader = MainFactory::create_object('ParcelTrackingCodeReader');
            $languageId               = (int)$languageProvider->getIdByCode($order->getLanguageCode());
            $purchaseDate             = $order->getPurchaseDateTime()->format('d.m.Y');
            $fullCustomerName         = $order->getCustomerAddress()->getFirstname() . ' '
                                        . $order->getCustomerAddress()->getLastname();
            $data                     = [
                'GENDER'                      => (string)$order->getCustomerAddress()->getGender(),
                'NAME'                        => $fullCustomerName,
                'ORDER_DATE'                  => $purchaseDate,
                'ORDER_NR'                    => $orderId->asInt(),
                'NOTIFY_COMMENTS'             => $sendComment->asBool() === true ? $comment->asString() : '',
                'ORDER_STATUS'                => $this->_getOrderStatusName(new IdType((int)array_pop($order->getStatusHistory()
                                                                                                            ->getArray())->getOrderStatusId()),
                                                                            new IdType($languageId)),
                'PARCEL_TRACKING_CODES'       => $sendParcelTrackingCode->asBool(),
                'PARCEL_TRACKING_CODES_ARRAY' => $parcelTrackingCodeReader->getTackingCodeItemsByOrderId($parcelTrackingCodeItem,
                                                                                                         $orderId->asInt())
            ];
            if($mailLogo->logo_use === '1')
            {
                $data['gm_logo_mail'] = $mailLogo->get_logo();
            }
            if(defined('EMAIL_SIGNATURE'))
            {
                $data['EMAIL_SIGNATURE_HTML'] = nl2br(EMAIL_SIGNATURE);
                $data['EMAIL_SIGNATURE_TEXT'] = EMAIL_SIGNATURE;
            }
            //          @todo: integrate extender
            //          $orderStatusMailExtender = MainFactory::create_object('AdminOrderStatusMailExtenderComponent');
            //          $orderStatusMailExtender->set_data('GET', $this->_getQueryParametersCollection()->getArray());
            //          $orderStatusMailExtender->set_data('POST', $this->_getPostDataCollection()->getArray());
            //          $orderStatusMailExtender->set_data('action', $this->_getQueryParameter('action'));
            //          $orderStatusMailExtender->proceed();
            //          if(is_array($orderStatusMailExtender->v_output_buffer))
            //          {
            //              $data = array_merge($data, $orderStatusMailExtender->v_output_buffer);
            //          }
            
            foreach($data as $key => $value)
            {
                $smarty->assign($key, $value);
            }
            
            $txtMail = fetch_email_template($smarty, 'change_order_mail', 'txt', '', $languageId);
            $smarty->assign('NOTIFY_COMMENTS', nl2br($data['NOTIFY_COMMENTS']));
            $htmlMail = fetch_email_template($smarty, 'change_order_mail', 'html', '', $languageId);
            
            $languageTextManager = MainFactory::create_object('LanguageTextManager',
                                                              array('gm_order_menu', $languageId), true);
            $subject             = $languageTextManager->get_text('CHANGE_ORDER_STATUS_SUBJECT') . $orderId . ', '
                                   . $purchaseDate . ', ' . $fullCustomerName;
            
            xtc_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, $order->getCustomerEmail(), $fullCustomerName, '',
                         EMAIL_BILLING_REPLY_ADDRESS, EMAIL_BILLING_REPLY_ADDRESS_NAME, '', '', $subject, $htmlMail,
                         $txtMail);
        }
    }
    
    
    /**
     * Gets the Name of an order status by status ID and language ID
     *
     * @param IdType $orderStatusId The status ID
     * @param IdType $languageId    The language ID
     *
     * @return string The name of the status
     */
    protected function _getOrderStatusName(IdType $orderStatusId, IdType $languageId)
    {
        $statusName = '';
        $cidb       = StaticGXCoreLoader::getDatabaseQueryBuilder();
        $result     = $cidb->select('orders_status_name')->from('orders_status')->where([
                                                                                            'orders_status_id' => $orderStatusId->asInt(),
                                                                                            'language_id'      => $languageId->asInt()
                                                                                        ])->get()->result_array();
        if(count($result) > 0)
        {
            $statusName = $result[0]['orders_status_name'];
        }
        
        return $statusName;
    }
    
    
    /**
     * Generate the PDF permissions depending the shop configuration.
     * 
     * @link https://mpdf.github.io/reference/mpdf-functions/setprotection.html
     * 
     * @return array
     */
    protected function _getPdfPermissions()
    {
        $permissions = [
            'print',
            'fill-forms',
            'extract',
            'assemble',
            'print-highres'
        ];
        
        if(filter_var(gm_get_conf('GM_PDF_ALLOW_COPYING'), FILTER_VALIDATE_BOOLEAN))
        {
            $permissions[] = 'copy';
        }
        
        if(filter_var(gm_get_conf('GM_PDF_ALLOW_NOTIFYING'), FILTER_VALIDATE_BOOLEAN))
        {
            $permissions[] = 'annot-forms';
        }
        
        if(filter_var(gm_get_conf('GM_PDF_ALLOW_MODIFYING'), FILTER_VALIDATE_BOOLEAN))
        {
            $permissions[] = 'modify';
        }
        
        return $permissions; 
    }
}
API documentation generated by ApiGen