integer-net / magento2-shippingpreselection
此模块提供在客户创建报价时预选配送方法的方法。它从 Magento 配置中获取所有可用的国家,并将预选当前商店视图的默认国家/地区/邮政编码。
Requires
- php: ~7.3||~7.4
- magento/framework: ^103.0.0
- magento/module-customer: ^103.0
- magento/module-quote: ^101.2
Requires (Dev)
- bitexpert/phpstan-magento: ^0.9.0
- bkubicki/magento2-unit-tests-doubles: ^1.2.0
- magento/magento-coding-standard: @dev
- pds/skeleton: ^1.0
- phpro/grumphp: ^v0.21.0
- phpstan/phpstan: ^0.12.0
- phpunit/phpunit: ^6.0|^9.0
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2023-02-20 13:56:31 UTC
README
⚠️ 本包不再维护
它以“原样”开源提供,但由于我们甚至不再在自己的项目中使用此方法,我们不会努力保持其更新。
您需要帮助在购物车页面上实现默认国家的配送估算吗?请联系 info@integer-net.de 了解您的疑问。
IntegerNet ShippingPreselection (AutoShipping)
此模块通过填充当前商店视图的默认国家/地区/邮政编码的模拟数据来预选最便宜的配送方法。
进入结账、PayPal Express 或 PayOne 页面时,将从配送地址中删除模拟数据。
安装
-
使用 composer 将其安装到您的 Magento 2 项目中
composer require integer-net/magento2-shippingpreselection
-
启用模块
bin/magento setup:upgrade
配置
一般情况下,确保您的配置设置符合要求
- 在“常规”>“商店信息”中设置邮政编码、地区和国家
- 所有可用国家都需要至少有一个可用的配送方法
- 可用国家不能有强制性的地区设置
- 将所选ShippingCountry选择添加到
Mage_Checkout::cart.phtml
<?= $block->getChildHtml('shipping_country') ?>
- 将配送国家脚本添加到
Mage_Checkout::cart/js/cart.phtml
updateCartDataDependencies() {
[...]
this.selectedShippingCountry = this.cartData && this.cartData.shipping_addresses && this.cartData.shipping_addresses[0] && this.cartData.shipping_addresses[0].country && this.cartData.shipping_addresses[0].country.code || null
},
<?= $block->getChildHtml('shipping_country_js') ?>
-
如果您想要自定义模拟数据,请将配置值
integernet/shipping_preselection/mock_data
设置为自定义值 -
如果您对 GraphQl 的购物车查询进行了修改,则需要相应地覆盖
IntegerNet\ShippingPreselection\ViewModel\ShippingAddressMutation
.
请注意:提供的模板旨在与表格费率/单一配送方法一起使用。
如果您有多个配送方法,并且由于购物车中的更改(如数量更改)而更改了最佳配送方法,模块将无法识别(因为已设置配送方法)。您可以通过客户端检查或在后端添加检查来解决此问题。
扩展配置
覆盖 integernet/shipping_preselection/mock_clearance_urls 的配置值或挂钩到服务以修改应在(取消)模拟的页面上进行配送地址的行为。
已知问题
1. 当中止 PayPal Express 并返回购物车时,配送方法不再显示
Paypal 没有正确设置电话地址属性,因为它在其响应中被称为不同的名称。您可以在自己的 etc/schema.graphql
中将电话字段设置为可空。
interface CartAddressInterface {
telephone: String
}
input CartAddressInput {
telephone: String
}
变更日志
请参阅变更日志获取关于最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件security@integer-net.de联系,而不是使用问题跟踪器。
鸣谢
许可
MIT 许可协议 (MIT)。请参阅许可文件以获取更多信息。