在Magento中向购物车项目添加属性,在购物车中单独显示

约瑟夫(Josef)说恢复莫妮卡(Monica)

我找到了解决这个问题的很多答案,但是有些矛盾并且对我来说还不是很清楚,所以我希望Magento专家可以为我指明正确的方向。

对于Magento中的某些产品,有一个复杂的自定义过程。有一个自定义编辑器,每个“设计”均由唯一值标识。我需要将此ID与产品一起存储在购物车和订单中。它不应该直接显示,而是可以在代码中访问(例如,在购物车中显示其他缩略图或发票上的某些信息)。

另外,由于产品是定制的,因此如果此ID不同,则同一产品在购物车和发票中应有单独的一行!

因此,例如,客户打开产品页面,进行了一些自定义,此自定义获得的ID为“ 1”。客户将其放入购物车。他再次打开相同的产品,对其进行不同的自定义,并且其ID为“ 2”。客户还将其放入购物车!

现在,购物车应为:

  • ProductX [使用ID 1的代码生成的自定义文本] 1件x€
  • ProductX [使用ID 2通过代码生成的自定义文本] 1件x€

并不是:

  • 产品X 2件x€

但是客户仍然应该能够订购多个具有相同ID的相同产品!所以例如

  • ProductX [使用ID 1的代码生成的自定义文本] 4件x€
  • ProductX [使用ID 2由代码生成的自定义文本] 2件x€

定制发生在magento之外。Magento仅有一个带有弹出窗口的链接,然后获取一些ID,然后可以使用PHP附加该ID。它仅存储ID,并且必须能够在购物车/发票/ ...中获取每个产品的ID。

重要的是,要存储ID,并且如果ID不同,则具有相同sku / customizable选项的产品不会合并到购物车中!此外,ID必须是文本字符串,并且不能从列表中选择,例如magento可自定义选项!

我发现可以做我想要的方法:

  1. http://www.atwix.com/magento/custom-product-attribute-quote-order-item/对我来说,这看起来是最好的,有一个成品模块可以修改。但是我不确定这是否正确。产品会在购物车中分开吗?另外,ID的值在此处设置为“产品”选项,并在后端可见吗?在我的情况下,客户定制产品之前没有任何价值!

    1. https://magento.stackexchange.com/a/1382我不太确定...如何获取观察者内部的产品详细信息页面上可用的ID ...

    2. 如何将每个产品作为新商品添加到购物车中?也许我需要修改1.或2.之外的其他内容?

如果Magento Expert可以为我提供一些帮助,我将不胜感激!

PixieMedia

您说过可以将ID添加到产品页面中。太好了 必要时,您需要将该值写入产品页面上“添加到购物车”表单中的隐藏输入字段中。假设输入看起来像这样;

<input type="hidden" name="myid" id="myid" value="123" />

在您的自定义模块中,添加一个事件观察器。我在这里假设您将其添加到购物车后仍留在产品页面上,而不是直接转到购物车。

<catalog_product_load_after>
<observers>
    <Company_Module_Model_Observer>
        <type>model</type>
        <class>Company_Module_Model_Observer</class>
        <method>addPostData</method>
    </Company_Module_Model_Observer>
</observers>
</catalog_product_load_after>   

在您的模块文件夹中,创建或打开Company / Module / Model / Observer.php并创建此功能;

class Company_Module_Model_Observer {


public function addPostData(Varien_Event_Observer $observer) {

      $action = Mage::app()->getFrontController()->getAction();
      if ($action->getFullActionName() == 'checkout_cart_add') {
         if($action->getRequest()->getParam('myid')) {
             // ID IS PRESENT, SO LETS ADD IT
             $item = $observer->getProduct();
             $additionalOptions = array();
             $additionalOptions[] = array(
                'label' => 'The unique ID',
                'value' => $action->getRequest()->getParam('myid')
            );
             $item->addCustomOption('additional_options', serialize($additionalOptions));
         }
      }

   }


}

设置好此位置后,您将在购物车和报价中看到该产品的ID,就像该值来自超级属性一样。任何唯一的ID将被视为新的订单项。

要针对销售订单保存此值,使其在销售电子邮件中和后端显示,请添加此观察者;

<sales_convert_quote_item_to_order_item>
<observers>
    <Company_Module_Model_Observer>
        <type>model</type>
        <class>Company_Module_Model_Observer</class>
        <method>salesConvertQuoteItemToOrderItem</method>
    </Company_Module_Model_Observer>
</observers>
</sales_convert_quote_item_to_order_item>

并将此功能添加到Company / Module / Model / Observer.php

public function salesConvertQuoteItemToOrderItem(Varien_Event_Observer $observer)
{


   $quoteItem = $observer->getItem();
   if ($additionalOptions = $quoteItem->getOptionByCode('additional_options')) {
    $orderItem = $observer->getOrderItem();
    $options = $orderItem->getProductOptions();
    $options['additional_options'] = unserialize($additionalOptions->getValue());
    $orderItem->setProductOptions($options);
}

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将项目添加到magento的购物车中

来自分类Dev

将项目添加到magento的购物车中

来自分类Dev

Magento:购物车中的问题

来自分类Dev

Magento中的Ajax购物车项目更新

来自分类Dev

检查项目在购物车中

来自分类Dev

在购物车中添加İtems

来自分类Dev

如何显示购物车中的产品?

来自分类Dev

商品未显示在购物车中

来自分类Dev

添加挂钩以删除woocommerce购物车中的项目

来自分类Dev

将项目添加到AngularJS的购物车中

来自分类Dev

无法添加到 reactjs 购物车中的项目

来自分类Dev

购物车中的会话

来自分类Dev

WooCommerce中项目在购物车中时购物车按钮的新样式

来自分类Dev

如何在购物应用中添加购物车功能?

来自分类Dev

如何在购物车页面中添加/更新自定义购物车项目数据

来自分类Dev

jQuery在向购物车中添加商品时显示div,而不是之前

来自分类Dev

在navbar Rails应用程序中显示购物车项目数而不是购物车总价

来自分类Dev

在购物车中添加项目,并在下拉列表中显示它们

来自分类Dev

添加到购物车按钮未在购物车中添加产品

来自分类Dev

添加到购物车按钮未在购物车中添加产品

来自分类Dev

向woocommerce购物车添加费用

来自分类Dev

购物车-购物车CSS中的项目数

来自分类Dev

使用香草javascript更改购物车中的购物车项目数量

来自分类Dev

购物车-购物车CSS中的项目数

来自分类Dev

如何在购物车更新时更新购物车中的其他属性?

来自分类Dev

在添加到购物车中的特定产品之前,先清空购物车

来自分类Dev

PHP购物车添加项目

来自分类Dev

Codeigniter购物车无法添加项目

来自分类Dev

magento的购物车物品

Related 相关文章

热门标签

归档