我正在尝试更改Magento现有订单的运费.这在管理员后端工作正常,即使这是一个非常重要的过程,因为我必须在发货地址对象上设置新的发货方法并重新计算报价总计后手动更新许多订单字段/属性.
我的问题是在前端运行相同的代码,它根本不起作用,报价collectTotals将恢复我在shippingAddress中所做的任何更改,我不知道如何解决它或为什么它的工作原理后端.
这就是它的样子:
$shippingAddress = $quote->getShippingAddress();
$shippingAddress->setShippingMethod('dynamicshipping_'.$shippingCode);
$shippingAddress->setCollectShippingRates(true);
$shippingAddress->collectShippingRates();
$quote->setUseCustomerBalance(1)->setTotalsCollectedFlag(false)->collectTotals()->save();
$order->setShippingHiddenTaxAmount($shippingAddress->getShippingHiddenTaxAmount());
$order->setBaseShippingHiddenTaxAmount($shippingAddress->getBaseShippingHiddenTaxAmount());
$order->setBaseShippingHiddenTaxAmnt($shippingAddress->getBaseShippingHiddenTaxAmnt());
$order->setShippingInclTax($shippingAddress->getShippingInclTax());
$order->setBaseShippingInclTax($shippingAddress->getBaseShippingInclTax());
$order->setShippingTaxAmount($shippingAddress->getShippingTaxAmount());
$order->setBaseShippingTaxAmount($shippingAddress->getBaseShippingTaxAmount());
$order->setShippingAmount($shippingAddress->getShippingAmount());
$order->setBaseShippingAmount($shippingAddress->getBaseShippingAmount());
$order->setShippingDiscountAmount($shippingAddress->getShippingDiscountAmount());
$order->setBaseShippingDiscountAmount($shippingAddress->getBaseShippingDiscountAmount());
$order->setGrandTotal($shippingAddress->getGrandTotal());
$order->setBaseGrandTotal($shippingAddress->getBaseGrandTotal());
$order->setShippingMethod('dynamicshipping_'.$shippingCode);
$order->setShippingDescription($shippingDescription);
$order->setServicePoint($servicePoint);
$order->save();
Run Code Online (Sandbox Code Playgroud)
正如我所说,每次从后端开始工作都很好,但是从前端调用时却没有.
我尝试过各种各样的变种,比如试图消除旧运输方法的任何痕迹,没有运气.
$quote->getShippingAddress()->removeAllShippingRates()
->setShippingMethod('dynamicshipping_'.$shippingCode)
->setShippingDescription($shippingDescription)
//->setBaseShippingAmount(0)
//->setBaseShippingTaxAmount(0)
//->setShippingTaxAmount(0)
//->setShippingInclTax(0)
->setCollectShippingRates(true)
//->unsetData('cached_items_all')
//->unsetData('cached_items_nominal')
//->unsetData('cached_items_nonnominal')
->collectShippingRates()
//->collectTotals()
->save();
Run Code Online (Sandbox Code Playgroud)
当我打电话给collectTotals时,无论我做什么,它都会让我看起来好像报价是使用旧的/不同的送货地址副本.
任何建议,或者也许是洞察它甚至可能在后端而不是前端工作?
编辑
经过更多调试后,我可以看到运输确实在前端和后端都发生了变化.问题是,只有在通过后端运行此代码时才会更改费用.很奇怪.它只是拒绝更新运费.
我正在寻找一个finshed解决方案或可能是一些数学/算法用于从较小的产品图片创建一个大的图像拼贴?我知道如何以方形方式进行,从gd/imagemagick的相同大小的图片,但我想有一些内置的变化.
例如,一些图片可能会稍微高一点,如果所有图片的大小和正方形相同 - 我可能会想要其中一个占用更多空间,只是为了混淆设计.让它变得有趣.
我想的越多,配方就越难.为所有可能的场景预定义"模板"是行不通的,因为图片的数量可能从1(不需要工作)到10+不等.
我不是在寻找任何旋转或特殊效果,只是网格中的图像,中间可能有一些间距,没有重叠.
任何想法如何实现这一点,并没有什么准备好去那里?
我正在研究一个保存到自定义表的后端模块.我的问题是我已经为这个表添加了字段,因为我一直在处理它,新添加的字段不会保存模型 - > Save()函数.
我已经完全删除了模块和树脂,让它从头开始创建我的自定义表,以防它有一些我不知道的内部字段数,但仍然是相同的结果.
添加我的数据后,我对提交的内容执行var转储,如下所示:
$model = Mage::getModel("smsmanager/sms")->addData($post_data)->save();
var_dump($model->getData()); exit;
Run Code Online (Sandbox Code Playgroud)
结果
array
'form_key' => string 'RUGN3fruWobAf8CZ' (length=16)
'message' => string 'adg asdg sad' (length=14)
'country' => string 'SE' (length=2)
'telephone' => string '+46707332290' (length=12)
'type' => int 2
'id' => string '5' (length=1)
Run Code Online (Sandbox Code Playgroud)
一切看起来都很好.当我检查ID为5的新创建的行时,我得到:
|-----------------------------------------------------------------------------------------------------------|
|id int(11)| type int(11) | telephone varchar(20) | country varchar(2) | message text | date timestamp |
|-----------------------------------------------------------------------------------------------------------|
| 5 | 2 | +46707332290 | NULL | adg asdg sad | 2013-03-19 21:44:51 | …Run Code Online (Sandbox Code Playgroud) 我正在研究使用TinyMCE 4.0内联,并注意到工具栏正在div上方浮动.我想将它修复到我页面顶部的另一个工具栏下:
position: fixed;
top: 60px;
width: 100%;
Run Code Online (Sandbox Code Playgroud)
这将是一个简单的CSS覆盖,如果不是因为tinyMCE似乎在滚动时改变类.如果在内联编辑时向下滚动页面,最终toobar将粘贴到页面顶部 - 在这种情况下更改样式.
我在文档中查找了一个简单的定位选项,并尝试重写CSS.有没有我错过的东西 - 或者我是否真的必须开始考虑更改核心JS以停止摆弄类/样式?关于如何配置它的位置的任何想法?