【问题标题】:Custom options on simple products fail to show on order简单产品的自定义选项无法在订单中显示
【发布时间】:2012-02-26 23:59:16
【问题描述】:

我有一些简单的产品,有几个自定义选项。选项过程似乎在前端工作正常。选择的选项显示在购物车中并且价格是正确的。我下了订单,当我在管理员中将其拉起时,会显示选项标题,但实际选择不是。选择显示在发送给我和客户的订单确认电子邮件中。所以他们必须进入管理员。关于为什么它们不在订单或发票上的任何想法?

【问题讨论】:

  • 你运行的是什么版本的 Magento?
  • 尝试重新索引产品平面数据。
  • 感谢您的尝试,但没有帮助

标签: magento


【解决方案1】:

抱歉回复晚了。 adminhtml 模板文件中存在一个错误(甚至高达 1.6.2)。这是解决方法。

diff --git a/app/design/adminhtml/default/default/template/sales/items/column/name.phtml b/app/design/adminhtml/default/default/template/sales/items/column/name.phtml
index 7b36ee1..9e1f603 100644
--- a/app/design/adminhtml/default/default/template/sales/items/column/name.phtml
+++ b/app/design/adminhtml/default/default/template/sales/items/column/name.phtml
@@ -41,16 +41,7 @@
             <?php if (isset($_option['custom_view']) && $_option['custom_view']): ?>
                 <?php echo $this->getCustomizedOptionValue($_option); ?>
             <?php else: ?>
-                <?php $_option = $this->getFormattedOption($_option['value']); ?>
-                <?php echo $_option['value']; ?><?php if (isset($_option['remainder']) && $_option['remainder']): ?><span id="<?php echo $_dots = 'dots' . uniqid()?>"> ...</span><span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_option['remainder'] ?></span>
-                    <script type="text/javascript">
-                    $('<?php echo $_id ?>').hide();
-                    $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
-                    $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_dots?>').hide();});
-                    $('<?php echo $_id ?>').up().observe('mouseout',  function(){$('<?php echo $_id ?>').hide();});
-                    $('<?php echo $_id ?>').up().observe('mouseout',  function(){$('<?php echo $_dots ?>').show();});
-                    </script>
-                <?php endif; ?>
+                <?php echo $_option['value']; ?>
             <?php endif; ?>
             </dd>
         <?php endforeach; ?>

【讨论】:

    【解决方案2】:

    您好,这在 1.6.2.0 中适用于我。行政长官

    1. 打开此文件 app/design/adminhtml/default/default/template/sales/items/column/name.phtml

    2. 在两个endif之间添加下面一行;分别在第 53 行和第 55 行声明。

      <?php echo $_option['option_value']; ?>
      
    3. 刷新缓存类型并重新加载页面。您最终可以在 magento 后端/管理面板上的订单产品详细信息中看到您的自定义选项。

    【讨论】:

      【解决方案3】:

      我在 1.6.1.0 中通过修改文件修复了这个问题

      /app/code/core/Mage/Adminhtml/Block/Sales/Items/Column/Name.php

      我从没有这个问题的 1.7.0 复制了这个文件。 这是解释:

      在类声明中根本没有方法,我们需要的是getFormattedOption 如果您发现此文件中定义了此函数,请跳过此答案。

      如果没有,只需在类中插入这个函数,所以整个文件必须是这样的:

      class Mage_Adminhtml_Block_Sales_Items_Column_Name extends Mage_Adminhtml_Block_Sales_Items_Column_Default
              {
                  /**
                   * Add line breaks and truncate value
                   *
                   * @param string $value
                   * @return array
                   */
                  public function getFormattedOption($value)
                  {
                      $_remainder = '';
                      $value = Mage::helper('core/string')->truncate($value, 55, '', $_remainder);
                      $result = array(
                          'value' => nl2br($value),
                          'remainder' => nl2br($_remainder)
                      );
      
                      return $result;
                  }
              }
      

      【讨论】:

        猜你喜欢
        • 2016-04-27
        • 2012-04-07
        • 2017-06-17
        • 2019-01-31
        • 2021-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-24
        相关资源
        最近更新 更多