根据我得到的要求,在Shopify商店,管理员应该能够从客户选择的交货日期搜索订单。我能找到的唯一可行的方法是在订单上贴上交货标签,并从标签中过滤订单。我的问题是,在创建订单时,是否有一种正确的方式将订单标记为客户给定的交货日期?(我不允许使用任何付费应用程序/插件)
我可以用管理订单应用编程接口找到两种方法,但都有问题,
>
订单确认后,从客户端调用管理API。我尝试了这个方法,它的工作原理是预期的,但问题是我必须将订单和事务的管理API凭据存储在客户端JavaScript中,据我所知,这根本不是一个好的做法。
允许在客户端使用购物车属性创建有关订单的其他详细信息,它们也显示在管理订单的页面上,但Shoify不允许使用添加到订单的购物车属性搜索订单。
如果有人能提出解决方案,我将不胜感激。
实际上,您可以使用Chrome插件(或非常复杂的bookmarklet)来实现这一点,而无需服务器端需求。看见https://developer.chrome.com/extensions/overview
您的api调用看起来类似于以下POC脚本。API调用不会搜索order by标记,因此您可以跳过该标记,并通过主题的。液体代码。你的chrome插件将列出未结订单,并按要求的交货日期显示它们。
获取现有订单并更新其备注属性:
jQuery.get('/admin/orders/5803440262.json').then(function(d) {
console.log(d.order);
var so = {
id: d.order.id,
note_attributes: [{
name: 'Test Value',
value: 'Test'
}]
};
jQuery.ajax({
url: '/admin/orders/' + so.id + '.json',
type: 'PUT',
data: JSON.stringify({
order: so
}),
contentType: 'application/json'
}).then(function(d) {
console.log(JSON.stringify(d, null, ' '));
});
});
阅读命令:
jQuery.get('/admin/orders.json?limit=250').then(function(d) {
var count = 0;
d.orders.forEach(function(so) {
if (so.tags.indexOf('__amazon_pending') != -1) count++;
});
console.log(count + ' matching orders');
});