Magento ราคาสินค้าที่กำหนดได้แทนที่ราคาผลิตภัณฑ์อย่างง่าย


21

ฉันมีผลิตภัณฑ์ที่ตั้งค่าเหมือนกัน (เท่าที่ฉันจะบอกได้) และพวกเขาก็นำเข้าทั้งหมดด้วยเทมเพลต CSV สากล

  • ราคาที่กำหนดคือ 29.99
  • เสื้อเชิ้ตแขนสั้น Simple Associated คือ 29.99
  • เสื้อเชิ้ต Simple แขนยาวคือ 39.99

ใบแจ้งหนี้เพิ่งเรียกเก็บเงินผลิตภัณฑ์แขนยาว ( ZTWS-SBLS-XL ) ที่มีราคา 39.99 กับราคาผลิตภัณฑ์ที่กำหนดค่าได้ 29.99 ฉันจะบังคับราคาผลิตภัณฑ์อย่างง่ายให้แทนที่ราคาผลิตภัณฑ์ที่กำหนดได้อย่างไร ผลิตภัณฑ์ทั้งสองด้านล่างมีการตั้งค่าเหมือนกันกับผลิตภัณฑ์ที่สามารถกำหนดค่าได้และเป็นผลิตภัณฑ์ที่เรียบง่าย

ใบแจ้งหนี้:

Item             Sku             Qty    Subtotal
Item one         ZLOB-SBLS-XL    1      $39.99
Item Two         ZTWS-SBLS-XL    1      $29.99

แก้ไข:ยังคงทำงานเพื่อแก้ไขปัญหานี้ อะไรจะทำให้วีโอไอพีต้องการราคาผลิตภัณฑ์ที่ง่ายกว่าราคาผลิตภัณฑ์ที่กำหนดได้หรือราคาแอตทริบิวต์ผลิตภัณฑ์ที่เกี่ยวข้อง


ฉันจะได้รับความช่วยเหลือmagento.stackexchange.com/q/291238/57334 @TylersSN
ZUS

คำตอบ:


18

เมื่อคุณสร้างผลิตภัณฑ์ที่กำหนดค่าได้ไม่สำคัญว่าราคาของผลิตภัณฑ์ง่ายๆคืออะไรราคาเหล่านี้จะถูกละเว้นอย่างสมบูรณ์ ดังนั้นหากคุณต้องการขายผลิตภัณฑ์แบบ A ที่มีราคา $ 29.99 และผลิตภัณฑ์แบบ B ($ 39.99) จากนั้นคุณต้องสร้างผลิตภัณฑ์ที่กำหนดค่าได้ให้ตั้งราคาเป็น $ 29.99 และเปิดแท็บผลิตภัณฑ์ที่เกี่ยวข้อง เพิ่มผลิตภัณฑ์ที่คุณต้องการเชื่อมโยงกับผลิตภัณฑ์ที่กำหนดค่าได้นี้ หลังจากเพิ่มบล็อกชื่อการกำหนดค่าแอตทริบิวต์ของผลิตภัณฑ์ Superซึ่งจะมีตัวเลือกและความแตกต่างของราคา ปล่อยให้สินค้าราคาว่างและใส่ 10 (+ $ 10) ไปยังเขตข้อมูลราคาผลิตภัณฑ์ B และ voila: ผลิตภัณฑ์ที่เรียบง่ายที่แตกต่างกันมีราคาที่แตกต่างกัน

จริง ๆ แล้วมีส่วนขยายที่ช่วยให้คุณใช้ราคาผลิตภัณฑ์แบบง่าย ๆ แทนที่จะเป็นความแตกต่างของราคา แต่เป็นการตั้งค่าที่ค่อนข้างยุ่งยาก เนื่องจากเป็นส่วนขยายฟรีฉันหวังว่าจะไม่มีใครบ่นเกี่ยวกับฉันเลยที่จะวางลิงก์ที่นี่:

https://github.com/organicinternet/magento-configurable-simple


