我需要知道是否需要为此类内容创建窗口小部件,或者只是将最近的订单块添加到主页layout.xml。
它应该只反映该商店的订单。
我知道用户必须登录才能使用此功能,但可能会有一些cookie魔法应用于检测用户,并显示最近订单的简短列表,而不显示项目,我认为不是一个巨大的隐私/安全问题。
这适用于空间有限的移动应用,快速链接很有用......
然后会在仪表板中显示重新排序/查看的链接,该视图需要下降登录。
如果可能的话,最好的方法是什么。
这是一个Paypal应用程序,最近的订单来自: http://www.sitename.com/storename/jsonsales/order/recenttemplate?s=2752732063744
先谢谢。
答案 0 :(得分:1)
最重要的是,我要做的是创建一个自定义模块,观察者在下订单时捕获,触发将订单存储在cookie中的过程(例如最后3个订单?)
然后在该模块中创建一个块以从cookie中读取数据。
之后将该块渲染到模板中(通过编辑适当的.phtml或创建自己的.phtml并将其添加到layout.xml中)。
希望这有帮助。
答案 1 :(得分:0)
对于那些可能想要尝试这个的人,使用一个名为Paypal order Ahead的模块。
因为这是一个特定于PayPal的Web应用程序,所以我可以使用调用json模板的javascript函数来完成此操作。
在/app/design/frontend/paypal/test/template/cms/index.phtml上我添加了以下内容:
<div class="content-box greybg recentordercontainer">
<div id="productError_<?php echo $sid; ?>" style="display:none"></div>
<div class="page-title text-title"><?php echo $this->__('My Recent Orders'); ?></div>
<div id="recentorder-list-box_<?php echo $sid; ?>" class=""></div>
<div class="cart-empty" id="cart-empty_<?php echo $sid; ?>" style="display:none">
<div class="box-shadow">
<div class="error-desc cart-row2" style="margin-top:10px;"><?php echo $this->__('You have not yet made any purchases.'); ?></div>
</div>
<div class="pay-now" id="contshop_<?php echo $sid; ?>">
<a href="#" onclick="navigationURL(storeRootUrl);" class="glossy-button"><?php echo Mage::getStoreConfig('checkout/options/continue_shopping_text'); ?></a>
</div>
</div>
</div>
然后我在这个模板底部的脚本部分添加了一些javascript:
getRecentOrderBlockJSON("<?php echo $sid; ?>")
function getRecentOrderBlockJSON(id) {
$.getJSON(storeRootUrl+"/jsonsales/order/recent", function(jsonObj) {
renderRecentOrderBlock(jsonObj,id);
});
}
function renderRecentOrderBlock(jsonObj,id) {
var dataObj = jsonObj.recentorder;
// Recent Order Item box target
var ulObj = $("#recentorder-list-box_"+id);
// Display error message on top
if (jsonObj.messages.error.length >0) {
var pdObj = $("#productError_"+id);
var tplHTML = $("#ErrorPageTemplate").html();
for (key in jsonObj.messages) {
var re = new RegExp("%"+key+"%", "g");
tplHTML = tplHTML.replace(re,jsonObj.messages[key]);
}
pdObj.append(tplHTML);
$("#productError_"+id).css("display","block");
}
// have recent order
if ( dataObj && dataObj.length > 0 ) {
for ( var i=0; i<dataObj.length; i++ ) {
var tplHTML = $("#RecentOrderFrontTemplate").html();
// date
var re = new RegExp("%created_at%", "g");
//tplHTML = tplHTML.replace(re,dataObj[i].order.created_at);
tplHTML = tplHTML.replace(re,dataObj[i].order.created_at_localetime);
// update id
var re3 = new RegExp("%id%", "g");
tplHTML = tplHTML.replace(re3,dataObj[i].order.id);
// update rid
var re4 = new RegExp("%rid%", "g");
tplHTML = tplHTML.replace(re4,id);
ulObj.append(tplHTML);
// Recent Ordered Item box
var orderObj = $("#order-list-attr-"+id+dataObj[i].order.id);
} // for
}
}
这给了我列表,前提是有一个名为ppmeccookie的cookie,其中包含了customerid的值。这个cookie通常是在您使用此paypal应用程序之前完成paypal结账时生成的。
感谢您的帮助。