小编pan*_*ake的帖子

isSaleable()和isAvailable()有什么区别?

我正在Magento主题的(个人)产品页面上显示库存可用性,而且我对此并不完全了解.

我看到模板中使用了两种方法来检查产品是否可供销售:

Mage_Catalog_Model_Product::isAvailable()
Mage_Catalog_Model_Product::isSaleable()
Run Code Online (Sandbox Code Playgroud)

我自己的发现:
我看到了isSalable()(反过来被调用isSaleable())调用,isAvailable()但也调度了两个事件(catalog_product_is_salable_beforecatalog_product_is_salable_after).

在前面我注意到在Magento的基本模板isAvailable()用于决定是否将产品显示为"库存"或"缺货"; isSaleable()用于决定是否显示"添加到购物车"按钮.

在后端,我注意到,当库存数量为零,缺货是不是允许,可用库存产品的去"缺货".当库存数量为零,缺货允许的,可用库存产品的保持不变.

问题:
属性"库存可用性"和"库存数量"显然是相互关联的,并提到了PHP方法.我想知道:

  • 什么语义的PHP方法之间的差异isAvailable(),并 isSaleable()是,为什么我会用一个比其他;

  • 它是什么我似乎还不知道他们与这些属性的关系和Magento的行为.

谢谢.

编辑:
我已经尝试了产品的库存数量(-1,0,1),库存可用性(进/出)和缺货(开/关)的每个相关组合,结果如下:

St.Qu  BckOrd  St.Av  isSalable()  isSaleable()  isAvailable()
   -1       0      0            0             0              0
   -1       0      1          N/A           N/A            N/A
   -1       1      0            0             0              0
   -1       1      1            1             1              1
    0       0      0            0             0              0
    0       0      1          N/A           N/A …

product magento stock

50
推荐指数
1
解决办法
3万
查看次数

"更新"元素在Magento布局XML中做了什么?

现在我正在探索Magento管理部分的内部,我偶然发现了这段XML:

文件:app/design/adminhtml/default/default/layout/catalog.xml,第55行

50            <block type="core/template" template="catalog/wysiwyg/js.phtml"/>
51        </reference>
52    </adminhtml_catalog_product_new>
53    
54    <adminhtml_catalog_product_edit>
55        <update handle="editor"/>
56        <reference name="content">
57            <block type="adminhtml/catalog_product_edit" name="product_edit"></block>
58        </reference>
Run Code Online (Sandbox Code Playgroud)

什么是<update />标签吗?

layout magento

21
推荐指数
2
解决办法
2万
查看次数

制作固定大小的UIView,如UISwitch(使用IBDesignable)

当我使用本指南创建一个在XIB中设计的视图时,可以使用我的UIView子类上的IBDesignable属性从故事板中重用,如何使其具有固定大小,并使其大小调整行为与像UISwitch这样的观点?

在"调整大小行为"时,我也意味着在界面构建器中进行设计.

resize uiview ios ibdesignable

13
推荐指数
1
解决办法
1305
查看次数

在自定义控制器+动作中使用Magento内置消息系统

我正在调整我的magento商店,几乎一切都在游泳,除了一件事:

问题: 我似乎无法在对AJAX请求的响应中检索和显示消息块.

说明: 我说的是在尝试不起作用的东西后向用户显示的红色(或绿色,当它是成功消息时)条形图(例如,向购物车添加的商品数量超过库存允许的数量).在响应生成错误的某些ajax请求时,我想通过一个非常空的模板显示消息'标记,该模板用于呈现此ajax请求的响应.如果没有错误发生,则会呈现不同的适当响应.

我尝试过的事情: 这里有几行PHP代码我尝试过使用:

$_messages = Mage::getSingleton("core/session")->getMessages();
echo $this->getLayout()->createBlock("core/messages")->setMessages($_messages)->getGroupedHtml();

echo $this->getMessagesBlock()->getGroupedHtml();

echo Mage::app()->getLayout()->getMessagesBlock()->
        setMessages(Mage::getSingleton('customer/session')->getMessages(true))->getGroupedHtml();