คุณช่วยให้ฉันเข้าใจปัญหาของฉัน ฉันได้อัปเดตชุดรูปแบบการกำหนดราคาของฉันเพื่อให้ผลิตภัณฑ์ถูกกำหนดเป็นราคา 29.99 จากผลิตภัณฑ์ที่เกี่ยวข้องเราจะใช้แอตทริบิวต์ $ 10 ถึง long sleeve และ $ 2 สำหรับ> = 2x attribute สิ่งที่น่าสนใจคือสิ่งนี้ใช้ได้กับผลิตภัณฑ์บางอย่างในขณะที่ไม่สามารถใช้งานกับผลิตภัณฑ์ที่กำหนดค่าได้อื่น
TylersSN

สำหรับผลิตภัณฑ์ที่ไม่สามารถใช้งานได้วีโอไอพีจะชอบราคาผลิตภัณฑ์ที่ง่ายกว่าราคาที่กำหนดได้ไม่ว่าจะตั้งอยู่บนตัวผลิตภัณฑ์เองหรือในราคาคุณลักษณะของผลิตภัณฑ์ที่เกี่ยวข้อง
TylersSN

5
นามสกุลเป็นอึและบั๊กกี้
Alireza Fallah

ฉันขอความช่วยเหลือเกี่ยวกับผลิตภัณฑ์ที่สามารถกำหนดค่าได้magento.stackexchange.com/q/291238/57334 @Pronto
zus

16

ดังนั้นฉันใช้รหัสด้านล่างร่วมกับส่วนขยายเช่นผลิตภัณฑ์ที่กำหนดค่าได้ง่ายอินเทอร์เน็ตอินทรีย์

รหัสด้านล่างมีไว้สำหรับกระบวนการรถเข็น / เช็คเอาต์เป็นหลักเป็นการอัปเดตรูปแบบราคาที่กำหนดค่าได้ซึ่งผ่านการคำนวณราคาไปยังผลิตภัณฑ์อย่างง่ายในกรณีที่มีการเพิ่มผลิตภัณฑ์ลงในรถเข็น --- โซลูชันนี้ไม่แสดงราคา ในหน้าผลิตภัณฑ์ (อย่างไรก็ตามมีส่วนขยายจำนวนมากที่ทำเช่นนั้นแล้ว)

อัปเดตแอป / รหัส / คอร์ / ผู้วิเศษ / แคตตาล็อก / รุ่น / ผลิตภัณฑ์ / ประเภท / กำหนดค่าได้ / Price.php (นึกคิดคุณใช้ส่วนขยายหรือแทนที่ท้องถิ่นในแอพ / รหัส / ท้องถิ่น)

อัปเดตวิธีการ: getFinalPrice เปลี่ยนเป็น

public function getFinalPrice($qty=null, $product)
{
    //Start edit
    $selectedAttributes = array();
    if ($product->getCustomOption('attributes')) {
        $selectedAttributes = unserialize($product->getCustomOption('attributes')->getValue());
    }
    //End edit
    if (sizeof($selectedAttributes)) return $this->getSimpleProductPrice($qty, $product);

    if (is_null($qty) && !is_null($product->getCalculatedFinalPrice())) {
        return $product->getCalculatedFinalPrice();
    }

    $basePrice = $this->getBasePrice($product, $qty);
    $finalPrice = $basePrice;
    $product->setFinalPrice($finalPrice);
    Mage::dispatchEvent('catalog_product_get_final_price', array('product' => $product, 'qty' => $qty));
    $finalPrice = $product->getData('final_price');

    $finalPrice += $this->getTotalConfigurableItemsPrice($product, $finalPrice);
    $finalPrice += $this->_applyOptionsPrice($product, $qty, $basePrice) - $basePrice;
    $finalPrice = max(0, $finalPrice);

    $product->setFinalPrice($finalPrice);
    return $finalPrice;
}

จากนั้นเพิ่มฟังก์ชั่นนี้ด้านล่าง getFinalPrice:

