0
私はFoxyCartを使用しています。 SOAPを介して各注文を第三者サービス(3PL Central)にフィードする必要があります。私はPHPのSoapClientを使用しています。私はこのためのフィードにする必要がありPHPでのSOAP呼び出しのXMLデータの変換/変更/書式設定
:
<foxydata>
<store_version>
<![CDATA[0.7.2]]>
</store_version>
<transactions>
<transaction>
<id>
<![CDATA[6122236]]>
</id>
<store_id>
<![CDATA[12474]]>
</store_id>
<store_version>
<![CDATA[0.7.2]]>
</store_version>
<is_test>
<![CDATA[1]]>
</is_test>
<is_hidden>
<![CDATA[0]]>
</is_hidden>
<data_is_fed>
<![CDATA[1]]>
</data_is_fed>
<transaction_date>
<![CDATA[2011-11-28 16:31:53]]>
</transaction_date>
<payment_type>
<![CDATA[plastic]]>
</payment_type>
<payment_gateway_type>
<![CDATA[authorize]]>
</payment_gateway_type>
<processor_response>
<![CDATA[Authorize.net Transaction ID:2166733111]]>
</processor_response>
<processor_response_details>
</processor_response_details>
<purchase_order>
<![CDATA[]]>
</purchase_order>
<cc_number_masked>
<![CDATA[xxxxxxxxxxxx1111]]>
</cc_number_masked>
<cc_type>
<![CDATA[Visa]]>
</cc_type>
<cc_exp_month>
<![CDATA[09]]>
</cc_exp_month>
<cc_exp_year>
<![CDATA[2013]]>
</cc_exp_year>
<cc_start_date_month>
<![CDATA[]]>
</cc_start_date_month>
<cc_start_date_year>
<![CDATA[]]>
</cc_start_date_year>
<cc_issue_number>
<![CDATA[]]>
</cc_issue_number>
<minfraud_score>
<![CDATA[0]]>
</minfraud_score>
<paypal_payer_id>
<![CDATA[]]>
</paypal_payer_id>
<customer_id>
<![CDATA[2107952]]>
</customer_id>
<is_anonymous>
<![CDATA[0]]>
</is_anonymous>
<customer_first_name>
<![CDATA[Jacob]]>
</customer_first_name>
<customer_last_name>
<![CDATA[Dubail]]>
</customer_last_name>
<customer_company>
<![CDATA[]]>
</customer_company>
<customer_address1>
<![CDATA[2123 4th Ave N]]>
</customer_address1>
<customer_address2>
<![CDATA[]]>
</customer_address2>
<customer_city>
<![CDATA[Seattle]]>
</customer_city>
<customer_state>
<![CDATA[WA]]>
</customer_state>
<customer_postal_code>
<![CDATA[98109]]>
</customer_postal_code>
<customer_country>
<![CDATA[US]]>
</customer_country>
<customer_phone>
<![CDATA[]]>
</customer_phone>
<customer_email>
<![CDATA[[email protected]]]>
</customer_email>
<customer_ip>
<![CDATA[24.16.147.150]]>
</customer_ip>
<shipping_first_name>
<![CDATA[Jacob]]>
</shipping_first_name>
<shipping_last_name>
<![CDATA[Dubail]]>
</shipping_last_name>
<shipping_company>
<![CDATA[]]>
</shipping_company>
<shipping_address1>
<![CDATA[2123 4th Ave N]]>
</shipping_address1>
<shipping_address2>
<![CDATA[]]>
</shipping_address2>
<shipping_city>
<![CDATA[Seattle]]>
</shipping_city>
<shipping_state>
<![CDATA[WA]]>
</shipping_state>
<shipping_postal_code>
<![CDATA[98109]]>
</shipping_postal_code>
<shipping_country>
<![CDATA[US]]>
</shipping_country>
<shipping_phone>
<![CDATA[]]>
</shipping_phone>
<shipto_shipping_service_description>
<![CDATA[]]>
</shipto_shipping_service_description>
<product_total>
<![CDATA[69.95]]>
</product_total>
<tax_total>
<![CDATA[0]]>
</tax_total>
<shipping_total>
<![CDATA[0]]>
</shipping_total>
<order_total>
<![CDATA[69.95]]>
</order_total>
<receipt_url>
<![CDATA[http://g-form.foxycart.com/receipt?id=a300bc60401cff62b15efe0cb74446d9]]>
</receipt_url>
<taxes>
</taxes>
<discounts>
</discounts>
<customer_password>
<![CDATA[$P$BpyID37aTSEicSweMlC7ppaIo4E8ex0]]>
</customer_password>
<customer_password_salt>
<![CDATA[]]>
</customer_password_salt>
<customer_password_hash_type>
<![CDATA[phpass]]>
</customer_password_hash_type>
<customer_password_hash_config>
<![CDATA[8]]>
</customer_password_hash_config>
<custom_fields>
</custom_fields>
<transaction_details>
<transaction_detail>
<product_name>
<![CDATA[11" Extreme Sleeve™ for Laptops]]>
</product_name>
<product_price>
<![CDATA[69.95]]>
</product_price>
<product_quantity>
<![CDATA[1]]>
</product_quantity>
<product_weight>
<![CDATA[1.000]]>
</product_weight>
<product_code>
<![CDATA[0033]]>
</product_code>
<image>
<![CDATA[http://g-form.net/wp-content/uploads/2011/10/PRO-2285-18_large-150x150.jpg]]>
</image>
<url>
<![CDATA[http://g-form.net/products/11-extreme-sleeve%e2%84%a2-for-laptops/]]>
</url>
<length>
<![CDATA[0]]>
</length>
<width>
<![CDATA[0]]>
</width>
<height>
<![CDATA[0]]>
</height>
<downloadable_url>
<![CDATA[]]>
</downloadable_url>
<sub_token_url>
<![CDATA[]]>
</sub_token_url>
<subscription_frequency>
<![CDATA[]]>
</subscription_frequency>
<subscription_startdate>
<![CDATA[0000-00-00]]>
</subscription_startdate>
<subscription_nextdate>
<![CDATA[0000-00-00]]>
</subscription_nextdate>
<subscription_enddate>
<![CDATA[0000-00-00]]>
</subscription_enddate>
<is_future_line_item>
<![CDATA[0]]>
</is_future_line_item>
<shipto>
<![CDATA[]]>
</shipto>
<category_description>
<![CDATA[Default for all products]]>
</category_description>
<category_code>
<![CDATA[DEFAULT]]>
</category_code>
<product_delivery_type>
<![CDATA[notshipped]]>
</product_delivery_type>
<transaction_detail_options>
<transaction_detail_option>
<product_option_name>
<![CDATA[Color]]>
</product_option_name>
<product_option_value>
<![CDATA[Black]]>
</product_option_value>
<price_mod>
<![CDATA[0]]>
</price_mod>
<weight_mod>
<![CDATA[0.000]]>
</weight_mod>
</transaction_detail_option>
</transaction_detail_options>
</transaction_detail>
</transaction_details>
<shipto_addresses>
</shipto_addresses>
<attributes>
</attributes>
</transaction>
</transactions>
</foxydata>
は次のようになります。これは、SOAP呼び出し用にフォーマットされています。
<Order>
<TransInfo>
<ReferenceNum>AS7738</ReferenceNum>
<EarliestShipDate>2008-02-11T00:00:00</EarliestShipDate>
<ShipCancelDate>0001-01-01T00:00:00</ShipCancelDate>
</TransInfo>
<ShipTo>
<CompanyName>BB & B</CompanyName>
<Address><Address1/><City/><State/><Zip/><Country/></Address>
</ShipTo>
<ShippingInstructions><Carrier>LVLA</Carrier></ShippingInstructions>
<OrderLineItems>
<OrderLineItem><SKU>12345</SKU><Qty>8.00000</Qty><Packed>2</Packed<CuFtPerCarton>1.400000</CuFtPerCarton></OrderLineItem>
<OrderLineItem><SKU>98572</SKU><Qty>116.00000</Qty><Packed>4</Packed>CuFtPerCarton>2.100000</CuFtPerCarton></OrderLineItem>
<OrderLineItem><SKU>98873</SKU><Qty>20.00000</Qty><Packed>4</Packed>CuFtPerCarton>2.100000</CuFtPerCarton></OrderLineItem>
<OrderLineItem><SKU>36774</SKU><Qty>40.00000</Qty><Packed>4</Packed>CuFtPerCarton>2.100000</CuFtPerCarton></OrderLineItem>
</OrderLineItems>
</Order>
これを行う最善の方法は何ですか?私が作ってみた
アイデアが含まれます:
foxycartフィードから必要なノードを抽出し、SOAPの配列にそれらを挿入します。
何とかfoxycartフィードをフィルタリングし、不要なデータを取り除き、必要に応じてノードを変更します。 (どのように私は実際にこれを達成するだろうアイデア)。
おかげで、 ヤコブ