integer-net/magento2-shippingpreselection

此包已被废弃,不再维护。未建议替代包。

此模块提供在客户创建报价时预选配送方法的方法。它从 Magento 配置中获取所有可用的国家,并将预选当前商店视图的默认国家/地区/邮政编码。

0.0.4 2023-02-20 13:56 UTC

This package is auto-updated.

Last update: 2023-02-20 13:56:31 UTC


README

Latest Version on Packagist Software License Supported Magento Versions

Maintainability

⚠️ 本包不再维护

它以“原样”开源提供,但由于我们甚至不再在自己的项目中使用此方法,我们不会努力保持其更新。

您需要帮助在购物车页面上实现默认国家的配送估算吗?请联系 info@integer-net.de 了解您的疑问。

IntegerNet ShippingPreselection (AutoShipping)

此模块通过填充当前商店视图的默认国家/地区/邮政编码的模拟数据来预选最便宜的配送方法。

进入结账、PayPal Express 或 PayOne 页面时,将从配送地址中删除模拟数据。

安装

  1. 使用 composer 将其安装到您的 Magento 2 项目中

    composer require integer-net/magento2-shippingpreselection
    
    
  2. 启用模块

    bin/magento setup:upgrade
    

配置

一般情况下,确保您的配置设置符合要求

  • 在“常规”>“商店信息”中设置邮政编码、地区和国家
  • 所有可用国家都需要至少有一个可用的配送方法
  • 可用国家不能有强制性的地区设置
  1. 将所选ShippingCountry选择添加到 Mage_Checkout::cart.phtml
     <?= $block->getChildHtml('shipping_country') ?>
 
  1. 将配送国家脚本添加到 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') ?>
  1. 如果您想要自定义模拟数据,请将配置值 integernet/shipping_preselection/mock_data 设置为自定义值

  2. 如果您对 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)。请参阅许可文件以获取更多信息。