public function getSimpleProductPrice($qty=null, $product)
    {
        $cfgId = $product->getId();
        $product->getTypeInstance(true)
            ->setStoreFilter($product->getStore(), $product);
        $attributes = $product->getTypeInstance(true)
            ->getConfigurableAttributes($product);
        $selectedAttributes = array();
        if ($product->getCustomOption('attributes')) {
            $selectedAttributes = unserialize($product->getCustomOption('attributes')->getValue());
        }
        $db = Mage::getSingleton('core/resource')->getConnection('core_read');
        $dbMeta = Mage::getSingleton('core/resource');
        $sql = <<<SQL
SELECT main_table.entity_id FROM {$dbMeta->getTableName('catalog/product')} `main_table` INNER JOIN
{$dbMeta->getTableName('catalog/product_super_link')} `sl` ON sl.parent_id = {$cfgId}
SQL;
        foreach($selectedAttributes as $attributeId => $optionId) {
            $alias = "a{$attributeId}";
            $sql .= ' INNER JOIN ' . $dbMeta->getTableName('catalog/product') . "_int" . " $alias ON $alias.entity_id = main_table.entity_id AND $alias.attribute_id = $attributeId AND $alias.value = $optionId AND $alias.entity_id = sl.product_id";
        }
        $id = $db->fetchOne($sql);
        return Mage::getModel("catalog/product")->load($id)->getFinalPrice($qty);
    }

คุณสามารถดูได้ในกรณีที่ผู้ใช้มี "ปรับแต่ง" ผลิตภัณฑ์ (IE เลือกตัวเลือกที่กำหนดค่าได้) เราจะพิจารณาผลิตภัณฑ์ที่เกี่ยวข้องอย่างง่ายและควบคุมการส่งผ่านไปยังรูปแบบการกำหนดราคามิเช่นนั้นผลิตภัณฑ์จะไม่ "ปรับแต่ง" (IE เรา กำลังเรียกดูบนหน้าผลิตภัณฑ์) เราดำเนินการตามปกติ


คำตอบนี้คืออัจฉริยะไชโย!
pixiemedia

5

ใช้ Magento เวอร์ชัน 1.9.2.2

อาจเป็นวิธีที่ดีกว่าเล็กน้อยใช้ 'Observer' แทนการแฮ็คคอร์หรือแทนที่ราคารุ่นเริ่มต้นเช่น app / code / core / Mage / Catalog / Model / Product / Type / Configured / Price.php

สิ่งที่คุณต้องทำคือใช้รหัสของอลันภายในผู้สังเกตการณ์ที่สร้างขึ้นใหม่ความแตกต่างเพียงอย่างเดียวคือแทนที่จะกลับมา

Mage::getModel("catalog/product")->load($id)->getFinalPrice($qty);

แทนที่ด้วยสิ่งต่อไปนี้:

$fp = Mage::getModel("catalog/product")->load($id)->getFinalPrice($qty);
return $product->setFinalPrice($fp);

ติดตาม Observer.php นี้

class YourFolderinLOCAL_YourModulename_Model_Observer 
{

     public function simpleProductPrice(Varien_Event_Observer $observer) {
        $event   = $observer->getEvent();
        $product = $event->getProduct();
        $qty     = $event->getQty();
        //Mage::log($observer, null, 'confPricing.log');
        // process percentage discounts only for simple products


            $selectedAttributes = array();
            if ($product->getCustomOption('attributes')) {
                Mage::log('yes-----', null, 'confPricing.log');
                $selectedAttributes = unserialize($product->getCustomOption('attributes')->getValue());
            }

            if (sizeof($selectedAttributes)) return $this->getSimpleProductPrice($qty, $product);



    }


    public function getSimpleProductPrice($qty=null, $product)
    {

        $cfgId = $product->getId();
        $product->getTypeInstance(true)
            ->setStoreFilter($product->getStore(), $product);
        $attributes = $product->getTypeInstance(true)
            ->getConfigurableAttributes($product);
        $selectedAttributes = array();
        if ($product->getCustomOption('attributes')) {
            $selectedAttributes = unserialize($product->getCustomOption('attributes')->getValue());
        }
        $db = Mage::getSingleton('core/resource')->getConnection('core_read');
        $dbMeta = Mage::getSingleton('core/resource');
        $sql = <<<SQL
SELECT main_table.entity_id FROM {$dbMeta->getTableName('catalog/product')} `main_table` INNER JOIN
{$dbMeta->getTableName('catalog/product_super_link')} `sl` ON sl.parent_id = {$cfgId}
SQL;
        foreach($selectedAttributes as $attributeId => $optionId) {
            $alias = "a{$attributeId}";
            $sql .= ' INNER JOIN ' . $dbMeta->getTableName('catalog/product') . "_int" . " $alias ON $alias.entity_id = main_table.entity_id AND $alias.attribute_id = $attributeId AND $alias.value = $optionId AND $alias.entity_id = sl.product_id";
        }
        $id = $db->fetchOne($sql);
        //Mage::log(Mage::getModel("catalog/product")->load($id)->getFinalPrice($qty), null, 'confPricing.log');
        //return 
        $fp = Mage::getModel("catalog/product")->load($id)->getFinalPrice($qty);
        return $product->setFinalPrice($fp);
    }


}

