我正在努力寻找计算运输所需箱子尺寸的最佳方法.
我有3个不同尺寸的集装箱.我在数据库中定义了产品的宽度,长度,深度和质量.
我想知道如何找到最小数量的箱子,以及购物车中物品数量的最小尺寸.
我当前的'想法'是找到整个产品阵列的最大宽度,根据它选择一个框,然后根据需要拆分订单...这似乎不起作用.
我的盒子尺寸为: - 8 x 6 x 6 = 228立方英寸 - 10 x 8 x 8 = 640立方英寸 - 12.5 x 12.5 x 12.5 = 1953.125立方英寸
产品定义如下:
[Product] => Array
(
[STOCK_CODE] => 010003
[Product_Slug] => GABA_010003
[ItemName] => GABA
[WHOLESALE_PRICE] => 17.47
[RETAIL_PRICE] => 24.95
[Brand] =>
[ProductLine] =>
[image_name] => 705077000440
[MASS] => 0.313
[Height] => 4.625
[Width] => 2.375
[Depth] => 2.375
[cubic_inches] => 26.087890625
)
Run Code Online (Sandbox Code Playgroud)
我已经研究过背包问题,包装问题等,但找不到办法.任何帮助都会很棒.
function shipping(){
$this->CartProduct->unbindModel(
array('belongsTo' => array('User'))
); …
Run Code Online (Sandbox Code Playgroud) 请注意,这个问题是关于运费,而不是价格.有一个重要的区别,即商店所有者对运输方法的收费是多少,而不是客户支付的$$费用.
该shipping_tablerate
数据库表包括cost
字段,其在填充Mage_Shipping_Model_Carrier_Tablerate
对象的过程中collectRates
的方法.但是,该字段在堆栈中的任何其他位置都不可访问,例如从引号的地址.
我需要在购物车页面上访问该值,除了实例化Mage_Shipping_Model_Rate_Request
要传递的对象之外,我无论如何都找不到它collectRates()
.鉴于数据已从表中加载并且应该可访问,这似乎是不必要的低效率.
我已经尝试过观察<shipping_carrier_tablerate_load/>
事件,但似乎_load
没有为该模型抛出事件.
我也试过从报价中获取汇率:
$quote = Mage::getSingleton('checkout/cart')->getQuote();
$address = $quote->getShippingAddress();
$rate = $address->getShippingRateByCode($code ='tablerate_bestway');
Run Code Online (Sandbox Code Playgroud)
我可以看到计算结果price
,但是cost
在该模型中不存在.
在这个阶段,我的想法已经不多了.任何建议都感激不尽!
谢谢,乔纳森
我可以使用Magento实现以下目标:
我正在使用价格与目的地的表费率系统.我有一个购物车价格规则免费送货的产品属性free_shipping - >设置是.
如果你在篮子里有正常的产品或在篮子里免费送货产品,这种方法很好.但是,如果您同时拥有正常产品和免费送货产品.它根据订单总额计算运费,包括免费送货的产品.
我该如何纠正这个问题,因此当这两种产品都存在于购物篮中时,运费仅适用于不包括免费送货的产品订单总数?
有没有Magento插件吗?提前致谢.
我正在尝试为一个更大的应用程序创建一个小型Web服务来处理一些常见的运输操作(费率,包创建,标签),因此我在选择一种语言来编写它时非常灵活(Python,Ruby) ,Java,Perl,甚至PHP,如果有必要的话).但我还没有找到任何支持该愿望清单的一个不错的子集的库或模块.shopify的Active Shipping仅支持跟踪和获取费率.大多数CPAN模块都很古老......我可以自己做标签打印,只是一个ZPL模板的例子.但实际上创造出货的东西真的非常有用.许多不同的API调用,运输方法之间的差异等.
如果它足够灵活,也许可以从某些网店软件中取出一些东西.我不敢相信没有人为此写过一个全面的包装器.
嗨,任何人都可以告诉我如何成功下订单后才能获得运输方式标题?
这就是我所拥有的
$iOrderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$oOrder = Mage::getModel('sales/order')->loadByIncrementId($iOrderId);
echo $oOrder->getShippingMethod();
Run Code Online (Sandbox Code Playgroud)
但我怎么能得到这个运输方法的标题?
我最近在我的商店更新了WooCommerce 2.6,他们更新了他们的运输系统.在达到特定订单价值并触发免运费之前,我使用此选项隐藏付费送货选项:
/**
* woocommerce_package_rates is a 2.1+ hook
*/
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );
/**
* Hide shipping rates when free shipping is available
*
* @param array $rates Array of rates found for the package
* @param array $package The package array/object being shipped
* @return array of modified rates
*/
function hide_shipping_when_free_is_available( $rates, $package ) {
// Only modify rates if free_shipping is present
if ( isset( $rates['free_shipping'] ) ) {
// To unset a single …
Run Code Online (Sandbox Code Playgroud) 当我向Woocommerce添加58.75运费时。将其四舍五入为59。我想要确切的运费58.75。
有人遇到过这个吗?
在 woocommerce 中,我成功地将自定义字段添加到 Woocommerce 简单产品,并在产品页面的附加信息选项卡上显示该值。
现在我完全迷失了我的最后一块拼图试图在购物车和结帐页面中插入总行以计算总计算量。
自定义字段用于存储以 m3 为单位的家具项目的体积。当客户将商品添加到购物篮时,我想通过将所有自定义字段的值相加并在页面上向客户显示总数来计算货件的总立方米。任何人都可以指出我如何添加这些自定义字段并显示它们的正确方向。
到目前为止我的代码看起来像这样
// Display Fields using WooCommerce Action Hook
add_action( 'woocommerce_product_options_general_product_data', 'woocom_general_product_data_custom_field' );
function woocom_general_product_data_custom_field() {
// Create a custom text field
// Number Field
woocommerce_wp_text_input(
array(
'id' => '_item_volume',
'label' => __( 'Item Shipping Volume', 'woocommerce' ),
'placeholder' => '',
'description' => __( 'Enter the volume her in m3.', 'woocommerce' ),
'type' => 'number',
'custom_attributes' => array(
'step' => 'any',
'min' => '0.001'
)
)
);
}
// Hook to save …
Run Code Online (Sandbox Code Playgroud) 无论在结账时选择哪种送货方式,WooCommerce 过去都会显示送货地址,如果您必须在电子邮件中隐藏送货地址,则必须执行自定义工作,例如“/sf/ask/2725539841/送货地址在本地取货在 woocommerce-email-notifications/38937106#38937106”回答线程。
新更新后,如果在结账时选择了本地取货,WooCommerce 会在订单电子邮件中隐藏送货地址。即使选择了本地取货,我也想在订单电子邮件中显示送货地址,如果未提供送货地址,则应默认为帐单地址(如果选择任何其他送货方式进行结帐,则会发生这种情况)。不知道从哪里开始。
编辑#1:
与 Woocommerce 支持人员讨论后,更改没有记录在案,但他们能够指导我这是从哪里来的。根据他们的说法,我应该能够使用woocommerce_order_needs_shipping_address
过滤器钩子,即使使用本地取货来结账,它也会开始在订单电子邮件中显示送货地址。
任何帮助,将不胜感激。