Questions tagged «shipping»

标记与运输有关的问题。

2
如果实行免费送货,为什么“送货总额”将销售报价项目的row_weight设置为0?
前言:这旨在作为Magento为社区(和我本人)的体系结构的书面观察,以及一个实际的问题。我们正在使用经过大量修改的购物车和结帐体验,但是此问题的根源在于Magento的核心逻辑。 背景 我们使用标准购物车价格规则功能创建了免费送货优惠券。优惠券没有任何条件,唯一的动作就是将Free Shipping设置为For matching items only。由于没有条件,这将设置free_shipping到1所有销售报价的项目。 按照惯例,我们还启用了免费送货送货方式。该Freeshipping运营商模式将提供利率每当请求有免费送货,或小计匹配或超过阈值(但我们不使用阈值选项)。见Mage_Shipping_Model_Carrier_Freeshipping::collectRates: $this->_updateFreeMethodQuote($request); if (($request->getFreeShipping()) // <-- This is the condition we're relying on || ($request->getBaseSubtotalInclTax() >= $this->getConfigData('free_shipping_subtotal')) ) { /* Snip: Add $0.00 method to the result */ } 而且Mage_Shipping_Model_Carrier_Freeshipping::_updateFreeMethodQuote是这样的: protected function _updateFreeMethodQuote($request) { $freeShipping = false; $items = $request->getAllItems(); $c = count($items); …

4
结帐时出现“请指定送货方式”异常
我一直在生产中获取此错误的异常日志,但无法在本地或暂存环境中重现该问题,因此很难进行故障排除。 产生此错误的Mage_Sales_Model_Service_Quote::_validate()原因是$rate返回的$rate = $address->getShippingRateByCode($method)为空。 我添加了一些日志记录,以尝试更好地了解正在发生的事情,并且可以看到其中$method包含正确的运输方法。 我最好的猜测是,在此过程中的某个时候,运费应在应有的时候删除。 我注意到,每次发生此异常时,都会在合法异常(例如无效的信用卡)之后立即发生。我试图通过使用无效的信用卡(然后是有效的信用卡)来重现该问题,但是对于我而言,无论是分期,制作还是本地,都无法重现。 我最初的预感是,可能在第一个有效异常之后某处丢失了运输方法,但事实并非如此,因为$method在抛出此异常时,我认为该方法具有正确的值。 我正在使用的checkout模块是AwesomeCheckout-据我所知,在创建应该在此处引起问题的订单时,它实际上没有任何自定义逻辑,但可能是相关的。 更新:我添加了一些代码以尝试重新收集丢失的费率。 protected function _validate() { if (!$this->getQuote()->isVirtual()) { $address = $this->getQuote()->getShippingAddress(); $addressValidation = $address->validate(); if ($addressValidation !== true) { Mage::throwException( Mage::helper('sales')->__('Please check shipping address information. %s', implode(' ', $addressValidation)) ); } $method= $address->getShippingMethod(); $rate = $address->getShippingRateByCode($method); /** * Start Customization */ …

1
联邦快递服务-“免费方式”不可能影响费率
联邦快递(FedEx)送货方式允许您设置一种免费送货方式,并设置最低订购量。 购物车中的物品 产品重量= 22.17lbs 数量= 7 配置A 包裹请求类型=“使用原点重量” 免费方法=“地面” 含最低订购量的免费送货=“禁用” 最小订单金额=空 允许的方法=地面 最大包装重量= 150 配置B 包裹请求类型=“使用原点重量” 免费方法=“禁用” 含最低订购量的免费送货=“禁用” 最小订单金额=空 允许的方法=地面 最大包装重量= 150 配置C 包裹请求类型=“等分重量” 免费方法=“禁用” 含最低订购量的免费送货=“禁用” 最小订单金额=空 允许的方法=地面 最大包装重量= 150 费率 配置A = 146.52 配置B = 69.68 配置C = 73.26 配置A返回的费率是配置C的两倍,这似乎与Magento如何将装运分成几箱有关。由于该物品重22.17磅,而购物车中有7磅,因此最大运送量超过150磅。如果购物车中只有6个,则两种配置都将返回相同的费率(按预期)。 此外,随着数量的增加,每个需要的盒子超过150磅(最大值),价格再次翻倍。 除此之外,为什么配置A和配置B之间的速率存在差异?为什么将免费送货方式设置为地面会导致价格翻倍?

5
如何检查账单和送货地址是否相等?
我正在尝试在创建发票PDF时检查账单和收货地址是否相等。 到目前为止,我尝试过的是: $order = $invoice->getOrder(); if( $order->getBillingAddress()->getData() != $order->getShippingAddress()->getData() ) 要么 $order = $invoice->getOrder(); if( $order->getShippingAddress()->getData('same_as_billing')!='1' ) 但都行不通。我也试图通过使用来获取报价,$order->getQuote()但这也不起作用。 有什么方法可以检查账单地址和送货地址是否相等?



2
如何在Magento 2的当前订单发货中添加跟踪号?
我确实找到了Magento 1.x的示例代码。但是我不知道如何在Magento 2上执行此操作。 谁能描述如何使用依赖注入(DI)来实现这一点? 谢谢。 $trackingDetail = array( 'carrier_code' => 'ups', 'title' => 'United Parcel Service', 'number' => 'TORD23254WERZXd3', // Replace with your tracking number ); $track = Mage::getModel('sales/order_shipment_track')->addData($trackingDetail); $shipment->addTrack($track); $transactionSave = Mage::getModel('core/resource_transaction') ->addObject($shipment) ->addObject($shipment->getOrder()) ->save();

6
magento:某些产品的运费不同
我们的默认运费为固定费用1,95欧元。 对于较大/较重的产品,我们要收取4,95的运输费用。 我们尝试使用插件来计算每件产品的运费。 结果如下:如果您的购物车中有2种产品,则它计算得出的不是4,95,而是2x4,95 = 9,90 有没有一种方法可以使(某些)产品的默认运费为4,95,其余产品应保留1,95的运费?
10 shipping 

3
Magento 2运送方式的其他数据
我正在制定新的送货方式,我需要在结帐运费中添加新列。数据将来自自定义的运输方法设置,例如方法说明。或客户可以在其中添加信息的某些输入字段(数据可能会保存在报价中,然后再按顺序保存)。 最简单的部分可能是通过使用 Magento_Checkout/web/template/shipping.html 它只需要这个 <div data-bind="text: method.description"></div> 问题是我不知道如何添加自定义数据。仅添加以下内容还不够: public function collectRates(RateRequest $request) { if (!$this->isActive()) return false; $method = $this->rateMethodFactory->create(); $method->setData('carrier', $this->getCarrierCode()); $method->setData('carrier_title', $this->getConfigData('title')); $method->setData('method_title', $this->getConfigData('title')); $method->setData('method', $this->getCarrierCode()); $method->setPrice($this->_price); $method->setData('cost', $this->_price); // custom $method->setData('description', $this->getConfigData('description')); $result = $this->rateResultFactory->create(); $result->append($method); return $result; } html的数据来自js rates(),后者从API获取数据: <route url="/V1/carts/:cartId/shipping-methods" method="GET"> <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="getList"/> …


2
如何让用户选择交货日期?
我的网站是礼品网站,因此我需要让用户选择交货日期。我希望在运输详细信息步骤中选择该选项(带有日历弹出框的文本框)。我可以用Google搜索免费的扩展程序,但我需要收到已经解决该问题的人的来信。我也不想修改核心文件。


2
如何收集可以发货的订单?
我需要尚未发货或部分发货的订单。我正在使用以下代码来获取可以发货的订单。 foreach ($orderIds as $orderId) { $order = Mage::getModel('sales/order')->load($orderId); if ($order->canShip()) { echo "Shipping Pending"; } } 但是我不想使用foreach。我需要下面的东西。 Mage::getModel('sales/order')->getCollection() ->addFieldToFilter('status','can_ship');


1
将订单拆分为单独的订单,并使用ups和fedex和不同的原始地址分别计算运输
当客户来到我们的商店并检查多个项目时,我需要编写一个模块以根据多个因素计算运费。根据我的研究,我确定应该发生以下情况: 首先,我需要将购物车中的物品分为不同的订单进行运输计算。我希望订单按“供应商”属性值排序。“供应商”是我们添加到系统中的属性,适用于所有简单产品。如此说来,在购物车中有一件粉红色的衬衫,“供应商”值为“ 1”,一支铅笔的“供应商”值为“ 1”,而一件蓝色衬衫的“供应商”值为“ 2”。“供应商”值“ 1”的所有项目都必须是一个订单,而“供应商”值“ 2”的项目必须是不同的订单。我看到另一个问题回答了这个难题,但是又提出了另一个问题。 其次,我需要使用Magento的默认UPS和Fedex运送功能来计算运送,但其原始地址由“供应商”值号(存储在单独的数据库表中)确定。 任何建议欢迎! 我正在使用代码片段来使我从这里和这里开始。 我可能会有几个问题,但第一个是上面粗体字的问题。 更新, 我认为最好是覆盖多个批次的magento核心模块来执行我想做的事情。请帮助我找到在何处以及放置什么以操纵多发货Magento功能,以根据“供应商”属性将订单商品分解为货件!我为此感到挣扎。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.