config.xml

<?xml version="1.0"?>
<config> 
 <modules>
        <YourFolderinLOCAL_YourModulename>
            <version>0.0.1</version>
        </YourFolderinLOCAL_YourModulename>
    </modules>
    <global>
        <models>
            <YourFolderinLOCALYourModulename><!-- Al lovwercase in my case -->
                <class>Your_Model</class><!-- not needed in my case -->
            </YourFolderinLOCALYourModulename>
        </models>

    </global>
    <frontend>
    <events>
            <catalog_product_get_final_price>
                <observers>
                    <YourFolderinLOCAL_YourModulename_model_observer>
                        <type>singleton</type>
                        <class> YourFolderinLOCAL_YourModulename_Model_Observer</class>
                        <method>simpleProductPrice</method>
                    </YourFolderinLOCAL_YourModulenameg_model_observer>
                </observers>
            </catalog_product_get_final_price>

        </events>
        </frontend>
</config>

หวังว่ามันจะช่วยแก้ปัญหา .. :)


2

หากผลิตภัณฑ์อย่างง่ายมีราคาแตกต่างกัน แต่มีการตั้งค่ากับผลิตภัณฑ์ที่กำหนดค่าได้โดยไม่ต้องตั้งราคาไม่ว่าจะเป็นแบบคงที่หรือร้อยละราคาของผลิตภัณฑ์ที่กำหนดจะถูกนำมาใช้ ไม่ว่าจะซื้อผลิตภัณฑ์ง่าย ๆ แบบใดราคาจะไม่ถูกนำมาพิจารณา

หากต้องการอัปเดตสิ่งนี้เพียงเข้าไปที่ผลิตภัณฑ์แม่ในส่วนผู้ดูแลระบบจากนั้นภายใต้แท็บAssociated Productsคุณสามารถอัปเดตราคาของผลิตภัณฑ์สำหรับเด็กแต่ละรายการเพื่อเพิ่มราคาเพิ่มเติมลงในราคาผลิตภัณฑ์สำหรับผู้ปกครอง


สวัสดีเดวิดฉันลองแล้ว ความพยายามในปัจจุบันของฉันประกอบด้วยการตั้งราคาผลิตภัณฑ์ที่กำหนดค่าได้เป็น $ 0.00 และจากส่วนผลิตภัณฑ์ที่เกี่ยวข้องฉันพยายามตั้งราคาคงที่ของ $ 29.99 สำหรับแอตทริบิวต์แขนสั้นและ $ 39.99 สำหรับเสื้อแขนยาว ไม่ว่าจะด้วยเหตุผลใดก็ตามยังมีผลิตภัณฑ์ที่สามารถกำหนดค่าได้ (แขนยาว) ที่ต้องการเรียกเก็บเงิน $ 29.99 แม้จะมีราคาคงที่และราคาที่กำหนดภายในผลิตภัณฑ์แบบง่าย ๆ ขอขอบคุณสำหรับการตอบสนองของคุณ.
TylersSN

@ user1812580 คุณสามารถเห็นผลิตภัณฑ์นี้ในผู้ดูแลระบบหรือเพียงแค่ในส่วนหน้า?
David Manners

ฉันเห็นว่ามันเป็นผลิตภัณฑ์ง่าย ๆ ที่เกี่ยวข้องกับผลิตภัณฑ์ที่สามารถกำหนดค่าได้
TylersSN

สวัสดีเดวิดฉันได้อัปเดตรูปแบบการกำหนดราคาตามที่ระบุไว้ในคำตอบของฉันที่ @Pronto หวังว่าจะช่วยคุณได้ไหม
TylersSN

@DavidManners ฉันได้ลองอัปเดตการกำหนดราคาผ่านทางส่วน Super Attributes Config ของผลิตภัณฑ์ที่กำหนดค่าได้แล้ว อย่างไรก็ตามการกำหนดราคาจะอัปเดตเฉพาะในกล่องข้อมูลราคาสูงสุด (โดยที่ sku ชื่อผลิตภัณฑ์ ฯลฯ ) เมื่อคุณคลิกที่รูปแบบต่างๆ มีเคล็ดลับเกี่ยวกับวิธีรับกล่องราคาต่ำเพื่อปรับปรุงด้วยหรือไม่
Elva Sandoval

