我希望能够嵌入一个Haskell解释器,hint
这样我就可以在Haskell中编写插件来与我的程序一起使用.我不想为我的可执行文件发布整个Haskell平台.
通常,Haskell可执行文件是非常独立的.例如,擦除PATH
不会导致问题:
$ PATH=. Hello
Hello world
Run Code Online (Sandbox Code Playgroud)
但是,runInterpreter
如果我删除了一个简单的测试程序使用炸弹PATH
:
$ PATH=. TryHint
GhcException "panic! (the 'impossible' happened)\n (GHC version 7.8.3 for x86_64-apple-darwin):\n\tDynamic linker not initialised\n\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\n"
Run Code Online (Sandbox Code Playgroud)
环境中必须提供哪些库或可执行文件才能使其工作?
otool
没有提供太多指导:
otool -L TryHint
TryHint:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
/usr/local/lib/libgmp.10.dylib (compatibility version 13.0.0, current version 13.0.0)
Run Code Online (Sandbox Code Playgroud)
测试代码TryHint
没有做太多:
import Control.Monad
import Language.Haskell.Interpreter
main = do
f <- runInterpreter …
Run Code Online (Sandbox Code Playgroud) 我们已经构建了一个电子商务Web应用程序(Node
后端,Vue
前端).我们使用Stripe处理付款,但许多品牌已经询问我们是否可以在Shopify中完成订单和库存控制.我们正在努力找出将支付模块集成到Shopify的最佳方式,以便品牌可以通过Shopify管理履行和库存.
我们似乎应该使用Order API来创建订单并将其标记为已付款.但是我们怎么知道产品有库存,Shopify在创建订单时的运费和税费是多少?我认为我们可以使用Product API来获取库存水平,但运输和税收端点在哪里?
如果我正确理解订单API,我们需要告知Shopify创建新订单时的运费和税费.是对的吗?我们怎么可能知道这些数字?似乎应该有一个终点来计算运费和获得产品的税率,以便我们可以将这些数字传回订单API.我错过了什么吗?
我想也许我们应该创建一个financial_status: pending
首先获得运费和税率的订单(它甚至会给你那些?),然后将订单更新为cancel_reason: customer
或者cancel_reason: inventory
如果这些费用太贵而且订单被拒绝了?但是我们当然需要知道客户可以使用哪些送货方式才能告诉Shopify使用哪一种,对吧?或者默认情况下在创建订单时选择最便宜的一个?
笔记:
想象一下,你没有功能蠕变的问题,你有一个积极稳定的团队,明确定义的问题需要解决,你知道与你的项目相关的域/语言/工具.
你如何坚持计划并完成1.0里程碑?
您对迭代运输的方法是什么?
我想特别为一个小团队提出建议,那里很少或几乎没有沟通问题.
我正在尝试更改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时,无论我做什么,它都会让我看起来好像报价是使用旧的/不同的送货地址副本.
任何建议,或者也许是洞察它甚至可能在后端而不是前端工作?
编辑
经过更多调试后,我可以看到运输确实在前端和后端都发生了变化.问题是,只有在通过后端运行此代码时才会更改费用.很奇怪.它只是拒绝更新运费.
我以前使用这个答案来隐藏基于所选运输方法的结账字段,它工作正常,直到更新(3.4.2当前版本)我认为不确定已经改变但它不再按预期工作.
以前当选择本地拾取时,某些字段被隐藏并且是可选的,当选择传送时,它将再次通过动态显示这些字段而不重新加载页面.
现在它按要求显示和隐藏字段,但是,当选择传递时,它会显示标记为必需的正确字段,但旁边还有(可选)符号,这使其成为可选字段.见下图.
这是我修改过的剪贴板:
add_filter('woocommerce_default_address_fields', 'custom_default_checkout_fields', 10, 1 );
function custom_default_checkout_fields( $address_fields ) {
$custom_fields = array( 'country', 'address_1', 'address_2', 'state', 'postcode');
foreach($custom_fields as $field)
$address_fields[$field]['required'] = false;
return $address_fields;
}
add_action( 'wp_footer', 'custom_checkout_field_script' );
function custom_checkout_field_script() {
$pickpoint = 'local_pickup:2';
$free_delivery = 'free_shipping:1';
$flat_rate = 'flat_rate:3';
$required = esc_attr__( 'required', 'woocommerce' );
?>
<script>
jQuery(function($){
var shippingMethod = $('input[name^="shipping_method"]:checked'),
required = '<abbr class="required" title="<?php echo $required; ?>">*</abbr>',
shippingChecked = $('input#ship-to-different-address-checkbox');
shippingChecked.change( function(){
console.log('Shipping Checked: '+shippingChecked.prop('checked'));
}); …
Run Code Online (Sandbox Code Playgroud) 我正在开发的一个网络应用程序有一个相当小的网上商店/购物车.由于客户公司实际位于加利福尼亚州并且在那里有实际位置,因此他们需要对运往加利福尼亚州的所有订单征收CA销售税.
对于那些不知道的人,CA有一些相当复杂的销售税规则,基本上,任何本地集团都可以创建一个"税区",并在全州7.25的基础上利用额外的几美分销售税. %.(通常不到1%额外.)这些地区不必映射到任何其他立法边界,因此您可以最终支付半个城市支付额外.25%的销售税.
从技术上讲,法律只要求您作为卖方收取您所在地的销售税率 - 因此,如果我在萨克拉门托有一家商店,我只需要对所有发货的订单收取萨克拉门托销售税.
但是,出于各种会计和纳税申报的原因,实际上更容易对订单运送到的地点征收销售税.(这意味着可能会对每个订单征收不同的销售税.)
所以 - 我的问题.是否有人知道任何光滑的方法来计算这个?实际工作所需的数据在州均衡委员会网站上以各种半有用的格式提供,我们正在将一个小部件组合在一起,试图根据城市名称和城市名称来计算销售税.邮政编码.但是,我想知道是否有人遇到任何很酷的工具来解决这个问题.(或任何工具,就此而言.)
(我们正在使用VB和ASP.net,但我对任何语言的解决方案感兴趣,主要是因为我很高兴看到其他人如何解决这个问题.)
附录 - 回答以下问题:
蒂姆问这怎么可能"更容易".我被告知以这种方式缴纳销售税可以简化您的纳税申报表.我对细节很不满,但据我了解,如果你不收取运费地点的费率,你必须证明为什么你没有为年底的每一个订单 - 即你必须证明不,我们住在这里而不是那里,所以我们在这里收费.
如果你总是收取目的地费率,你可以(显然)只是在一行中记下你在全年收集的销售税总额,并说"销售税是这么多.
看起来国家并不关心你做了什么.因此,通过"更容易",我的意思是"会计师更容易" - 这对我们编程团队来说当然不容易.
此外,Schnapple的德克萨斯故事是一个潜在的解决方案.(事实上,我今天上午提出了这个想法.)CA真的不在乎你是否多收了销售税,只要你不收取任何费用并交出你收集的所有东西.这里的问题是,与德克萨斯州(显然)不同,大部分的CA都不在特殊的税区.因此,虽然我们可以为每个人收取最高级别(我认为目前为8.75),但大多数客户会介意不按正常速度7.25播放.我想我不能责怪他们.
我正在用PHP编写自定义商务CMS.
我一直在整合UPS XML API以获得运费,目前已经开始运作.我正在使用Mark Sandborn的PHP课程http://code.google.com/p/ups-php/
API需要输入最终包的长度,宽度,高度和重量.我的产品数据库包含每个相应产品的此信息,因此当有人购买一件商品时没问题.当多个产品被添加到购物车时,故事略有不同...最终的包装重量仍然很容易,因为我可以抓住所有产品重量的总和.
但是,当购买多个产品时,估算最终包装的长度,宽度和高度的最佳做法是什么?
修订
在我看来,任何在商店环境中使用UPS API的开发人员都必须处理同样的问题.除了背包问题的解决方案之外,我希望我误解了API的工作方式,并且实际上有一种简单的方法可以解决这个问题,甚至可以通过这种方式将其交给UPS来计算.
我刚刚建立了一个基于Woocommerce的网店,到目前为止我对它非常满意,但是我遇到了一些不一定是破坏者的东西,尽管它对顾客来说很烦人.
一些背景:商店是我的乐队网站,销售实体媒体和数字媒体,收集物理媒体的运输信息当然很有道理,但如果客户只购买数字媒体,这是不必要的步骤.
我一直在搜索,但没有运气,如果用户购物车中的所有商品都是数字下载,有没有办法关闭运费?
我想在送货方式下的Shipping Zone页面中添加一个自定义字段,它将是一个文本输入,用户将能够添加自定义消息,我将在前端显示该消息.
我注意到它将数据保存在wp_woocommerce_shipping_zone_methods
表中,没有任何额外的列来保存数据; 所以我想我必须使用我的自定义逻辑,但我不知道hook的名称.
所以我的问题是,是否有任何钩子可以帮助/允许我