Run Code Online (Sandbox Code Playgroud)

Mage::logging数据显示空消息集合.

这是布局XML(我$this->loadLayout('ajax_msg_handle');在控制器中使用):

<ajax_msg_handle>
  <block type="core/template" name="error.root" output="toHtml" template="page/html/ajax-messages.phtml">
    <block type="core/messages" name="global_messages" as="global_messages"/>
    <block type="core/messages" name="messages" as="messages"/>
  </block>
</ajax_msg_handle>
Run Code Online (Sandbox Code Playgroud)

另外一个细节点,我考虑过以下几点:

大多数操作,如购物车的"删除","编辑"和产品页面的"添加到购物车",首先重定向到另一个地方,因此会发出第二个请求,显示错误.也许这些消息永远不会立即显示,但只有在生成错误的请求之后才响应请求.所以我试图通过重定向到显示这些消息的动作来遵循这种可能的约定,但这也不起作用.

如果有人能告诉我如何让这些消息出现,它将成为我的一天.

ajax block messages magento

5
推荐指数
1
解决办法
7436
查看次数

从.NET客户端使用ADO.NET数据服务的服务操作

我正在尝试构建一个包含大量实体和一些服务操作的ADO.NET数据服务.一方面,我创建了一个ASP.NET Web应用程序,其中包含ADO.NET实体数据模型和ADO.NET数据服务.另一方面,我创建了第二个ASP.NET Web应用程序,它具有对数据服务的服务引用.

实体很顺利,我可以使用LINQ来检索我想要的数据:

TestEntities entities = new TestEntities(
            new Uri("http://localhost/service/service.svc"));

var query = from customer in entities.Customers
                    where customer.ID == 1234
                    select customer;

query.ToList();
Run Code Online (Sandbox Code Playgroud)

这有效.但是,通过服务操作检索信息完全不适合我.数据服务端代码:

public static void InitializeService(IDataServiceConfiguration config) {
    config.SetEntitySetAccessRule("*", EntitySetRights.All);
    config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
}

[WebInvoke]
public IQueryable<Customer> GetSomeCustomers() {
    TestEntities entities = new TestEntities();
    return from customer in entities.Customers
        where customer.ID > 0 && customer.ID < 20
        select customer;
}
Run Code Online (Sandbox Code Playgroud)

当我将服务引用添加到我的客户端项目时,Visual Studio没有接受任何服务操作.我知道我可以通过构造的URI和Da​​taServiceContext对象或TestEntities对象的BeginExecute方法(在这种情况下)或类似的东西来访问它们,但这不是我想要的.

我想要的是使用LINQ来检查服务操作的返回数据.这可能吗?它应该是,对吧?

linq linq-to-entities service-operations wcf-data-services

4
推荐指数
1
解决办法
1297
查看次数

Appcelerator和CommonJS模块(缓存和循环引用)

这是事情:

我正在使用CommonJS方式使我的移动(iPhone/Android)应用程序模块化.这并不奇怪.但有一点我无法理解.

CommonJS让我创建了STATIC私有变量,这让我可以轻松创建单例.至少,我认为这是因为获取require()d 的文件的内容只读取一次,然后每次都返回export对象(只初始化一次).

但是当我创建如下所示的循环引用时,每次都会执行包含模块内的代码.

等等...... 有趣的是,在我写这个问题的时候,我突然意识到require()在下一个问题开始之前没有任何调用完成(因此下面显示了堆栈溢出).

关于我是否正常的任何想法?这是凌晨5点过来的所以,所以我所关注的所有赌注都是关闭的:D.

例子:

看到这段代码,它定义了一个单例:

/* Singleton.js */

exports.getSingleton = getSingleton;

function getSingleton(name) {
  if (!instance) {
    instance = new Thing(name);
  }

  return instance;
}

function Thing(name) {
  this.name = name;
}

var instance;
Run Code Online (Sandbox Code Playgroud)

require()这个文件是这样的:

var theFirstThing = require('Singleton').getSingleton('first');
Ti.API.info('first: ' + theFirstThing.name)