2

ฉันมีปัญหาเดียวกันและฉันแก้ไขโดยใช้รหัสด้านล่าง มันจะทำงานในด้านการดูแลเช่นกันถ้าคุณสั่งซื้อจากผู้ดูแลระบบ (สำหรับการสั่งซื้อทางโทรศัพท์)

สังเกตเหตุการณ์นี้

sales_quote_item_set_product 

และเพิ่มรหัสด้านล่างใน Observer.php ของคุณ

public function loadQuote(Varien_Event_Observer $observer)
            {

                $event      = $observer->getEvent();
                $quote_item = $event->getQuoteItem();
                $storeId    = $quote_item->getStoreId();
                $item       = $observer->getQuoteItem();
                $product    = $observer->getProduct();
                $sku        = $product->getSku();
                $productDetails     =  Mage::getModel('catalog/product')
                            ->setStoreId($storeId)
                            ->loadByAttribute('sku',$sku);

                $price      = $productDetails->getPrice();
                $sprice     = $productDetails->getFinalPrice();

                $item->setOriginalCustomPrice($sprice);
                $item->setOriginalPrice($price);

            }

มันจะได้รับราคาผลิตภัณฑ์ที่เกี่ยวข้องและบันทึกไว้ในใบเสนอราคา


+1 สำหรับ$item->setOriginalCustomPrice($sprice);และ$item->setOriginalPrice($price);ที่อนุญาตให้มีรายการที่กำหนดค่าได้หลายอย่างซึ่งชี้ไปที่ผลิตภัณฑ์เดียวกันในตะกร้าด้วยราคาที่แตกต่างกัน
Niloct

2

โปรดทำตามขั้นตอนด้านล่างเพื่อเปลี่ยนแปลงราคาของคุณสมบัติพิเศษ

ผู้สังเกตการณ์ใช้งานครั้งแรก "catalog_product_get_final_price" ทำให้ผู้สังเกตการณ์เป็นเช่นนี้:

เปิดโมดูล config.xml และใช้รหัสด้านล่าง:

<events>
    <catalog_product_get_final_price>
        <observers>
            <Setblue_Banner_Model_Observer>
                <type>singleton</type>
                <class>Setblue_Banner_Model_Observer</class>
                <method>getFinalPrice</method>
            </Setblue_Banner_Model_Observer>
        </observers>
    </catalog_product_get_final_price>
</events>

ตอนนี้ให้สร้างไฟล์ Observer.php ในรุ่นและโค้ดด้านล่าง

<?php
class Setblue_Banner_Model_Observer
{

 public function getFinalPrice(Varien_Event_Observer $observer) {

  $event   = $observer->getEvent();
        $product = $event->getProduct();
        $qty     = $event->getQty();

  $selectedAttributes = array();
  if ($product->getCustomOption('attributes')) {
   Mage::log('yes-----', null, 'confPricing.log');
   $selectedAttributes = unserialize($product->getCustomOption('attributes')->getValue());
  }

  if (sizeof($selectedAttributes)) return $this->getSimpleProductPrice($qty, $product);

    }

 public function getSimpleProductPrice($qty=null, $product)
    {

  $cfgId = $product->getId();
        $product->getTypeInstance(true)
            ->setStoreFilter($product->getStore(), $product);
        $attributes = $product->getTypeInstance(true)
            ->getConfigurableAttributes($product);
        $selectedAttributes = array();
        if ($product->getCustomOption('attributes')) {
            $selectedAttributes = unserialize($product->getCustomOption('attributes')->getValue());
        }
        $db = Mage::getSingleton('core/resource')->getConnection('core_read');
        $dbMeta = Mage::getSingleton('core/resource');
        $sql = <<<SQL
SELECT main_table.entity_id FROM {$dbMeta->getTableName('catalog/product')} `main_table` INNER JOIN
{$dbMeta->getTableName('catalog/product_super_link')} `sl` ON sl.parent_id = {$cfgId}
SQL;
        foreach($selectedAttributes as $attributeId => $optionId) {
            $alias = "a{$attributeId}";
            $sql .= ' INNER JOIN ' . $dbMeta->getTableName('catalog/product') . "_int" . " $alias ON $alias.entity_id = main_table.entity_id AND $alias.attribute_id = $attributeId AND $alias.value = $optionId AND $alias.entity_id = sl.product_id";
        }
        $id = $db->fetchOne($sql);
        //Mage::log(Mage::getModel("catalog/product")->load($id)->getFinalPrice($qty), null, 'confPricing.log');
        //return
        $fp = Mage::getModel("catalog/product")->load($id)->getFinalPrice($qty);
        return $product->setFinalPrice($fp);
 }

}

