小编Vit*_*min的帖子

Magento - 根据用户输入报价/订购产品项目属性

摘要

我想创建一个未保存到产品的产品属性,或者像普通产品属性一样显示在产品编辑页面上.相反,我希望它保存到订单/报价项目并显示在订单,发票等.在将产品添加到购物车之前,它还应该由前端的客户配置.

细节

  • 自定义选项一样,表单元素应添加到前端产品页面.
    • 自定义选项不同,这不是实际的产品属性.它不应显示在管理产品页面或属性集上.
    • 客户需要提供有效值.我需要能够进行服务器端验证.
    • 我想要一个.phtml模板生成它的html.目前,我能够以令人满意的(设计)结果覆盖app/design/frontend/base/default/catalog/product/view/type/default.phtml.但是,我不知道如何捕获,验证并最终保存其价值.
  • 此表单元素的值应与quote/order产品项一起保存.
    • 此值应显示在任何和所有发票,订单,销售电子邮件中.
    • 我想用模板控制输出,或者至少能够返回用于显示值的字符串

我的问题

  1. <input>当产品添加到购物车时,以及稍后在结账过程中,如何验证并最终将前端产品页面上的值保存到报价项目中?
  2. 如何在订单,发票,销售电子邮件和此类页面上显示此值?
  3. 如何过滤订单集合以获取具有我的值设置为特定值的项目的订单?

更新1

我发现我可以在诸如此类的事件中在catalog/product模型上运行此代码(并且可能sales/quote_item也是如此)sales_quote_item_qty_set_after

$infoBuyRequest = $product->getCustomOption('info_buyRequest');
$buyRequest = new Varien_Object(unserialize($infoBuyRequest->getValue()));
$myData = $buyRequest->getMyData();
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我能够从<input>产品页面上检索我的自定义客户提供的数据.

我怀疑这info_buyRequest是与报价和订单项目一起保存的.如果是这样,这部分解决了我的问题1和2.但是,我仍然不知道在哪里运行此代码是合适的,我不知道如何在后端订单/报价/报告页面上显示它.另外我相信,因为它作为序列化值存储在数据库中,根据我的自定义数据获取报价/订单项集合将是最困难的.

php magento

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

较少CSS - 无法划分两个像素单位并返回无单位值

我想(临时)删除我的变量的单位@baseLineHeight@baseFontSize,这样我可以把他们得到相对line-height.这就是我尝试过的:

@baseFontSize: 12px;
@baseLineHeight: 18px;
font: @baseFontSize~"/"@baseLineHeight/@baseFontSize sans-serif;
Run Code Online (Sandbox Code Playgroud)

生成以下错误:

Object #<Object> has no method 'toCSS' (Less::ParseError)
Run Code Online (Sandbox Code Playgroud)

首选输出:

font: 12px/1.5 sans-serif;
Run Code Online (Sandbox Code Playgroud)

css less web

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

Magento集合 - 按几个字段过滤

使用Magentos集合模型,我该如何添加查询部分/过滤器,例如:

WHERE (main_table.x < 1 OR (main_table.x - main_table.y) >= 5)
Run Code Online (Sandbox Code Playgroud)

更新 我现在运行这个:

$this->getSelect()
    ->where('main_table.x < 1')
    ->orWhere('(main_table.x - main_table.y) >= :qty');
$this->addBindParam(':qty', $qty);
Run Code Online (Sandbox Code Playgroud)

结果:

SELECT ... WHERE ... AND ... AND (main_table.x < 1) OR ((main_table.x - main_table.y) >= :qty) ORDER BY ...
Run Code Online (Sandbox Code Playgroud)

问题是,我似乎无法得到绑定$qty:qty

更新2 我最终得到了这个,因为我需要OR在括号内

$this->getSelect()->where('(main_table.x < 1 OR (main_table.x - main_table.y) >= ?)', $qty);
Run Code Online (Sandbox Code Playgroud)

php zend-framework magento php-5.3

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

Firefox 3.5和3.6:如果<address>包含<ul>,则无法设置样式<address>

以下网页将在Firefox 3.5中以意外结果呈现.第一个<address>元素不会有粉红色背景,但第二个元素将不会.这只发生在我身上吗?我的代码不正确吗?或者这是一个错误?

编辑:这也发生在Firefox 3.6中

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Firefox 3.5 bug!</title>
    <style>
address
{
    background: pink;
}
    </style>
</head>
<body>

<address>
    <ul>
        <li>This will NOT have a pink background in Firefox 3.5</li>
    </ul>
</address>

<address>
    <p>But this will</p>
</address>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html css html5 firefox3.5 firefox3.6

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

Magento - 根据自定义标准实施订单限制

我想对某些产品实施全球订单限制.关键是我想在某些产品上启用延期交货,并定义几个日期,这些日期对可订购的这些单个产品的数量有限制.

目前,我的自定义模型已加载所选日期期间的相关信息,并$product->setMyModel(...)在这些事件加载时附加到产品模型:

  • catalog_product_load_after
  • catalog_product_collection_load_after
  • sales_quote_item_collection_products_after_load

使用特定产品的数据访问我的模型就像调用一样简单$product->getMyModel(),因此我将其简称为我的模型.

这就是我想要做的:

1.每当产品被添加到购物车/报价或订单时,我都想做这样的事情(伪代码):

// Somehow get $product and $requestedQty (most likely from an event)
$myModel = $product->getMyModel();
if($myModel->applyOrderLimit()) {
    // ($orderedQty + $requestedQty) <= $orderLimit
    if($myModel->isRequestedQtyAvailable($requestedQty)) {
        // Issue an error and prevent the item from being ordered
        return;
    }
    // $orderedQty += $requestedQty
    $myModel->addToQtyOrdered($requestedQty);
}
// Continue Magentos default behaviour
Run Code Online (Sandbox Code Playgroud)

1.1.我怀疑Mage_CatalogInventory_Item::checkQuoteItemQty()应该重写以捕获$requestedQty这里.

2.更新$myModel::ordered_qty每当订单被取消,退款或这样.

我想真正的问题是我在哪里运行这个代码,是否有更多的东西来实现这样的订单限制并跟踪数量而不是我已经意识到的?

对我来说,这似乎是一项非常复杂的任务.这就是为什么我需要更有经验的Magento开发人员的帮助!

注意:我无法弄清楚如何混合编号列表和代码块,但我希望它足够可读

php magento php-5.3

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

标签 统计

magento ×3

php ×3

css ×2

php-5.3 ×2

firefox3.5 ×1

firefox3.6 ×1

html ×1

html5 ×1

less ×1

web ×1

zend-framework ×1