var possiblyAnotherOtherThing = require('Singleton').getSingleton('second');
Ti.API.info('second: ' + possiblyAnotherOtherThing.name);
Run Code Online (Sandbox Code Playgroud)

输出是:

[DEBUG] loading: /path/to/sim/MyApp.app/app.js, resource: app_js
[DEBUG] loading: /path/to/sim/MyApp.app/Singleton.js, resource: Singleton_js
[INFO] first: first
[INFO] second: first
Run Code Online (Sandbox Code Playgroud)

为什么那样的循环引用如下所示不起作用?(如果你愿意的话,我可能已经自己研究了这个,评论/回答). …

titanium circular-reference appcelerator commonjs

4
推荐指数
1
解决办法
1926
查看次数

为什么var_dump(array)在Magento中导致500错误?

我正在尝试查看Magento系统的所有对象内部是什么,但是当我尝试从顶部链接模板内部var_dump $ _links变量(包含在每个页面的标题中呈现链接所需的所有信息)时,我的服务器响应500错误.谁知道为什么?

php var-dump magento

3
推荐指数
1
解决办法
5815
查看次数

为什么PhoneGap似乎比Titanium更快?

我正在尝试衡量一些跨平台解决方案的执行性能,其中包括:Titanium和PhoneGap.

所以这是我的性能测试器的Titanium版本的一个例子,它非常简单,但我只是想了解我的代码执行速度有多快:

var looplength;
var start1;
var start2;
var end1;
var end2;
var duration1;
var duration2;
var diff;
var diffpiter;
var power;
var info;

for (power = 0; power < 24; power++) {
  looplength = Math.pow(2, power);

  start1 = new Date().getTime();
  for (iterator = 0; iterator < looplength; iterator++) {a=iterator;b=iterator;}
  end1 = new Date().getTime();

  start2 = new Date().getTime();
  for (iterator = 0; iterator < looplength; iterator++) {a=iterator;}
  end2 = new Date().getTime();

  duration1 = end1 - start1;
  duration2 = end2 - …
Run Code Online (Sandbox Code Playgroud)

iphone performance titanium ios cordova

3
推荐指数
1
解决办法
1379
查看次数

什么是Magento"后端"型号?

在构建了一些前端之后,我现在正在探索Magento管理员端的内部.我阅读了Alan Storm关于创建一个简单模型的文章(与EAV模型相反,我尚未做好准备).

我的主要目标是创建一个模块,使用户能够上传和管理媒体到Magento安装,以便它可以在我在前端定义的一些模板中使用.因此,我会创建一个模型来跟踪某些媒体(图片)与某些类别,页面之间的关系.只是为了记录:我不喜欢EAV模型,他们吓唬我,所以除非绝对必要,否则不要以这种方式推动对话.谢谢 :)

我也浏览了这篇文章.这是关于后端模型,我的问题是:

什么是后端模型?

它是仅在后端(管理员)中使用的模型吗?我不知道那会有什么好处.如果有人可以告诉我一些有关它的信息,或者给我一些关于阅读内容以了解更多信息的提示,那就太好了.

我告诉我想达到什么目标的原因是有人可以告诉我这些"后端模型"是否对我想要的重要.

谢谢!

admin backend magento models

2
推荐指数
1
解决办法
4107
查看次数

XML模式中的“ form”属性实际上有什么用?

过去几天,我一直在提高我的XML模式技能,并且整整一整天,我忙于尝试了解与模式有关的名称空间的复杂性。最令我震惊的form="qualified|unqualified"是非全局性<element><attribute>元素上的属性似乎毫无用处。

我的问题是:该form属性实际上是在XML模式/ XML文档中增加了表达能力,还是只是使某些XML文档的表示法更容易/不同?

我了解到,当所有元素都使用命名空间进行限定时(通常只需要文档元素上的一个xmlns =“ xyz”属性),需要遵循某种模式的XML文档通常更容易编写。 ?为什么有人会为所有不合格的非全局元素烦恼呢?

xsd namespaces qualified-name

1
推荐指数
1
解决办法
1357
查看次数