?>

ตอนนี้เปิดแอป / ออกแบบ / ส่วนหน้า / ค่าเริ่มต้น / yourtheme / แม่แบบ / แคตตาล็อก / ผลิตภัณฑ์ / ดู / ประเภท / ตัวเลือก / configurable.phtml และวางรหัสด้านล่างที่ใดก็ได้ในไฟล์

<ul class="productIds" style="display:none;">
    <?php
        $configurableProduct = Mage::getModel('catalog/product')->load($_product->getId());
        $childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null,$configurableProduct);
        foreach($childProducts as $child) {
            $_productObj = Mage::getModel('catalog/product')->load($child->getId());
            ?>
            <li id='simple_<?php echo $child->getId(); ?>'><?php echo Mage::helper('core')->currency($_productObj->getFinalPrice()); ?></li>
        <?php   
        }
    ?>
</ul>

ตอนนี้เปิด js / varien / configurable.js และเปลี่ยนฟังก์ชั่น reloadPrice ด้านล่างหรือคุณสามารถแทนที่ฟังก์ชั่นทั้งหมดนี้ได้เช่นกัน

reloadPrice: function(){
    if (this.config.disablePriceReload) {
        return;
    }
    var price    = 0;
    var oldPrice = 0;
    for(var i=this.settings.length-1;i>=0;i--){
        var selected = this.settings[i].options[this.settings[i].selectedIndex];
        if(selected.config){
            price    += parseFloat(selected.config.price);
            oldPrice += parseFloat(selected.config.oldPrice);
        }
    }

    /* Edit Code By Chandresh Rana*/

     //optionsPrice.changePrice('config', {'price': price, 'oldPrice': oldPrice});
     optionsPrice.reload();

     var existingProducts = new Object();
     for(var i=this.settings.length-1;i>=0;i--)
     {
         var selected = this.settings[i].options[this.settings[i].selectedIndex];
         if(selected.config)
         {
            for(var iproducts=0;iproducts<selected.config.products.length;iproducts++)
            {
                var usedAsKey = selected.config.products[iproducts]+"";
                if(existingProducts[usedAsKey]==undefined)
                {
                    existingProducts[usedAsKey]=1;
                }
                else
                {
                    existingProducts[usedAsKey]=existingProducts[usedAsKey]+1;
                }
             }
         }
     }

     for (var keyValue in existingProducts)
     {
        for ( var keyValueInner in existingProducts)
         {
            if(Number(existingProducts[keyValueInner])<Number(existingProducts[keyValue]))
            {
                delete existingProducts[keyValueInner];
            }
         }
     }

     var sizeOfExistingProducts=0;
     var currentSimpleProductId = "";
     for ( var keyValue in existingProducts)
     {
        currentSimpleProductId = keyValue;
        sizeOfExistingProducts=sizeOfExistingProducts+1
     }

     if(sizeOfExistingProducts==1)
     {
        if($('product-price-'+this.config.productId)){
            $('product-price-'+this.config.productId).innerHTML = jQuery("#simple_"+currentSimpleProductId).html();
        }

     }
    // End Code By Chandresh Rana

    return price;

    if($('product-price-'+this.config.productId)){
        $('product-price-'+this.config.productId).innerHTML = price;
    }
    this.reloadOldPrice();
},

รหัสที่นำมาจาก: http://chandreshrana.blogspot.in/2016/03/set-simple-product-price-instead-of.html


ฉันจะได้รับผลิตภัณฑ์ที่กำหนดความช่วยเหลือเรื่องmagento.stackexchange.com/q/291238/57334 @Chandresh Rana
ZUS
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.