19 | = $escaper->escapeHtml(__($autoAccTxt)) ?> 20 |
21 | 22 |34 | 35 | 40 | 41 |
├── .github └── workflows │ ├── codesniffer.yml │ ├── linting.yml │ └── setup-upgrade.yml ├── .gitignore ├── Api ├── Config │ ├── RepositoryInterface.php │ └── System │ │ ├── FeedInterface.php │ │ ├── ItemupdateInterface.php │ │ ├── OrderInterface.php │ │ └── ReturnsInterface.php ├── Log │ └── RepositoryInterface.php ├── Order │ ├── Data │ │ ├── DataInterface.php │ │ └── SearchResultsInterface.php │ └── RepositoryInterface.php ├── Returns │ ├── Data │ │ ├── DataInterface.php │ │ └── SearchResultsInterface.php │ └── RepositoryInterface.php └── Selftest │ └── RepositoryInterface.php ├── Block ├── Adminhtml │ ├── Design │ │ ├── Header.php │ │ ├── Heading.php │ │ ├── Log.php │ │ └── Version.php │ ├── Order │ │ ├── Creditmemo │ │ │ ├── Totals.php │ │ │ └── View │ │ │ │ └── Returns.php │ │ ├── Invoice │ │ │ └── Totals.php │ │ └── Totals.php │ └── System │ │ └── Config │ │ ├── Button │ │ ├── Log.php │ │ ├── Selftest.php │ │ └── VersionCheck.php │ │ └── Form │ │ ├── Feeds.php │ │ ├── Field │ │ ├── AdvancedShipmentMapping.php │ │ ├── DeliveryTime.php │ │ ├── ExtraFields.php │ │ ├── Filters.php │ │ ├── Renderer │ │ │ ├── Actions.php │ │ │ ├── Attributes.php │ │ │ ├── Carriers.php │ │ │ ├── Channels.php │ │ │ ├── Conditions.php │ │ │ ├── Countries.php │ │ │ ├── ProductTypes.php │ │ │ └── ShippingMethods.php │ │ └── ReturnLabel.php │ │ └── Table │ │ ├── Itemupdates.php │ │ ├── Orders.php │ │ └── Returns.php └── Info │ └── Channable.php ├── COPYING.txt ├── Console └── Command │ ├── GenerateToken.php │ ├── ItemUpdate.php │ ├── OrderSimulate.php │ └── Selftest.php ├── Controller ├── Adminhtml │ ├── Item │ │ ├── Flush.php │ │ ├── Index.php │ │ ├── MassQue.php │ │ ├── RunQue.php │ │ └── Update.php │ ├── Log │ │ └── Stream.php │ ├── Order │ │ ├── Delete.php │ │ ├── Import.php │ │ ├── Index.php │ │ └── Simulate.php │ ├── Returns │ │ ├── Delete.php │ │ ├── Index.php │ │ ├── MassCreditmemo.php │ │ ├── MassDelete.php │ │ ├── MassProcess.php │ │ ├── Process.php │ │ └── Simulate.php │ ├── Selftest │ │ └── Index.php │ └── VersionCheck │ │ ├── Changelog.php │ │ └── Index.php ├── Feed │ ├── Json.php │ └── Preview.php ├── Item │ └── Webhook.php ├── Order │ ├── Hook.php │ ├── Shipments.php │ └── Status.php └── Returns │ ├── Hook.php │ └── Status.php ├── Cron ├── ItemCleanup.php └── ItemUpdate.php ├── Exceptions └── CouldNotImportOrder.php ├── Helper ├── Feed.php ├── General.php ├── Item.php ├── Preview.php ├── Product.php └── Source.php ├── Logger ├── DebugLogger.php ├── ErrorLogger.php └── Handler │ ├── Debug.php │ └── Error.php ├── Model ├── Base │ └── Metadata.php ├── Carrier │ └── Channable.php ├── Collection │ └── Products.php ├── Config │ ├── Backend │ │ ├── Cron.php │ │ └── Serialized │ │ │ ├── DeliveryTime.php │ │ │ ├── ExtraFields.php │ │ │ ├── Filters.php │ │ │ └── ReturnLabel.php │ ├── Repository.php │ ├── Source │ │ ├── Channels.php │ │ ├── CustomerGroups.php │ │ ├── ReturnLabel.php │ │ ├── ShippingMethods.php │ │ └── Status.php │ └── System │ │ ├── BaseRepository.php │ │ ├── FeedRepository.php │ │ ├── ItemupdateRepository.php │ │ ├── OrderRepository.php │ │ └── ReturnsRepository.php ├── Generate.php ├── Item.php ├── Log │ └── Repository.php ├── Order │ ├── DataModel.php │ ├── Repository.php │ └── ResourceModel │ │ ├── Collection.php │ │ └── ResourceModel.php ├── Payment │ └── Channable.php ├── ResourceModel │ ├── Item.php │ └── Item │ │ └── Collection.php ├── Returns │ ├── Collection.php │ ├── DataModel.php │ ├── Repository.php │ ├── ResourceModel.php │ └── ResourceModel │ │ └── Grid │ │ └── Collection.php ├── Selftest │ └── Repository.php ├── System │ └── Config │ │ └── Source │ │ ├── Attributes.php │ │ ├── Bundle │ │ ├── Image.php │ │ ├── Link.php │ │ ├── Option.php │ │ └── ParentAttributes.php │ │ ├── CategoryList.php │ │ ├── CategoryTypeList.php │ │ ├── Conditions.php │ │ ├── Configurable │ │ ├── Image.php │ │ ├── Link.php │ │ ├── Option.php │ │ └── ParentAttributes.php │ │ ├── Country.php │ │ ├── CronFrequency.php │ │ ├── CustomerGroups.php │ │ ├── Grouped │ │ ├── Image.php │ │ ├── Link.php │ │ ├── Option.php │ │ ├── ParentAttributes.php │ │ └── Price.php │ │ ├── ImageSource.php │ │ ├── InvalidationModus.php │ │ ├── Inventory.php │ │ ├── MainImage.php │ │ ├── ParentAttributes.php │ │ ├── ProductCondition.php │ │ ├── ProductTypes.php │ │ ├── ProductVisibility.php │ │ ├── ReturnsStatus.php │ │ ├── ShippingMethods.php │ │ ├── SourceType.php │ │ ├── Status.php │ │ └── Tax.php └── Total │ ├── TransactionFee.php │ ├── TransactionFeeCreditmemo.php │ └── TransactionFeeInvoice.php ├── Observer ├── Catalog │ └── ProductSaveAfter.php ├── CatalogInventory │ └── StockItemSaveAfter.php ├── Checkout │ └── AllSubmitAfter.php ├── Controller │ └── RemoveCsp.php ├── Sales │ ├── OrderItemCancel.php │ ├── OrderPlaceAfter.php │ └── QuoteSubmitBefore.php ├── SalesRule │ └── ValidatorProcess.php └── Xtento │ └── InvalidateProducts.php ├── Plugin ├── AddDiscountToInvoice.php ├── AfterCheckQty.php ├── AfterGetBackorders.php ├── AfterGetShippingDescription.php ├── AfterStockItemConfiguration.php ├── AfterValidateMinimumAmount.php ├── AroundCsrfValidator.php ├── AroundIsAllowedRequest.php ├── AroundIsAnySourceItemInStockCondition.php ├── AroundIsSalableWithReservationsCondition.php ├── AroundQuantityValidator.php ├── AroundSourceDeductionService.php └── CreditmemoSaveAfter.php ├── README.md ├── Service ├── Category │ └── CategoryData.php ├── ItemUpdate │ └── FlushItems.php ├── Order │ ├── Import.php │ ├── ImportSimulator.php │ ├── Items │ │ └── Add.php │ ├── Process │ │ ├── AddPaymentData.php │ │ ├── CreateInvoice.php │ │ ├── CreateShipment.php │ │ ├── GetCustomIncrementId.php │ │ ├── OrderCommentHistory.php │ │ └── SendOrderEmail.php │ ├── Quote │ │ ├── AddressHandler.php │ │ ├── Create.php │ │ └── CustomerHandler.php │ ├── Shipping │ │ ├── CalculatePrice.php │ │ ├── Fulfillment.php │ │ ├── GetDescription.php │ │ ├── GetMethod.php │ │ └── SetShippingMethod.php │ └── Validator │ │ └── Data.php ├── Product │ ├── CustomOptions.php │ ├── InventoryData.php │ ├── InventorySource.php │ ├── MediaData.php │ ├── PriceData.php │ └── TierPriceData.php ├── Returns │ ├── CreateCreditmemo.php │ ├── GetByOrder.php │ ├── GetReturnStatus.php │ ├── GetSkuFromGtin.php │ ├── ImportReturn.php │ ├── ImportSimulator.php │ ├── JsonResponse.php │ ├── ProcessReturn.php │ ├── ValidateJsonData.php │ └── ValidateRequestData.php ├── Test │ ├── Cron.php │ ├── ExtensionStatus.php │ ├── ExtensionVersion.php │ ├── ItemUpdate.php │ ├── MagentoVersion.php │ ├── OrderImport.php │ ├── PhpExtensions.php │ ├── PhpVersion.php │ └── ProductFeed.php ├── Token │ └── Generate.php └── Webhook │ ├── OrderStatus.php │ └── Shipments.php ├── Setup └── Patch │ └── Data │ ├── CategoryAttributes.php │ ├── ConfigPath.php │ └── CreateToken.php ├── Ui └── Component │ ├── Listing │ └── Column │ │ ├── Item │ │ └── Actions.php │ │ ├── Order │ │ ├── AbstractOrder.php │ │ ├── Actions.php │ │ ├── Billing.php │ │ ├── Customer.php │ │ ├── Error.php │ │ ├── Price.php │ │ ├── Products.php │ │ └── Shipping.php │ │ └── Returns │ │ ├── Actions.php │ │ ├── Creditmemo.php │ │ ├── Item.php │ │ ├── Order.php │ │ ├── Reason.php │ │ └── Status.php │ └── OrderDataProvider.php ├── composer.json ├── etc ├── acl.xml ├── adminhtml │ ├── events.xml │ ├── menu.xml │ ├── routes.xml │ ├── system.xml │ └── system │ │ ├── carriers.xml │ │ ├── feed.xml │ │ ├── general.xml │ │ ├── itemupdates.xml │ │ ├── order.xml │ │ ├── payment.xml │ │ └── returns.xml ├── config.xml ├── crontab.xml ├── db_schema.xml ├── db_schema_whitelist.json ├── di.xml ├── events.xml ├── extension_attributes.xml ├── fieldset.xml ├── frontend │ ├── di.xml │ ├── events.xml │ └── routes.xml ├── module.xml ├── payment.xml ├── pdf.xml └── sales.xml ├── i18n └── en_US.csv ├── registration.php └── view ├── adminhtml ├── layout │ ├── channable_item_index.xml │ ├── channable_order_index.xml │ ├── channable_returns_index.xml │ ├── sales_order_creditmemo_new.xml │ ├── sales_order_creditmemo_updateqty.xml │ ├── sales_order_creditmemo_view.xml │ ├── sales_order_invoice_view.xml │ └── sales_order_view.xml ├── templates │ ├── info │ │ ├── channable_payment.phtml │ │ └── pdf │ │ │ └── channable_payment.phtml │ ├── order │ │ ├── creditmemo │ │ │ └── view │ │ │ │ └── returns.phtml │ │ └── table-tooltip-js.phtml │ └── system │ │ └── config │ │ ├── button │ │ ├── log.phtml │ │ ├── selftest.phtml │ │ └── version.phtml │ │ └── fieldset │ │ ├── feeds.phtml │ │ ├── header.phtml │ │ └── table │ │ ├── itemupdates.phtml │ │ ├── orders.phtml │ │ └── returns.phtml ├── ui_component │ ├── catalogstaging_category_update_form.xml │ ├── category_form.xml │ ├── channable_item_grid.xml │ ├── channable_order_grid.xml │ ├── channable_returns_grid.xml │ └── sales_order_grid.xml └── web │ ├── css │ └── source │ │ ├── _module.less │ │ ├── extend │ │ └── _additional.less │ │ ├── module │ │ ├── _debug.less │ │ ├── _header.less │ │ ├── _version.less │ │ └── ui │ │ │ ├── _button.less │ │ │ └── _modal.less │ │ └── variables │ │ └── _colors.less │ ├── images │ └── channable-logo.png │ ├── js │ ├── button-functions.js │ ├── order-table-tooltip.js │ └── show-more.js │ └── template │ └── grid │ └── order_import_status.html └── frontend └── templates └── info └── channable_payment.phtml /.github/workflows/codesniffer.yml: -------------------------------------------------------------------------------- 1 | name: Codesniffer with the Magento Coding standard 2 | on: [push, pull_request] 3 | 4 | jobs: 5 | build: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v2 9 | 10 | - name: Run codesniffer 11 | run: 12 | docker run 13 | --volume $(pwd)/:/app/workdir 14 | michielgerritsen/magento-coding-standard:latest 15 | --severity=8 16 | -s 17 | -------------------------------------------------------------------------------- /.github/workflows/linting.yml: -------------------------------------------------------------------------------- 1 | name: Lint PHP files 2 | on: [push, pull_request] 3 | 4 | jobs: 5 | php-74: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: prestashop/github-action-php-lint/7.4@v2.3.1 9 | 10 | php-81: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: prestashop/github-action-php-lint/8.1@v2.3.1 14 | 15 | php-82: 16 | runs-on: ubuntu-latest 17 | steps: 18 | - uses: prestashop/github-action-php-lint/8.2@v2.3.1 19 | 20 | php-83: 21 | runs-on: ubuntu-latest 22 | steps: 23 | - uses: prestashop/github-action-php-lint/8.3@v2.3.1 24 | 25 | php-84: 26 | runs-on: ubuntu-latest 27 | steps: 28 | - uses: prestashop/github-action-php-lint/8.4@v2.3.1 29 | -------------------------------------------------------------------------------- /.github/workflows/setup-upgrade.yml: -------------------------------------------------------------------------------- 1 | name: Run setup:upgrade and setup:di:compile 2 | on: [pull_request] 3 | 4 | jobs: 5 | build: 6 | strategy: 7 | matrix: 8 | include: 9 | - PHP_VERSION: php74-fpm 10 | MAGENTO_VERSION: 2.3.7 11 | - PHP_VERSION: php81-fpm 12 | MAGENTO_VERSION: 2.4.6-p4 13 | - PHP_VERSION: php83-fpm 14 | MAGENTO_VERSION: 2.4.7 15 | - PHP_VERSION: php84-fpm 16 | MAGENTO_VERSION: 2.4.8-beta2 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/checkout@v2 20 | 21 | - name: Start Docker 22 | run: docker run --detach --name magento-project-community-edition michielgerritsen/magento-project-community-edition:${{ matrix.PHP_VERSION }}-magento${{ matrix.MAGENTO_VERSION }} 23 | 24 | - name: Create branch for Composer and remove version from composer.json 25 | run: git checkout -b continuous-integration-test-branch && sed -i '/version/d' ./composer.json 26 | 27 | - name: Upload the code into the docker container 28 | run: docker cp $(pwd) magento-project-community-edition:/data/extensions/ 29 | 30 | - name: Install the extension in Magento 31 | run: docker exec magento-project-community-edition composer require magmodules/magento2-channable:@dev --no-plugins 32 | 33 | - name: Activate the extension and run setup:upgrade and setup:di:compile 34 | run: docker exec magento-project-community-edition ./retry "rm -rf /data/generated/code && php bin/magento module:enable Magmodules_Channable && php bin/magento setup:upgrade && php bin/magento setup:di:compile" 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.zip 3 | .DS_Store -------------------------------------------------------------------------------- /Api/Config/RepositoryInterface.php: -------------------------------------------------------------------------------- 1 | addClass('magmodules'); 34 | return $this->toHtml(); 35 | } 36 | 37 | /** 38 | * Support link for extension. 39 | * 40 | * @return string 41 | */ 42 | public function getSupportLink(): string 43 | { 44 | return self::MODULE_SUPPORT_LINK; 45 | } 46 | 47 | 48 | /** 49 | * Support link for Channable. 50 | * 51 | * @return string 52 | */ 53 | public function getChannableSupportLink(): string 54 | { 55 | return self::MODULE_CHANNABLE_SUPPORT_LINK; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Block/Adminhtml/Design/Heading.php: -------------------------------------------------------------------------------- 1 | getHtmlId() . '">'; 29 | $html .= '
19 | = $escaper->escapeHtml(__($autoAccTxt)) ?> 20 |
21 | 22 |15 | = $block->escapeHtml(__('Store')) ?> 16 | | 17 |18 | = $block->escapeHtml(__('Updates')) ?> 19 | | 20 |21 | = $block->escapeHtml(__('Webhook')) ?> 22 | | 23 |24 | = $block->escapeHtml(__('Items')) ?> 25 | | 26 | 27 | 28 | getStoreData() as $store): ?> 29 |
---|---|---|---|
31 | = $block->escapeHtml($store['name']); ?> 32 | | 33 |34 | = $block->escapeHtml($store['enabled']); ?> 35 | | 36 |37 | = $block->escapeHtml($store['webhook']); ?> 38 | | 39 |40 | = $block->escapeHtml($store['qty']); ?> 41 | | 42 |
15 | = $block->escapeHtml(__('Store')) ?> 16 | | 17 |18 | = $block->escapeHtml(__('Webhook')) ?> 19 | | 20 |21 | = $block->escapeHtml(__('Test')) ?> 22 | | 23 | 24 | 25 | getStoreData() as $store): ?> 26 |
---|---|---|
28 | = $block->escapeHtml($store['name']); ?> 29 | | 30 |31 | 32 | | 33 |34 | 35 | = $block->escapeHtml(__('Import Test Order')) ?> 36 | 37 | | 38 |
15 | = $block->escapeHtml(__('Store')) ?> 16 | | 17 |18 | = $block->escapeHtml(__('Webhook')) ?> 19 | | 20 |21 | = $block->escapeHtml(__('Test')) ?> 22 | | 23 | 24 | 25 | getStoreData() as $store): ?> 26 |
---|---|---|
28 | = $block->escapeHtml($store['name']); ?> 29 | | 30 |31 | 32 | | 33 |
34 |
35 | = $block->escapeHtml(__('Import Test Return')) ?>
36 |
37 | 38 | 39 | = $block->escapeHtml(__('Import Test Return with new Order')) ?> 40 | 41 | |
42 |
= $escaper->escapeHtml($label)?> | 24 |25 | = /* @noEscape */ nl2br($escaper->escapeHtml( 26 | implode("\n", $block->getValueAsArray($value, true)) 27 | ));?> 28 | | 29 |
---|