Filemaker 12 からデータをエクスポートして、SOAP 呼び出しを作成し、Web サイト (magento) を更新しています。
いくつかのノードを移動する必要があるという事実を除いて、ほとんどすべてを機能させることができます
私は現在持っています(スニペット)
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<RESULTSET FOUND="1">
<ROW MODID="4431" RECORDID="31">
<!-- column 15 -->
<COL> <!-- customer group -->
<DATA>all</DATA>
<DATA>all</DATA>
<DATA>education</DATA>
</COL>
<!-- column 16 -->
<COL> <!-- qty -->
<DATA>5</DATA>
<DATA>10</DATA>
<DATA>100</DATA>
</COL>
<!-- column 17 -->
<COL> <!-- sale price -->
<DATA>1300</DATA>
<DATA>1250</DATA>
<DATA>1225</DATA>
</COL>
<!-- column 18 -->
<COL> <!-- website -->
<DATA>1</DATA>
<DATA>1</DATA>
<DATA>2</DATA>
</COL>
</ROW>
</RESULTSET>
</FMPXMLRESULT>
私がそれをどのように見せたいかは次のとおりです。
<item>
<customer_group>all</customer_group
<qty>5</qty>
<price>1300</price>
<website>1</website>
</item>
<item>
<customer_group>all</customer_group
<qty>10</qty>
<price>1250</price>
<website>1</website>
</item>
<item>
<customer_group>education</customer_group
<qty>100</qty>
<price>1225</price>
<website>2</website>
</item>
私の現在のスタイルシートは次のようになります(これも関連するスニペットのみです)
<xsl:for-each select="fmp:COL[15]/fmp:DATA">
<xsl:variable name="location">
<xsl:value-of select="position()" />
</xsl:variable>
<item>
<customer_group_id xsi:type="xsd:string">
<xsl:value-of select="//fmp:ROW/fmp:COL[15]/fmp:DATA[$location]" />
</customer_group_id>
<qty xsi:type="xsd:int">
<xsl:value-of select="//fmp:ROW/fmp:COL[16]/fmp:DATA[$location]" />
</qty>
<price xsi:type="xsd:double">
<xsl:value-of select="//fmp:ROW/fmp:COL[17]/fmp:DATA[$location]" />
</price>
<website xsi:type="xsd:string">
<xsl:value-of select="//fmp:ROW/fmp:COL[18]/fmp:DATA[$location]" />
</website>
</item>
</xsl:for-each>
これは、すべての customer_group 、qty、price、web サイトを含む 3 つの要素を構築するという点でほぼ機能しますが、データは取り込まれません。
誰でも助けることができますか?
filemaker の出力全体は次のとおりです。45 1 my-url-to-product 4 1700 01/01/2199 02/01/2199 2 すべて すべての教育 5 10 100 1300 1250 1225 1 1 2 ドラムキットのもの もう少し text 0 stock_message リクエストに応じて注文1
XSLT スタイルシート全体は次のとおりです。
<?xml version="1.0" encoding="utf-8" standalone='no'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fmp="http://www.filemaker.com/fmpxmlresult" exclude-result-prefixes="fmp" xmlns:sc="http://schemas.google.com/structuredcontent/2009" xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:gd="http://schemas.google.com/g/2005" xmlns:scp="http://schemas.google.com/structuredcontent/2009/products">
<xsl:output method="xml" version="1.0" encoding="windows-1251" indent="yes" />
<xsl:template match="/">
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="urn:Magento">
<SOAP-ENV:Body>
<ns1:catalogProductUpdate>
<xsl:for-each select="fmp:FMPXMLRESULT/fmp:RESULTSET/fmp:ROW">
<sessionId xsi:type="xsd:string">sessionIDstring</sessionId>
<product xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[1]/fmp:DATA" />
</product>
<productData>
<categories SOAP-ENC:arrayType="ns:ArrayOfString[1]">
<xsl:for-each select="fmp:COL[2]/fmp:DATA">
<item xsi:type="xsd:string">
<xsl:value-of select="." />
</item>
</xsl:for-each>
</categories>
<websites SOAP-ENC:arrayType="ns:ArrayOfString[1]">
<xsl:for-each select="fmp:COL[3]/fmp:DATA">
<item xsi:type="xsd:string">
<xsl:value-of select="." />
</item>
</xsl:for-each>
</websites>
<name xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[4]/fmp:DATA" />
</name>
<description xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[5]/fmp:DATA" />
</description>
<short_description xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[6]/fmp:DATA" />
</short_description>
<weight xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[7]/fmp:DATA" />
</weight>
<status xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[8]/fmp:DATA" />
</status>
<url_key xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[9]/fmp:DATA" />
</url_key>
<visibility xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[10]/fmp:DATA" />
</visibility>
<category_ids />
<website_ids />
<price xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[11]/fmp:DATA" />
</price>
<special_from_date xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[12]/fmp:DATA" />
</special_from_date>
<special_to_date xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[13]/fmp:DATA" />
</special_to_date>
<tax_class_id xsi:type="xsd:string">
<xsl:value-of select="fmp:COL[14]/fmp:DATA" />
</tax_class_id>
<tier_price SOAP-ENC:arrayType="ns:catalogProductTierPriceEntityArray[1]">
<item_count>
<xsl:value-of select="count(//fmp:ROW/fmp:COL[15]/fmp:DATA)" />
</item_count>
<xsl:variable name="tierCount">
<xsl:value-of select="count(//fmp:ROW/fmp:COL[15]/fmp:DATA)" />
</xsl:variable>
<!-- count how many tiered thingys we have and hope that the data is correct in FM and there are no blank fields -->
<item_var>
<xsl:value-of select="$tierCount" />
</item_var>
<xsl:variable name="count">
<xsl:number />
</xsl:variable>
<xsl:for-each select="fmp:COL[15]/fmp:DATA">
<xsl:variable name="location">
<xsl:value-of select="position()" />
</xsl:variable>
<item>
<customer_group_id xsi:type="xsd:string">
<xsl:value-of select="//fmp:ROW/fmp:COL[15]/fmp:DATA[$location]" />
</customer_group_id>
<qty xsi:type="xsd:int">
<xsl:value-of select="//fmp:ROW/fmp:COL[16]/fmp:DATA[$location]" />
</qty>
<price xsi:type="xsd:double">
<xsl:value-of select="//fmp:ROW/fmp:COL[17]/fmp:DATA[$location]" />
</price>
<website xsi:type="xsd:string">
<xsl:value-of select="//fmp:ROW/fmp:COL[18]/fmp:DATA[$location]" />
</website>
</item>
</xsl:for-each>
</tier_price>
</productData>
</xsl:for-each>
</ns1:catalogProductUpdate>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</xsl:template>
</xsl:stylesheet>