Amazon For Developers [ตอนที่ 5] Cart System in Amazon API (อัพแล้วครับ)

เริ่มโดย zenithsoul, 23 มกราคม 2009, 20:22:30

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

zenithsoul

          สวัสดีครับชาวเสียวบอร์ดทุกคน  :)  ต้องขออภัยอย่างแรงที่หายหน้าหายตาไปครับ  :P  เพราะช่วงนี้ผมต้องทำอะไรเยอะจนแทบไม่มีเวลามา

วนเวียนในบอร์ดเสียวซะที วันนี้ผมเลยล็อกเวลาแว๊บมาหาชาวเสียวหน่อยหนึ่ง  :-[

==========================================================================

      เหมือนเดิมครับ ชาวเสียวที่กำลังศึกษาใหม่ควรไปทบทวนบทที่ 1 - 4 ก่อนนะครับ เพราะ ถ้ามาอ่านในบทนี้เลยก็จะงง ไก่ตาแตกแน่นอนครับ

==========================================================================

          บทนี้จะเป็นหลักงานทำงานของระบบ Cart API ของ Amazon  ซึ่งก่อนหน้านี้ผมได้ทำการดึงข้อมูลของสินค้าออกมาแล้ว เมื่อลูกค้าของ

เราจะทำการตัดสินใจซื้อ  เราก็จะต้องมีตระกร้าสินค้าให้ลูกค้าหยิบลงตระกร้าใช่ไหมครับ  ซึ่งทาง Amazon ก็ได้เตรียมในส่วนของ Cart API ให้เราครับ

และเมื่อลูกค้าต้องการชำระเงิน เราก็จะจัดการชำระเงินให้ลูกค้าด้วยครับ

==========================================================================

          ก่อนจะหยิบของใส่ของตะกร้าให้มาดูส่วนของ  การรับส่งข้อมูลแบบ Get และ Post ของ PHP ก่อนครับ

zenithsoul

#1
           การส่งข้อมูลระหว่างไฟล์ของ PHP นะครับ มีอยู่ 2 กรณีคือการส่งข้อมูลแบบ Get  และ  Post  ครับ


ยกตัวอย่างการส่งข้อมูลจากไฟล์  a.php  ไปยัง  b.php ครับ




=======================================================================

การส่งข้อมูลแบบ get

            -  จากรูปด้านบนนะครับเมื่อผมต้องการส่งตัวแปร    itemid   จากไฟล์  a.php  ไปยัง  b.php

Files    a.php

<form action="b.php" method="get">
<input type="text" name="itemid"/> <br />
        <input type="submit" name="button" value="send information" />
</form>


อธิบายเป็นบรรทัดไปนะครับ

1     เป็นรูปแบบ TAG form  ของ html ครับจากบรรทัดที่ 1 อธิบายได้ว่า  ทำการส่งข้อมูลให้กับไฟล์  b.php  ด้วยวิธีการส่งแบบ get ครับ
2     เป็นรูปแบบ TAG input ของ html ครับจากบรรทัดที่ 2 อธิบายได้ว่า   input ที่จะส่งไปเป็นแบบข้อความ (text)  ตัวแปรชื่อ itemid
3     เป็นรูปแบบ TAG input ของ html ครับจากบรรทัดที่ 3 อธิบายได้ว่า   input ที่จะส่งไปเป็นแบบปุ่มกด (submit)  ตัวแปรชื่อ button มีค่าเป็น send information
       ใช้เพื่อเมื่อกดปุ่มแล้วให้ทำการส่งข้อมูลทันที
4      TAG ปิดของ <form>  ครับ


File   b.php

<?
               $getdata = $_GET['itemid'];
               echo $getdata;
?>


อธิบายเป็นบรรทัดไปนะครับ

1    รับตัวแปร  itemid  แบบ get
2    แสดงค่าออกมา

=======================================================================


การส่งข้อมูลแบบ post 

                   -  เปลี่ยนค่าในไฟล์  a.php  จาก  get  เป็น  post
                   -  เปลี่ยนค่าในไฟล์  b.php  จาก  $getdata = $_GET['itemid'];  เป็น  $getdata = $_POST['itemid'];


=======================================================================

ความแตกต่างของ  GET  และ  POST
                     
                       -  Get ถ้าสังเกตดี ๆ ว่าท้าย  b.php?itemid=xxxxxxx   โดย  xxxxxxx  แทนข้อมูลกรอกลงไป
                       -  Post ถ้าสังเกตดี ๆ ว่าท้าย b.php  จะไม่มีอะไรต่อเลย

=======================================================================

zenithsoul

#2
ผมกลับมาแล้วครับ  ;D

==============================================================================

หลังจากที่เราเรียนรู้กับการส่งข้อมูล   ข้ามไฟล์   ใน  php  กันแล้วนะครับ เรานำเอาการใช้งานนี้มาส่งค่า ASIN (ลักษณะของ ID สินค้าของ Amazon)

เพื่อเข้ามาเก็บไว้ในระบบตระกร้าสินค้าของเรานะครับ

==============================================================================

Operation ของ Cart API ครับมีดังนี้


  - CartAdd  ใช้สำหรับเพิ่มสินค้าลงไปในตระกร้า  ( หยิบของลงในตะกร้า )
  - CartClear ใช้สำหรับล้างข้อมูลในตระกร้า  ( เอาของในตะกร้าไปวางไว้ที่เดิมที่หยิบมาทั้งหมด)
  - CartCreate ใช้สำหรับสร้างตระกร้าสินค้าใหม่ ( หยิบตะกร้าจากหน้าร้าน เพื่อเริ่มซื้อของ)
  - CartGet ใช้สำหรับดูว่าในตระกร้ามีสินค้าอะไรบ้าง ( ดูว่าตระกร้าเราซื้ออะไรมาบ้าง จำนวนเท่าไร เป็นเงินเท่าไรแล้ว )
  - CartModify ใช้สำหรับ เปลี่ยน เพิ่ม ลด สินค้าในตะกร้าเราครับ

==============================================================================

ซึ่ง Process ของการนำตระกร้าใน API เป็นดังนี้ครับ

1. CartCreate    ->     2. CartAdd , CartClear ,CartGet , CartModify

ซึ่งการที่เราจะซื้อสินค้าใด ๆ นั้นเราต้องการมีการหยิบตะกร้ามาก่อนไม่งั้น เราจะไม่มีตะกร้าให้นักซื้อของเค้าเอาสินค้าลงตะกร้านะครับ

และ สิ่งที่เพิ่มขึ้นมาของตะกร้านั้นเมื่อเราทำการใช้ Operation CartCreate    แล้วเราจะต้องเก็บ   CartId  และ  HMAC ไว้ด้วยครับซึ๋งดูได้ดั้งนี้

http:// ecs.amazonaws.com/onca/xml?
Service=AWSECommerceService&
AWSAccessKeyId=[AWS Access Key ID]&
AssociateTag=[Associate Tag]&
Operation=CartCreate&
Item.1.ASIN=[ASIN]&
Item.1.Quantity=2&
Item.2.ASIN=[ASIN]&
Item.2.Quantity=7&
Item.3.ASIN=[ASIN]&
Item.3.Quantity=5



และดูสินที่ตอบกลับมาเมื่อเราทำการใช้งานครับ


<Cart>
  <Request>
    <IsValid>True</IsValid>
    <CartCreateRequest>
      <Items>
        <Item>
          <ASIN>B000062TU1</ASIN>
          <Quantity>2</Quantity>
        </Item>
      </Items>
    </CartCreateRequest>
  </Request>
  <CartId>102-5014548-4857758</CartId>
  <HMAC>O2p9hhZwJShnp6ZDWvZDO6FhpAI=</HMAC>
  <URLEncodedHMAC>O2p9hhZwJShnp6ZDWvZDO6FhpAI=</URLEncodedHMAC>

<PurchaseURL>https:  //www.amazon.com/gp/cart/aws-merge.html?cart-id=102-5014548-4857758%26associate-id=ws%26hmac=O2p9hhZwJShnp6ZDWvZDO6FhpAI=%26AWSAccessKeyId=1VMEXAMPLEW9C02%26MergeCart=False</PurchaseURL>
  <SubTotal>
    <Amount>1994</Amount>
    <CurrencyCode>USD</CurrencyCode>
    <FormattedPrice>$19.94</FormattedPrice>
  </SubTotal>
  <CartItems>
      <SubTotal>
        <Amount>1994</Amount>
        <CurrencyCode>USD</CurrencyCode>
        <FormattedPrice>$19.94</FormattedPrice>
      </SubTotal>
    <CartItem>
      <CartItemId>U31XY1DHZEGCTB</CartItemId>
      <ASIN>B000062TU1</ASIN>
      <MerchantId>ATVPDKIKX0DER</MerchantId>
      <SellerId>A2R2RITDJNW1Q6</SellerId>
      <SellerNickname>Amazon.com, LLC</SellerNickname>
      <Quantity>2</Quantity>
      <Title>Harry Potter and the Sorcerer's Stone (Full Screen Edition) (Harry Potter 1)</Title>
      <ProductGroup>DVD</ProductGroup>
      <Price>
        <Amount>997</Amount>
        <CurrencyCode>USD</CurrencyCode>
        <FormattedPrice>$9.97</FormattedPrice>
      </Price>
      <ItemTotal>
        <Amount>1994</Amount>
        <CurrencyCode>USD</CurrencyCode>
        <FormattedPrice>$19.94</FormattedPrice>
      </ItemTotal>
    </CartItem>
  </CartItems>
</Cart>



สังเกตได้ว่าสิ่งที่ผมบอกไปสำคัญที่สุดคือ

  <CartId>102-5014548-4857758</CartId>
  <HMAC>O2p9hhZwJShnp6ZDWvZDO6FhpAI=</HMAC>

สองอย่างที่มีไว้เพื่ออะไร ?  แท้จริงแล้วสองสิ่งนี้เป็น เสมือน รหัสของตะกร้าสินค้า ครับเนื่องจากในการทำงานตะกร้าสินค้าของ Amazon นั้นมีหลายตะกร้าเหลือเกินครับ

จึงต้องมี  CartId  และ  HMAC  ไว้ป้องกันการนำเอาตะกร้าของคนอื่นมาใช้ร่วมกันครับ

zenithsoul

#3
ผมขอจบการนำเสนอระบบ Cart ไว้ก่อนนะครับเพราะว่าบทนี้ต้องมีการเตรียม สคริป PHP ไว้เพื่อรันการใช้งานครับ พอดีไม่ได้เตรียมไว้

ตอนที่ 6 การใช้งาน Cart System API กับของจริงครับ


ปล. ผมต้องขอโทษชาวเสียวบอร์ดก่อนนะครับ เพราะ ผมเองงานยังยุ่ง ๆ อยู่ครับ

zenithsoul

#4
ตอนนี้ผมอยากขอ จะว่าไงดี ขอไปก็กระไรอยู่ คือ พอดีผมอยากจะซื้อเนื้อที่ของ Hostgator ผมอยากซื้อผ่านของตัวผมเอง หรือของคนอื่น ๆ ครับ

ประมาณว่าเอาเงินมาหมุนซื้อเนื้อที่  ตั้งเนื้อตั้งตัวซะหน่อยครับ เพราะ ตอนนี้เงินผมไม่มาก ( ลำบากนิดหน่อย ) จะมีก็มีแหละครับ

แน่นอนครับ ผมก็มีความช่วยเหลือเพียง code ของ API Amazon เพียว ๆ ไว้สำหรับการพัฒนาตอบแทนครับ ( code php อย่างเดียวนะ )

หรือไม่ก็ช่วยบอกผมหน่อยว่าจะซื้อผ่านของตัวเองยังไง  :'(

golfer007


ohmohm


zenithsoul


atmake


melodica

ยังรออยู่เหมือนเดิมครับ
ยอดเยี่ยม  ::) :'(

okthailand


ggmakerich

โย่ว +1 มารอความรู้อีกแล้วครับท่าน
###KAOHOLDING CO.,LTD.###

# จัดหาและจัดจำหน่ายสินค้าอุปโภคบริโภคเพื่อการส่งออกต่างประเทศ เช่น ลาว พม่า เวียดนาม กัมพูชา มาเลเซีย และจีน รวมทั้งประเทศอื่น

สนใจติดต่อ line id/tel : 0911579898

pkkmmm


khanna


hermiss

รวบรวมทำเป็นหนังสือออกขายเหอะ เนื้อหามันไม่ปะติดปะต่อ อ่านแบบนี้ชักมึน